added AnyEquality to classes that have an a property with 'any' added default implementation on shouldUpdateView() to check equality, this can be re-implemented in classes removed all shouldUpdateView methods everywhere since above was done Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
41 lines
1.2 KiB
Swift
41 lines
1.2 KiB
Swift
//
|
|
// VDSLabelModel.swift
|
|
// VDS
|
|
//
|
|
// Created by Matt Bruce on 7/28/22.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
|
|
public protocol LabelModel: Modelable, Labelable, Equatable, AnyEquatable {
|
|
var text: String? { get set }
|
|
var attributes: [any LabelAttributeModel]? { get set }
|
|
}
|
|
|
|
public struct DefaultLabelModel: LabelModel {
|
|
public static func == (lhs: DefaultLabelModel, rhs: DefaultLabelModel) -> Bool {
|
|
lhs.isEqual(rhs)
|
|
}
|
|
|
|
public func isEqual(_ equatable: DefaultLabelModel) -> Bool {
|
|
return id == equatable.id
|
|
&& attributes == equatable.attributes
|
|
&& text == equatable.text
|
|
&& surface == equatable.surface
|
|
&& typograpicalStyle == equatable.typograpicalStyle
|
|
&& textPosition == equatable.textPosition
|
|
&& surface == equatable.surface
|
|
&& disabled == equatable.disabled
|
|
}
|
|
|
|
public var id = UUID()
|
|
public var text: String?
|
|
public var attributes: [any LabelAttributeModel]?
|
|
public var typograpicalStyle: TypographicalStyle = .BodySmall
|
|
public var textPosition: TextPosition = .left
|
|
public var surface: Surface = .light
|
|
public var disabled: Bool = false
|
|
public init(){}
|
|
}
|