diff --git a/VDS.xcodeproj/project.pbxproj b/VDS.xcodeproj/project.pbxproj index 06222f81..60401872 100644 --- a/VDS.xcodeproj/project.pbxproj +++ b/VDS.xcodeproj/project.pbxproj @@ -12,7 +12,7 @@ 44604AD729CE196600E62B51 /* Line.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44604AD629CE196600E62B51 /* Line.swift */; }; 5F21D7BF28DCEB3D003E7CD6 /* Useable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F21D7BE28DCEB3D003E7CD6 /* Useable.swift */; }; 5FC35BE328D51405004EBEAC /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FC35BE228D51405004EBEAC /* Button.swift */; }; - EA0B18022A9E236900F2D0CD /* SelectorGroupHandlerBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0B18012A9E236900F2D0CD /* SelectorGroupHandlerBase.swift */; }; + EA0B18022A9E236900F2D0CD /* SelectorGroupBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0B18012A9E236900F2D0CD /* SelectorGroupBase.swift */; }; EA0B18052A9E2D2D00F2D0CD /* SelectorBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0B18032A9E2D2D00F2D0CD /* SelectorBase.swift */; }; EA0B18062A9E2D2D00F2D0CD /* SelectorItemBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0B18042A9E2D2D00F2D0CD /* SelectorItemBase.swift */; }; EA0D1C372A681CCE00E5C127 /* ToggleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0D1C362A681CCE00E5C127 /* ToggleView.swift */; }; @@ -157,7 +157,7 @@ 44604AD629CE196600E62B51 /* Line.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Line.swift; sourceTree = ""; }; 5F21D7BE28DCEB3D003E7CD6 /* Useable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Useable.swift; sourceTree = ""; }; 5FC35BE228D51405004EBEAC /* Button.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Button.swift; sourceTree = ""; }; - EA0B18012A9E236900F2D0CD /* SelectorGroupHandlerBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectorGroupHandlerBase.swift; sourceTree = ""; }; + EA0B18012A9E236900F2D0CD /* SelectorGroupBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectorGroupBase.swift; sourceTree = ""; }; EA0B18032A9E2D2D00F2D0CD /* SelectorBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectorBase.swift; sourceTree = ""; }; EA0B18042A9E2D2D00F2D0CD /* SelectorItemBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectorItemBase.swift; sourceTree = ""; }; EA0D1C362A681CCE00E5C127 /* ToggleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleView.swift; sourceTree = ""; }; @@ -337,7 +337,7 @@ EA0B17FF2A9E21CA00F2D0CD /* Selector */ = { isa = PBXGroup; children = ( - EA0B18012A9E236900F2D0CD /* SelectorGroupHandlerBase.swift */, + EA0B18012A9E236900F2D0CD /* SelectorGroupBase.swift */, EA0B18032A9E2D2D00F2D0CD /* SelectorBase.swift */, EA0B18042A9E2D2D00F2D0CD /* SelectorItemBase.swift */, ); @@ -948,7 +948,7 @@ EA4DB30228DCBCA500103EE3 /* Badge.swift in Sources */, EA33624728931B050071C351 /* Initable.swift in Sources */, EAF7F0A4289B017C00B287F5 /* LabelAttributeModel.swift in Sources */, - EA0B18022A9E236900F2D0CD /* SelectorGroupHandlerBase.swift in Sources */, + EA0B18022A9E236900F2D0CD /* SelectorGroupBase.swift in Sources */, EA5F86D02A1F936100BC83E4 /* TabsContainer.swift in Sources */, EAF7F0B1289B177F00B287F5 /* ColorLabelAttribute.swift in Sources */, EAC9258F2911C9DE00091998 /* EntryFieldBase.swift in Sources */, diff --git a/VDS/BaseClasses/Selector/SelectorGroupHandlerBase.swift b/VDS/BaseClasses/Selector/SelectorGroupBase.swift similarity index 83% rename from VDS/BaseClasses/Selector/SelectorGroupHandlerBase.swift rename to VDS/BaseClasses/Selector/SelectorGroupBase.swift index 048a8737..36dd78a5 100644 --- a/VDS/BaseClasses/Selector/SelectorGroupHandlerBase.swift +++ b/VDS/BaseClasses/Selector/SelectorGroupBase.swift @@ -10,7 +10,7 @@ import UIKit import Combine /// Base Class used for any Grouped Form Control of a Selector Type. -open class SelectorGroupHandlerBase: Control, Changeable { +open class SelectorGroupBase: Control, Changeable { //-------------------------------------------------- // MARK: - Private Properties @@ -30,13 +30,13 @@ open class SelectorGroupHandlerBase: Control, Changeable { //-------------------------------------------------- /// Array of the HandlerType registered. /// Array of HandlerType that the user will have the ability to select from. - open var selectorViews: [HandlerType] = [] { + open var items: [SelectorItemType] = [] { willSet { mainStackView.arrangedSubviews.forEach { $0.removeFromSuperview() } } didSet { - for selector in selectorViews { + for selector in items { selector.onClick = { [weak self] handler in self?.didSelect(handler) self?.setNeedsUpdate() @@ -47,15 +47,15 @@ open class SelectorGroupHandlerBase: Control, Changeable { } /// Current Selected Control for this group. - open var selectedHandlers: [HandlerType]? { - let selected = selectorViews.filter{ $0.isSelected == true } + open var selectedItems: [SelectorItemType]? { + let selected = items.filter{ $0.isSelected == true } guard selected.count > 0 else { return nil } return selected } /// Current Selected Control for this group. - open var selectedHandler: HandlerType? { - return selectorViews.filter { $0.isSelected == true }.first + open var selectedItem: SelectorItemType? { + return items.filter { $0.isSelected == true }.first } open var onChangeSubscriber: AnyCancellable? { @@ -69,14 +69,14 @@ open class SelectorGroupHandlerBase: Control, Changeable { /// Whether the Control is enabled or not. override open var isEnabled: Bool { didSet { - selectorViews.forEach { $0.isEnabled = isEnabled } + items.forEach { $0.isEnabled = isEnabled } } } ///The background tint that the component will be placed on. This will automatically adjust other elements as needed and takes “light” or “dark” override open var surface: Surface { didSet { - selectorViews.forEach { handler in + items.forEach { handler in handler.surface = surface } } @@ -95,7 +95,7 @@ open class SelectorGroupHandlerBase: Control, Changeable { /// Handler for the Group to override on a select event. /// - Parameter selectedControl: Selected Control the user interacted. - open func didSelect(_ selectedControl: HandlerType) { + open func didSelect(_ selectedControl: SelectorItemType) { fatalError("Must override didSelect") } @@ -109,6 +109,6 @@ open class SelectorGroupHandlerBase: Control, Changeable { /// Resets to default settings. open override func reset() { super.reset() - selectorViews.forEach{ $0.reset() } + items.forEach{ $0.reset() } } } diff --git a/VDS/Components/Checkbox/CheckboxGroup.swift b/VDS/Components/Checkbox/CheckboxGroup.swift index 3895e523..e117a574 100644 --- a/VDS/Components/Checkbox/CheckboxGroup.swift +++ b/VDS/Components/Checkbox/CheckboxGroup.swift @@ -12,7 +12,7 @@ import UIKit /// asking a customer which attributes they would like to filter their search by. This uses ``CheckboxItem`` /// to allow user selection. @objc(VDSCheckboxGroup) -open class CheckboxGroup: SelectorGroupHandlerBase { +open class CheckboxGroup: SelectorGroupBase { //-------------------------------------------------- // MARK: - Initializers //-------------------------------------------------- @@ -35,7 +35,7 @@ open class CheckboxGroup: SelectorGroupHandlerBase { open var selectorModels: [CheckboxItemModel]? { didSet { if let selectorModels { - selectorViews = selectorModels.enumerated().map { index, model in + items = selectorModels.enumerated().map { index, model in return CheckboxItem().with { $0.isEnabled = !model.disabled $0.surface = model.surface @@ -64,11 +64,11 @@ open class CheckboxGroup: SelectorGroupHandlerBase { get { _showError } set { var newShowError = newValue - let anySelected = selectorViews.filter { $0.isSelected == true }.count > 0 + let anySelected = items.filter { $0.isSelected == true }.count > 0 if anySelected && newShowError { newShowError = false } - selectorViews.forEach { handler in + items.forEach { handler in handler.showError = newShowError } _showError = newShowError diff --git a/VDS/Components/RadioBox/RadioBoxGroup.swift b/VDS/Components/RadioBox/RadioBoxGroup.swift index 21d1cf68..f6fa3fa4 100644 --- a/VDS/Components/RadioBox/RadioBoxGroup.swift +++ b/VDS/Components/RadioBox/RadioBoxGroup.swift @@ -9,7 +9,7 @@ import Foundation import UIKit @objc(VDSRadioBoxGroup) -open class RadioBoxGroup: SelectorGroupHandlerBase { +open class RadioBoxGroup: SelectorGroupBase { //-------------------------------------------------- // MARK: - Initializers @@ -33,7 +33,7 @@ open class RadioBoxGroup: SelectorGroupHandlerBase { open var selectorModels: [RadioBoxItemModel]? { didSet { if let selectorModels { - selectorViews = selectorModels.enumerated().map { index, model in + items = selectorModels.enumerated().map { index, model in return RadioBoxItem().with { $0.accessibilityLabel = model.accessibileText $0.accessibilityValue = "item \(index+1) of \(selectorModels.count)" @@ -86,7 +86,7 @@ open class RadioBoxGroup: SelectorGroupHandlerBase { } open override func didSelect(_ selectedControl: RadioBoxItem) { - let oldSelectedControl = selectorViews.filter { $0.isSelected == true }.first + let oldSelectedControl = items.filter { $0.isSelected == true }.first oldSelectedControl?.toggle() selectedControl.toggle() valueChanged() diff --git a/VDS/Components/RadioButton/RadioButtonGroup.swift b/VDS/Components/RadioButton/RadioButtonGroup.swift index c088c4a9..7a2ee9af 100644 --- a/VDS/Components/RadioButton/RadioButtonGroup.swift +++ b/VDS/Components/RadioButton/RadioButtonGroup.swift @@ -9,7 +9,7 @@ import Foundation import UIKit @objc(VDSRadioButtonGroup) -open class RadioButtonGroup: SelectorGroupHandlerBase { +open class RadioButtonGroup: SelectorGroupBase { //-------------------------------------------------- // MARK: - Initializers @@ -33,7 +33,7 @@ open class RadioButtonGroup: SelectorGroupHandlerBase { open var selectorModels: [RadioButtonItemModel]? { didSet { if let selectorModels { - selectorViews = selectorModels.enumerated().map { index, model in + items = selectorModels.enumerated().map { index, model in return RadioButtonItem().with { $0.isEnabled = !model.disabled $0.surface = model.surface @@ -60,10 +60,10 @@ open class RadioButtonGroup: SelectorGroupHandlerBase { get { _showError } set { var newShowError = newValue - if selectedHandler != nil, newShowError { + if selectedItem != nil, newShowError { newShowError = false } - selectorViews.forEach { handler in + items.forEach { handler in handler.showError = newShowError } _showError = newShowError @@ -83,8 +83,8 @@ open class RadioButtonGroup: SelectorGroupHandlerBase { } public override func didSelect(_ selectedControl: RadioButtonItem) { - if let selectedHandler { - updateToggle(selectedHandler) + if let selectedItem { + updateToggle(selectedItem) } updateToggle(selectedControl) if showError {