Merge branch 'feature/inputField' into 'develop'
added password field See merge request BPHV_MIPS/vds_ios_sample!63
This commit is contained in:
commit
df0a762f71
@ -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;
|
||||
|
||||
@ -75,7 +75,7 @@ class DropdownSelectViewController: BaseViewController<DropdownSelect> {
|
||||
}
|
||||
|
||||
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<DropdownSelect> {
|
||||
}
|
||||
|
||||
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<DropdownSelect> {
|
||||
|
||||
//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
|
||||
|
||||
@ -19,6 +19,12 @@ class InputFieldViewController: BaseViewController<InputField> {
|
||||
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<InputField> {
|
||||
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<InputField> {
|
||||
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<InputField> {
|
||||
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<InputField> {
|
||||
//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<InputField> {
|
||||
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<InputField> {
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -55,7 +55,7 @@ class TextAreaViewController: BaseViewController<TextArea> {
|
||||
addFormRow(label: "Min Height", view: heightPickerSelectorView)
|
||||
|
||||
requiredSwitch.onChange = { [weak self] sender in
|
||||
self?.component.required = sender.isOn
|
||||
self?.component.isRequired = sender.isOn
|
||||
}
|
||||
|
||||
showErrorSwitch.onChange = { [weak self] sender in
|
||||
@ -71,7 +71,7 @@ class TextAreaViewController: BaseViewController<TextArea> {
|
||||
}
|
||||
|
||||
readOnlySwitch.onChange = { [weak self] sender in
|
||||
self?.component.readOnly = sender.isOn
|
||||
self?.component.isReadOnly = sender.isOn
|
||||
}
|
||||
|
||||
labelTextField
|
||||
@ -143,7 +143,7 @@ class TextAreaViewController: BaseViewController<TextArea> {
|
||||
//setup UI
|
||||
surfacePickerSelectorView.text = component.surface.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
|
||||
|
||||
@ -50,6 +50,7 @@ class TileContainerViewController: BaseViewController<TileContainer> {
|
||||
var gradientColorsFormStackView = FormSection().with { $0.isHidden = true }
|
||||
var backgroundColor: BackgroundColor = .secondary
|
||||
var padding: Padding = .padding4X
|
||||
var isLinkSwitch = Toggle()
|
||||
var clickableSwitch = Toggle()
|
||||
var showBackgroundImageSwitch = Toggle()
|
||||
var showBorderSwitch = Toggle()
|
||||
@ -115,6 +116,7 @@ class TileContainerViewController: BaseViewController<TileContainer> {
|
||||
$0.text = "For testing max width is limited to 85% of view's width & 65% view's height."
|
||||
})
|
||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||
addFormRow(label: "Is Link", view: isLinkSwitch)
|
||||
addFormRow(label: "Clickable", view: clickableSwitch)
|
||||
addFormRow(label: "Width", view: widthTextField)
|
||||
addFormRow(label: "Height", view: heightTextField)
|
||||
@ -143,6 +145,11 @@ class TileContainerViewController: BaseViewController<TileContainer> {
|
||||
}
|
||||
}
|
||||
|
||||
isLinkSwitch.onChange = { [weak self] sender in
|
||||
guard let self else { return }
|
||||
self.component.accessibilityTraits = sender.isOn ? .link : .button
|
||||
}
|
||||
|
||||
clickableSwitch.onChange = { [weak self] sender in
|
||||
guard let self else { return }
|
||||
if sender.isOn {
|
||||
@ -254,7 +261,7 @@ class TileContainerViewController: BaseViewController<TileContainer> {
|
||||
contentAreaBackgroundColorButton.onClick = { [weak self] _ in
|
||||
guard let self else { return }
|
||||
self.colorPickerType = .contentViewBackgroundColor
|
||||
self.colorPicker.selectedColor = self.component.containerView.backgroundColor ?? .white
|
||||
self.colorPicker.selectedColor = self.component.contentView.backgroundColor ?? .white
|
||||
self.present(self.colorPicker, animated: true)
|
||||
}
|
||||
}
|
||||
@ -288,7 +295,7 @@ extension TileContainerViewController: UIColorPickerViewControllerDelegate {
|
||||
guard let hexString = viewController.selectedColor.hexString else { return }
|
||||
switch colorPickerType {
|
||||
case .contentViewBackgroundColor:
|
||||
component.containerView.backgroundColor = UIColor(hexString: hexString)
|
||||
component.contentView.backgroundColor = UIColor(hexString: hexString)
|
||||
case .backgroundColor:
|
||||
component.color = .custom(hexString)
|
||||
case .gradientColor1:
|
||||
|
||||
@ -125,6 +125,7 @@ class TileletViewController: BaseViewController<Tilelet> {
|
||||
var showDropShadowSwitch = Toggle()
|
||||
var backgroundColor: BackgroundColor = .black
|
||||
var maxWidthTextField = NumericField()
|
||||
var isLinkSwitch = Toggle()
|
||||
|
||||
var gradientColorsFormStackView = FormSection().with { $0.isHidden = true }
|
||||
|
||||
@ -139,6 +140,7 @@ class TileletViewController: BaseViewController<Tilelet> {
|
||||
super.setupForm()
|
||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||
addActionRow()
|
||||
addFormRow(label: "Is Link", view: isLinkSwitch)
|
||||
addFormRow(label: "Clickable", view: clickableSwitch)
|
||||
|
||||
addFormRow(label: "Aspect Ratio", view: scalingTypePickerSelectorView)
|
||||
@ -187,6 +189,11 @@ class TileletViewController: BaseViewController<Tilelet> {
|
||||
}
|
||||
}
|
||||
|
||||
isLinkSwitch.onChange = { [weak self] sender in
|
||||
guard let self else { return }
|
||||
self.component.accessibilityTraits = sender.isOn ? .link : .button
|
||||
}
|
||||
|
||||
heightTextField
|
||||
.numberPublisher
|
||||
.sink { [weak self] number in
|
||||
@ -497,7 +504,7 @@ extension TileletViewController: UIColorPickerViewControllerDelegate {
|
||||
guard let hexString = viewController.selectedColor.hexString else { return }
|
||||
switch colorPickerType {
|
||||
case .contentViewBackgroundColor:
|
||||
component.containerView.backgroundColor = UIColor(hexString: hexString)
|
||||
component.contentView.backgroundColor = UIColor(hexString: hexString)
|
||||
case .backgroundColor:
|
||||
component.color = .custom(hexString)
|
||||
case .gradientColor1:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user