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 UIKit
public protocol Colorable {
public protocol Colorable: Withable {
associatedtype ModelType
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)
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<ModelType> = {
let config = BinarySurfaceColorConfiguration<ModelType>()
config.forTrue.lightColor = VDSColor.elementsPrimaryOndark
config.forTrue.darkColor = VDSColor.elementsPrimaryOnlight
return config
return BinarySurfaceColorConfiguration<ModelType>().with {
$0.forTrue.lightColor = VDSColor.elementsPrimaryOndark
$0.forTrue.darkColor = VDSColor.elementsPrimaryOnlight
}
}()
//--------------------------------------------------

View File

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

View File

@ -21,40 +21,40 @@ open class RadioButtonBase<ModelType: RadioButtonModel>: SelectorBase<ModelType>
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<ModelType> = {
let config = BinaryDisabledSurfaceColorConfiguration<ModelType>()
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<ModelType>().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() {

View File

@ -17,53 +17,41 @@ open class SelectorBase<ModelType: SelectorModel>: Control<ModelType>, 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?

View File

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

View File

@ -26,30 +26,26 @@ open class ToggleBase<ModelType: ToggleModel>: Control<ModelType>, 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<ModelType: ToggleModel>: Control<ModelType>, Changable {
public let knobSize = CGSize(width: 20, height: 20)
private var toggleColorConfiguration: BinaryDisabledSurfaceColorConfiguration<ModelType> = {
let config = BinaryDisabledSurfaceColorConfiguration<ModelType>()
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<ModelType>().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<ModelType> = {
let config = BinaryDisabledSurfaceColorConfiguration<ModelType>()
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<ModelType>().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
}
} ()
//--------------------------------------------------