From c9cc6126987d24327b26a09320017093662b387a Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Mon, 22 Aug 2022 15:35:45 -0500 Subject: [PATCH] updated for withable on lazy properties Signed-off-by: Matt Bruce --- VDS/Classes/ColorConfiguration.swift | 2 +- VDS/Components/Checkbox/Checkbox.swift | 60 ++++++++-------- VDS/Components/Label/Label.swift | 12 ++-- VDS/Components/RadioButton/RadioButton.swift | 56 +++++++-------- VDS/Components/Selector/SelectorBase.swift | 52 ++++++-------- .../Selector/SelectorGroupBase.swift | 12 ++-- VDS/Components/Toggle/Toggle.swift | 70 +++++++++---------- 7 files changed, 124 insertions(+), 140 deletions(-) diff --git a/VDS/Classes/ColorConfiguration.swift b/VDS/Classes/ColorConfiguration.swift index 5254db3b..1562b04e 100644 --- a/VDS/Classes/ColorConfiguration.swift +++ b/VDS/Classes/ColorConfiguration.swift @@ -8,7 +8,7 @@ import Foundation import UIKit -public protocol Colorable { +public protocol Colorable: Withable { associatedtype ModelType func getColor(_ viewModel: ModelType) -> UIColor } diff --git a/VDS/Components/Checkbox/Checkbox.swift b/VDS/Components/Checkbox/Checkbox.swift index a03213d9..7a6eae88 100644 --- a/VDS/Components/Checkbox/Checkbox.swift +++ b/VDS/Components/Checkbox/Checkbox.swift @@ -20,42 +20,42 @@ open class CheckboxBase: SelectorBase { public let checkboxSize = CGSize(width: 20, height: 20) private var checkboxBackgroundColorConfiguration: CheckboxErrorColorConfiguration = { - let config = CheckboxErrorColorConfiguration() - config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight - config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark - config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight - config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark - //error doesn't care enabled/disable - config.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight - config.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark - config.error.forFalse.lightColor = VDSColor.feedbackErrorBackgroundOnlight - config.error.forFalse.darkColor = VDSColor.feedbackErrorBackgroundOndark - return config + return CheckboxErrorColorConfiguration().with { + $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight + $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark + $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight + $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark + //error doesn't care enabled/disable + $0.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight + $0.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark + $0.error.forFalse.lightColor = VDSColor.feedbackErrorBackgroundOnlight + $0.error.forFalse.darkColor = VDSColor.feedbackErrorBackgroundOndark + } }() private var checkboxBorderColorConfiguration: CheckboxErrorColorConfiguration = { - let config = CheckboxErrorColorConfiguration() - config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight - config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark - config.forFalse.enabled.lightColor = VDSFormControlsColor.borderOnlight - config.forFalse.enabled.darkColor = VDSFormControlsColor.borderOndark - config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight - config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark - config.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight - config.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark - //error doesn't care enabled/disable - config.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight - config.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark - config.error.forFalse.lightColor = VDSColor.feedbackErrorOnlight - config.error.forFalse.darkColor = VDSColor.feedbackErrorOndark - return config + return CheckboxErrorColorConfiguration().with { + $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight + $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark + $0.forFalse.enabled.lightColor = VDSFormControlsColor.borderOnlight + $0.forFalse.enabled.darkColor = VDSFormControlsColor.borderOndark + $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight + $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark + $0.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight + $0.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark + //error doesn't care enabled/disable + $0.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight + $0.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark + $0.error.forFalse.lightColor = VDSColor.feedbackErrorOnlight + $0.error.forFalse.darkColor = VDSColor.feedbackErrorOndark + } }() private var checkboxCheckColorConfiguration: BinarySurfaceColorConfiguration = { - let config = BinarySurfaceColorConfiguration() - config.forTrue.lightColor = VDSColor.elementsPrimaryOndark - config.forTrue.darkColor = VDSColor.elementsPrimaryOnlight - return config + return BinarySurfaceColorConfiguration().with { + $0.forTrue.lightColor = VDSColor.elementsPrimaryOndark + $0.forTrue.darkColor = VDSColor.elementsPrimaryOnlight + } }() //-------------------------------------------------- diff --git a/VDS/Components/Label/Label.swift b/VDS/Components/Label/Label.swift index e5717126..e5ec2bbe 100644 --- a/VDS/Components/Label/Label.swift +++ b/VDS/Components/Label/Label.swift @@ -67,12 +67,12 @@ open class LabelBase: UILabel, ModelHandlerable, ViewProt // MARK: - Configuration Properties //-------------------------------------------------- private var textColorConfiguration: DisabledSurfaceColorConfiguration = { - let config = DisabledSurfaceColorConfiguration() - config.disabled.lightColor = VDSColor.elementsSecondaryOnlight - config.disabled.darkColor = VDSColor.elementsSecondaryOndark - config.enabled.lightColor = VDSColor.elementsPrimaryOnlight - config.enabled.darkColor = VDSColor.elementsPrimaryOndark - return config + return DisabledSurfaceColorConfiguration().with { + $0.disabled.lightColor = VDSColor.elementsSecondaryOnlight + $0.disabled.darkColor = VDSColor.elementsSecondaryOndark + $0.enabled.lightColor = VDSColor.elementsPrimaryOnlight + $0.enabled.darkColor = VDSColor.elementsPrimaryOndark + } } () //-------------------------------------------------- diff --git a/VDS/Components/RadioButton/RadioButton.swift b/VDS/Components/RadioButton/RadioButton.swift index f315286d..a85c1e04 100644 --- a/VDS/Components/RadioButton/RadioButton.swift +++ b/VDS/Components/RadioButton/RadioButton.swift @@ -21,40 +21,40 @@ open class RadioButtonBase: SelectorBase public let radioButtonSelectedSize = CGSize(width: 10, height: 10) private var radioButtonBackgroundColorConfiguration: RadioButtonErrorColorConfiguration = { - let config = RadioButtonErrorColorConfiguration() - //error doesn't care enabled/disable - config.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight - config.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark - config.error.forFalse.lightColor = VDSColor.feedbackErrorBackgroundOnlight - config.error.forFalse.darkColor = VDSColor.feedbackErrorBackgroundOndark - return config + return RadioButtonErrorColorConfiguration().with { + //error doesn't care enabled/disable + $0.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight + $0.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark + $0.error.forFalse.lightColor = VDSColor.feedbackErrorBackgroundOnlight + $0.error.forFalse.darkColor = VDSColor.feedbackErrorBackgroundOndark + } }() private var radioButtonBorderColorConfiguration: RadioButtonErrorColorConfiguration = { - let config = RadioButtonErrorColorConfiguration() - config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight - config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark - config.forFalse.enabled.lightColor = VDSFormControlsColor.borderOnlight - config.forFalse.enabled.darkColor = VDSFormControlsColor.borderOndark - config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight - config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark - config.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight - config.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark - //error doesn't care enabled/disable - config.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight - config.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark - config.error.forFalse.lightColor = VDSColor.feedbackErrorOnlight - config.error.forFalse.darkColor = VDSColor.feedbackErrorOndark - return config + return RadioButtonErrorColorConfiguration().with { + $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight + $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark + $0.forFalse.enabled.lightColor = VDSFormControlsColor.borderOnlight + $0.forFalse.enabled.darkColor = VDSFormControlsColor.borderOndark + $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight + $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark + $0.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight + $0.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark + //error doesn't care enabled/disable + $0.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight + $0.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark + $0.error.forFalse.lightColor = VDSColor.feedbackErrorOnlight + $0.error.forFalse.darkColor = VDSColor.feedbackErrorOndark + } }() private var radioButtonCheckColorConfiguration: BinaryDisabledSurfaceColorConfiguration = { - let config = BinaryDisabledSurfaceColorConfiguration() - config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight - config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark - config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight - config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark - return config + return BinaryDisabledSurfaceColorConfiguration().with { + $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight + $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark + $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight + $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark + } }() open override func toggleAndAction() { diff --git a/VDS/Components/Selector/SelectorBase.swift b/VDS/Components/Selector/SelectorBase.swift index 0a496299..178ec74d 100644 --- a/VDS/Components/Selector/SelectorBase.swift +++ b/VDS/Components/Selector/SelectorBase.swift @@ -17,53 +17,41 @@ open class SelectorBase: Control, Changable // MARK: - Private Properties //-------------------------------------------------- private var mainStackView: UIStackView = { - let stackView = UIStackView() - stackView.translatesAutoresizingMaskIntoConstraints = false - stackView.alignment = .top - stackView.axis = .vertical - return stackView + return UIStackView().with { + $0.translatesAutoresizingMaskIntoConstraints = false + $0.alignment = .top + $0.axis = .vertical + } }() private var selectorStackView: UIStackView = { - let stackView = UIStackView() - stackView.translatesAutoresizingMaskIntoConstraints = false - stackView.alignment = .top - stackView.axis = .horizontal - return stackView + return UIStackView().with { + $0.translatesAutoresizingMaskIntoConstraints = false + $0.alignment = .top + $0.axis = .horizontal + } }() private var selectorLabelStackView: UIStackView = { - let stackView = UIStackView() - stackView.translatesAutoresizingMaskIntoConstraints = false - stackView.axis = .vertical - return stackView + return UIStackView().with { + $0.translatesAutoresizingMaskIntoConstraints = false + $0.axis = .vertical + } }() - private var primaryLabel: Label = { - let label = Label() - label.translatesAutoresizingMaskIntoConstraints = false - return label - }() + private var primaryLabel = Label() - private var secondaryLabel: Label = { - let label = Label() - label.translatesAutoresizingMaskIntoConstraints = false - return label - }() + private var secondaryLabel = Label() - private var errorLabel: Label = { - let label = Label() - label.translatesAutoresizingMaskIntoConstraints = false - return label - }() + private var errorLabel = Label() //-------------------------------------------------- // MARK: - Public Properties //-------------------------------------------------- public var selectorView: UIView = { - let view = UIView() - view.translatesAutoresizingMaskIntoConstraints = false - return view + return UIView().with { + $0.translatesAutoresizingMaskIntoConstraints = false + } }() public var onChange: Blocks.ActionBlock? diff --git a/VDS/Components/Selector/SelectorGroupBase.swift b/VDS/Components/Selector/SelectorGroupBase.swift index 8365b182..62a90611 100644 --- a/VDS/Components/Selector/SelectorGroupBase.swift +++ b/VDS/Components/Selector/SelectorGroupBase.swift @@ -19,12 +19,12 @@ open class SelectorGroupBase: Control, Changable { // MARK: - Private Properties //-------------------------------------------------- private var stackView: UIStackView = { - let stackView = UIStackView() - stackView.translatesAutoresizingMaskIntoConstraints = false - stackView.axis = .horizontal - stackView.distribution = .fill - return stackView + return UIStackView().with { + $0.translatesAutoresizingMaskIntoConstraints = false + $0.axis = .horizontal + $0.distribution = .fill + } }() - private var label: Label = { - let label = Label() - label.translatesAutoresizingMaskIntoConstraints = false - return label - }() + private var label = Label() private var toggleView: UIView = { - let view = UIView() - view.translatesAutoresizingMaskIntoConstraints = false - return view + return UIView().with { + $0.translatesAutoresizingMaskIntoConstraints = false + } }() private var knobView: UIView = { - let view = UIView() - view.translatesAutoresizingMaskIntoConstraints = false - view.backgroundColor = .white - return view + return UIView().with { + $0.translatesAutoresizingMaskIntoConstraints = false + $0.backgroundColor = .white + } }() //-------------------------------------------------- @@ -61,29 +57,29 @@ open class ToggleBase: Control, Changable { public let knobSize = CGSize(width: 20, height: 20) private var toggleColorConfiguration: BinaryDisabledSurfaceColorConfiguration = { - let config = BinaryDisabledSurfaceColorConfiguration() - config.forTrue.enabled.lightColor = VDSColor.paletteGreen26 - config.forTrue.enabled.darkColor = VDSColor.paletteGreen34 - config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight - config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark - config.forFalse.enabled.lightColor = VDSColor.elementsSecondaryOnlight - config.forFalse.enabled.darkColor = VDSColor.paletteGray44 - config.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight - config.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark - return config + return BinaryDisabledSurfaceColorConfiguration().with { + $0.forTrue.enabled.lightColor = VDSColor.paletteGreen26 + $0.forTrue.enabled.darkColor = VDSColor.paletteGreen34 + $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight + $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark + $0.forFalse.enabled.lightColor = VDSColor.elementsSecondaryOnlight + $0.forFalse.enabled.darkColor = VDSColor.paletteGray44 + $0.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight + $0.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark + } } () private var knobColorConfiguration: BinaryDisabledSurfaceColorConfiguration = { - let config = BinaryDisabledSurfaceColorConfiguration() - config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOndark - config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark - config.forTrue.disabled.lightColor = VDSColor.paletteGray95 - config.forTrue.disabled.darkColor = VDSColor.paletteGray44 - config.forFalse.enabled.lightColor = VDSColor.elementsPrimaryOndark - config.forFalse.enabled.darkColor = VDSColor.elementsPrimaryOndark - config.forFalse.disabled.lightColor = VDSColor.paletteGray95 - config.forFalse.disabled.darkColor = VDSColor.paletteGray44 - return config + return BinaryDisabledSurfaceColorConfiguration().with { + $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOndark + $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark + $0.forTrue.disabled.lightColor = VDSColor.paletteGray95 + $0.forTrue.disabled.darkColor = VDSColor.paletteGray44 + $0.forFalse.enabled.lightColor = VDSColor.elementsPrimaryOndark + $0.forFalse.enabled.darkColor = VDSColor.elementsPrimaryOndark + $0.forFalse.disabled.lightColor = VDSColor.paletteGray95 + $0.forFalse.disabled.darkColor = VDSColor.paletteGray44 + } } () //--------------------------------------------------