Digital ACT-191 ONEAPP-9314 story: added public properties
This commit is contained in:
parent
0158d2f5db
commit
815024cc5c
@ -31,25 +31,96 @@ open class PriceLockup: View {
|
|||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Enums
|
// MARK: - Enums
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
/// Enum used to describe the kind of PriceLockup.
|
||||||
|
public enum Kind: String, CaseIterable {
|
||||||
|
case primary, secondary, savings
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Enum used to describe the term of PriceLockup.
|
||||||
|
public enum Term: String, CaseIterable {
|
||||||
|
case month, year, biennial, none
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Enum type describing size of PriceLockup.
|
||||||
|
public enum Size: String, CaseIterable {
|
||||||
|
case xxxsmall
|
||||||
|
case xxsmall
|
||||||
|
case xsmall
|
||||||
|
case small
|
||||||
|
case medium
|
||||||
|
case large
|
||||||
|
case xlarge
|
||||||
|
case xxlarge
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Public Properties
|
// MARK: - Public Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
/// If true, the component will render as bold.
|
||||||
|
open var bold: Bool = false { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// Currency - If hideCurrency true, the component will render without currency.
|
||||||
|
open var hideCurrency: Bool = false { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// Leading text for the component.
|
||||||
|
open var leadingText: String? { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// Value rendered for the component.
|
||||||
|
open var price: CGFloat? { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// Color to the component. The default kind is primary.
|
||||||
|
open var kind: Kind = .primary { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// Size of the component. It varies by size and viewport(mobile/Tablet).
|
||||||
|
/// The default size is medium with viewport mobile.
|
||||||
|
open var size: Size = .medium { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// If true, the component with a strikethrough. It applies only when uniformSize is true.
|
||||||
|
/// Does not apply a strikethrough format to leading and trailing text.
|
||||||
|
open var strikethrough: Bool = false { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// Term text for the component. Superscript placement can vary when term and delimeter are "none".
|
||||||
|
/// The default term is 'month'.
|
||||||
|
open var term: Term = .month { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// Trailing text for the component.
|
||||||
|
open var trailingText: String? { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// Superscript text for the component.
|
||||||
|
open var superscript: String? { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
/// If true, currency and value have the same font text style as delimeter, term label and superscript.
|
||||||
|
/// This will render the pricing and term sections as a uniform size.
|
||||||
|
open var uniformSize: Bool = false { didSet { setNeedsUpdate() } }
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Private Properties
|
// MARK: - Private Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
internal var containerView = View().with {
|
||||||
|
$0.clipsToBounds = true
|
||||||
|
}
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Configuration Properties
|
// MARK: - Configuration Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
internal var containerSize: CGSize { CGSize(width: 45, height: 44) }
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Overrides
|
// MARK: - Overrides
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||||
open override func setup() {
|
open override func setup() {
|
||||||
super.setup()
|
super.setup()
|
||||||
|
addSubview(containerView)
|
||||||
|
containerView
|
||||||
|
.pinTop()
|
||||||
|
.pinBottom()
|
||||||
|
.pinLeadingGreaterThanOrEqualTo()
|
||||||
|
.pinTrailingLessThanOrEqualTo()
|
||||||
|
.height(containerSize.height)
|
||||||
|
|
||||||
|
containerView.centerXAnchor.constraint(equalTo: centerXAnchor).activate()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Used to make changes to the View based off a change events or from local properties.
|
/// Used to make changes to the View based off a change events or from local properties.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user