vds_ios/VDS/Components/Toggle/ToggleModel.swift
Matt Bruce cff23c26e4 refactored names
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
2022-08-03 17:03:28 -05:00

68 lines
1.9 KiB
Swift

//
// ToggleModel.swift
// VDS
//
// Created by Matt Bruce on 7/22/22.
//
import Foundation
import UIKit
public protocol ToggleModel: FormFieldable, DataTrackable, Accessable, Initable, Labelable, Surfaceable, Disabling {
var id: String? { get set }
var showText: Bool { get set }
var on: Bool { get set }
var offText: String { get set }
var onText: String { get set }
}
extension ToggleModel {
public var fontCategory: FontCategory {
get { return .body }
set { return }
}
public var label: LabelModel {
let model = DefaultLabelModel()
model.fontSize = fontSize
model.textPosition = textPosition
model.fontWeight = fontWeight
model.fontCategory = .body
model.text = on ? onText : offText
model.surface = surface
model.disabled = disabled
return model
}
}
public struct DefaultToggleModel: ToggleModel {
public var id: String?
public var on: Bool = false
public var showText: Bool = false
public var offText: String = "Off"
public var onText: String = "On"
public var fontCategory: FontCategory = .body
public var fontSize: FontSize = .small
public var fontWeight: FontWeight = .regular
public var textPosition: TextPosition = .left
public var inputId: String?
public var value: AnyHashable? = true
public var surface: Surface = .light
public var disabled: Bool = false
public var dataAnalyticsTrack: String?
public var dataClickStream: String?
public var dataTrack: String?
public var accessibilityHintEnabled: String?
public var accessibilityHintDisabled: String?
public var accessibilityValueEnabled: String?
public var accessibilityValueDisabled: String?
public var accessibilityLabelEnabled: String?
public var accessibilityLabelDisabled: String?
public init() { }
}