added label computer var off of toggle Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
66 lines
1.8 KiB
Swift
66 lines
1.8 KiB
Swift
//
|
|
// ToggleModel.swift
|
|
// VDS
|
|
//
|
|
// Created by Matt Bruce on 7/22/22.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
|
|
extension VDSToggle {
|
|
public enum TextPosition: String, Codable {
|
|
case left, right
|
|
}
|
|
}
|
|
|
|
public protocol VDSToggleModel: 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 VDSToggleModel {
|
|
public var fontCategory: VDSFontCategory {
|
|
get { return .body }
|
|
set { return }
|
|
}
|
|
|
|
public var label: VDSLabelModel {
|
|
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 class DefaultToggleModel: DefaultLabelModel, VDSToggleModel {
|
|
public var id: String?
|
|
public var inputId: String?
|
|
public var showText: Bool = false
|
|
public var on: Bool = false
|
|
public var offText: String = "Off"
|
|
public var onText: String = "On"
|
|
public var value: AnyHashable? = true
|
|
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 required init() {
|
|
super.init()
|
|
}
|
|
}
|