beginning rework

This commit is contained in:
Kevin G Christiano 2020-05-05 12:43:54 -04:00
parent 3de0c4865a
commit 4ffd07dd3d
3 changed files with 119 additions and 200 deletions

View File

@ -91,7 +91,6 @@
0A7EF86323D8AFA000B2AAD1 /* BaseDropdownEntryFieldModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7EF86223D8AFA000B2AAD1 /* BaseDropdownEntryFieldModel.swift */; };
0A7EF86523D8AFFF00B2AAD1 /* ItemDropdownEntryFieldModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7EF86423D8AFFF00B2AAD1 /* ItemDropdownEntryFieldModel.swift */; };
0A7EF86723D8B0AE00B2AAD1 /* DateDropdownEntryFieldModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7EF86623D8B0AE00B2AAD1 /* DateDropdownEntryFieldModel.swift */; };
0A96140B245B06F0006FA18B /* Facade.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A96140A245B06F0006FA18B /* Facade.swift */; };
0AA33B3A2398524F0067DD0F /* Toggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AA33B392398524F0067DD0F /* Toggle.swift */; };
0AB764D124460F6300E7FE72 /* UIDatePicker+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AB764D024460F6300E7FE72 /* UIDatePicker+Extension.swift */; };
0AB764D324460FA400E7FE72 /* UIPickerView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AB764D224460FA400E7FE72 /* UIPickerView+Extension.swift */; };
@ -495,7 +494,6 @@
0A7EF86423D8AFFF00B2AAD1 /* ItemDropdownEntryFieldModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemDropdownEntryFieldModel.swift; sourceTree = "<group>"; };
0A7EF86623D8B0AE00B2AAD1 /* DateDropdownEntryFieldModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateDropdownEntryFieldModel.swift; sourceTree = "<group>"; };
0A8321AE2355FE9500CB7F00 /* DigitBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DigitBox.swift; sourceTree = "<group>"; };
0A96140A245B06F0006FA18B /* Facade.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Facade.swift; sourceTree = "<group>"; };
0AA33B33239813C50067DD0F /* UIColor+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Extension.swift"; sourceTree = "<group>"; };
0AA33B392398524F0067DD0F /* Toggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Toggle.swift; sourceTree = "<group>"; };
0AB764D024460F6300E7FE72 /* UIDatePicker+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIDatePicker+Extension.swift"; sourceTree = "<group>"; };
@ -1522,7 +1520,6 @@
D29DF13921E68637003B2FB9 /* MFStyler.m */,
0A6682A92435125F00AD3CA1 /* Styler.swift */,
0A6682AB243531C300AD3CA1 /* Padding.swift */,
0A96140A245B06F0006FA18B /* Facade.swift */,
);
path = Styles;
sourceTree = "<group>";
@ -1993,7 +1990,6 @@
012A88C4238D86E600FE3DA1 /* CarouselItemModelProtocol.swift in Sources */,
D2E2A9A123E095AB000B42E6 /* ButtonModelProtocol.swift in Sources */,
94C2D9AB23872EB50006CF46 /* LabelAttributeActionModel.swift in Sources */,
0A96140B245B06F0006FA18B /* Facade.swift in Sources */,
D22D8395241FB41200D3DF69 /* UIStackView+Extension.swift in Sources */,
52B201D324081CFB00D2011E /* ListLeftVariableRadioButtonAndPaymentMethodModel.swift in Sources */,
525239C02407BCFF00454969 /* ListTwoColumnPriceDetailsModel.swift in Sources */,
@ -2082,7 +2078,7 @@
0A7BAFA1232BE61800FB8E22 /* Checkbox.swift in Sources */,
011B58F023A2AA980085F53C /* ListItemModelProtocol.swift in Sources */,
D22479962316AF6E003FCCF9 /* HeadlineBodyLink.swift in Sources */,
8DE5BECD2456F7A200772E76 /* ListTwoColumnDropdownSelectorsModel.swift in Sources */,
8DE5BECD2456F7A200772E76 /* ListTwoColumnDropdownSelectorsModel.swift in Sources */,
0A41BA7F23453A6400D4C0BC /* TextEntryField.swift in Sources */,
BB55B51D244482C1002001AD /* ListRightVariablePriceChangeBodyText.swift in Sources */,
017BEB382360C6AC0024EF95 /* RadioButtonLabel.swift in Sources */,

View File

