From 1a13291684bc047d5d81566ceb2f7a7808eb4908 Mon Sep 17 00:00:00 2001 From: "Tondapu, Alekhya" Date: Tue, 3 Aug 2021 19:31:25 +0530 Subject: [PATCH 1/5] Form rule date validation added --- MVMCoreUI.xcodeproj/project.pbxproj | 4 + .../Rules/Rules/RuleDateValidationModel.swift | 119 ++++++++++++++++++ .../OtherHandlers/CoreUIModelMapping.swift | 1 + 3 files changed, 124 insertions(+) create mode 100644 MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift diff --git a/MVMCoreUI.xcodeproj/project.pbxproj b/MVMCoreUI.xcodeproj/project.pbxproj index 15f22974..8941d5af 100644 --- a/MVMCoreUI.xcodeproj/project.pbxproj +++ b/MVMCoreUI.xcodeproj/project.pbxproj @@ -207,6 +207,7 @@ 94CA227D24058534002D6750 /* VerizonNHGeDS-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 94CA227924058533002D6750 /* VerizonNHGeDS-Regular.otf */; }; 94CA227E24058534002D6750 /* VerizonNHGeDS-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 94CA227A24058533002D6750 /* VerizonNHGeDS-Bold.otf */; }; 94F6516D2437954100631BF9 /* Tabs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94F6516C2437954100631BF9 /* Tabs.swift */; }; + A5DB67FB26B2BE0D00DC6941 /* RuleDateValidationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5DB67FA26B2BE0D00DC6941 /* RuleDateValidationModel.swift */; }; AA07EA912510A442009A2AE3 /* StarModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA07EA902510A442009A2AE3 /* StarModel.swift */; }; AA07EA932510A451009A2AE3 /* Star.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA07EA922510A451009A2AE3 /* Star.swift */; }; AA0A257824766C8A00862F64 /* ListLeftVariableIconWithRightCaretBodyTextModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0A257724766C8A00862F64 /* ListLeftVariableIconWithRightCaretBodyTextModel.swift */; }; @@ -772,6 +773,7 @@ 94CA227A24058533002D6750 /* VerizonNHGeDS-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "VerizonNHGeDS-Bold.otf"; sourceTree = ""; }; 94CA227B24058533002D6750 /* VerizonNHGeTX-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "VerizonNHGeTX-Regular.otf"; sourceTree = ""; }; 94F6516C2437954100631BF9 /* Tabs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Tabs.swift; sourceTree = ""; }; + A5DB67FA26B2BE0D00DC6941 /* RuleDateValidationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuleDateValidationModel.swift; sourceTree = ""; }; AA07EA902510A442009A2AE3 /* StarModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StarModel.swift; sourceTree = ""; }; AA07EA922510A451009A2AE3 /* Star.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Star.swift; sourceTree = ""; }; AA0A257724766C8A00862F64 /* ListLeftVariableIconWithRightCaretBodyTextModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListLeftVariableIconWithRightCaretBodyTextModel.swift; sourceTree = ""; }; @@ -1180,6 +1182,7 @@ 011D959E240453A1000E3791 /* RuleAllValueChangedModel.swift */, 011D95A0240453D0000E3791 /* RuleEqualsModel.swift */, 011D95A2240453F8000E3791 /* RuleRegexModel.swift */, + A5DB67FA26B2BE0D00DC6941 /* RuleDateValidationModel.swift */, 0A69F610241BDEA700F7231B /* RuleAnyRequiredModel.swift */, 0A849EFD246F1775009F277F /* RuleEqualsIgnoreCaseModel.swift */, ); @@ -2760,6 +2763,7 @@ D29E28DA23D21AFA00ACEA85 /* StringAndMoleculeModel.swift in Sources */, D260105D23D0BCD400764D80 /* Stack.swift in Sources */, 0A7EF85D23D8A95600B2AAD1 /* TextEntryFieldModel.swift in Sources */, + A5DB67FB26B2BE0D00DC6941 /* RuleDateValidationModel.swift in Sources */, BB54C5212434D92F0038326C /* ListRightVariableButtonAllTextAndLinksModel.swift in Sources */, D2092349244A51D40044AD09 /* RadioSwatchModel.swift in Sources */, 0A775F2824893937009EFB58 /* ThreeHeadlineBodyLinkModel.swift in Sources */, diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift new file mode 100644 index 00000000..7490c8b8 --- /dev/null +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift @@ -0,0 +1,119 @@ +// +// RuleDateValidationModel.swift +// MVMCoreUI +// +// Created by Tondapu, Alekhya on 29/07/21. +// Copyright © 2021 Verizon Wireless. All rights reserved. +// + + +public class RuleDateValidationModel: RulesProtocol { + //-------------------------------------------------- + // MARK: - Properties + //-------------------------------------------------- + + public static var identifier: String = "dateValidation" + public var type: String = RuleDateValidationModel.identifier + public var fields: [String] + public var date: String + public var dateFormat: String + public var errorMessage: [String: String]? + public var dateOperator: String + + //-------------------------------------------------- + // MARK: - Validation + //-------------------------------------------------- + public func isValid(_ formField: FormFieldProtocol) -> Bool { + return false + } + + public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) { + var valid = true + var compareValue: AnyHashable? + var previousValidity: [String: Bool] = [:] + var isValidDate: Bool = false + + for formKey in fields { + guard let formField = fieldMolecules[formKey] else { continue } + + if compareValue == nil { + compareValue = formField.formFieldValue() + } + + /// Fetch date format and apply them to selected date from picker and validationdate for comparision + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = dateFormat + let validDate = dateFormatter.date(from: date) ?? Date() + let enteredDate = dateFormatter.date(from: compareValue as? String ?? "") ?? Date() + + switch dateOperator { + case "greaterThanOrEqual": + isValidDate = enteredDate.isGreaterThenOrEqualToDate(validDate) + break + case "lessThanOrEqual": + isValidDate = enteredDate.isLessThenOrEqualToDate(validDate) + break + case "equal": + isValidDate = enteredDate.isEqualToDate(validDate) + break + case "greaterThan": + isValidDate = enteredDate.isGreaterThenDate(validDate) + break + case "lessThan": + isValidDate = enteredDate.isLessThenDate(validDate) + break + default: break + } + + if (!isValidDate) { + valid = false + previousValidity[formKey] = valid + (formField as? FormRuleWatcherFieldProtocol)?.setValidity(valid, rule: self) + break + } else { + var fieldValidity = valid + // If past rule is invalid for a field, the current rule should not flip the validity of a field + if let validity = previousFieldValidity[formKey], !validity, fieldValidity { + fieldValidity = false + } + (formField as? FormRuleWatcherFieldProtocol)?.setValidity(fieldValidity, rule: self) + } + + } + return (valid: valid, fieldValidity: previousValidity) + } +} + +//-------------------------------------------------- +// MARK: - Date Extension +//-------------------------------------------------- + +extension Date { + + /// Note: This methods compare two dates without considering the time + func compareWithDate(_ date:Date) -> ComparisonResult { + let order = NSCalendar.current.compare(self, to: date, toGranularity: .day) + return order + } + + func isLessThenDate(_ date: Date) -> Bool { + return compareWithDate(date) == .orderedAscending + } + + func isGreaterThenDate(_ date: Date) -> Bool { + return compareWithDate(date) == .orderedDescending + } + + func isEqualToDate(_ date: Date) -> Bool { + return compareWithDate(date) == .orderedSame + } + + func isGreaterThenOrEqualToDate(_ date: Date) -> Bool { + return isEqualToDate(date) || isGreaterThenDate(date) + } + + func isLessThenOrEqualToDate(_ date: Date) -> Bool { + return isEqualToDate(date) || isLessThenDate(date) + } + /// Note: This methods compare two dates without considering the time +} diff --git a/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift b/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift index 1edea27b..97a1c5c7 100644 --- a/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift +++ b/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift @@ -242,5 +242,6 @@ open class CoreUIModelMapping: ModelMapping { ModelRegistry.register(RuleEqualsModel.self) ModelRegistry.register(RuleEqualsIgnoreCaseModel.self) ModelRegistry.register(RuleRegexModel.self) + ModelRegistry.register(RuleDateValidationModel.self) } } From 478b7fda1bc8ef685cb36f887e63ca7c1afc7f07 Mon Sep 17 00:00:00 2001 From: "Tondapu, Alekhya" Date: Tue, 3 Aug 2021 20:05:21 +0530 Subject: [PATCH 2/5] updated as per comments --- .../Rules/Rules/RuleDateValidationModel.swift | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift index 7490c8b8..488812bf 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift @@ -40,7 +40,7 @@ public class RuleDateValidationModel: RulesProtocol { compareValue = formField.formFieldValue() } - /// Fetch date format and apply them to selected date from picker and validationdate for comparision + /// Fetch date format and apply them to selected date from picker and validate date for comparision let dateFormatter = DateFormatter() dateFormatter.dateFormat = dateFormat let validDate = dateFormatter.date(from: date) ?? Date() @@ -48,19 +48,19 @@ public class RuleDateValidationModel: RulesProtocol { switch dateOperator { case "greaterThanOrEqual": - isValidDate = enteredDate.isGreaterThenOrEqualToDate(validDate) + isValidDate = enteredDate.isGreaterThanOrEqualToDate(validDate) break case "lessThanOrEqual": - isValidDate = enteredDate.isLessThenOrEqualToDate(validDate) + isValidDate = enteredDate.isLessThanOrEqualToDate(validDate) break case "equal": isValidDate = enteredDate.isEqualToDate(validDate) break case "greaterThan": - isValidDate = enteredDate.isGreaterThenDate(validDate) + isValidDate = enteredDate.isGreaterThanDate(validDate) break case "lessThan": - isValidDate = enteredDate.isLessThenDate(validDate) + isValidDate = enteredDate.isLessThanDate(validDate) break default: break } @@ -96,11 +96,11 @@ extension Date { return order } - func isLessThenDate(_ date: Date) -> Bool { + func isLessThanDate(_ date: Date) -> Bool { return compareWithDate(date) == .orderedAscending } - func isGreaterThenDate(_ date: Date) -> Bool { + func isGreaterThanDate(_ date: Date) -> Bool { return compareWithDate(date) == .orderedDescending } @@ -108,11 +108,11 @@ extension Date { return compareWithDate(date) == .orderedSame } - func isGreaterThenOrEqualToDate(_ date: Date) -> Bool { + func isGreaterThanOrEqualToDate(_ date: Date) -> Bool { return isEqualToDate(date) || isGreaterThenDate(date) } - func isLessThenOrEqualToDate(_ date: Date) -> Bool { + func isLessThanOrEqualToDate(_ date: Date) -> Bool { return isEqualToDate(date) || isLessThenDate(date) } /// Note: This methods compare two dates without considering the time From 5e36106d66779ac114d6ae2d784c1df8f0192acc Mon Sep 17 00:00:00 2001 From: "Tondapu, Alekhya" Date: Tue, 3 Aug 2021 20:07:45 +0530 Subject: [PATCH 3/5] updated names of functions --- .../FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift index 488812bf..3c903704 100644 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift +++ b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift @@ -109,11 +109,11 @@ extension Date { } func isGreaterThanOrEqualToDate(_ date: Date) -> Bool { - return isEqualToDate(date) || isGreaterThenDate(date) + return isEqualToDate(date) || isGreaterThanDate(date) } func isLessThanOrEqualToDate(_ date: Date) -> Bool { - return isEqualToDate(date) || isLessThenDate(date) + return isEqualToDate(date) || isLessThanDate(date) } /// Note: This methods compare two dates without considering the time } From 44c44a83ae5bc4141b0947997dbd31b19fdb09fa Mon Sep 17 00:00:00 2001 From: "Tondapu, Alekhya" Date: Thu, 5 Aug 2021 17:35:54 +0530 Subject: [PATCH 4/5] Moved datevalidation rules to chatbot --- MVMCoreUI.xcodeproj/project.pbxproj | 4 - .../Rules/Rules/RuleDateValidationModel.swift | 119 ------------------ .../OtherHandlers/CoreUIModelMapping.swift | 1 - 3 files changed, 124 deletions(-) delete mode 100644 MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift diff --git a/MVMCoreUI.xcodeproj/project.pbxproj b/MVMCoreUI.xcodeproj/project.pbxproj index 8941d5af..15f22974 100644 --- a/MVMCoreUI.xcodeproj/project.pbxproj +++ b/MVMCoreUI.xcodeproj/project.pbxproj @@ -207,7 +207,6 @@ 94CA227D24058534002D6750 /* VerizonNHGeDS-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 94CA227924058533002D6750 /* VerizonNHGeDS-Regular.otf */; }; 94CA227E24058534002D6750 /* VerizonNHGeDS-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 94CA227A24058533002D6750 /* VerizonNHGeDS-Bold.otf */; }; 94F6516D2437954100631BF9 /* Tabs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94F6516C2437954100631BF9 /* Tabs.swift */; }; - A5DB67FB26B2BE0D00DC6941 /* RuleDateValidationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5DB67FA26B2BE0D00DC6941 /* RuleDateValidationModel.swift */; }; AA07EA912510A442009A2AE3 /* StarModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA07EA902510A442009A2AE3 /* StarModel.swift */; }; AA07EA932510A451009A2AE3 /* Star.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA07EA922510A451009A2AE3 /* Star.swift */; }; AA0A257824766C8A00862F64 /* ListLeftVariableIconWithRightCaretBodyTextModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0A257724766C8A00862F64 /* ListLeftVariableIconWithRightCaretBodyTextModel.swift */; }; @@ -773,7 +772,6 @@ 94CA227A24058533002D6750 /* VerizonNHGeDS-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "VerizonNHGeDS-Bold.otf"; sourceTree = ""; }; 94CA227B24058533002D6750 /* VerizonNHGeTX-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "VerizonNHGeTX-Regular.otf"; sourceTree = ""; }; 94F6516C2437954100631BF9 /* Tabs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Tabs.swift; sourceTree = ""; }; - A5DB67FA26B2BE0D00DC6941 /* RuleDateValidationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuleDateValidationModel.swift; sourceTree = ""; }; AA07EA902510A442009A2AE3 /* StarModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StarModel.swift; sourceTree = ""; }; AA07EA922510A451009A2AE3 /* Star.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Star.swift; sourceTree = ""; }; AA0A257724766C8A00862F64 /* ListLeftVariableIconWithRightCaretBodyTextModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListLeftVariableIconWithRightCaretBodyTextModel.swift; sourceTree = ""; }; @@ -1182,7 +1180,6 @@ 011D959E240453A1000E3791 /* RuleAllValueChangedModel.swift */, 011D95A0240453D0000E3791 /* RuleEqualsModel.swift */, 011D95A2240453F8000E3791 /* RuleRegexModel.swift */, - A5DB67FA26B2BE0D00DC6941 /* RuleDateValidationModel.swift */, 0A69F610241BDEA700F7231B /* RuleAnyRequiredModel.swift */, 0A849EFD246F1775009F277F /* RuleEqualsIgnoreCaseModel.swift */, ); @@ -2763,7 +2760,6 @@ D29E28DA23D21AFA00ACEA85 /* StringAndMoleculeModel.swift in Sources */, D260105D23D0BCD400764D80 /* Stack.swift in Sources */, 0A7EF85D23D8A95600B2AAD1 /* TextEntryFieldModel.swift in Sources */, - A5DB67FB26B2BE0D00DC6941 /* RuleDateValidationModel.swift in Sources */, BB54C5212434D92F0038326C /* ListRightVariableButtonAllTextAndLinksModel.swift in Sources */, D2092349244A51D40044AD09 /* RadioSwatchModel.swift in Sources */, 0A775F2824893937009EFB58 /* ThreeHeadlineBodyLinkModel.swift in Sources */, diff --git a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift b/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift deleted file mode 100644 index 3c903704..00000000 --- a/MVMCoreUI/FormUIHelpers/Rules/Rules/RuleDateValidationModel.swift +++ /dev/null @@ -1,119 +0,0 @@ -// -// RuleDateValidationModel.swift -// MVMCoreUI -// -// Created by Tondapu, Alekhya on 29/07/21. -// Copyright © 2021 Verizon Wireless. All rights reserved. -// - - -public class RuleDateValidationModel: RulesProtocol { - //-------------------------------------------------- - // MARK: - Properties - //-------------------------------------------------- - - public static var identifier: String = "dateValidation" - public var type: String = RuleDateValidationModel.identifier - public var fields: [String] - public var date: String - public var dateFormat: String - public var errorMessage: [String: String]? - public var dateOperator: String - - //-------------------------------------------------- - // MARK: - Validation - //-------------------------------------------------- - public func isValid(_ formField: FormFieldProtocol) -> Bool { - return false - } - - public func validate(_ fieldMolecules: [String: FormFieldProtocol],_ previousFieldValidity: [String: Bool]) -> (valid: Bool, fieldValidity: [String: Bool]) { - var valid = true - var compareValue: AnyHashable? - var previousValidity: [String: Bool] = [:] - var isValidDate: Bool = false - - for formKey in fields { - guard let formField = fieldMolecules[formKey] else { continue } - - if compareValue == nil { - compareValue = formField.formFieldValue() - } - - /// Fetch date format and apply them to selected date from picker and validate date for comparision - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = dateFormat - let validDate = dateFormatter.date(from: date) ?? Date() - let enteredDate = dateFormatter.date(from: compareValue as? String ?? "") ?? Date() - - switch dateOperator { - case "greaterThanOrEqual": - isValidDate = enteredDate.isGreaterThanOrEqualToDate(validDate) - break - case "lessThanOrEqual": - isValidDate = enteredDate.isLessThanOrEqualToDate(validDate) - break - case "equal": - isValidDate = enteredDate.isEqualToDate(validDate) - break - case "greaterThan": - isValidDate = enteredDate.isGreaterThanDate(validDate) - break - case "lessThan": - isValidDate = enteredDate.isLessThanDate(validDate) - break - default: break - } - - if (!isValidDate) { - valid = false - previousValidity[formKey] = valid - (formField as? FormRuleWatcherFieldProtocol)?.setValidity(valid, rule: self) - break - } else { - var fieldValidity = valid - // If past rule is invalid for a field, the current rule should not flip the validity of a field - if let validity = previousFieldValidity[formKey], !validity, fieldValidity { - fieldValidity = false - } - (formField as? FormRuleWatcherFieldProtocol)?.setValidity(fieldValidity, rule: self) - } - - } - return (valid: valid, fieldValidity: previousValidity) - } -} - -//-------------------------------------------------- -// MARK: - Date Extension -//-------------------------------------------------- - -extension Date { - - /// Note: This methods compare two dates without considering the time - func compareWithDate(_ date:Date) -> ComparisonResult { - let order = NSCalendar.current.compare(self, to: date, toGranularity: .day) - return order - } - - func isLessThanDate(_ date: Date) -> Bool { - return compareWithDate(date) == .orderedAscending - } - - func isGreaterThanDate(_ date: Date) -> Bool { - return compareWithDate(date) == .orderedDescending - } - - func isEqualToDate(_ date: Date) -> Bool { - return compareWithDate(date) == .orderedSame - } - - func isGreaterThanOrEqualToDate(_ date: Date) -> Bool { - return isEqualToDate(date) || isGreaterThanDate(date) - } - - func isLessThanOrEqualToDate(_ date: Date) -> Bool { - return isEqualToDate(date) || isLessThanDate(date) - } - /// Note: This methods compare two dates without considering the time -} diff --git a/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift b/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift index 97a1c5c7..1edea27b 100644 --- a/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift +++ b/MVMCoreUI/OtherHandlers/CoreUIModelMapping.swift @@ -242,6 +242,5 @@ open class CoreUIModelMapping: ModelMapping { ModelRegistry.register(RuleEqualsModel.self) ModelRegistry.register(RuleEqualsIgnoreCaseModel.self) ModelRegistry.register(RuleRegexModel.self) - ModelRegistry.register(RuleDateValidationModel.self) } } From 193ef93ffe80363d743fb9e05fa5e06ced0848cf Mon Sep 17 00:00:00 2001 From: "Tondapu, Alekhya" Date: Wed, 18 Aug 2021 19:20:25 +0530 Subject: [PATCH 5/5] added specifiers for message label --- .../Molecules/VerticalCombinationViews/HeadlineBody.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/HeadlineBody.swift b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/HeadlineBody.swift index b3aed7fc..040f074d 100644 --- a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/HeadlineBody.swift +++ b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/HeadlineBody.swift @@ -13,7 +13,7 @@ open class HeadlineBody: View { //-------------------------------------------------- let headlineLabel = Label(fontStyle: .BoldTitleLarge) - let messageLabel = Label(fontStyle: .RegularBodySmall) + public let messageLabel = Label(fontStyle: .RegularBodySmall) //-------------------------------------------------- // MARK: - Constraints