This commit is contained in:
Михаил Капелько
2023-12-28 14:04:37 +03:00
parent d893364ff4
commit 853686f441
5 changed files with 124 additions and 170 deletions

View File

@@ -3,7 +3,7 @@ Pod::Spec.new do |s|
s.name = 'MeetupIdX'
s.version = '2023.12.28'
s.license = 'IVCS'
s.summary = 'Окно ввода ID мероприятия'
s.summary = 'Ввод ID мероприятия'
s.homepage = 'IVCS'
s.author = 'IVCS'
s.source = { :git => 'https://fake.com/FAKE.git', :tag => s.version }

View File

@@ -0,0 +1,115 @@
// ВНИМАНИЕ Сгенерировано автоматом из файла MeetupId.yml
// ВНИМАНИЕ Не менять руками!
import BusX
import Combine
import CordX
import Foundation
import UIKit
// MARK: - Context
public protocol MeetupIdContext {
var textApp: MPAK.Recent<String> { get }
var textUI: MPAK.Recent<String> { get }
}
// MARK: - Controller
extension MeetupId {
final class Controller: MPAK.Controller<MeetupId.Model> {
init() {
super.init(
MeetupId.Model(),
debugClassName: "MeetupICtrl",
debugLog: { aelog($0) }
)
}
}
// MARK: - Model
public struct Model: MeetupIdContext {
public var textApp: MPAK.Recent<String> = .init("")
public var textUI: MPAK.Recent<String> = .init("")
}
// MARK: - Service
public final class Service {
let ctrl = Controller()
let world: World
var subscriptions = [AnyCancellable]()
static private(set) weak var singleton: Service?
public init(_ world: World) {
self.world = world
Self.singleton = self
SectionGenerated.setupPlatform(ctrl, self, world)
}
}
// MARK: - World
public struct World {
let textApp = PassthroughSubject<String, Never>()
let textUI = PassthroughSubject<String, Never>()
public init(
) {
}
}
enum SectionGenerated {
// MARK: - SectionGenerated Service
static func setupPlatform(
_ ctrl: Controller,
_ service: Service,
_ world: World
) {
// MARK: - SectionGenerated Service Actions
// MARK: - SectionGenerated Service Pipes
ctrl.pipeValue(
dbg: "textA",
sub: nil,
K.meetupIdTextApp.eraseToAnyPublisher(),
{
$0.textApp.value = $1
$0.textApp.isRecent = true
},
{ m, _ in m.textApp.isRecent = false }
)
ctrl.pipeValue(
dbg: "textUI",
sub: nil,
K.meetupIdTextUI.eraseToAnyPublisher(),
{
$0.textUI.value = $1
$0.textUI.isRecent = true
},
{ m, _ in m.textUI.isRecent = false }
)
}
}
}

View File

@@ -4,6 +4,9 @@ def generateImports(c):
if c.path != c.module:
parent = c.path.split("/")[0]
fileName = fileName.replace(f"{c.module}/src/../{c.module}", parent)
# Для обычного модуля с окончание X учитываем такое же название podspec.
if c.path[-1] == "X":
fileName = fileName.replace(f"{c.module}.podspec", f"{c.module}X.podspec")
lines = c.readFile(fileName)
items = ["Combine", "Foundation", "UIKit"]

View File

