added publishers

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-08-18 15:20:56 -05:00
parent 1b3bcfab25
commit 268570b3bb
3 changed files with 43 additions and 0 deletions

View File

@ -37,6 +37,8 @@
EA3362452892F9130071C351 /* Labelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3362442892F9130071C351 /* Labelable.swift */; }; EA3362452892F9130071C351 /* Labelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3362442892F9130071C351 /* Labelable.swift */; };
EA33624728931B050071C351 /* Initable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA33624628931B050071C351 /* Initable.swift */; }; EA33624728931B050071C351 /* Initable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA33624628931B050071C351 /* Initable.swift */; };
EA3C3B4C2894823E000CA526 /* AnyProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3C3B4B2894823E000CA526 /* AnyProxy.swift */; }; EA3C3B4C2894823E000CA526 /* AnyProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3C3B4B2894823E000CA526 /* AnyProxy.swift */; };
EA89200228AECF2A006B9984 /* UIButton+Publisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89200128AECF2A006B9984 /* UIButton+Publisher.swift */; };
EA89200428AECF4B006B9984 /* UITextField+Publisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89200328AECF4B006B9984 /* UITextField+Publisher.swift */; };
EAB1D29428A3ECF700DAE764 /* SelectorGroupBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F13028A17FAB00B287F5 /* SelectorGroupBase.swift */; }; EAB1D29428A3ECF700DAE764 /* SelectorGroupBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F13028A17FAB00B287F5 /* SelectorGroupBase.swift */; };
EAB1D29A28A5611D00DAE764 /* SelectorGroupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29928A5611D00DAE764 /* SelectorGroupModel.swift */; }; EAB1D29A28A5611D00DAE764 /* SelectorGroupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29928A5611D00DAE764 /* SelectorGroupModel.swift */; };
EAB1D29C28A5618900DAE764 /* RadioButtonGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29B28A5618900DAE764 /* RadioButtonGroup.swift */; }; EAB1D29C28A5618900DAE764 /* RadioButtonGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29B28A5618900DAE764 /* RadioButtonGroup.swift */; };
@ -120,6 +122,8 @@
EA3362442892F9130071C351 /* Labelable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Labelable.swift; sourceTree = "<group>"; }; EA3362442892F9130071C351 /* Labelable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Labelable.swift; sourceTree = "<group>"; };
EA33624628931B050071C351 /* Initable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Initable.swift; sourceTree = "<group>"; }; EA33624628931B050071C351 /* Initable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Initable.swift; sourceTree = "<group>"; };
EA3C3B4B2894823E000CA526 /* AnyProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnyProxy.swift; sourceTree = "<group>"; }; EA3C3B4B2894823E000CA526 /* AnyProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnyProxy.swift; sourceTree = "<group>"; };
EA89200128AECF2A006B9984 /* UIButton+Publisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIButton+Publisher.swift"; sourceTree = "<group>"; };
EA89200328AECF4B006B9984 /* UITextField+Publisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextField+Publisher.swift"; sourceTree = "<group>"; };
EAB1D29928A5611D00DAE764 /* SelectorGroupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectorGroupModel.swift; sourceTree = "<group>"; }; EAB1D29928A5611D00DAE764 /* SelectorGroupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectorGroupModel.swift; sourceTree = "<group>"; };
EAB1D29B28A5618900DAE764 /* RadioButtonGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonGroup.swift; sourceTree = "<group>"; }; EAB1D29B28A5618900DAE764 /* RadioButtonGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonGroup.swift; sourceTree = "<group>"; };
EAB1D29D28A5619500DAE764 /* RadioButtonGroupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonGroupModel.swift; sourceTree = "<group>"; }; EAB1D29D28A5619500DAE764 /* RadioButtonGroupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonGroupModel.swift; sourceTree = "<group>"; };
@ -376,7 +380,9 @@
children = ( children = (
EAB1D2E328AE842000DAE764 /* Publisher+Bind.swift */, EAB1D2E328AE842000DAE764 /* Publisher+Bind.swift */,
EAB1D2C628A6E76300DAE764 /* ModelHandlerPublisher.swift */, EAB1D2C628A6E76300DAE764 /* ModelHandlerPublisher.swift */,
EA89200128AECF2A006B9984 /* UIButton+Publisher.swift */,
EAB1D2E928AE84AA00DAE764 /* UIControlPublisher.swift */, EAB1D2E928AE84AA00DAE764 /* UIControlPublisher.swift */,
EA89200328AECF4B006B9984 /* UITextField+Publisher.swift */,
); );
path = Publishers; path = Publishers;
sourceTree = "<group>"; sourceTree = "<group>";
@ -541,6 +547,7 @@
files = ( files = (
EAF7F0B5289C126F00B287F5 /* UILabel.swift in Sources */, EAF7F0B5289C126F00B287F5 /* UILabel.swift in Sources */,
EAF7F0A6289B0CE000B287F5 /* Resetable.swift in Sources */, EAF7F0A6289B0CE000B287F5 /* Resetable.swift in Sources */,
EA89200428AECF4B006B9984 /* UITextField+Publisher.swift in Sources */,
EAB1D29428A3ECF700DAE764 /* SelectorGroupBase.swift in Sources */, EAB1D29428A3ECF700DAE764 /* SelectorGroupBase.swift in Sources */,
EA3361C328902D960071C351 /* Toggle.swift in Sources */, EA3361C328902D960071C351 /* Toggle.swift in Sources */,
EAF7F12C28A1617600B287F5 /* SelectorBase.swift in Sources */, EAF7F12C28A1617600B287F5 /* SelectorBase.swift in Sources */,
@ -577,6 +584,7 @@
EAF7F0BB289D80ED00B287F5 /* Modelable.swift in Sources */, EAF7F0BB289D80ED00B287F5 /* Modelable.swift in Sources */,
EAF7F09E289AAEC000B287F5 /* Constants.swift in Sources */, EAF7F09E289AAEC000B287F5 /* Constants.swift in Sources */,
EA3361B3288B265D0071C351 /* Changable.swift in Sources */, EA3361B3288B265D0071C351 /* Changable.swift in Sources */,
EA89200228AECF2A006B9984 /* UIButton+Publisher.swift in Sources */,
EAF7F0AB289B13FD00B287F5 /* LabelAttributeFont.swift in Sources */, EAF7F0AB289B13FD00B287F5 /* LabelAttributeFont.swift in Sources */,
EAB1D29C28A5618900DAE764 /* RadioButtonGroup.swift in Sources */, EAB1D29C28A5618900DAE764 /* RadioButtonGroup.swift in Sources */,
EA336171288B19200071C351 /* VDS.docc in Sources */, EA336171288B19200071C351 /* VDS.docc in Sources */,

View File

@ -0,0 +1,17 @@
//
// Button+Publisher.swift
// VDS
//
// Created by Matt Bruce on 8/18/22.
//
import Foundation
import UIKit
import Combine
extension UIButton {
public var tapPublisher: AnyPublisher<UIButton, Never> {
publisher(for: .touchUpInside)
.eraseToAnyPublisher()
}
}

View File

@ -0,0 +1,18 @@
//
// UITextField+Publisher.swift
// VDS
//
// Created by Matt Bruce on 8/18/22.
//
import Foundation
import UIKit
import Combine
extension UITextField {
public var textPublisher: AnyPublisher<String, Never> {
publisher(for: .editingChanged)
.map { _ in self.text ?? "" }
.eraseToAnyPublisher()
}
}