@ -8,6 +8,8 @@
import UIKit
public typealias FacadeElements = (fill: UIColor?, text: UIColor?, border: UIColor?)
public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupWatcherFieldProtocol {
//--------------------------------------------------
@ -19,15 +21,46 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW
public var title: String
public var action: ActionModelProtocol
public var enabled: Bool = true
public lazy var facade: Facade = primaryFacade
public var style: Styler.Button?
public var size: Styler.Button.Size? = .standard
public var groupName: String = ""
public var isInverted: Bool = false
public lazy var enabledElements: FacadeElements = (fill: enabled_fillColor(),
text: enabled_textColor(),
border: enabled_borderColor())
public lazy var disabledElements: FacadeElements = (fill: disabled_fillColor(),
text: disabled_textColor(),
border: disabled_borderColor())
public var backgroundColor_standard: Color?
public var backgroundColor_inverted: Color?
public var enabledFillColor: Color?
public var enabledTextColor: Color?
public var enabledBorderColor: Color?
public var enabledFillColor_inverted: Color?
public var enabledTextColor_inverted: Color?
public var enabledBorderColor_inverted: Color?
public var disabledFillColor: Color?
public var disabledTextColor: Color?
public var disabledBorderColor: Color?
public var disabledFillColor_inverted: Color?
public var disabledTextColor_inverted: Color?
public var disabledBorderColor_inverted: Color?
public var borderWidth: CGFloat?
public var borderWidth_inverted: CGFloat?
//--------------------------------------------------
// MARK: - Default Button Facades
//--------------------------------------------------
/*
private var primaryFacade = Facade(enabledFillColor: .mvmBlack,
enabledTextColor: .mvmWhite,
disabledFillColor: .mvmCoolGray6,
@ -51,7 +84,7 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW
disabledTextColor_inverted: .mvmCoolGray6,
disabledBorderColor_inverted: .mvmCoolGray6,
borderWidth: 1)
*/
//--------------------------------------------------
// MARK: - Methods
//--------------------------------------------------
@ -85,6 +118,43 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW
style = .primary
}
//--------------------------------------------------
// MARK: - Methods
//--------------------------------------------------
public func backgroundColor() -> UIColor? {
return (isInverted ? backgroundColor_inverted : backgroundColor_standard)?.uiColor
}
public func getBorderWidth() -> CGFloat? {
return isInverted ? borderWidth_inverted : borderWidth
}
public func enabled_fillColor() -> UIColor? {
return (isInverted ? enabledFillColor_inverted : enabledFillColor)?.uiColor
}
public func enabled_textColor() -> UIColor? {
return (isInverted ? enabledTextColor_inverted : enabledTextColor)?.uiColor
}
public func enabled_borderColor() -> UIColor? {
return (isInverted ? enabledBorderColor_inverted : enabledBorderColor)?.uiColor
}
public func disabled_fillColor() -> UIColor? {
return (isInverted ? disabledFillColor_inverted : disabledFillColor)?.uiColor
}
public func disabled_textColor() -> UIColor? {
return (isInverted ? disabledTextColor_inverted : disabledTextColor)?.uiColor
}
public func disabled_borderColor() -> UIColor? {
return (isInverted ? disabledBorderColor_inverted : disabledBorderColor)?.uiColor
}
//--------------------------------------------------
// MARK: - Keys
//--------------------------------------------------
@ -100,6 +170,21 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW
case size
case facade
case groupName
case backgroundColor_standard
case backgroundColor_inverted
case enabledFillColor
case enabledTextColor
case enabledBorderColor
case enabledFillColor_inverted
case enabledTextColor_inverted
case enabledBorderColor_inverted
case disabledFillColor
case disabledTextColor
case disabledBorderColor
case disabledFillColor_inverted
case disabledTextColor_inverted
case disabledBorderColor_inverted
}
//--------------------------------------------------
@ -125,10 +210,6 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW
self.enabled = enabled
}
if let facade = try typeContainer.decodeIfPresent(Facade.self, forKey: .facade) {
self.facade = facade
}
if let isInverted = try typeContainer.decodeIfPresent(Bool.self, forKey: .inverted) {
facade.isInverted = isInverted
}
@ -136,6 +217,21 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW
if let groupName = try typeContainer.decodeIfPresent(String.self, forKey: .groupName) {
self.groupName = groupName
}
backgroundColor_standard = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor_standard)
backgroundColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor_inverted)
enabledFillColor = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledFillColor)
enabledTextColor = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledTextColor)
enabledBorderColor = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledBorderColor)
enabledFillColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledFillColor_inverted)
enabledTextColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledTextColor_inverted)
enabledBorderColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledBorderColor_inverted)
disabledFillColor = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledFillColor)
disabledTextColor = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledTextColor)
disabledBorderColor = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledBorderColor)
disabledFillColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledFillColor_inverted)
disabledTextColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledTextColor_inverted)
disabledBorderColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledBorderColor_inverted)
}
public func encode(to encoder: Encoder) throws {
@ -149,5 +245,20 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW
try container.encodeIfPresent(style, forKey: .style)
try container.encodeIfPresent(size, forKey: .size)
try container.encodeIfPresent(groupName, forKey: .groupName)
try container.encodeIfPresent(backgroundColor_standard, forKey: .backgroundColor_standard)
try container.encodeIfPresent(backgroundColor_inverted, forKey: .backgroundColor_inverted)
try container.encodeIfPresent(enabledFillColor, forKey: .enabledFillColor)
try container.encodeIfPresent(enabledTextColor, forKey: .enabledTextColor)
try container.encodeIfPresent(enabledBorderColor, forKey: .enabledBorderColor)
try container.encodeIfPresent(enabledFillColor_inverted, forKey: .enabledFillColor_inverted)
try container.encodeIfPresent(enabledTextColor_inverted, forKey: .enabledTextColor_inverted)
try container.encodeIfPresent(enabledBorderColor_inverted, forKey: .enabledBorderColor_inverted)
try container.encodeIfPresent(disabledFillColor, forKey: .disabledFillColor)
try container.encodeIfPresent(disabledTextColor, forKey: .disabledTextColor)
try container.encodeIfPresent(disabledBorderColor, forKey: .disabledBorderColor)
try container.encodeIfPresent(disabledFillColor_inverted, forKey: .disabledFillColor_inverted)
try container.encodeIfPresent(disabledTextColor_inverted, forKey: .disabledTextColor_inverted)
try container.encodeIfPresent(disabledBorderColor_inverted, forKey: .disabledBorderColor_inverted)
}
}

