diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index c6ad2b1..55a1456 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -692,7 +692,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 60; + CURRENT_PROJECT_VERSION = 61; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = FCMA4QKS77; GENERATE_INFOPLIST_FILE = YES; @@ -727,7 +727,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 60; + CURRENT_PROJECT_VERSION = 61; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = FCMA4QKS77; GENERATE_INFOPLIST_FILE = YES; diff --git a/VDSSample/ViewControllers/DropdownSelectViewController.swift b/VDSSample/ViewControllers/DropdownSelectViewController.swift index 52552c3..5d03dbe 100644 --- a/VDSSample/ViewControllers/DropdownSelectViewController.swift +++ b/VDSSample/ViewControllers/DropdownSelectViewController.swift @@ -75,7 +75,7 @@ class DropdownSelectViewController: BaseViewController { } requiredSwitch.onChange = { [weak self] sender in - self?.component.required = sender.isOn + self?.component.isRequired = sender.isOn } optionsSwitch.onChange = { [weak self] sender in @@ -84,7 +84,7 @@ class DropdownSelectViewController: BaseViewController { } readonlySwitch.onChange = { [weak self] sender in - self?.component.readOnly = sender.isOn + self?.component.isReadOnly = sender.isOn } transparentBgSwitch.onChange = { [weak self] sender in @@ -158,7 +158,7 @@ class DropdownSelectViewController: BaseViewController { //setup UI disabledSwitch.isOn = !component.isEnabled - requiredSwitch.isOn = component.required + requiredSwitch.isOn = component.isRequired surfacePickerSelectorView.text = component.surface.rawValue labelTextField.text = component.labelText helperTextField.text = component.helperText diff --git a/VDSSample/ViewControllers/InputFieldViewController.swift b/VDSSample/ViewControllers/InputFieldViewController.swift index 61d5350..0145f51 100644 --- a/VDSSample/ViewControllers/InputFieldViewController.swift +++ b/VDSSample/ViewControllers/InputFieldViewController.swift @@ -19,6 +19,12 @@ class InputFieldViewController: BaseViewController { items: InputField.HelperTextPlacement.allCases) }() + lazy var inputTypePickerSelectorView = { + PickerSelectorView(title: "", + picker: self.picker, + items: InputField.FieldType.allCases) + }() + var disabledSwitch = Toggle() var requiredSwitch = Toggle() var labelTextField = TextField() @@ -31,6 +37,18 @@ class InputFieldViewController: BaseViewController { var tooltipTitleTextField = TextField() var tooltipContentTextField = TextField() + //FieldType sections + + //password + var hidePasswordButtonTextField = TextField() + var showPasswordButtonTextField = TextField() + lazy var passwordSection = FormSection().with { + $0.title = "Password Settings" + $0.addFormRow(label: "Hide Button", view: hidePasswordButtonTextField) + $0.addFormRow(label: "Show Button", view: showPasswordButtonTextField) + $0.isHidden = true + } + override func viewDidLoad() { super.viewDidLoad() addContentTopView(view: component) @@ -53,9 +71,12 @@ class InputFieldViewController: BaseViewController { addFormRow(label: "Width", view: widthTextField) addFormRow(label: "ToolTip Title", view: tooltipTitleTextField) addFormRow(label: "ToolTip Content", view: tooltipContentTextField) + addFormRow(label: "Field Type", view: inputTypePickerSelectorView) + + append(section: passwordSection) requiredSwitch.onChange = { [weak self] sender in - self?.component.required = sender.isOn + self?.component.isRequired = sender.isOn } showErrorSwitch.onChange = { [weak self] sender in @@ -114,12 +135,24 @@ class InputFieldViewController: BaseViewController { self?.updateTooltip() }.store(in: &subscribers) + //field types + //password + hidePasswordButtonTextField + .textPublisher + .sink { [weak self] text in + self?.component.hidePasswordButtonText = text + }.store(in: &subscribers) + + showPasswordButtonTextField + .textPublisher + .sink { [weak self] text in + self?.component.showPasswordButtonText = text + }.store(in: &subscribers) } func setupModel() { component.fieldType = .text component.width = 328 - component.text = "Starting Text" component.labelText = "Street Address" component.helperText = "For example: 123 Verizon St" component.errorText = "Enter a valid address." @@ -137,8 +170,9 @@ class InputFieldViewController: BaseViewController { //setup UI surfacePickerSelectorView.text = component.surface.rawValue helperTextPlacementPickerSelectorView.text = component.helperTextPlacement.rawValue + inputTypePickerSelectorView.text = component.fieldType.rawValue disabledSwitch.isOn = !component.isEnabled - requiredSwitch.isOn = component.required + requiredSwitch.isOn = component.isRequired labelTextField.text = component.labelText helperTextField.text = component.helperText showErrorSwitch.isOn = component.showError @@ -162,6 +196,11 @@ class InputFieldViewController: BaseViewController { helperTextPlacementPickerSelectorView.onPickerDidSelect = { [weak self] item in self?.component.helperTextPlacement = item } + + inputTypePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.fieldType = item + self?.updateFormSections() + } } func updateTooltip() { @@ -171,6 +210,39 @@ class InputFieldViewController: BaseViewController { component.tooltipModel = !title.isEmpty || !content.isEmpty ? .init(title: title, content: content) : nil } + + func updateFormSections() { + passwordSection.isHidden = true + + switch component.fieldType { + case .text: + break + + case .number: + break + + case .inlineAction: + break + + case .password: + passwordSection.isHidden = false + + case .creditCard: + break + + case .tel: + break + + case .date: + break + + case .securityCode: + break + + @unknown default: + break + } + } } diff --git a/VDSSample/ViewControllers/TableViewTestController.swift b/VDSSample/ViewControllers/TableViewTestController.swift index b7b1ddd..8de4507 100644 --- a/VDSSample/ViewControllers/TableViewTestController.swift +++ b/VDSSample/ViewControllers/TableViewTestController.swift @@ -172,30 +172,8 @@ public class TableViewTestController: UIViewController, Initable, Surfaceable { } var items: [MenuComponent] { - all - } - - var all: [MenuComponent] { MenuViewController.items - } - - var batch1: [MenuComponent] { - [ - MenuComponent(title: "Badge", completed: true, viewController: BadgeViewController.self), - MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self), - MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self), - MenuComponent(title: "Icon", completed: true, viewController: IconViewController.self), - MenuComponent(title: "Label", completed: true, viewController: LabelViewController.self), - MenuComponent(title: "Line", completed: true, viewController: LineViewController.self), - MenuComponent(title: "Loader", completed: true, viewController: LoaderViewController.self), - MenuComponent(title: "Tabs", completed: true, viewController: TabsViewController.self), - MenuComponent(title: "TextLink", completed: true, viewController: TextLinkViewController.self), - MenuComponent(title: "TextLinkCaret", completed: true, viewController: TextLinkCaretViewController.self), - MenuComponent(title: "TitleLockup", completed: true, viewController: TitleLockupViewController.self), - MenuComponent(title: "Tooltip", completed: true, viewController: TooltipViewController.self), - MenuComponent(title: "TrailingTooltip", completed: true, viewController: TrailingTooltipLabelViewController.self), - ] - } + } } extension TableViewTestController : UITableViewDelegate, UITableViewDataSource { diff --git a/VDSSample/ViewControllers/TextAreaViewController.swift b/VDSSample/ViewControllers/TextAreaViewController.swift index 9769795..22dc701 100644 --- a/VDSSample/ViewControllers/TextAreaViewController.swift +++ b/VDSSample/ViewControllers/TextAreaViewController.swift @@ -55,7 +55,7 @@ class TextAreaViewController: BaseViewController