vds_ios/VDS/Components/TextFields/EntryField/EntryFieldModel.swift
Matt Bruce 61493d382d added more structs for helping attribrutes/colors, etc..
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
2022-10-04 11:39:27 -05:00

72 lines
2.0 KiB
Swift

//
// 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
}
}