View File

@ -1,188 +0,0 @@
//
// Facade.swift
// MVMCoreUI
//
// Created by Kevin Christiano on 4/30/20.
// Copyright © 2020 Verizon Wireless. All rights reserved.
//
import Foundation
public typealias FacadeElements = (fill: UIColor?, text: UIColor?, border: UIColor?)
public class Facade: Codable {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
public var isInverted: Bool = false
public lazy var enabled: FacadeElements = (fill: enabled_fillColor(),
text: enabled_textColor(),
border: enabled_borderColor())
public lazy var disabled: FacadeElements = (fill: disabled_fillColor(),
text: disabled_textColor(),
border: disabled_borderColor())
public var backgroundColor_standard: Color?
public var backgroundColor_inverted: Color?
public var enabledFillColor: Color?
public var enabledTextColor: Color?
public var enabledBorderColor: Color?
public var enabledFillColor_inverted: Color?
public var enabledTextColor_inverted: Color?
public var enabledBorderColor_inverted: Color?
public var disabledFillColor: Color?
public var disabledTextColor: Color?
public var disabledBorderColor: Color?
public var disabledFillColor_inverted: Color?
public var disabledTextColor_inverted: Color?
public var disabledBorderColor_inverted: Color?
public var borderWidth: CGFloat?
public var borderWidth_inverted: CGFloat?
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
public init(isInverted: Bool = false,
backgroundColor_standard: UIColor? = nil,
backgroundColor_inverted: UIColor? = nil,
enabledFillColor: UIColor? = nil,
enabledTextColor: UIColor? = nil,
enabledBorderColor: UIColor? = nil,
disabledFillColor: UIColor? = nil,
disabledTextColor: UIColor? = nil,
disabledBorderColor: UIColor? = nil,
enabledFillColor_inverted: UIColor? = nil,
enabledTextColor_inverted: UIColor? = nil,
enabledBorderColor_inverted: UIColor? = nil,
disabledFillColor_inverted: UIColor? = nil,
disabledTextColor_inverted: UIColor? = nil,
disabledBorderColor_inverted: UIColor? = nil,
borderWidth: CGFloat? = nil,
borderWidth_inverted: CGFloat? = nil) {
self.isInverted = isInverted
self.backgroundColor_standard = Color(uiColor: backgroundColor_standard)
self.backgroundColor_inverted = Color(uiColor: backgroundColor_inverted)
self.enabledFillColor = Color(uiColor: enabledFillColor)
self.enabledTextColor = Color(uiColor: enabledTextColor)
self.enabledBorderColor = Color(uiColor: enabledBorderColor)
self.disabledFillColor = Color(uiColor: disabledFillColor)
self.disabledTextColor = Color(uiColor: disabledTextColor)
self.disabledBorderColor = Color(uiColor: disabledBorderColor)
self.enabledFillColor_inverted = Color(uiColor: enabledFillColor_inverted)
self.enabledTextColor_inverted = Color(uiColor: enabledTextColor_inverted)
self.enabledBorderColor_inverted = Color(uiColor: enabledBorderColor_inverted)
self.disabledFillColor_inverted = Color(uiColor: disabledFillColor_inverted)
self.disabledTextColor_inverted = Color(uiColor: disabledTextColor_inverted)
self.disabledBorderColor_inverted = Color(uiColor: disabledBorderColor_inverted)
self.borderWidth = borderWidth
self.borderWidth_inverted = borderWidth_inverted
}
//--------------------------------------------------
// MARK: - Methods
//--------------------------------------------------
public func backgroundColor() -> UIColor? {
return (isInverted ? backgroundColor_inverted : backgroundColor_standard)?.uiColor
}
public func getBorderWidth() -> CGFloat? {
return isInverted ? borderWidth_inverted : borderWidth
}
public func enabled_fillColor() -> UIColor? {
return (isInverted ? enabledFillColor_inverted : enabledFillColor)?.uiColor
}
public func enabled_textColor() -> UIColor? {
return (isInverted ? enabledTextColor_inverted : enabledTextColor)?.uiColor
}
public func enabled_borderColor() -> UIColor? {
return (isInverted ? enabledBorderColor_inverted : enabledBorderColor)?.uiColor
}
public func disabled_fillColor() -> UIColor? {
return (isInverted ? disabledFillColor_inverted : disabledFillColor)?.uiColor
}
public func disabled_textColor() -> UIColor? {
return (isInverted ? disabledTextColor_inverted : disabledTextColor)?.uiColor
}
public func disabled_borderColor() -> UIColor? {
return (isInverted ? disabledBorderColor_inverted : disabledBorderColor)?.uiColor
}
//--------------------------------------------------
// MARK: - Keys
//--------------------------------------------------
private enum CodingKeys: String, CodingKey {
case backgroundColor_standard
case backgroundColor_inverted
case enabledFillColor
case enabledTextColor
case enabledBorderColor
case enabledFillColor_inverted
case enabledTextColor_inverted
case enabledBorderColor_inverted
case disabledFillColor
case disabledTextColor
case disabledBorderColor
case disabledFillColor_inverted
case disabledTextColor_inverted
case disabledBorderColor_inverted
}
//--------------------------------------------------
// MARK: - Codec
//--------------------------------------------------
required public init(from decoder: Decoder) throws {
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
backgroundColor_standard = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor_standard)
backgroundColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor_inverted)
enabledFillColor = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledFillColor)
enabledTextColor = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledTextColor)
enabledBorderColor = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledBorderColor)
enabledFillColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledFillColor_inverted)
enabledTextColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledTextColor_inverted)
enabledBorderColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .enabledBorderColor_inverted)
disabledFillColor = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledFillColor)
disabledTextColor = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledTextColor)
disabledBorderColor = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledBorderColor)
disabledFillColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledFillColor_inverted)
disabledTextColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledTextColor_inverted)
disabledBorderColor_inverted = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledBorderColor_inverted)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(backgroundColor_standard, forKey: .backgroundColor_standard)
try container.encodeIfPresent(backgroundColor_inverted, forKey: .backgroundColor_inverted)
try container.encodeIfPresent(enabledFillColor, forKey: .enabledFillColor)
try container.encodeIfPresent(enabledTextColor, forKey: .enabledTextColor)
try container.encodeIfPresent(enabledBorderColor, forKey: .enabledBorderColor)
try container.encodeIfPresent(enabledFillColor_inverted, forKey: .enabledFillColor_inverted)
try container.encodeIfPresent(enabledTextColor_inverted, forKey: .enabledTextColor_inverted)
try container.encodeIfPresent(enabledBorderColor_inverted, forKey: .enabledBorderColor_inverted)
try container.encodeIfPresent(disabledFillColor, forKey: .disabledFillColor)
try container.encodeIfPresent(disabledTextColor, forKey: .disabledTextColor)
try container.encodeIfPresent(disabledBorderColor, forKey: .disabledBorderColor)
try container.encodeIfPresent(disabledFillColor_inverted, forKey: .disabledFillColor_inverted)
try container.encodeIfPresent(disabledTextColor_inverted, forKey: .disabledTextColor_inverted)
try container.encodeIfPresent(disabledBorderColor_inverted, forKey: .disabledBorderColor_inverted)
}
}