more code refactoring
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
a71e391050
commit
bef02f6b38
@ -9,6 +9,7 @@ import Foundation
|
|||||||
import UIKit
|
import UIKit
|
||||||
|
|
||||||
extension InputField {
|
extension InputField {
|
||||||
|
|
||||||
enum CreditCardType: CaseIterable {
|
enum CreditCardType: CaseIterable {
|
||||||
case generic
|
case generic
|
||||||
case visa
|
case visa
|
||||||
@ -19,10 +20,6 @@ extension InputField {
|
|||||||
case jcb
|
case jcb
|
||||||
case chinaUnionPay
|
case chinaUnionPay
|
||||||
|
|
||||||
var image: UIImage {
|
|
||||||
return BundleManager.shared.image(for: imageName)!
|
|
||||||
}
|
|
||||||
|
|
||||||
var imageName: String {
|
var imageName: String {
|
||||||
var imageName: String = "generic"
|
var imageName: String = "generic"
|
||||||
switch self {
|
switch self {
|
||||||
@ -192,4 +189,5 @@ extension InputField {
|
|||||||
return formattedMaskSection + " " + lastFourDigits
|
return formattedMaskSection + " " + lastFourDigits
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,44 @@ import UIKit
|
|||||||
|
|
||||||
extension InputField {
|
extension InputField {
|
||||||
|
|
||||||
|
public enum DateFormat: String, CaseIterable {
|
||||||
|
case mmyy
|
||||||
|
case mmddyy
|
||||||
|
case mmddyyyy
|
||||||
|
|
||||||
|
public var placeholderText: String {
|
||||||
|
switch self {
|
||||||
|
case .mmyy: "MM/YY"
|
||||||
|
case .mmddyy: "MM/DD/YY"
|
||||||
|
case .mmddyyyy: "MM/DD/YYYY"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public var formatString: String {
|
||||||
|
switch self {
|
||||||
|
case .mmyy: "MM/yy"
|
||||||
|
case .mmddyy: "MM/dd/yy"
|
||||||
|
case .mmddyyyy: "MM/dd/yyyy"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public var maxLength: Int {
|
||||||
|
switch self {
|
||||||
|
case .mmyy: 5
|
||||||
|
case .mmddyy: 8
|
||||||
|
case .mmddyyyy: 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal var separatorIndices: [Int] {
|
||||||
|
switch self {
|
||||||
|
case .mmyy: [2]
|
||||||
|
case .mmddyy: [2,4]
|
||||||
|
case .mmddyyyy: [2,4]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class DateHandler: FieldTypeHandler {
|
class DateHandler: FieldTypeHandler {
|
||||||
static let shared = DateHandler()
|
static let shared = DateHandler()
|
||||||
|
|
||||||
@ -58,42 +96,4 @@ extension InputField {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum DateFormat: String, CaseIterable {
|
|
||||||
case mmyy
|
|
||||||
case mmddyy
|
|
||||||
case mmddyyyy
|
|
||||||
|
|
||||||
public var placeholderText: String {
|
|
||||||
switch self {
|
|
||||||
case .mmyy: "MM/YY"
|
|
||||||
case .mmddyy: "MM/DD/YY"
|
|
||||||
case .mmddyyyy: "MM/DD/YYYY"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public var formatString: String {
|
|
||||||
switch self {
|
|
||||||
case .mmyy: "MM/yy"
|
|
||||||
case .mmddyy: "MM/dd/yy"
|
|
||||||
case .mmddyyyy: "MM/dd/yyyy"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public var maxLength: Int {
|
|
||||||
switch self {
|
|
||||||
case .mmyy: 5
|
|
||||||
case .mmddyy: 8
|
|
||||||
case .mmddyyyy: 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal var separatorIndices: [Int] {
|
|
||||||
switch self {
|
|
||||||
case .mmyy: [2]
|
|
||||||
case .mmddyy: [2,4]
|
|
||||||
case .mmddyyyy: [2,4]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,32 @@ import UIKit
|
|||||||
import VDSTokens
|
import VDSTokens
|
||||||
|
|
||||||
extension InputField {
|
extension InputField {
|
||||||
|
|
||||||
|
public enum FieldType: String, CaseIterable {
|
||||||
|
case text, number, inlineAction, password, creditCard, telephone, date, securityCode
|
||||||
|
|
||||||
|
func handler() -> FieldTypeHandler {
|
||||||
|
switch self {
|
||||||
|
case .text:
|
||||||
|
return TextHandler.shared
|
||||||
|
case .number:
|
||||||
|
return NumberHandler.shared
|
||||||
|
case .inlineAction:
|
||||||
|
return InlineActionHandler.shared
|
||||||
|
case .password:
|
||||||
|
return PasswordHandler.shared
|
||||||
|
case .creditCard:
|
||||||
|
return CreditCardHandler.shared
|
||||||
|
case .telephone:
|
||||||
|
return TelephoneHandler.shared
|
||||||
|
case .date:
|
||||||
|
return DateHandler.shared
|
||||||
|
case .securityCode:
|
||||||
|
return SecurityCodeHandler.shared
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class FieldTypeHandler: NSObject {
|
class FieldTypeHandler: NSObject {
|
||||||
var keyboardType: UIKeyboardType
|
var keyboardType: UIKeyboardType
|
||||||
var minWidth: CGFloat = 40.0
|
var minWidth: CGFloat = 40.0
|
||||||
@ -79,29 +105,5 @@ extension InputField {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum FieldType: String, CaseIterable {
|
|
||||||
case text, number, inlineAction, password, creditCard, telephone, date, securityCode
|
|
||||||
|
|
||||||
func handler() -> FieldTypeHandler {
|
|
||||||
switch self {
|
|
||||||
case .text:
|
|
||||||
return TextHandler.shared
|
|
||||||
case .number:
|
|
||||||
return NumberHandler.shared
|
|
||||||
case .inlineAction:
|
|
||||||
return InlineActionHandler.shared
|
|
||||||
case .password:
|
|
||||||
return PasswordHandler.shared
|
|
||||||
case .creditCard:
|
|
||||||
return CreditCardHandler.shared
|
|
||||||
case .telephone:
|
|
||||||
return TelephoneHandler.shared
|
|
||||||
case .date:
|
|
||||||
return DateHandler.shared
|
|
||||||
case .securityCode:
|
|
||||||
return SecurityCodeHandler.shared
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import Foundation
|
|||||||
import UIKit
|
import UIKit
|
||||||
|
|
||||||
extension InputField {
|
extension InputField {
|
||||||
|
|
||||||
class TextHandler: FieldTypeHandler {
|
class TextHandler: FieldTypeHandler {
|
||||||
static let shared = TextHandler()
|
static let shared = TextHandler()
|
||||||
|
|
||||||
@ -16,4 +17,5 @@ extension InputField {
|
|||||||
super.init()
|
super.init()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user