updated for withable on lazy properties

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-08-22 15:35:45 -05:00
parent 268570b3bb
commit c9cc612698
7 changed files with 124 additions and 140 deletions

View File

@ -8,7 +8,7 @@
import Foundation import Foundation
import UIKit import UIKit
public protocol Colorable { public protocol Colorable: Withable {
associatedtype ModelType associatedtype ModelType
func getColor(_ viewModel: ModelType) -> UIColor func getColor(_ viewModel: ModelType) -> UIColor
} }

View File

@ -20,42 +20,42 @@ open class CheckboxBase<ModelType: CheckboxModel>: SelectorBase<ModelType> {
public let checkboxSize = CGSize(width: 20, height: 20) public let checkboxSize = CGSize(width: 20, height: 20)
private var checkboxBackgroundColorConfiguration: CheckboxErrorColorConfiguration = { private var checkboxBackgroundColorConfiguration: CheckboxErrorColorConfiguration = {
let config = CheckboxErrorColorConfiguration() return CheckboxErrorColorConfiguration().with {
config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight
config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark
config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight
config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark
//error doesn't care enabled/disable //error doesn't care enabled/disable
config.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight $0.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight
config.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark $0.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark
config.error.forFalse.lightColor = VDSColor.feedbackErrorBackgroundOnlight $0.error.forFalse.lightColor = VDSColor.feedbackErrorBackgroundOnlight
config.error.forFalse.darkColor = VDSColor.feedbackErrorBackgroundOndark $0.error.forFalse.darkColor = VDSColor.feedbackErrorBackgroundOndark
return config }
}() }()
private var checkboxBorderColorConfiguration: CheckboxErrorColorConfiguration = { private var checkboxBorderColorConfiguration: CheckboxErrorColorConfiguration = {
let config = CheckboxErrorColorConfiguration() return CheckboxErrorColorConfiguration().with {
config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight
config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark
config.forFalse.enabled.lightColor = VDSFormControlsColor.borderOnlight $0.forFalse.enabled.lightColor = VDSFormControlsColor.borderOnlight
config.forFalse.enabled.darkColor = VDSFormControlsColor.borderOndark $0.forFalse.enabled.darkColor = VDSFormControlsColor.borderOndark
config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight
config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark
config.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight $0.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight
config.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark $0.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark
//error doesn't care enabled/disable //error doesn't care enabled/disable
config.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight $0.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight
config.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark $0.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark
config.error.forFalse.lightColor = VDSColor.feedbackErrorOnlight $0.error.forFalse.lightColor = VDSColor.feedbackErrorOnlight
config.error.forFalse.darkColor = VDSColor.feedbackErrorOndark $0.error.forFalse.darkColor = VDSColor.feedbackErrorOndark
return config }
}() }()
private var checkboxCheckColorConfiguration: BinarySurfaceColorConfiguration<ModelType> = { private var checkboxCheckColorConfiguration: BinarySurfaceColorConfiguration<ModelType> = {
let config = BinarySurfaceColorConfiguration<ModelType>() return BinarySurfaceColorConfiguration<ModelType>().with {
config.forTrue.lightColor = VDSColor.elementsPrimaryOndark $0.forTrue.lightColor = VDSColor.elementsPrimaryOndark
config.forTrue.darkColor = VDSColor.elementsPrimaryOnlight $0.forTrue.darkColor = VDSColor.elementsPrimaryOnlight
return config }
}() }()
//-------------------------------------------------- //--------------------------------------------------

View File

@ -67,12 +67,12 @@ open class LabelBase<ModelType: LabelModel>: UILabel, ModelHandlerable, ViewProt
// MARK: - Configuration Properties // MARK: - Configuration Properties
//-------------------------------------------------- //--------------------------------------------------
private var textColorConfiguration: DisabledSurfaceColorConfiguration<ModelType> = { private var textColorConfiguration: DisabledSurfaceColorConfiguration<ModelType> = {
let config = DisabledSurfaceColorConfiguration<ModelType>() return DisabledSurfaceColorConfiguration<ModelType>().with {
config.disabled.lightColor = VDSColor.elementsSecondaryOnlight $0.disabled.lightColor = VDSColor.elementsSecondaryOnlight
config.disabled.darkColor = VDSColor.elementsSecondaryOndark $0.disabled.darkColor = VDSColor.elementsSecondaryOndark
config.enabled.lightColor = VDSColor.elementsPrimaryOnlight $0.enabled.lightColor = VDSColor.elementsPrimaryOnlight
config.enabled.darkColor = VDSColor.elementsPrimaryOndark $0.enabled.darkColor = VDSColor.elementsPrimaryOndark
return config }
} () } ()
//-------------------------------------------------- //--------------------------------------------------

View File

@ -21,40 +21,40 @@ open class RadioButtonBase<ModelType: RadioButtonModel>: SelectorBase<ModelType>
public let radioButtonSelectedSize = CGSize(width: 10, height: 10) public let radioButtonSelectedSize = CGSize(width: 10, height: 10)
private var radioButtonBackgroundColorConfiguration: RadioButtonErrorColorConfiguration = { private var radioButtonBackgroundColorConfiguration: RadioButtonErrorColorConfiguration = {
let config = RadioButtonErrorColorConfiguration() return RadioButtonErrorColorConfiguration().with {
//error doesn't care enabled/disable //error doesn't care enabled/disable
config.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight $0.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight
config.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark $0.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark
config.error.forFalse.lightColor = VDSColor.feedbackErrorBackgroundOnlight $0.error.forFalse.lightColor = VDSColor.feedbackErrorBackgroundOnlight
config.error.forFalse.darkColor = VDSColor.feedbackErrorBackgroundOndark $0.error.forFalse.darkColor = VDSColor.feedbackErrorBackgroundOndark
return config }
}() }()
private var radioButtonBorderColorConfiguration: RadioButtonErrorColorConfiguration = { private var radioButtonBorderColorConfiguration: RadioButtonErrorColorConfiguration = {
let config = RadioButtonErrorColorConfiguration() return RadioButtonErrorColorConfiguration().with {
config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight
config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark
config.forFalse.enabled.lightColor = VDSFormControlsColor.borderOnlight $0.forFalse.enabled.lightColor = VDSFormControlsColor.borderOnlight
config.forFalse.enabled.darkColor = VDSFormControlsColor.borderOndark $0.forFalse.enabled.darkColor = VDSFormControlsColor.borderOndark
config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight
config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark
config.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight $0.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight
config.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark $0.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark
//error doesn't care enabled/disable //error doesn't care enabled/disable
config.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight $0.error.forTrue.lightColor = VDSColor.elementsPrimaryOnlight
config.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark $0.error.forTrue.darkColor = VDSColor.elementsPrimaryOndark
config.error.forFalse.lightColor = VDSColor.feedbackErrorOnlight $0.error.forFalse.lightColor = VDSColor.feedbackErrorOnlight
config.error.forFalse.darkColor = VDSColor.feedbackErrorOndark $0.error.forFalse.darkColor = VDSColor.feedbackErrorOndark
return config }
}() }()
private var radioButtonCheckColorConfiguration: BinaryDisabledSurfaceColorConfiguration<ModelType> = { private var radioButtonCheckColorConfiguration: BinaryDisabledSurfaceColorConfiguration<ModelType> = {
let config = BinaryDisabledSurfaceColorConfiguration<ModelType>() return BinaryDisabledSurfaceColorConfiguration<ModelType>().with {
config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOnlight
config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark
config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight
config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark
return config }
}() }()
open override func toggleAndAction() { open override func toggleAndAction() {

View File

@ -17,53 +17,41 @@ open class SelectorBase<ModelType: SelectorModel>: Control<ModelType>, Changable
// MARK: - Private Properties // MARK: - Private Properties
//-------------------------------------------------- //--------------------------------------------------
private var mainStackView: UIStackView = { private var mainStackView: UIStackView = {
let stackView = UIStackView() return UIStackView().with {
stackView.translatesAutoresizingMaskIntoConstraints = false $0.translatesAutoresizingMaskIntoConstraints = false
stackView.alignment = .top $0.alignment = .top
stackView.axis = .vertical $0.axis = .vertical
return stackView }
}() }()
private var selectorStackView: UIStackView = { private var selectorStackView: UIStackView = {
let stackView = UIStackView() return UIStackView().with {
stackView.translatesAutoresizingMaskIntoConstraints = false $0.translatesAutoresizingMaskIntoConstraints = false
stackView.alignment = .top $0.alignment = .top
stackView.axis = .horizontal $0.axis = .horizontal
return stackView }
}() }()
private var selectorLabelStackView: UIStackView = { private var selectorLabelStackView: UIStackView = {
let stackView = UIStackView() return UIStackView().with {
stackView.translatesAutoresizingMaskIntoConstraints = false $0.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical $0.axis = .vertical
return stackView }
}() }()
private var primaryLabel: Label = { private var primaryLabel = Label()
let label = Label()
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
private var secondaryLabel: Label = { private var secondaryLabel = Label()
let label = Label()
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
private var errorLabel: Label = { private var errorLabel = Label()
let label = Label()
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Public Properties // MARK: - Public Properties
//-------------------------------------------------- //--------------------------------------------------
public var selectorView: UIView = { public var selectorView: UIView = {
let view = UIView() return UIView().with {
view.translatesAutoresizingMaskIntoConstraints = false $0.translatesAutoresizingMaskIntoConstraints = false
return view }
}() }()
public var onChange: Blocks.ActionBlock? public var onChange: Blocks.ActionBlock?

View File

@ -19,12 +19,12 @@ open class SelectorGroupBase<SelectorType, SelectorGroupType: SelectorGroupModel
// MARK: - Private Properties // MARK: - Private Properties
//-------------------------------------------------- //--------------------------------------------------
private var mainStackView: UIStackView = { private var mainStackView: UIStackView = {
let stackView = UIStackView() return UIStackView().with {
stackView.translatesAutoresizingMaskIntoConstraints = false $0.translatesAutoresizingMaskIntoConstraints = false
stackView.alignment = .top $0.alignment = .top
stackView.axis = .vertical $0.axis = .vertical
stackView.spacing = 10 $0.spacing = 10
return stackView }
}() }()
//-------------------------------------------------- //--------------------------------------------------

View File

@ -26,30 +26,26 @@ open class ToggleBase<ModelType: ToggleModel>: Control<ModelType>, Changable {
// MARK: - Private Properties // MARK: - Private Properties
//-------------------------------------------------- //--------------------------------------------------
private var stackView: UIStackView = { private var stackView: UIStackView = {
let stackView = UIStackView() return UIStackView().with {
stackView.translatesAutoresizingMaskIntoConstraints = false $0.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .horizontal $0.axis = .horizontal
stackView.distribution = .fill $0.distribution = .fill
return stackView }
}() }()
private var label: Label = { private var label = Label()
let label = Label()
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
private var toggleView: UIView = { private var toggleView: UIView = {
let view = UIView() return UIView().with {
view.translatesAutoresizingMaskIntoConstraints = false $0.translatesAutoresizingMaskIntoConstraints = false
return view }
}() }()
private var knobView: UIView = { private var knobView: UIView = {
let view = UIView() return UIView().with {
view.translatesAutoresizingMaskIntoConstraints = false $0.translatesAutoresizingMaskIntoConstraints = false
view.backgroundColor = .white $0.backgroundColor = .white
return view }
}() }()
//-------------------------------------------------- //--------------------------------------------------
@ -61,29 +57,29 @@ open class ToggleBase<ModelType: ToggleModel>: Control<ModelType>, Changable {
public let knobSize = CGSize(width: 20, height: 20) public let knobSize = CGSize(width: 20, height: 20)
private var toggleColorConfiguration: BinaryDisabledSurfaceColorConfiguration<ModelType> = { private var toggleColorConfiguration: BinaryDisabledSurfaceColorConfiguration<ModelType> = {
let config = BinaryDisabledSurfaceColorConfiguration<ModelType>() return BinaryDisabledSurfaceColorConfiguration<ModelType>().with {
config.forTrue.enabled.lightColor = VDSColor.paletteGreen26 $0.forTrue.enabled.lightColor = VDSColor.paletteGreen26
config.forTrue.enabled.darkColor = VDSColor.paletteGreen34 $0.forTrue.enabled.darkColor = VDSColor.paletteGreen34
config.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight $0.forTrue.disabled.lightColor = VDSColor.interactiveDisabledOnlight
config.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark $0.forTrue.disabled.darkColor = VDSColor.interactiveDisabledOndark
config.forFalse.enabled.lightColor = VDSColor.elementsSecondaryOnlight $0.forFalse.enabled.lightColor = VDSColor.elementsSecondaryOnlight
config.forFalse.enabled.darkColor = VDSColor.paletteGray44 $0.forFalse.enabled.darkColor = VDSColor.paletteGray44
config.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight $0.forFalse.disabled.lightColor = VDSColor.interactiveDisabledOnlight
config.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark $0.forFalse.disabled.darkColor = VDSColor.interactiveDisabledOndark
return config }
} () } ()
private var knobColorConfiguration: BinaryDisabledSurfaceColorConfiguration<ModelType> = { private var knobColorConfiguration: BinaryDisabledSurfaceColorConfiguration<ModelType> = {
let config = BinaryDisabledSurfaceColorConfiguration<ModelType>() return BinaryDisabledSurfaceColorConfiguration<ModelType>().with {
config.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOndark $0.forTrue.enabled.lightColor = VDSColor.elementsPrimaryOndark
config.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark $0.forTrue.enabled.darkColor = VDSColor.elementsPrimaryOndark
config.forTrue.disabled.lightColor = VDSColor.paletteGray95 $0.forTrue.disabled.lightColor = VDSColor.paletteGray95
config.forTrue.disabled.darkColor = VDSColor.paletteGray44 $0.forTrue.disabled.darkColor = VDSColor.paletteGray44
config.forFalse.enabled.lightColor = VDSColor.elementsPrimaryOndark $0.forFalse.enabled.lightColor = VDSColor.elementsPrimaryOndark
config.forFalse.enabled.darkColor = VDSColor.elementsPrimaryOndark $0.forFalse.enabled.darkColor = VDSColor.elementsPrimaryOndark
config.forFalse.disabled.lightColor = VDSColor.paletteGray95 $0.forFalse.disabled.lightColor = VDSColor.paletteGray95
config.forFalse.disabled.darkColor = VDSColor.paletteGray44 $0.forFalse.disabled.darkColor = VDSColor.paletteGray44
return config }
} () } ()
//-------------------------------------------------- //--------------------------------------------------