moved default values into setDefaults()
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
fc7650f7d9
commit
bf4ff94933
@ -104,6 +104,12 @@ open class SelectorBase: Control, SelectorControlable {
|
||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .button
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
|
||||
onClick = { control in
|
||||
control.toggle()
|
||||
@ -118,10 +124,6 @@ open class SelectorBase: Control, SelectorControlable {
|
||||
guard let self else { return "" }
|
||||
return !isEnabled ? "" : "Double tap to activate."
|
||||
}
|
||||
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .button
|
||||
|
||||
}
|
||||
|
||||
open override func updateView() {
|
||||
|
||||
@ -65,18 +65,8 @@ open class SelectorGroupBase<SelectorItemType: Groupable>: Control, SelectorGrou
|
||||
}
|
||||
|
||||
didSet {
|
||||
setItemsActions()
|
||||
for selector in items {
|
||||
selector.onClick = { [weak self] handler in
|
||||
self?.didSelect(handler)
|
||||
self?.setNeedsUpdate()
|
||||
}
|
||||
|
||||
selector.accessibilityAction = { [weak self] handler in
|
||||
guard let handler = handler as? SelectorItemType else { return }
|
||||
self?.didSelect(handler)
|
||||
self?.setNeedsUpdate()
|
||||
}
|
||||
|
||||
mainStackView.addArrangedSubview(selector)
|
||||
}
|
||||
}
|
||||
@ -84,6 +74,21 @@ open class SelectorGroupBase<SelectorItemType: Groupable>: Control, SelectorGrou
|
||||
|
||||
open var onChangeSubscriber: AnyCancellable?
|
||||
|
||||
private func setItemsActions() {
|
||||
for selector in items {
|
||||
selector.onClick = { [weak self] handler in
|
||||
self?.didSelect(handler)
|
||||
self?.setNeedsUpdate()
|
||||
}
|
||||
|
||||
selector.accessibilityAction = { [weak self] handler in
|
||||
guard let handler = handler as? SelectorItemType else { return }
|
||||
self?.didSelect(handler)
|
||||
self?.setNeedsUpdate()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Whether the Control is enabled or not.
|
||||
override open var isEnabled: Bool {
|
||||
didSet {
|
||||
@ -115,6 +120,11 @@ open class SelectorGroupBase<SelectorItemType: Groupable>: Control, SelectorGrou
|
||||
.pinBottom(0, .defaultHigh)
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
onChange = nil
|
||||
}
|
||||
|
||||
/// Handler for the Group to override on a select event.
|
||||
/// - Parameter selectedControl: Selected Control the user interacted.
|
||||
open func didSelect(_ selectedControl: SelectorItemType) {
|
||||
@ -131,8 +141,8 @@ open class SelectorGroupBase<SelectorItemType: Groupable>: Control, SelectorGrou
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
onChange = nil
|
||||
items.forEach{ $0.reset() }
|
||||
setItemsActions()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -162,6 +162,27 @@ open class SelectorItemBase<Selector: SelectorBase>: Control, Errorable, Changea
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
|
||||
selectorView.isAccessibilityElement = true
|
||||
isAccessibilityElement = false
|
||||
addSubview(mainStackView)
|
||||
|
||||
mainStackView.isUserInteractionEnabled = false
|
||||
mainStackView.addArrangedSubview(selectorStackView)
|
||||
mainStackView.addArrangedSubview(errorLabel)
|
||||
selectorStackView.addArrangedSubview(selectorView)
|
||||
selectorStackView.addArrangedSubview(selectorLabelStackView)
|
||||
selectorLabelStackView.addArrangedSubview(label)
|
||||
selectorLabelStackView.addArrangedSubview(childLabel)
|
||||
mainStackView
|
||||
.pinTop()
|
||||
.pinLeading()
|
||||
.pinTrailing()
|
||||
.pinBottom(0, .defaultHigh)
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
|
||||
onClick = { [weak self] control in
|
||||
guard let self, isEnabled else { return }
|
||||
toggle()
|
||||
@ -206,22 +227,22 @@ open class SelectorItemBase<Selector: SelectorBase>: Control, Errorable, Changea
|
||||
return !isEnabled ? "" : "Double tap to activate."
|
||||
}
|
||||
|
||||
selectorView.isAccessibilityElement = true
|
||||
isAccessibilityElement = false
|
||||
addSubview(mainStackView)
|
||||
label.textStyle = .boldBodyLarge
|
||||
childLabel.textStyle = .bodyLarge
|
||||
errorLabel.textStyle = .bodyMedium
|
||||
|
||||
mainStackView.isUserInteractionEnabled = false
|
||||
mainStackView.addArrangedSubview(selectorStackView)
|
||||
mainStackView.addArrangedSubview(errorLabel)
|
||||
selectorStackView.addArrangedSubview(selectorView)
|
||||
selectorStackView.addArrangedSubview(selectorLabelStackView)
|
||||
selectorLabelStackView.addArrangedSubview(label)
|
||||
selectorLabelStackView.addArrangedSubview(childLabel)
|
||||
mainStackView
|
||||
.pinTop()
|
||||
.pinLeading()
|
||||
.pinTrailing()
|
||||
.pinBottom(0, .defaultHigh)
|
||||
labelText = nil
|
||||
labelTextAttributes = nil
|
||||
labelAttributedText = nil
|
||||
childText = nil
|
||||
childTextAttributes = nil
|
||||
childAttributedText = nil
|
||||
showError = false
|
||||
errorText = nil
|
||||
inputId = nil
|
||||
isSelected = false
|
||||
|
||||
onChange = nil
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
@ -277,30 +298,10 @@ open class SelectorItemBase<Selector: SelectorBase>: Control, Errorable, Changea
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
label.reset()
|
||||
childLabel.reset()
|
||||
errorLabel.reset()
|
||||
|
||||
label.textStyle = .boldBodyLarge
|
||||
childLabel.textStyle = .bodyLarge
|
||||
errorLabel.textStyle = .bodyMedium
|
||||
|
||||
labelText = nil
|
||||
labelTextAttributes = nil
|
||||
labelAttributedText = nil
|
||||
childText = nil
|
||||
childTextAttributes = nil
|
||||
childAttributedText = nil
|
||||
showError = false
|
||||
errorText = nil
|
||||
inputId = nil
|
||||
isSelected = false
|
||||
|
||||
onChange = nil
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
super.reset()
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
|
||||
@ -149,25 +149,28 @@ open class Badge: View {
|
||||
maxWidthConstraint = label.widthLessThanEqualTo(constant: 0).with { $0.isActive = false }
|
||||
clipsToBounds = true
|
||||
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
|
||||
bridge_accessibilityLabelBlock = { [weak self] in
|
||||
guard let self else { return "" }
|
||||
return text
|
||||
}
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
label.reset()
|
||||
label.lineBreakMode = .byTruncatingTail
|
||||
label.textStyle = .boldBodySmall
|
||||
fillColor = .red
|
||||
text = ""
|
||||
maxWidth = nil
|
||||
numberOfLines = 1
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
label.reset()
|
||||
super.reset()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
|
||||
@ -305,17 +305,31 @@ open class BadgeIndicator: View {
|
||||
}
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
label.reset()
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
label.lineBreakMode = .byTruncatingTail
|
||||
label.textAlignment = .center
|
||||
fillColor = .red
|
||||
number = nil
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
kind = .simple
|
||||
leadingCharacter = nil
|
||||
trailingText = nil
|
||||
size = .xxlarge
|
||||
dotSize = nil
|
||||
verticalPadding = nil
|
||||
horizontalPadding = nil
|
||||
hideDot = false
|
||||
hideBorder = false
|
||||
width = nil
|
||||
height = nil
|
||||
accessibilityText = nil
|
||||
maximumDigits = .two
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
label.reset()
|
||||
super.reset()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
|
||||
@ -72,17 +72,15 @@ open class BreadcrumbItem: ButtonBase {
|
||||
//--------------------------------------------------
|
||||
// MARK: - Overrides
|
||||
//--------------------------------------------------
|
||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .link
|
||||
|
||||
titleLabel?.numberOfLines = 0
|
||||
titleLabel?.lineBreakMode = .byWordWrapping
|
||||
contentHorizontalAlignment = .left
|
||||
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .link
|
||||
|
||||
bridge_accessibilityHintBlock = { [weak self] in
|
||||
guard let self else { return "" }
|
||||
return !isEnabled ? "" : "Double tap to open."
|
||||
@ -131,17 +129,4 @@ open class BreadcrumbItem: ButtonBase {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
text = nil
|
||||
accessibilityCustomActions = []
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .button
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -120,10 +120,7 @@ open class Breadcrumbs: View {
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
breadcrumbs.forEach { $0.reset() }
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
|
||||
@ -224,15 +224,11 @@ open class Button: ButtonBase, Useable {
|
||||
accessibilityTraits = .button
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
use = .primary
|
||||
width = nil
|
||||
size = .large
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
|
||||
@ -167,15 +167,17 @@ open class ButtonGroup: View {
|
||||
collectionView.reloadData()
|
||||
}
|
||||
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
rowQuantityPhone = 0
|
||||
rowQuantityTablet = 0
|
||||
alignment = .center
|
||||
childWidth = nil
|
||||
}
|
||||
|
||||
open override func reset() {
|
||||
buttons.forEach { $0.reset() }
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
super.reset()
|
||||
}
|
||||
|
||||
open override func layoutSubviews() {
|
||||
|
||||
@ -91,11 +91,6 @@ open class TextLink: ButtonBase {
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .link
|
||||
|
||||
//left align titleLabel in case this is pinned leading/trailing
|
||||
//default is always set to center
|
||||
contentHorizontalAlignment = .left
|
||||
|
||||
if let titleLabel {
|
||||
addSubview(line)
|
||||
@ -106,12 +101,21 @@ open class TextLink: ButtonBase {
|
||||
lineHeightConstraint = line.height(constant: 1)
|
||||
lineHeightConstraint?.isActive = true
|
||||
}
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
size = .large
|
||||
accessibilityTraits = .link
|
||||
|
||||
//left align titleLabel in case this is pinned leading/trailing
|
||||
//default is always set to center
|
||||
contentHorizontalAlignment = .left
|
||||
|
||||
bridge_accessibilityHintBlock = { [weak self] in
|
||||
guard let self else { return "" }
|
||||
return !isEnabled ? "" : "Double tap to open."
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
@ -124,17 +128,4 @@ open class TextLink: ButtonBase {
|
||||
super.updateView()
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
text = nil
|
||||
size = .large
|
||||
accessibilityCustomActions = []
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .link
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -76,10 +76,8 @@ open class TextLinkCaret: ButtonBase {
|
||||
//--------------------------------------------------
|
||||
// MARK: - Overrides
|
||||
//--------------------------------------------------
|
||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
//left align titleLabel in case this is pinned leading/trailing
|
||||
//default is always set to center
|
||||
contentHorizontalAlignment = .left
|
||||
@ -88,11 +86,12 @@ open class TextLinkCaret: ButtonBase {
|
||||
titleLabel?.numberOfLines = 0
|
||||
titleLabel?.lineBreakMode = .byWordWrapping
|
||||
|
||||
iconPosition = .right
|
||||
|
||||
bridge_accessibilityHintBlock = { [weak self] in
|
||||
guard let self else { return "" }
|
||||
return !isEnabled ? "" : "Double tap to open."
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
@ -101,13 +100,6 @@ open class TextLinkCaret: ButtonBase {
|
||||
super.updateView()
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
iconPosition = .right
|
||||
text = nil
|
||||
}
|
||||
|
||||
/// The natural size for the receiving view, considering only properties of the view itself.
|
||||
open override var intrinsicContentSize: CGSize {
|
||||
guard let titleLabel else { return super.intrinsicContentSize }
|
||||
|
||||
@ -151,6 +151,19 @@ open class CalendarBase: Control, Changeable {
|
||||
collectionView.pinCenterX(anchor: containerView.centerXAnchor)
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
hideContainerBorder = false
|
||||
hideCurrentDateIndicator = false
|
||||
transparentBackground = false
|
||||
activeDates = []
|
||||
inactiveDates = []
|
||||
indicators = []
|
||||
minDate = Date()
|
||||
maxDate = Date()
|
||||
selectedDate = Date()
|
||||
}
|
||||
|
||||
open override func updateView() {
|
||||
super.updateView()
|
||||
// range check between min & max dates
|
||||
@ -171,17 +184,6 @@ open class CalendarBase: Control, Changeable {
|
||||
}
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
hideContainerBorder = false
|
||||
hideCurrentDateIndicator = false
|
||||
transparentBackground = false
|
||||
activeDates = []
|
||||
inactiveDates = []
|
||||
indicators = []
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Private Methods
|
||||
//--------------------------------------------------
|
||||
|
||||
@ -244,6 +244,18 @@ open class Carousel: View {
|
||||
updatePaginationInset()
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
gutter = UIDevice.isIPad ? .gutter6X : .gutter3X
|
||||
layout = UIDevice.isIPad ? .threeUP : .oneUP
|
||||
onChange = nil
|
||||
pagination = .init(kind: .lowContrast, floating: true)
|
||||
paginationDisplay = .none
|
||||
paginationInset = UIDevice.isIPad ? VDSLayout.space3X : VDSLayout.space2X
|
||||
peek = .standard
|
||||
groupIndex = 0
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
open override func updateView() {
|
||||
super.updateView()
|
||||
@ -275,18 +287,6 @@ open class Carousel: View {
|
||||
addCarouselSlots()
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
layout = UIDevice.isIPad ? .threeUP : .oneUP
|
||||
pagination = .init(kind: .lowContrast, floating: true)
|
||||
paginationDisplay = .none
|
||||
paginationInset = UIDevice.isIPad ? VDSLayout.space3X : VDSLayout.space2X
|
||||
gutter = UIDevice.isIPad ? .gutter6X : .gutter3X
|
||||
peek = .standard
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Private Methods
|
||||
//--------------------------------------------------
|
||||
|
||||
@ -174,6 +174,14 @@ open class DatePicker: EntryFieldBase {
|
||||
popoverOverlayView.isHidden = true
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
selectedDate = nil
|
||||
calendarModel = .init()
|
||||
dateFormat = .shortNumeric
|
||||
selectedDateLabel.textStyle = .bodyLarge
|
||||
}
|
||||
|
||||
open override func getFieldContainer() -> UIView {
|
||||
// stackview for controls in EntryFieldBase.controlContainerView
|
||||
let controlStackView = UIStackView().with {
|
||||
@ -200,12 +208,6 @@ open class DatePicker: EntryFieldBase {
|
||||
calendarIcon.color = iconColorConfiguration.getColor(self)
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
selectedDateLabel.textStyle = .bodyLarge
|
||||
}
|
||||
|
||||
internal func formatDate(_ date: Date) {
|
||||
let formatter = DateFormatter()
|
||||
formatter.dateFormat = dateFormat.format
|
||||
|
||||
@ -162,6 +162,17 @@ open class DropdownSelect: EntryFieldBase {
|
||||
containerView.height(44)
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
showInlineLabel = false
|
||||
selectId = nil
|
||||
inlineDisplayLabel.textStyle = .boldBodyLarge
|
||||
selectedOptionLabel.textStyle = .bodyLarge
|
||||
showInlineLabel = false
|
||||
options = []
|
||||
selectId = nil
|
||||
}
|
||||
|
||||
open override func getFieldContainer() -> UIView {
|
||||
let controlStackView = UIStackView().with {
|
||||
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||
@ -189,17 +200,6 @@ open class DropdownSelect: EntryFieldBase {
|
||||
selectedOptionLabel.isEnabled = isEnabled
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
|
||||
inlineDisplayLabel.textStyle = .boldBodyLarge
|
||||
selectedOptionLabel.textStyle = .bodyLarge
|
||||
showInlineLabel = false
|
||||
options = []
|
||||
selectId = nil
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Public Methods
|
||||
//--------------------------------------------------
|
||||
|
||||
@ -413,6 +413,27 @@ open class ButtonIcon: Control, Changeable {
|
||||
.store(in: &subscribers)
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
badgeIndicatorModel = nil
|
||||
kind = .ghost
|
||||
surfaceType = .colorFill
|
||||
iconName = nil
|
||||
selectedIconName = nil
|
||||
selectedIconColorConfiguration = nil
|
||||
size = .large
|
||||
floating = false
|
||||
fitToIcon = false
|
||||
hideBorder = true
|
||||
showBadgeIndicator = false
|
||||
selectable = false
|
||||
iconOffset = .init(x: 0, y: 0)
|
||||
customContainerSize = nil
|
||||
customIconSize = nil
|
||||
customBadgeIndicatorOffset = nil
|
||||
onChange = nil
|
||||
}
|
||||
|
||||
/// This will change the state of the Selector and execute the actionBlock if provided.
|
||||
open func toggle() {
|
||||
//removed error
|
||||
@ -420,26 +441,6 @@ open class ButtonIcon: Control, Changeable {
|
||||
sendActions(for: .valueChanged)
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
kind = .ghost
|
||||
surfaceType = .colorFill
|
||||
size = .large
|
||||
floating = false
|
||||
hideBorder = true
|
||||
iconOffset = .init(x: 0, y: 0)
|
||||
iconName = nil
|
||||
selectedIconName = nil
|
||||
showBadgeIndicator = false
|
||||
selectable = false
|
||||
badgeIndicatorModel = nil
|
||||
onChange = nil
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
open override func updateView() {
|
||||
super.updateView()
|
||||
|
||||
@ -91,21 +91,28 @@ open class Icon: View {
|
||||
addSubview(imageView)
|
||||
imageView.pinToSuperView()
|
||||
|
||||
backgroundColor = .clear
|
||||
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .none
|
||||
accessibilityHint = "image"
|
||||
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
backgroundColor = .clear
|
||||
color = VDSColor.paletteBlack
|
||||
size = .medium
|
||||
name = nil
|
||||
customSize = nil
|
||||
imageView.image = nil
|
||||
|
||||
accessibilityHint = "image"
|
||||
bridge_accessibilityLabelBlock = { [weak self] in
|
||||
guard let self else { return "" }
|
||||
return name?.rawValue ?? "icon"
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
open override func updateView() {
|
||||
super.updateView()
|
||||
@ -123,12 +130,6 @@ open class Icon: View {
|
||||
invalidateIntrinsicContentSize()
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
color = VDSColor.paletteBlack
|
||||
imageView.image = nil
|
||||
}
|
||||
}
|
||||
|
||||
extension UIImage {
|
||||
|
||||
@ -81,11 +81,6 @@ open class Line: View {
|
||||
//--------------------------------------------------
|
||||
// MARK: - Overrides
|
||||
//--------------------------------------------------
|
||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
open override func updateView() {
|
||||
super.updateView()
|
||||
@ -94,8 +89,8 @@ open class Line: View {
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
style = .primary
|
||||
orientation = .horizontal
|
||||
}
|
||||
|
||||
@ -274,20 +274,13 @@ open class Notification: View {
|
||||
}
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
|
||||
shouldUpdateView = false
|
||||
|
||||
titleLabel.reset()
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
titleLabel.text = ""
|
||||
titleLabel.textStyle = UIDevice.isIPad ? .boldBodyLarge : .boldBodySmall
|
||||
|
||||
subTitleLabel.reset()
|
||||
subTitleLabel.textStyle = UIDevice.isIPad ? .bodyLarge : .bodySmall
|
||||
|
||||
buttonGroup.reset()
|
||||
buttonGroup.alignment = .left
|
||||
|
||||
primaryButtonModel = nil
|
||||
@ -303,8 +296,14 @@ open class Notification: View {
|
||||
|
||||
hideCloseButton = false
|
||||
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
titleLabel.reset()
|
||||
subTitleLabel.reset()
|
||||
buttonGroup.reset()
|
||||
super.reset()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
|
||||
@ -169,6 +169,31 @@ open class RadioBoxItem: Control, Changeable, FormFieldable, Groupable {
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
|
||||
isAccessibilityElement = false
|
||||
selectorView.isAccessibilityElement = true
|
||||
selectorView.accessibilityTraits = .button
|
||||
addSubview(selectorView)
|
||||
selectorView.isUserInteractionEnabled = false
|
||||
|
||||
selectorView.addSubview(selectorStackView)
|
||||
|
||||
selectorStackView.addArrangedSubview(selectorLeftLabelStackView)
|
||||
selectorStackView.addArrangedSubview(subTextRightLabel)
|
||||
selectorLeftLabelStackView.addArrangedSubview(textLabel)
|
||||
selectorLeftLabelStackView.addArrangedSubview(subTextLabel)
|
||||
|
||||
selectorView
|
||||
.pinTop()
|
||||
.pinLeading()
|
||||
.pinTrailing(0, .defaultHigh)
|
||||
.pinBottom(0, .defaultHigh)
|
||||
|
||||
selectorStackView.pinToSuperView(.uniform(VDSLayout.space3X))
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
|
||||
onClick = { [weak self] _ in
|
||||
guard let self, isEnabled else { return }
|
||||
toggle()
|
||||
@ -207,36 +232,6 @@ open class RadioBoxItem: Control, Changeable, FormFieldable, Groupable {
|
||||
return accessibilityLabels.joined(separator: ", ")
|
||||
}
|
||||
|
||||
isAccessibilityElement = false
|
||||
selectorView.isAccessibilityElement = true
|
||||
selectorView.accessibilityTraits = .button
|
||||
addSubview(selectorView)
|
||||
selectorView.isUserInteractionEnabled = false
|
||||
|
||||
selectorView.addSubview(selectorStackView)
|
||||
|
||||
selectorStackView.addArrangedSubview(selectorLeftLabelStackView)
|
||||
selectorStackView.addArrangedSubview(subTextRightLabel)
|
||||
selectorLeftLabelStackView.addArrangedSubview(textLabel)
|
||||
selectorLeftLabelStackView.addArrangedSubview(subTextLabel)
|
||||
|
||||
selectorView
|
||||
.pinTop()
|
||||
.pinLeading()
|
||||
.pinTrailing(0, .defaultHigh)
|
||||
.pinBottom(0, .defaultHigh)
|
||||
|
||||
selectorStackView.pinToSuperView(.uniform(VDSLayout.space3X))
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
textLabel.reset()
|
||||
subTextLabel.reset()
|
||||
subTextRightLabel.reset()
|
||||
|
||||
textLabel.textStyle = .boldBodyLarge
|
||||
subTextLabel.textStyle = .bodyLarge
|
||||
subTextRightLabel.textStyle = .bodyLarge
|
||||
@ -256,9 +251,14 @@ open class RadioBoxItem: Control, Changeable, FormFieldable, Groupable {
|
||||
|
||||
isSelected = false
|
||||
onChange = nil
|
||||
}
|
||||
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
textLabel.reset()
|
||||
subTextLabel.reset()
|
||||
subTextRightLabel.reset()
|
||||
super.reset()
|
||||
}
|
||||
|
||||
/// This will change the state of the Selector and execute the actionBlock if provided.
|
||||
|
||||
@ -77,12 +77,13 @@ open class RadioButtonGroup: SelectorGroupBase<RadioButtonItem>, SelectorGroupSi
|
||||
}
|
||||
}
|
||||
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
inputId = nil
|
||||
showError = false
|
||||
}
|
||||
|
||||
public override func didSelect(_ selectedControl: RadioButtonItem) {
|
||||
open override func didSelect(_ selectedControl: RadioButtonItem) {
|
||||
if let selectedItem {
|
||||
updateToggle(selectedItem)
|
||||
}
|
||||
|
||||
@ -109,16 +109,14 @@ open class Table: View {
|
||||
matrixView.collectionViewLayout.invalidateLayout()
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
striped = false
|
||||
padding = .standard
|
||||
tableHeader = []
|
||||
tableRows = []
|
||||
fillContainer = true
|
||||
columnWidths = nil
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
func calculateColumnWidths() -> [CGFloat] {
|
||||
|
||||
@ -222,9 +222,10 @@ open class Tabs: View {
|
||||
updateContentView()
|
||||
}
|
||||
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
onTabDidSelect = nil
|
||||
onTabShouldSelect = nil
|
||||
orientation = .horizontal
|
||||
borderLine = true
|
||||
fillContainer = false
|
||||
@ -235,9 +236,7 @@ open class Tabs: View {
|
||||
selectedIndex = 0
|
||||
size = .medium
|
||||
sticky = false
|
||||
tabViews.forEach{ $0.reset() }
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
tabModels = []
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
|
||||
@ -316,6 +316,41 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
|
||||
errorLabel.textColorConfiguration = primaryColorConfiguration.eraseToAnyColorable()
|
||||
helperLabel.textColorConfiguration = secondaryColorConfiguration.eraseToAnyColorable()
|
||||
|
||||
}
|
||||
|
||||
/// Updates the UI
|
||||
open override func updateView() {
|
||||
super.updateView()
|
||||
updateRules()
|
||||
updateContainerView()
|
||||
updateContainerWidth()
|
||||
updateTitleLabel()
|
||||
updateErrorLabel()
|
||||
updateHelperLabel()
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
|
||||
titleLabel.textStyle = .bodySmall
|
||||
errorLabel.textStyle = .bodySmall
|
||||
helperLabel.textStyle = .bodySmall
|
||||
|
||||
labelText = nil
|
||||
helperText = nil
|
||||
showError = false
|
||||
errorText = nil
|
||||
tooltipModel = nil
|
||||
transparentBackground = false
|
||||
width = nil
|
||||
inputId = nil
|
||||
defaultValue = nil
|
||||
isRequired = false
|
||||
isReadOnly = false
|
||||
helperTextPlacement = .bottom
|
||||
rules = []
|
||||
onChange = nil
|
||||
|
||||
containerView.bridge_accessibilityLabelBlock = { [weak self] in
|
||||
guard let self else { return "" }
|
||||
var accessibilityLabels = [String]()
|
||||
@ -350,42 +385,15 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
|
||||
guard let self else { return "" }
|
||||
return showError || hasInternalError ? "error" : nil
|
||||
}
|
||||
}
|
||||
|
||||
/// Updates the UI
|
||||
open override func updateView() {
|
||||
super.updateView()
|
||||
updateRules()
|
||||
updateContainerView()
|
||||
updateContainerWidth()
|
||||
updateTitleLabel()
|
||||
updateErrorLabel()
|
||||
updateHelperLabel()
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
titleLabel.reset()
|
||||
errorLabel.reset()
|
||||
helperLabel.reset()
|
||||
|
||||
titleLabel.textStyle = .bodySmall
|
||||
errorLabel.textStyle = .bodySmall
|
||||
helperLabel.textStyle = .bodySmall
|
||||
|
||||
labelText = nil
|
||||
helperText = nil
|
||||
showError = false
|
||||
errorText = nil
|
||||
tooltipModel = nil
|
||||
transparentBackground = false
|
||||
width = nil
|
||||
inputId = nil
|
||||
defaultValue = nil
|
||||
isRequired = false
|
||||
isReadOnly = false
|
||||
onChange = nil
|
||||
super.reset()
|
||||
}
|
||||
|
||||
open override var canBecomeFirstResponder: Bool {
|
||||
|
||||
@ -205,6 +205,22 @@ open class InputField: EntryFieldBase {
|
||||
|
||||
textField.textColorConfiguration = textFieldTextColorConfiguration
|
||||
|
||||
}
|
||||
|
||||
open override func getFieldContainer() -> UIView {
|
||||
return textField
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
textField.text = ""
|
||||
|
||||
successLabel.textStyle = .bodySmall
|
||||
|
||||
fieldType = .text
|
||||
showSuccess = false
|
||||
successText = nil
|
||||
|
||||
containerView.bridge_accessibilityLabelBlock = { [weak self] in
|
||||
guard let self else { return "" }
|
||||
var accessibilityLabels = [String]()
|
||||
@ -259,22 +275,10 @@ open class InputField: EntryFieldBase {
|
||||
}
|
||||
}
|
||||
|
||||
open override func getFieldContainer() -> UIView {
|
||||
return textField
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
textField.text = ""
|
||||
|
||||
successLabel.reset()
|
||||
successLabel.textStyle = .bodySmall
|
||||
|
||||
fieldType = .text
|
||||
showSuccess = false
|
||||
successText = nil
|
||||
helperTextPlacement = .bottom
|
||||
super.reset()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
|
||||
@ -167,13 +167,18 @@ open class TextArea: EntryFieldBase {
|
||||
|
||||
}
|
||||
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
minHeight = .twoX
|
||||
maxLength = nil
|
||||
textView.text = ""
|
||||
characterCounterLabel.textStyle = .bodySmall
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
textView.text = ""
|
||||
characterCounterLabel.reset()
|
||||
characterCounterLabel.textStyle = .bodySmall
|
||||
setNeedsUpdate()
|
||||
super.reset()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
|
||||
@ -279,19 +279,18 @@ open class TileContainerBase<PaddingType: DefaultValuing>: Control where Padding
|
||||
return view
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
backgroundImage = nil
|
||||
color = .white
|
||||
aspectRatio = .none
|
||||
backgroundEffect = .none
|
||||
padding = .defaultValue
|
||||
aspectRatio = .ratio1x1
|
||||
imageFallbackColor = .light
|
||||
width = nil
|
||||
height = nil
|
||||
showBorder = false
|
||||
showDropShadow = false
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
|
||||
@ -390,20 +390,19 @@ open class Tilelet: TileContainerBase<Tilelet.Padding> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
shouldUpdateView = false
|
||||
super.reset()
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
aspectRatio = .none
|
||||
color = .black
|
||||
textWidth = nil
|
||||
textPostion = .top
|
||||
|
||||
//models
|
||||
badgeModel = nil
|
||||
titleModel = nil
|
||||
subTitleModel = nil
|
||||
descriptiveIconModel = nil
|
||||
directionalIconModel = nil
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
|
||||
@ -280,15 +280,12 @@ open class TitleLockup: View {
|
||||
set {}
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
textAlignment = .left
|
||||
eyebrowModel = nil
|
||||
titleModel = nil
|
||||
subTitleModel = nil
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
|
||||
var labelViews = [UIView]()
|
||||
|
||||
@ -159,19 +159,17 @@ open class Tooltip: Control, TooltipLaunchable {
|
||||
}
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
size = .medium
|
||||
title = ""
|
||||
content = ""
|
||||
fillColor = .primary
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
closeButtonText = "Close"
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
fillColor = .primary
|
||||
size = .medium
|
||||
title = nil
|
||||
content = nil
|
||||
contentView = nil
|
||||
}
|
||||
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
open override func updateView() {
|
||||
super.updateView()
|
||||
|
||||
@ -84,17 +84,13 @@ open class TrailingTooltipLabel: View, TooltipLaunchable {
|
||||
}
|
||||
}
|
||||
|
||||
/// Resets to default settings.
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
shouldUpdateView = false
|
||||
open override func setDefaults() {
|
||||
super.setDefaults()
|
||||
labelText = nil
|
||||
labelAttributes = nil
|
||||
labelTextStyle = .defaultStyle
|
||||
labelTextAlignment = .left
|
||||
tooltipModel = nil
|
||||
shouldUpdateView = true
|
||||
setNeedsUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user