// // EntryFieldModel.swift // VDS // // Created by Matt Bruce on 10/3/22. // import Foundation public enum HelperTextPlacement: String, CaseIterable { case bottom, right } public protocol EntryFieldModel: Modelable, FormFieldable, Errorable { var defaultVaue: AnyHashable? { get set } var required: Bool { get set } var readOnly: Bool { get set } var labelText: String? { get set } var helperText: String? { get set } var helperTextPlacement: HelperTextPlacement { get set } var showSuccess: Bool { get set } var successText: String? { get set } var transparentBackground: Bool { get set } var width: CGFloat? { get set } var maxLength: Int? { get set } var tooltipTitle: String? { get set } var tooltipContent: String? { get set } } extension EntryFieldModel { public var labelModel: DefaultLabelModel { var model = DefaultLabelModel() model.textPosition = .left model.typograpicalStyle = .BodySmall model.text = labelText model.surface = surface model.disabled = disabled return model } public var helperLabelModel: DefaultLabelModel? { var model = DefaultLabelModel() model.textPosition = .left model.typograpicalStyle = .BodySmall model.text = helperText model.surface = surface model.disabled = disabled return model } public var errorLabelModel: DefaultLabelModel? { var model = DefaultLabelModel() model.textPosition = .left model.typograpicalStyle = .BodySmall model.text = errorText model.surface = surface model.disabled = disabled return model } public var successLabelModel: DefaultLabelModel? { var model = DefaultLabelModel() model.textPosition = .left model.typograpicalStyle = .BodySmall model.text = successText model.surface = surface model.disabled = disabled return model } }