diff --git a/MVMCoreUI.xcodeproj/project.pbxproj b/MVMCoreUI.xcodeproj/project.pbxproj index 9ebcf41d..7d22f29c 100644 --- a/MVMCoreUI.xcodeproj/project.pbxproj +++ b/MVMCoreUI.xcodeproj/project.pbxproj @@ -62,6 +62,8 @@ 01EB369323609801006832FA /* HeaderModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01EB368C23609801006832FA /* HeaderModel.swift */; }; 01EB369423609801006832FA /* HeadlineBodyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01EB368D23609801006832FA /* HeadlineBodyModel.swift */; }; 01F2A03223A4498200D954D8 /* CaretLinkModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F2A03123A4498200D954D8 /* CaretLinkModel.swift */; }; + 0A0B147924ACFD8300BADD56 /* OrderTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0B147824ACFD8200BADD56 /* OrderTracker.swift */; }; + 0A0B147B24ACFDAD00BADD56 /* OrderTrackerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0B147A24ACFDAD00BADD56 /* OrderTrackerModel.swift */; }; 0A1214A022C11A18007C7030 /* ActionDetailWithImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A12149F22C11A17007C7030 /* ActionDetailWithImage.swift */; }; 0A1B4A96233BB18F005B3FB4 /* CheckboxLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7BAFA2232BE63400FB8E22 /* CheckboxLabel.swift */; }; 0A21DB7F235DECC500C160A2 /* EntryField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A21DB7E235DECC500C160A2 /* EntryField.swift */; }; @@ -517,6 +519,8 @@ 01EB368C23609801006832FA /* HeaderModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeaderModel.swift; sourceTree = ""; }; 01EB368D23609801006832FA /* HeadlineBodyModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeadlineBodyModel.swift; sourceTree = ""; }; 01F2A03123A4498200D954D8 /* CaretLinkModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CaretLinkModel.swift; sourceTree = ""; }; + 0A0B147824ACFD8200BADD56 /* OrderTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderTracker.swift; sourceTree = ""; }; + 0A0B147A24ACFDAD00BADD56 /* OrderTrackerModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderTrackerModel.swift; sourceTree = ""; }; 0A12149F22C11A17007C7030 /* ActionDetailWithImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionDetailWithImage.swift; sourceTree = ""; }; 0A209CD223A7E2810068F8B0 /* UIStackViewAlignment+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIStackViewAlignment+Extension.swift"; sourceTree = ""; }; 0A21DB7E235DECC500C160A2 /* EntryField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntryField.swift; sourceTree = ""; }; @@ -1253,10 +1257,12 @@ C7192E7C23C301750050C2A0 /* HeadLineBodyCaretLinkImage.swift */, D2E2A99923D8D6B4000B42E6 /* HeadlineBodyButtonModel.swift */, 0A7BAD73232A8DC700FB8E22 /* HeadlineBodyButton.swift */, - EA5124FE2436018E0051A3A4 /* BGImageHeadlineBodyButtonModel.swift */, EA5124FC243601600051A3A4 /* BGImageHeadlineBodyButton.swift */, - 0A775F2524893916009EFB58 /* ThreeHeadlineBodyLink.swift */, + EA5124FE2436018E0051A3A4 /* BGImageHeadlineBodyButtonModel.swift */, 0A775F2724893937009EFB58 /* ThreeHeadlineBodyLinkModel.swift */, + 0A775F2524893916009EFB58 /* ThreeHeadlineBodyLink.swift */, + 0A0B147A24ACFDAD00BADD56 /* OrderTrackerModel.swift */, + 0A0B147824ACFD8200BADD56 /* OrderTracker.swift */, ); path = VerticalCombinationViews; sourceTree = ""; @@ -2111,6 +2117,7 @@ 324FB6AA249366F3002552C7 /* ListLeftVariableNumberedListBodyTextModel.swift in Sources */, 5248BFED23F12E350059236A /* ListThreeColumnPlanDataDividerModel.swift in Sources */, AA0A257824766C8A00862F64 /* ListLeftVariableIconWithRightCaretBodyTextModel.swift in Sources */, + 0A0B147924ACFD8300BADD56 /* OrderTracker.swift in Sources */, 0A5D59C223AD2F5700EFD9E9 /* AppleGuidelinesProtocol.swift in Sources */, 8D070BB0241B56530099AC56 /* ListRightVariableTotalDataModel.swift in Sources */, 943784F5236B77BB006A1E82 /* Wheel.swift in Sources */, @@ -2177,6 +2184,7 @@ 9445891F2385D2E900DE9FD4 /* CaretViewModel.swift in Sources */, 01C851D323CF9E740021F976 /* LabelToggleModel.swift in Sources */, 011D95A3240453F8000E3791 /* RuleRegexModel.swift in Sources */, + 0A0B147B24ACFDAD00BADD56 /* OrderTrackerModel.swift in Sources */, D2E2A98323D8B32D000B42E6 /* EyebrowHeadlineBodyLinkModel.swift in Sources */, 012A88AD238C418100FE3DA1 /* TemplateProtocol.swift in Sources */, BB6C6AC1242232DF005F7224 /* ListOneColumnTextWithWhitespaceDividerTall.swift in Sources */, diff --git a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/OrderTracker.swift b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/OrderTracker.swift new file mode 100644 index 00000000..c3443e06 --- /dev/null +++ b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/OrderTracker.swift @@ -0,0 +1,47 @@ +// +// OrderTracker.swift +// MVMCoreUI +// +// Created by Kevin Christiano on 7/1/20. +// Copyright © 2020 Verizon Wireless. All rights reserved. +// + +import UIKit + + +open class OrderTracker: View { + //-------------------------------------------------- + // MARK: - Properties + //-------------------------------------------------- + + //-------------------------------------------------- + // MARK: - Life Cycle + //-------------------------------------------------- + + open override func setupView() { + super.setupView() + } + + //-------------------------------------------------- + // MARK: - Draw + //-------------------------------------------------- + + open override func draw(_ rect: CGRect) { + + } + + //------------------------------------------------------ + // MARK: - MoleculeViewProtocol + //------------------------------------------------------ + + public override class func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? { + return 320 + } + + public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) { + super.set(with: model, delegateObject, additionalData) + + guard let model = model as? OrderTrackerModel else { return } + + } +} diff --git a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/OrderTrackerModel.swift b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/OrderTrackerModel.swift new file mode 100644 index 00000000..a4ba1f60 --- /dev/null +++ b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/OrderTrackerModel.swift @@ -0,0 +1,54 @@ +// +// OrderTrackerModel.swift +// MVMCoreUI +// +// Created by Kevin Christiano on 7/1/20. +// Copyright © 2020 Verizon Wireless. All rights reserved. +// + +import UIKit + + +open class OrderTrackerModel: MoleculeModelProtocol { + //-------------------------------------------------- + // MARK: - Properties + //-------------------------------------------------- + + public var backgroundColor: Color? + + public static var identifier: String = "orderTracker" + public var state: State? + + public enum State: String, Codable { + case complete + case incomplete + case invalid + } + + //-------------------------------------------------- + // MARK: - Keys + //-------------------------------------------------- + + private enum CodingKeys: String, CodingKey { + case moleculeName + case backgroundColor + case state + } + + //-------------------------------------------------- + // MARK: - Codec + //-------------------------------------------------- + + required public init(from decoder: Decoder) throws { + let typeContainer = try decoder.container(keyedBy: CodingKeys.self) + backgroundColor = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor) + state = try typeContainer.decodeIfPresent(State.self, forKey: .state) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(moleculeName, forKey: .moleculeName) + try container.encodeIfPresent(backgroundColor, forKey: .backgroundColor) + try container.encodeIfPresent(state, forKey: .state) + } +} diff --git a/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Contents.json b/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Contents.json new file mode 100644 index 00000000..05b81f4a --- /dev/null +++ b/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Standard@1x.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "Standard@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "Standard@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Standard@1x.png b/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Standard@1x.png new file mode 100644 index 00000000..5c1f25fa Binary files /dev/null and b/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Standard@1x.png differ diff --git a/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Standard@2x.png b/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Standard@2x.png new file mode 100644 index 00000000..f346a530 Binary files /dev/null and b/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Standard@2x.png differ diff --git a/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Standard@3x.png b/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Standard@3x.png new file mode 100644 index 00000000..51d75aab Binary files /dev/null and b/MVMCoreUI/SupportingFiles/Media.xcassets/success.imageset/Standard@3x.png differ