Merge branch 'develop' of https://gitlab.verizon.com/BPHV_MIPS/vds_ios into vasavk/carousel
This commit is contained in:
commit
8a8bb73da3
@ -279,7 +279,7 @@ open class DropdownSelect: EntryFieldBase {
|
||||
open override func updateAccessibility() {
|
||||
super.updateAccessibility()
|
||||
fieldStackView.accessibilityLabel = "Dropdown Select, \(accessibilityLabelText)"
|
||||
fieldStackView.accessibilityHint = isReadOnly || !isEnabled ? "" : "Double tap to open."
|
||||
fieldStackView.accessibilityHint = isReadOnly || !isEnabled ? "" : "has popup, Double tap to open."
|
||||
fieldStackView.accessibilityValue = value
|
||||
}
|
||||
|
||||
|
||||
@ -143,10 +143,7 @@ open class ButtonIcon: Control, Changeable {
|
||||
|
||||
/// Sets the size of button icon and icon.
|
||||
open var size: Size = .large { didSet { setNeedsUpdate() } }
|
||||
|
||||
/// Sets the size of button icon and icon.
|
||||
open var customSize: Int? { didSet { setNeedsUpdate() } }
|
||||
|
||||
|
||||
/// If provided, the button icon will have a box shadow.
|
||||
open var floating: Bool = false { didSet { setNeedsUpdate() } }
|
||||
|
||||
@ -169,10 +166,20 @@ open class ButtonIcon: Control, Changeable {
|
||||
setNeedsUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// Used to move the icon inside the button in both x and y axis.
|
||||
open var iconOffset: CGPoint = .init(x: 0, y: 0) { didSet { setNeedsUpdate() } }
|
||||
|
||||
|
||||
/// Sets a custom size of button icon container.
|
||||
open var customContainerSize: Int? { didSet { setNeedsUpdate() } }
|
||||
|
||||
/// Sets a custom size of the icon.
|
||||
open var customIconSize: Int? { didSet { setNeedsUpdate() } }
|
||||
|
||||
/// Sets a custom badgeIndicator offset
|
||||
open var customBadgeIndicatorOffset: CGPoint? { didSet { setNeedsUpdate() } }
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Configuration
|
||||
//--------------------------------------------------
|
||||
@ -444,8 +451,11 @@ open class ButtonIcon: Control, Changeable {
|
||||
icon.name = currentIconName
|
||||
let color = iconColorConfiguration.getColor(self)
|
||||
icon.color = color
|
||||
icon.size = iconSize
|
||||
icon.customSize = customSize
|
||||
if let customIconSize {
|
||||
icon.customSize = customIconSize
|
||||
} else {
|
||||
icon.size = iconSize
|
||||
}
|
||||
icon.isEnabled = isEnabled
|
||||
} else {
|
||||
icon.reset()
|
||||
@ -480,8 +490,8 @@ open class ButtonIcon: Control, Changeable {
|
||||
|
||||
//updating current container size
|
||||
var iconLayoutSize = size.containerSize
|
||||
if let customSize {
|
||||
iconLayoutSize = CGFloat(customSize)
|
||||
if let customContainerSize {
|
||||
iconLayoutSize = CGFloat(customContainerSize)
|
||||
}
|
||||
// check to see if this is fitToIcon
|
||||
if fitToIcon && kind == .ghost {
|
||||
@ -503,10 +513,11 @@ open class ButtonIcon: Control, Changeable {
|
||||
layer.borderWidth = 0
|
||||
}
|
||||
|
||||
badgeIndicatorCenterXConstraint?.constant = badgeIndicatorOffset.x + badgeIndicatorDefaultSize.width/2
|
||||
badgeIndicatorCenterYConstraint?.constant = badgeIndicatorOffset.y + badgeIndicatorDefaultSize.height/2
|
||||
badgeIndicatorLeadingConstraint?.constant = badgeIndicatorOffset.x
|
||||
badgeIndicatorTrailingConstraint?.constant = badgeIndicatorOffset.x + badgeIndicatorDefaultSize.width
|
||||
let offSet = customBadgeIndicatorOffset ?? badgeIndicatorOffset
|
||||
badgeIndicatorCenterXConstraint?.constant = offSet.x + badgeIndicatorDefaultSize.width/2
|
||||
badgeIndicatorCenterYConstraint?.constant = offSet.y + badgeIndicatorDefaultSize.height/2
|
||||
badgeIndicatorLeadingConstraint?.constant = offSet.x
|
||||
badgeIndicatorTrailingConstraint?.constant = offSet.x + badgeIndicatorDefaultSize.width
|
||||
|
||||
if showBadgeIndicator {
|
||||
updateExpandDirectionalConstraints()
|
||||
|
||||
@ -204,7 +204,7 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
|
||||
}.store(in: &subscribers)
|
||||
backgroundColor = .clear
|
||||
numberOfLines = 0
|
||||
lineBreakMode = .byWordWrapping
|
||||
lineBreakMode = .byTruncatingTail
|
||||
translatesAutoresizingMaskIntoConstraints = false
|
||||
accessibilityCustomActions = []
|
||||
isAccessibilityElement = true
|
||||
|
||||
@ -216,9 +216,12 @@ extension InputField {
|
||||
return false
|
||||
}
|
||||
|
||||
// Set the value to the rawNumber, if you don't the onChange will trigger
|
||||
value = rawNumber
|
||||
|
||||
// Set the formatted text
|
||||
textField.text = formattedNumber
|
||||
|
||||
|
||||
// Calculate the new cursor position
|
||||
if let newPosition = textField.cursorPosition(range: range,
|
||||
replacementString: string,
|
||||
@ -227,9 +230,6 @@ extension InputField {
|
||||
textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
|
||||
}
|
||||
|
||||
// if all passes, then set the number1
|
||||
value = rawNumber
|
||||
|
||||
// Prevent the default behavior
|
||||
return false
|
||||
}
|
||||
@ -252,11 +252,20 @@ extension InputField {
|
||||
internal func maskCreditCardNumber(_ cardType: CreditCardType, number: String) -> String {
|
||||
// Mask the first 12 characters if the length is 16
|
||||
let rawNumber = number.filter { $0.isNumber }
|
||||
guard rawNumber.count == cardType.maxLength else { return formatCreditCardNumber(cardType, number: number) }
|
||||
let count = rawNumber.count
|
||||
let min = cardType.minLength
|
||||
let max = cardType.maxLength
|
||||
var shouldFormat: Bool = false
|
||||
if min == max {
|
||||
shouldFormat = true
|
||||
} else {
|
||||
shouldFormat = count >= min && count <= max
|
||||
}
|
||||
guard shouldFormat else { return formatCreditCardNumber(cardType, number: number) }
|
||||
let lastFourDigits = rawNumber.suffix(4)
|
||||
let maskedSection = String(repeating: "•", count: 12)
|
||||
let formattedMaskSection = String.format(maskedSection, indices: cardType.separatorIndices(rawNumber.count), with: " ")
|
||||
return formattedMaskSection + " " + lastFourDigits
|
||||
let maskedSection = String(repeating: "•", count: number.count - lastFourDigits.count)
|
||||
let formattedMaskSection = String.format(maskedSection + lastFourDigits, indices: cardType.separatorIndices(rawNumber.count), with: " ")
|
||||
return formattedMaskSection
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,19 +1,29 @@
|
||||
1.0.67
|
||||
----------------
|
||||
- CXTDT-553663 - DropdownSelect - Accessibility - has popup
|
||||
|
||||
1.0.66
|
||||
----------------
|
||||
- ONEAPP-6325 - Table - Development finished
|
||||
- CXTDT-565087 - InputField - Text - OnDark colors
|
||||
- CXTDT-565112 - InputField - Credit Card icons
|
||||
- CXTDT-565117 - InputField - Overflow not clipped
|
||||
- CXTDT-565105 - InputField - Date - Typeover text not working
|
||||
- CXTDT-565115 - InputField - CreditCard - China UnionPay does not allow longer numbers
|
||||
- CXTDT-560823 – TextArea – Accessibility Labels/Error/ReadyOnly/Disabled
|
||||
- CXTDT-553663 - DropdownSelect – Accessibility
|
||||
- CXTDT-544662 - Breadcrumbs - Text Wrapping
|
||||
- CXTDT-568398 - Calendar - Saturday missing (on smaller screen size devices)
|
||||
- CXTDT-568402 - Calendar - Extra row (on smaller screen size devices)
|
||||
- CXTDT-568409 - Calendar - Width control missing
|
||||
- CXTDT-568419 - Calendar - When hideContainerBorder=true, corner radius disappears
|
||||
- CXTDT-568413 - Calendar - Missing option for Transparent Background
|
||||
- CXTDT-553663 - DropdownSelect – Accessibility
|
||||
- CXTDT-565796 - DropdownSelect – Accessibility
|
||||
- CXTDT-560458 - DropdownSelect - Accessibility
|
||||
- CXTDT-565087 - InputField - Text - OnDark colors
|
||||
- CXTDT-565112 - InputField - Credit Card icons
|
||||
- CXTDT-565117 - InputField - Overflow not clipped
|
||||
- CXTDT-565105 - InputField - Date - Typeover text not working
|
||||
- CXTDT-565106 - InputField - CreditCard - Incorrect generic card icon color
|
||||
- CXTDT-565115 - InputField - CreditCard - China UnionPay does not allow longer numbers
|
||||
- CXTDT-560823 – TextArea – Accessibility Labels/Error/ReadyOnly/Disabled
|
||||
- CXTDT-552060 - TextArea - Placeholder text
|
||||
- CXTDT-565164 – TileContainer – Voiceover reads extra text “Accessible”
|
||||
- CXTDT-552834 – TileContainer – Voice over is not rendering the information present within the tile container when it receives focus in clickable state.
|
||||
|
||||
1.0.65
|
||||
----------------
|
||||
|
||||
Loading…
Reference in New Issue
Block a user