From 62fd6c988eb3428163e6437af315e609cd941ad9 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Fri, 13 Mar 2020 12:13:32 -0400 Subject: [PATCH 1/2] merge --- MVMCoreUI.xcodeproj/project.pbxproj | 25 +++++++------------ .../{New => }/FormActionFieldProtocol.swift | 0 .../{New => }/FormFieldProtocol.swift | 0 .../{New => }/FormHolderProtocol.swift | 0 .../{New => }/FormItemProtocol.swift | 0 .../{New => }/FormProtocol.swift | 0 .../{New => Rules}/Rules/FormGroupRule.swift | 0 .../Rules/RuleAllValueChangedModel.swift | 0 .../Rules/RuleAnyValueChangedModel.swift | 0 .../Rules/RuleEqualsModel.swift | 0 .../{New => Rules}/Rules/RuleRegexModel.swift | 0 .../Rules/RuleRequiredModel.swift | 0 .../{New => Rules}/Rules/RulesProtocol.swift | 0 .../{New => }/ValidProtocol.swift | 0 14 files changed, 9 insertions(+), 16 deletions(-) rename MVMCoreUI/FormUIHelpers/{New => }/FormActionFieldProtocol.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => }/FormFieldProtocol.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => }/FormHolderProtocol.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => }/FormItemProtocol.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => }/FormProtocol.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => Rules}/Rules/FormGroupRule.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => Rules}/Rules/RuleAllValueChangedModel.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => Rules}/Rules/RuleAnyValueChangedModel.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => Rules}/Rules/RuleEqualsModel.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => Rules}/Rules/RuleRegexModel.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => Rules}/Rules/RuleRequiredModel.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => Rules}/Rules/RulesProtocol.swift (100%) rename MVMCoreUI/FormUIHelpers/{New => }/ValidProtocol.swift (100%) diff --git a/MVMCoreUI.xcodeproj/project.pbxproj b/MVMCoreUI.xcodeproj/project.pbxproj index b5985e36..e795475d 100644 --- a/MVMCoreUI.xcodeproj/project.pbxproj +++ b/MVMCoreUI.xcodeproj/project.pbxproj @@ -779,20 +779,6 @@ path = ModelProtocols; sourceTree = ""; }; - 011D9583240422BF000E3791 /* New */ = { - isa = PBXGroup; - children = ( - 011D958A24042794000E3791 /* Rules */, - 011D95882404249B000E3791 /* FormProtocol.swift */, - 011D95AC2406BB57000E3791 /* FormHolderProtocol.swift */, - 011D95AA2405C553000E3791 /* FormItemProtocol.swift */, - 011D958624042492000E3791 /* FormFieldProtocol.swift */, - 011D95A824057AC7000E3791 /* FormActionFieldProtocol.swift */, - 011D9601240DA20A000E3791 /* ValidProtocol.swift */, - ); - path = New; - sourceTree = ""; - }; 011D958A24042794000E3791 /* Rules */ = { isa = PBXGroup; children = ( @@ -804,7 +790,8 @@ 011D95A2240453F8000E3791 /* RuleRegexModel.swift */, 011D95A4240455DC000E3791 /* FormGroupRule.swift */, ); - path = Rules; + name = Rules; + path = Rules/Rules; sourceTree = ""; }; 012A88EF23985E0100FE3DA1 /* CustomPrimitives */ = { @@ -826,8 +813,14 @@ 01C74D87224298E2009C25A3 /* FormUIHelpers */ = { isa = PBXGroup; children = ( - 011D9583240422BF000E3791 /* New */, + 011D95882404249B000E3791 /* FormProtocol.swift */, + 011D95AC2406BB57000E3791 /* FormHolderProtocol.swift */, + 011D95AA2405C553000E3791 /* FormItemProtocol.swift */, + 011D958624042492000E3791 /* FormFieldProtocol.swift */, + 011D95A824057AC7000E3791 /* FormActionFieldProtocol.swift */, + 011D9601240DA20A000E3791 /* ValidProtocol.swift */, 0105618A224BBE7700E1557D /* FormValidator.swift */, + 011D958A24042794000E3791 /* Rules */, ); path = FormUIHelpers; sourceTree = ""; diff --git a/MVMCoreUI/FormUIHelpers/New/FormActionFieldProtocol.swift b/MVMCoreUI/FormUIHelpers/FormActionFieldProtocol.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/FormActionFieldProtocol.swift rename to MVMCoreUI/FormUIHelpers/FormActionFieldProtocol.swift diff --git a/MVMCoreUI/FormUIHelpers/New/FormFieldProtocol.swift b/MVMCoreUI/FormUIHelpers/FormFieldProtocol.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/FormFieldProtocol.swift rename to MVMCoreUI/FormUIHelpers/FormFieldProtocol.swift diff --git a/MVMCoreUI/FormUIHelpers/New/FormHolderProtocol.swift b/MVMCoreUI/FormUIHelpers/FormHolderProtocol.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/FormHolderProtocol.swift rename to MVMCoreUI/FormUIHelpers/FormHolderProtocol.swift diff --git a/MVMCoreUI/FormUIHelpers/New/FormItemProtocol.swift b/MVMCoreUI/FormUIHelpers/FormItemProtocol.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/FormItemProtocol.swift rename to MVMCoreUI/FormUIHelpers/FormItemProtocol.swift diff --git a/MVMCoreUI/FormUIHelpers/New/FormProtocol.swift b/MVMCoreUI/FormUIHelpers/FormProtocol.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/FormProtocol.swift rename to MVMCoreUI/FormUIHelpers/FormProtocol.swift diff --git a/MVMCoreUI/FormUIHelpers/New/Rules/FormGroupRule.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/FormGroupRule.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/Rules/FormGroupRule.swift rename to MVMCoreUI/FormUIHelpers/Rules/Rules/FormGroupRule.swift diff --git a/MVMCoreUI/FormUIHelpers/New/Rules/RuleAllValueChangedModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAllValueChangedModel.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/Rules/RuleAllValueChangedModel.swift rename to MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAllValueChangedModel.swift diff --git a/MVMCoreUI/FormUIHelpers/New/Rules/RuleAnyValueChangedModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/Rules/RuleAnyValueChangedModel.swift rename to MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift diff --git a/MVMCoreUI/FormUIHelpers/New/Rules/RuleEqualsModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/Rules/RuleEqualsModel.swift rename to MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift diff --git a/MVMCoreUI/FormUIHelpers/New/Rules/RuleRegexModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleRegexModel.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/Rules/RuleRegexModel.swift rename to MVMCoreUI/FormUIHelpers/Rules/Rules/RuleRegexModel.swift diff --git a/MVMCoreUI/FormUIHelpers/New/Rules/RuleRequiredModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleRequiredModel.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/Rules/RuleRequiredModel.swift rename to MVMCoreUI/FormUIHelpers/Rules/Rules/RuleRequiredModel.swift diff --git a/MVMCoreUI/FormUIHelpers/New/Rules/RulesProtocol.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/Rules/RulesProtocol.swift rename to MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift diff --git a/MVMCoreUI/FormUIHelpers/New/ValidProtocol.swift b/MVMCoreUI/FormUIHelpers/ValidProtocol.swift similarity index 100% rename from MVMCoreUI/FormUIHelpers/New/ValidProtocol.swift rename to MVMCoreUI/FormUIHelpers/ValidProtocol.swift From f888358336380e3628fcb37c547c1a9410784750 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Fri, 13 Mar 2020 12:31:32 -0400 Subject: [PATCH 2/2] refactor --- MVMCoreUI/Atoms/TextFields/TextEntryField.swift | 2 +- MVMCoreUI/FormUIHelpers/FormValidator.swift | 2 +- .../Rules/Rules/RuleAnyValueChangedModel.swift | 4 ++-- MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift | 4 ++-- MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/MVMCoreUI/Atoms/TextFields/TextEntryField.swift b/MVMCoreUI/Atoms/TextFields/TextEntryField.swift index 993aed59..5df115d9 100644 --- a/MVMCoreUI/Atoms/TextFields/TextEntryField.swift +++ b/MVMCoreUI/Atoms/TextFields/TextEntryField.swift @@ -44,7 +44,7 @@ import UIKit private var observingForChange: Bool = false - /// Validate on each entry in the textField. Default: false + /// Validate on each entry in the textField. Default: true public var validateEachCharacter: Bool = true /// Validate when user resigns editing. Default: true diff --git a/MVMCoreUI/FormUIHelpers/FormValidator.swift b/MVMCoreUI/FormUIHelpers/FormValidator.swift index f2cdb8ea..8977fad5 100644 --- a/MVMCoreUI/FormUIHelpers/FormValidator.swift +++ b/MVMCoreUI/FormUIHelpers/FormValidator.swift @@ -66,7 +66,7 @@ import MVMCore public func validate(_ groupName: String, _ actionModel: FormActionFieldProtocol, _ rules: [RulesProtocol]) { var valid = true for rule in rules { - valid = valid && rule.isValid(self) + valid = valid && rule.isValid(fieldMolecules) if !valid { break } diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift index f52dd92d..042243db 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleAnyValueChangedModel.swift @@ -18,9 +18,9 @@ public class RuleAnyValueChangedModel: RulesProtocol { return formField.baseValue != formField.formFieldValue() } - public func isValid(_ formValidator: FormValidator) -> Bool { + public func isValid(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool { for formKey in fields { - guard let formField = formValidator.formField(for: formKey) else { + guard let formField = fieldMolecules[formKey] else { continue } if isValid(formField) { diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift index ac148a29..e6b338a4 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleEqualsModel.swift @@ -18,11 +18,11 @@ public class RuleEqualsModel: RulesProtocol { return false } - public func isValid(_ formValidator: FormValidator) -> Bool { + public func isValid(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool { var valid = true var compareValue: AnyHashable? for formKey in fields { - guard let formField = formValidator.formField(for: formKey) else { + guard let formField = fieldMolecules[formKey] else { continue } diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift index 16fe77b3..4c4a716d 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RulesProtocol.swift @@ -16,7 +16,7 @@ public enum RulesCodingKey: String, CodingKey { public protocol RulesProtocol: ModelProtocol { var type: String { get set } var fields: [String] { get set } - func isValid(_ formValidator: FormValidator) -> Bool + func isValid(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool func isValid(_ formField: FormFieldProtocol) -> Bool func setValid(_ formField: FormFieldProtocol, _ isValid: Bool) } @@ -35,10 +35,10 @@ public extension RulesProtocol { return "\(RulesProtocol.self)" } - func isValid(_ formValidator: FormValidator) -> Bool { + func isValid(_ fieldMolecules: [String: FormFieldProtocol]) -> Bool { var valid = true for formKey in fields { - guard let formField = formValidator.formField(for: formKey) else { + guard let formField = fieldMolecules[formKey] else { continue } let fieldValidity = isValid(formField)