@@ -1,168 +1 @@
ADFSRedirection
ApiHostSave
C4
C4/C4Ava
C4/C4Attributes
C4/C4Call
C4/C4Canvas
C4/C4Cleanup
C4/C4Content
C4/C4Data
C4/C4Date
C4/C4DeleteChat
C4/C4Empty
C4/C4FastScrollBtn
C4/C4FeatureToggle
C4/C4Group
C4/C4LastMessage
C4/C4LeaveChat
C4/C4Navigation
C4/C4NotificationStatus
C4/C4QuickActions
C4/C4Paging
C4/C4Reload
C4/C4Sorting
C4/C4Status
C4/C4SetNotifications
C4/C4TextInputSearch
C4/C4TextInputSearchCanvas
C4/C4Title
C4/C4Typing
C4/C4Unread
C4/C4SearchAttributes
C4/C4SearchContent
C4/C4SearchData
C4/C4SearchEmpty
C4/C4SearchPaging
C4/C4SearchSorting
ChatCallError
ChatsAccessVerification
ChatTitle
ConnectionStatus
IPC
Login/LoginGodActivity
Login/LoginStart
LoginADFSAuth
LoginADFSButtons
LoginADFSProviders
LoginADFSWebViewControlPanel
LoginADFSWebView
LoginMeetupId
LoginMeetupIdBtn
LoginHost
M5Buttons
M5I/M5ICanvas
M5I/M5ICloseBtn
M5I/M5IConferenceType
M5I/M5IConferenceNumber
M5I/M5IData
M5I/M5IDeleteBtn
M5I/M5IDescription
M5I/M5IDetails
M5I/M5IError
M5I/M5IGuestLink
M5I/M5IInviteResponseBtn
M5I/M5IJoinBtn
M5I/M5IJoinInfo
M5I/M5ILinksBtn
M5I/M5ILoading
M5I/M5IMenu
M5I/M5IReload
M5I/M5IStatus
M5I/M5IStatusAddon
M5I/M5ITitle
M5I/M5IType
M5I/M5ITypeName
M5I/M5ITypeUpdate
M5ILinks/M5ILinksCanvas
M5ILinks/M5ILinksCloseBtn
M5ILinks/M5ILinksJoinByGuest
M5ILinks/M5ILinksJoinByID
M5ILinks/M5ILinksJoinByModerator
M5ILinks/M5ILinksJoinByPhone
M5ILinks/M5ILinksJoinBySpeaker
M5ILinks/M5ILinksJoinByVvoip
M5IPush/M5IPushExitAlert
M5IPush/M5IPushNavigation
M5IUsers/M5IUsersAttributes
M5IUsers/M5IUsersAva
M5IUsers/M5IUsersData
M5IUsers/M5IUsersCleanup
M5IUsers/M5IUsersContent
M5IUsers/M5IUsersCount
M5IUsers/M5IUsersCountOnline
M5IUsers/M5IUsersInvitation
M5IUsers/M5IUsersLoading
M5IUsers/M5IUsersLoadingError
M5IUsers/M5IUsersPaging
M5IUsers/M5IUsersReload
M5IUsers/M5IUsersRole
M5IUsers/M5IUsersSorting
M5IUsers/M5IUsersTitle
M5IUsers/M5IUsersType
M5ChatParticipantOnline
M5Media/M5MediaData
M5Media/M5MediaAttributes
M5Media/M5MediaStatus
M5Media/M5PresentationInfo
M5Media/M5ScreenShare
M5Media/M5SpeakerInfo
M5Media/M5Streaming
M5Media/M5VideoQuality
M5Typing
MeetupCallLogoutAlert
MeetupLink/MeetupLinkSpinner
MeetupGoToAnotherMeetupLink
MeetupLinkApiHostRollback
MeetupLinkLaunch
Meetups/MeetupsAttributes
Meetups/MeetupsData
Meetups/MeetupsEmpty
Meetups/MeetupsPaging
Ori
Password
PasswordCanvas
PasswordFeatureToggle
ProtoM5Files
Rooms
RoomsAttributes
RoomsAva
RoomsCanvas
RoomsCleanup
RoomsData
RoomsDuration
RoomsEmpty
RoomsJoinBtn
RoomsLastDate
RoomsOrganizer
RoomsPages
RoomsReload
RoomsSorting
RoomsTitle
RoomsUsers
S5Panel/S5PanelMeetups
S5Panel/S5PanelRooms
SystemInfo
TimeDistance
Toast
WindowPriority
MeetupIdX

View File

@@ -3,5 +3,8 @@ def modulePaths(name):
if len(parts) == 2:
return (name, parts[1])
else:
return (name, name)
module = name
if name[-1] == "X":
module = name[:-1]
return (name, module)