diff --git a/VDS.xcodeproj/project.pbxproj b/VDS.xcodeproj/project.pbxproj index 9eb7edaa..752dd62e 100644 --- a/VDS.xcodeproj/project.pbxproj +++ b/VDS.xcodeproj/project.pbxproj @@ -43,6 +43,7 @@ EA89200828B526E0006B9984 /* CheckboxGroupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89200728B526E0006B9984 /* CheckboxGroupModel.swift */; }; EA89200D28B530FD006B9984 /* RadioBoxModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89200C28B530FD006B9984 /* RadioBoxModel.swift */; }; EA89200F28B53921006B9984 /* Selectable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89200E28B53921006B9984 /* Selectable.swift */; }; + EA89201128B567B5006B9984 /* SelectorGroupHandlerable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89201028B567B5006B9984 /* SelectorGroupHandlerable.swift */; }; EAB1D29A28A5611D00DAE764 /* SelectorGroupModelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29928A5611D00DAE764 /* SelectorGroupModelable.swift */; }; EAB1D29C28A5618900DAE764 /* RadioButtonGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29B28A5618900DAE764 /* RadioButtonGroup.swift */; }; EAB1D29E28A5619500DAE764 /* RadioButtonGroupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29D28A5619500DAE764 /* RadioButtonGroupModel.swift */; }; @@ -129,6 +130,7 @@ EA89200728B526E0006B9984 /* CheckboxGroupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckboxGroupModel.swift; sourceTree = ""; }; EA89200C28B530FD006B9984 /* RadioBoxModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioBoxModel.swift; sourceTree = ""; }; EA89200E28B53921006B9984 /* Selectable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Selectable.swift; sourceTree = ""; }; + EA89201028B567B5006B9984 /* SelectorGroupHandlerable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectorGroupHandlerable.swift; sourceTree = ""; }; EAB1D29928A5611D00DAE764 /* SelectorGroupModelable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectorGroupModelable.swift; sourceTree = ""; }; EAB1D29B28A5618900DAE764 /* RadioButtonGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonGroup.swift; sourceTree = ""; }; EAB1D29D28A5619500DAE764 /* RadioButtonGroupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonGroupModel.swift; sourceTree = ""; }; @@ -255,7 +257,6 @@ EAF7F092289985E200B287F5 /* Checkbox */, EA3361A0288B1E6F0071C351 /* Toggle */, EA3362412892EF700071C351 /* Label */, - EAF7F12D28A1617A00B287F5 /* Selector */, ); path = Components; sourceTree = ""; @@ -297,6 +298,8 @@ EA3361BE288B2EA60071C351 /* ModelHandlerable.swift */, EAF7F0A5289B0CE000B287F5 /* Resetable.swift */, EA89200E28B53921006B9984 /* Selectable.swift */, + EAB1D29928A5611D00DAE764 /* SelectorGroupModelable.swift */, + EA89201028B567B5006B9984 /* SelectorGroupHandlerable.swift */, EA3361C8289054C50071C351 /* Surfaceable.swift */, EA3361B7288B2AAA0071C351 /* ViewProtocol.swift */, EAB1D2CC28ABE76000DAE764 /* Withable.swift */, @@ -435,14 +438,6 @@ path = RadioButton; sourceTree = ""; }; - EAF7F12D28A1617A00B287F5 /* Selector */ = { - isa = PBXGroup; - children = ( - EAB1D29928A5611D00DAE764 /* SelectorGroupModelable.swift */, - ); - path = Selector; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -557,6 +552,7 @@ buildActionMask = 2147483647; files = ( EAF7F0B5289C126F00B287F5 /* UILabel.swift in Sources */, + EA89201128B567B5006B9984 /* SelectorGroupHandlerable.swift in Sources */, EAF7F0A6289B0CE000B287F5 /* Resetable.swift in Sources */, EA89200428AECF4B006B9984 /* UITextField+Publisher.swift in Sources */, EA3361C328902D960071C351 /* Toggle.swift in Sources */, diff --git a/VDS/Components/Selector/SelectorGroupModelable.swift b/VDS/Protocols/SelectorGroupHandlerable.swift similarity index 81% rename from VDS/Components/Selector/SelectorGroupModelable.swift rename to VDS/Protocols/SelectorGroupHandlerable.swift index 301a4c81..73ba45ca 100644 --- a/VDS/Components/Selector/SelectorGroupModelable.swift +++ b/VDS/Protocols/SelectorGroupHandlerable.swift @@ -1,18 +1,12 @@ // -// SelectorGroupModel.swift +// SelectorGroupHandlerable.swift // VDS // -// Created by Matt Bruce on 8/11/22. +// Created by Matt Bruce on 8/23/22. // import Foundation -public protocol SelectorGroupModelable: Modelable, FormFieldable, Errorable { - associatedtype SelectorModelType: Modelable where SelectorModelType: FormFieldable - var selectors: [SelectorModelType] { get set } -} - - public protocol SelectorGroupHandlerable: ModelHandlerable, Disabling, Surfaceable where ModelType: SelectorGroupModelable { associatedtype ModelHandlerType: ModelHandlerable where ModelType.SelectorModelType == ModelHandlerType.ModelType var selectorViews: [ModelHandlerType] { get set } diff --git a/VDS/Protocols/SelectorGroupModelable.swift b/VDS/Protocols/SelectorGroupModelable.swift new file mode 100644 index 00000000..9fd76f4c --- /dev/null +++ b/VDS/Protocols/SelectorGroupModelable.swift @@ -0,0 +1,13 @@ +// +// SelectorGroupModel.swift +// VDS +// +// Created by Matt Bruce on 8/11/22. +// + +import Foundation + +public protocol SelectorGroupModelable: Modelable, FormFieldable, Errorable { + associatedtype SelectorModelType: Modelable where SelectorModelType: FormFieldable + var selectors: [SelectorModelType] { get set } +}