From e666a792e067d3422ef0d8aa1241fc80ef4c45bf Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 11 Apr 2024 16:50:54 -0500 Subject: [PATCH 01/51] initial commit for datePicker Signed-off-by: Matt Bruce --- VDSSample.xcodeproj/project.pbxproj | 4 + VDSSample/Extensions/IconName.swift | 1 - .../DatePickerViewController.swift | 141 ++++++++++++++++++ .../ViewControllers/MenuViewController.swift | 1 + 4 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 VDSSample/ViewControllers/DatePickerViewController.swift diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index 128bc3d..e5cf453 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -43,6 +43,7 @@ EA0D1C312A673F3500E5C127 /* RadioButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0D1C302A673F3500E5C127 /* RadioButtonViewController.swift */; }; EA0D1C332A673FD400E5C127 /* RadioButtonItemViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */; }; EA0FC2C12912DC5500DF80B4 /* TextLinkCaretViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0FC2C02912DC5500DF80B4 /* TextLinkCaretViewController.swift */; }; + EA1758462BC8893700A5C0D9 /* DatePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1758452BC8893700A5C0D9 /* DatePickerViewController.swift */; }; EA297A682A02F5320031ED56 /* TableViewTestController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA297A672A02F5320031ED56 /* TableViewTestController.swift */; }; EA3C3B9D289966EF000CA526 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3C3B9C289966EF000CA526 /* AppDelegate.swift */; }; EA3C3B9F289966EF000CA526 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3C3B9E289966EF000CA526 /* SceneDelegate.swift */; }; @@ -142,6 +143,7 @@ EA0D1C302A673F3500E5C127 /* RadioButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonViewController.swift; sourceTree = ""; }; EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonItemViewController.swift; sourceTree = ""; }; EA0FC2C02912DC5500DF80B4 /* TextLinkCaretViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextLinkCaretViewController.swift; sourceTree = ""; }; + EA1758452BC8893700A5C0D9 /* DatePickerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickerViewController.swift; sourceTree = ""; }; EA297A672A02F5320031ED56 /* TableViewTestController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableViewTestController.swift; sourceTree = ""; }; EA3C3B99289966EF000CA526 /* VDSSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VDSSample.app; sourceTree = BUILT_PRODUCTS_DIR; }; EA3C3B9C289966EF000CA526 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -330,6 +332,7 @@ EA89204D28B67332006B9984 /* CheckBoxGroupViewController.swift */, EAF7F09B2899B92400B287F5 /* CheckboxItemViewController.swift */, EA0D1C2E2A66CFE900E5C127 /* CheckboxViewController.swift */, + EA1758452BC8893700A5C0D9 /* DatePickerViewController.swift */, 186D13CC2BBA990800986B53 /* DropdownSelectViewController.swift */, EA985C00296CC21C00F2FF2E /* IconViewController.swift */, EAA5EEAC28EB6924003B3210 /* InputFieldViewController.swift */, @@ -524,6 +527,7 @@ EA3C3BB428996775000CA526 /* PickerBase.swift in Sources */, EAB2376C29E9E74900AABE9A /* TrailingTooltipLabelViewController.swift in Sources */, EAB1D2C928AAAA1D00DAE764 /* BaseViewController.swift in Sources */, + EA1758462BC8893700A5C0D9 /* DatePickerViewController.swift in Sources */, EAD062AD2A3B86950015965D /* BadgeIndicatorViewController.swift in Sources */, EA5E305C295111050082B959 /* TileletViewController.swift in Sources */, EAD062A32A3913920015965D /* DropShawdowViewController.swift in Sources */, diff --git a/VDSSample/Extensions/IconName.swift b/VDSSample/Extensions/IconName.swift index 8dc6b69..7e96269 100644 --- a/VDSSample/Extensions/IconName.swift +++ b/VDSSample/Extensions/IconName.swift @@ -62,7 +62,6 @@ extension Icon.Name { public static let bucketTruck = Icon.Name(name: "bucket-truck") public static let bug = Icon.Name(name: "bug") public static let businessContinuity = Icon.Name(name: "business-continuity") - public static let calendar = Icon.Name(name: "calendar") public static let calibrate = Icon.Name(name: "calibrate") public static let callDisconnected = Icon.Name(name: "call-disconnected") public static let callerId = Icon.Name(name: "caller-id") diff --git a/VDSSample/ViewControllers/DatePickerViewController.swift b/VDSSample/ViewControllers/DatePickerViewController.swift new file mode 100644 index 0000000..70b2bdf --- /dev/null +++ b/VDSSample/ViewControllers/DatePickerViewController.swift @@ -0,0 +1,141 @@ +// +// DatePickerViewController.swift +// VDSSample +// +// Created by Matt Bruce on 4/11/24. +// + +import Foundation +import VDS + +class DatePickerViewController: BaseViewController { + + var disabledSwitch = Toggle() + var requiredSwitch = Toggle() + var labelTextField = TextField() + var errorTextField = TextField() + var helperTextField = TextField() + var inlineLabelSwitch = Toggle() + var readonlySwitch = Toggle() + var transparentBgSwitch = Toggle() + var errorSwitch = Toggle() + var tooltipTitleTextField = TextField() + var tooltipContentTextField = TextField() + + override func viewDidLoad() { + super.viewDidLoad() + addContentTopView(view: component) + setupModel() + setupPicker() + } + + override func setupForm(){ + addFormRow(label: "Surface", view: surfacePickerSelectorView) + addFormRow(label: "Disabled", view: disabledSwitch) + addFormRow(label: "Required", view: requiredSwitch) + addFormRow(label: "Label Text", view: labelTextField) + addFormRow(label: "Helper Text", view: helperTextField) + addFormRow(label: "Readonly", view: readonlySwitch) + addFormRow(label: "Transparent Background", view: transparentBgSwitch) + addFormRow(label: "Error", view: .makeWrapper(for: errorSwitch)) + addFormRow(label: "Error Text", view: errorTextField) + addFormRow(label: "ToolTip Title", view: tooltipTitleTextField) + addFormRow(label: "ToolTip Content", view: tooltipContentTextField) + + disabledSwitch.onChange = { [weak self] sender in + self?.component.isEnabled = !sender.isOn + } + + requiredSwitch.onChange = { [weak self] sender in + self?.component.required = sender.isOn + } + + readonlySwitch.onChange = { [weak self] sender in + self?.component.readOnly = sender.isOn + } + + transparentBgSwitch.onChange = { [weak self] sender in + self?.component.transparentBackground = sender.isOn + } + + errorSwitch + .publisher(for: .valueChanged) + .sink { [weak self] sender in + guard let self else { return } + component.showError = sender.isOn + if component.showError != sender.isOn { + self.errorSwitch.isOn = self.component.showError + } + }.store(in: &subscribers) + + labelTextField + .textPublisher + .sink { [weak self] text in + self?.component.labelText = text + }.store(in: &subscribers) + + helperTextField + .textPublisher + .sink { [weak self] text in + self?.component.helperText = text + }.store(in: &subscribers) + + errorTextField + .textPublisher + .sink { [weak self] text in + self?.component.errorText = text + }.store(in: &subscribers) + + tooltipTitleTextField + .textPublisher + .sink { [weak self] text in + self?.updateTooltip() + }.store(in: &subscribers) + + tooltipContentTextField + .textPublisher + .sink { [weak self] text in + self?.updateTooltip() + }.store(in: &subscribers) + + } + + func setupModel() { + component.labelText = "Date" + component.helperText = "Pick a date for your needs." + component.errorText = "Enter a date." + component.tooltipModel = .init(title: "Check your date.", content:"Here is the content for your date component") + + component.onChange = { c in + print("selected value: \(c.value ?? "no date selected")") + } + + //setup UI + disabledSwitch.isOn = !component.isEnabled + requiredSwitch.isOn = component.required + surfacePickerSelectorView.text = component.surface.rawValue + labelTextField.text = component.labelText + helperTextField.text = component.helperText + readonlySwitch.isOn = false + transparentBgSwitch.isOn = false + errorSwitch.isOn = component.showError + errorTextField.text = component.errorText + tooltipTitleTextField.text = component.tooltipModel?.title + tooltipContentTextField.text = component.tooltipModel?.content + } + + func setupPicker() { + surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.surface = item + self?.contentTopView.backgroundColor = item.color + } + } + + func updateTooltip() { + let title = tooltipTitleTextField.text ?? "" + let content = tooltipContentTextField.text ?? "" + + component.tooltipModel = !title.isEmpty || !content.isEmpty ? .init(title: title, + content: content) : nil + } +} diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index 86484c6..2916b7d 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -78,6 +78,7 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "Checkbox", completed: true, viewController: CheckboxViewController.self), MenuComponent(title: "CheckboxItem", completed: true, viewController: CheckboxItemViewController.self), MenuComponent(title: "CheckboxGroup", completed: true, viewController: CheckboxGroupViewController.self), + MenuComponent(title: "DatePicker", completed: false, viewController: DatePickerViewController.self), MenuComponent(title: "DropdownSelect", completed: true, viewController: DropdownSelectViewController.self), MenuComponent(title: "Icon", completed: true, viewController: IconViewController.self), MenuComponent(title: "InputField", completed: false, viewController: InputFieldViewController.self), From 6e1bab1b175f87306c46473ab063e5f42362c7e2 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 11 Apr 2024 17:28:06 -0500 Subject: [PATCH 02/51] added formatter Signed-off-by: Matt Bruce --- .../ViewControllers/DatePickerViewController.swift | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/VDSSample/ViewControllers/DatePickerViewController.swift b/VDSSample/ViewControllers/DatePickerViewController.swift index 70b2bdf..69690ca 100644 --- a/VDSSample/ViewControllers/DatePickerViewController.swift +++ b/VDSSample/ViewControllers/DatePickerViewController.swift @@ -21,7 +21,12 @@ class DatePickerViewController: BaseViewController { var errorSwitch = Toggle() var tooltipTitleTextField = TextField() var tooltipContentTextField = TextField() - + lazy var dateFormatPickerSelectorView = { + PickerSelectorView(title: "shortNumeric", + picker: self.picker, + items: DatePicker.DateFormat.allCases) + }() + override func viewDidLoad() { super.viewDidLoad() addContentTopView(view: component) @@ -33,6 +38,7 @@ class DatePickerViewController: BaseViewController { addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Disabled", view: disabledSwitch) addFormRow(label: "Required", view: requiredSwitch) + addFormRow(label: "Date Format", view: dateFormatPickerSelectorView) addFormRow(label: "Label Text", view: labelTextField) addFormRow(label: "Helper Text", view: helperTextField) addFormRow(label: "Readonly", view: readonlySwitch) @@ -101,6 +107,7 @@ class DatePickerViewController: BaseViewController { } func setupModel() { + component.selectedDate = Calendar.current.date(byAdding: .day, value: -5, to: Date()) component.labelText = "Date" component.helperText = "Pick a date for your needs." component.errorText = "Enter a date." @@ -129,6 +136,11 @@ class DatePickerViewController: BaseViewController { self?.component.surface = item self?.contentTopView.backgroundColor = item.color } + + dateFormatPickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.dateFormat = item + } + } func updateTooltip() { From 2e6b2d6b55837b218efb8eb74788fb6e6147b671 Mon Sep 17 00:00:00 2001 From: vasavk Date: Wed, 24 Apr 2024 18:04:57 +0530 Subject: [PATCH 03/51] Digital ACT-191 ONEAPP-7016 story: added new controller for calendar --- VDSSample.xcodeproj/project.pbxproj | 4 ++++ .../CalendarViewController.swift | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 VDSSample/ViewControllers/CalendarViewController.swift diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index fc9f459..6cb427f 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -35,6 +35,7 @@ 1808BEBE2BA4479500129230 /* CarouselScrollbarViewConttroller.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */; }; 1832AC5B2BA1347B008AE476 /* BreadcrumbsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */; }; 186D13CD2BBA990800986B53 /* DropdownSelectViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 186D13CC2BBA990800986B53 /* DropdownSelectViewController.swift */; }; + 18A3F1302BD9332500498E4A /* CalendarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18A3F12F2BD9332500498E4A /* CalendarViewController.swift */; }; 445BA07A29C088470036A7C5 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 445BA07929C088470036A7C5 /* NotificationViewController.swift */; }; 44604AD929CE1CF900E62B51 /* LineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44604AD829CE1CF900E62B51 /* LineViewController.swift */; }; 5FC35BE928D5235A004EBEAC /* ButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */; }; @@ -129,6 +130,7 @@ 1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarouselScrollbarViewConttroller.swift; sourceTree = ""; }; 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreadcrumbsViewController.swift; sourceTree = ""; }; 186D13CC2BBA990800986B53 /* DropdownSelectViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropdownSelectViewController.swift; sourceTree = ""; }; + 18A3F12F2BD9332500498E4A /* CalendarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarViewController.swift; sourceTree = ""; }; 445BA07929C088470036A7C5 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; 44604AD829CE1CF900E62B51 /* LineViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineViewController.swift; sourceTree = ""; }; 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonViewController.swift; sourceTree = ""; }; @@ -317,6 +319,7 @@ EAB5FEEE2927E28400998C17 /* ButtonGroupViewController.swift */, EA81410D2A0ED8DC004F60D2 /* ButtonIconViewController.swift */, 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */, + 18A3F12F2BD9332500498E4A /* CalendarViewController.swift */, 1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */, EA89204D28B67332006B9984 /* CheckBoxGroupViewController.swift */, EAF7F09B2899B92400B287F5 /* CheckboxItemViewController.swift */, @@ -529,6 +532,7 @@ 71B23C312B921D740027F7D9 /* PaginationViewController.swift in Sources */, EAF7F09C2899B92400B287F5 /* CheckboxItemViewController.swift in Sources */, EA0D1C2F2A66CFE900E5C127 /* CheckboxViewController.swift in Sources */, + 18A3F1302BD9332500498E4A /* CalendarViewController.swift in Sources */, EA596ABA2A16B2ED00300C4B /* TabsViewController.swift in Sources */, EA89204E28B67332006B9984 /* CheckBoxGroupViewController.swift in Sources */, EAA5EEAD28EB6924003B3210 /* InputFieldViewController.swift in Sources */, diff --git a/VDSSample/ViewControllers/CalendarViewController.swift b/VDSSample/ViewControllers/CalendarViewController.swift new file mode 100644 index 0000000..2fb4259 --- /dev/null +++ b/VDSSample/ViewControllers/CalendarViewController.swift @@ -0,0 +1,19 @@ +// +// CalendarViewController.swift +// VDSSample +// +// Created by Kanamarlapudi, Vasavi on 19/04/24. +// + +import Foundation +import UIKit +import VDS +import Combine +import VDSTokens + +class CalendarViewController: BaseViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } +} From 2f259686d110ce786750688d2b0fcd3a4e889a1d Mon Sep 17 00:00:00 2001 From: vasavk Date: Mon, 29 Apr 2024 10:06:20 +0530 Subject: [PATCH 04/51] =?UTF-8?q?Digital=20ACT-191=20ONEAPP-7016=20story:?= =?UTF-8?q?=20Setup=20form=20to=20pass=20values=20=E2=80=8B=E2=80=8Bto=20c?= =?UTF-8?q?alendar=20properties.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CalendarViewController.swift | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/VDSSample/ViewControllers/CalendarViewController.swift b/VDSSample/ViewControllers/CalendarViewController.swift index 2fb4259..f43f7dc 100644 --- a/VDSSample/ViewControllers/CalendarViewController.swift +++ b/VDSSample/ViewControllers/CalendarViewController.swift @@ -13,7 +13,134 @@ import VDSTokens class CalendarViewController: BaseViewController { + var borderSwitch = Toggle() + var dateIndicatorSwitch = Toggle() + var transparentSwitch = Toggle() + var indicatorOneSwitch = Toggle() + var indicatorTwoSwitch = Toggle() + var indicatorThreeSwitch = Toggle() + var legendOneField = TextField() + var legendTwoField = TextField() + var legendThreeField = TextField() + private var minDateField: UIDatePicker = UIDatePicker() + private var maxDateField: UIDatePicker = UIDatePicker() + private var datePickerOne: UIDatePicker = UIDatePicker() + private var datePickerTwo: UIDatePicker = UIDatePicker() + private var datePickerThree: UIDatePicker = UIDatePicker() + var indicators: [CalendarBase.CalendarIndicatorModel] = [] + override func viewDidLoad() { super.viewDidLoad() + addContentTopView(view: component) + + setupPicker() + setupModel() + } + + override func setupForm() { + super.setupForm() + configurePicker(datePickerOne) + datePickerOne.tag = 1 + configurePicker(datePickerTwo) + datePickerTwo.tag = 2 + configurePicker(datePickerThree) + datePickerThree.tag = 3 + configurePicker(minDateField) + minDateField.tag = 4 + configurePicker(maxDateField) + maxDateField.tag = 5 + indicators = [ + .init(label: "Due Date", date: datePickerOne.date), + .init(label: "Auto Pay", date: datePickerTwo.date), + .init(label: "Scheduled", date: datePickerTwo.date), + ] + + //add form rows + addFormRow(label: "Surface", view: surfacePickerSelectorView) + addFormRow(label: "Hide Container Border", view: borderSwitch) + addFormRow(label: "Hide Current Date Indicator", view: dateIndicatorSwitch) + addFormRow(label: "Min Date", view: minDateField) + addFormRow(label: "Max Date", view: maxDateField) + addFormRow(label: "Transparent Background", view: transparentSwitch) + addFormRow(label: "Indicator One", view: indicatorOneSwitch) + addFormRow(label: "Indicator Two", view: indicatorTwoSwitch) + addFormRow(label: "Indicator Three", view: indicatorThreeSwitch) + addFormRow(label: "Legend One", view: legendOneField) + addFormRow(label: "Legend Two", view: legendTwoField) + addFormRow(label: "Legend Three", view: legendThreeField) + addFormRow(label: "Indicator One Date", view: datePickerOne) + addFormRow(label: "Indicator Two Date", view: datePickerTwo) + addFormRow(label: "Indicator Three Date", view: datePickerThree) + + legendOneField + .textPublisher + .sink { + [weak self] text in + self?.updateIndicatorData(label: text, index: 0) + }.store(in: &subscribers) + + legendTwoField + .textPublisher + .sink { + [weak self] text in + self?.updateIndicatorData(label: text, index: 1) + }.store(in: &subscribers) + + legendThreeField + .textPublisher + .sink { + [weak self] text in + self?.updateIndicatorData(label: text, index: 2) + }.store(in: &subscribers) + } + + func setupPicker(){ + surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.surface = item + self?.contentTopView.backgroundColor = item.color + } + } + + func setupModel() { + legendOneField.text = "Due Date" + legendTwoField.text = "Auto Pay" + legendThreeField.text = "Scheduled" + } + + func updateIndicatorData(label: String = "", date: Date = Date(), index:Int) { + + print("Indicator data here >>> ") + } + + func configurePicker(_ sender:UIDatePicker) { + // Set some of UIDatePicker properties + sender.timeZone = NSTimeZone.local + sender.backgroundColor = UIColor.white + + // Add an event to call onDidChangeDate function when value is changed. + sender.addTarget(self, action: #selector(self.datePickerValueChanged(_:)), for: .valueChanged) + } + + @objc func datePickerValueChanged(_ sender: UIDatePicker){ + + // Create date formatter + let dateFormatter: DateFormatter = DateFormatter() + + // Set date format + dateFormatter.dateFormat = "MM/dd/yyyy hh:mm a" + + // Apply date format + let selectedDate: String = dateFormatter.string(from: sender.date) + + let date: Date = dateFormatter.date(from: selectedDate) ?? sender.date //TO DO: check is this required? + + switch sender.tag { + case 1: updateIndicatorData(date: sender.date, index: 0) + case 2: updateIndicatorData(date: sender.date, index: 1) + case 3: updateIndicatorData(date: sender.date, index: 2) + default: break + } + + print("Selected value \(selectedDate)") } } From 75310e1c4dc737e1bef990a0ed7160404e6a08d5 Mon Sep 17 00:00:00 2001 From: vasavk Date: Tue, 30 Apr 2024 11:26:14 +0530 Subject: [PATCH 05/51] Digital ACT-191 ONEAPP-7016 story: passing updated text for indicators --- .../CalendarViewController.swift | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/VDSSample/ViewControllers/CalendarViewController.swift b/VDSSample/ViewControllers/CalendarViewController.swift index f43f7dc..31fa5e8 100644 --- a/VDSSample/ViewControllers/CalendarViewController.swift +++ b/VDSSample/ViewControllers/CalendarViewController.swift @@ -27,7 +27,7 @@ class CalendarViewController: BaseViewController { private var datePickerOne: UIDatePicker = UIDatePicker() private var datePickerTwo: UIDatePicker = UIDatePicker() private var datePickerThree: UIDatePicker = UIDatePicker() - var indicators: [CalendarBase.CalendarIndicatorModel] = [] + var indicators: [CalendarIndicatorModel] = [] override func viewDidLoad() { super.viewDidLoad() @@ -76,21 +76,21 @@ class CalendarViewController: BaseViewController { .textPublisher .sink { [weak self] text in - self?.updateIndicatorData(label: text, index: 0) + self?.updateIndicatorData(label: text, date: self?.datePickerOne.date, index: 0) }.store(in: &subscribers) legendTwoField .textPublisher .sink { [weak self] text in - self?.updateIndicatorData(label: text, index: 1) + self?.updateIndicatorData(label: text, date: self?.datePickerTwo.date, index: 1) }.store(in: &subscribers) legendThreeField .textPublisher .sink { [weak self] text in - self?.updateIndicatorData(label: text, index: 2) + self?.updateIndicatorData(label: text, date: self?.datePickerThree.date, index: 2) }.store(in: &subscribers) } @@ -102,14 +102,16 @@ class CalendarViewController: BaseViewController { } func setupModel() { + component.indicators = indicators legendOneField.text = "Due Date" legendTwoField.text = "Auto Pay" legendThreeField.text = "Scheduled" } - func updateIndicatorData(label: String = "", date: Date = Date(), index:Int) { - - print("Indicator data here >>> ") + func updateIndicatorData(label: String = "", date: Date?, index:Int) { + indicators[index].label = label + indicators[index].date = date ?? Date() + component.indicators = indicators } func configurePicker(_ sender:UIDatePicker) { @@ -131,16 +133,13 @@ class CalendarViewController: BaseViewController { // Apply date format let selectedDate: String = dateFormatter.string(from: sender.date) - - let date: Date = dateFormatter.date(from: selectedDate) ?? sender.date //TO DO: check is this required? switch sender.tag { - case 1: updateIndicatorData(date: sender.date, index: 0) - case 2: updateIndicatorData(date: sender.date, index: 1) - case 3: updateIndicatorData(date: sender.date, index: 2) + case 1: updateIndicatorData(label: legendOneField.text ?? "", date: sender.date, index: 0) + case 2: updateIndicatorData(label: legendTwoField.text ?? "", date: sender.date, index: 1) + case 3: updateIndicatorData(label: legendThreeField.text ?? "", date: sender.date, index: 2) default: break } - - print("Selected value \(selectedDate)") +// print("Selected value \(selectedDate)") } } From a6b06f507686e66ed15f6c5a52fd2ebba341c20e Mon Sep 17 00:00:00 2001 From: vasavk Date: Tue, 30 Apr 2024 19:23:40 +0530 Subject: [PATCH 06/51] Digital ACT-191 ONEAPP-7016 story: added calendar to menu --- VDSSample/ViewControllers/CalendarViewController.swift | 4 ++-- VDSSample/ViewControllers/MenuViewController.swift | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/VDSSample/ViewControllers/CalendarViewController.swift b/VDSSample/ViewControllers/CalendarViewController.swift index 31fa5e8..2c40971 100644 --- a/VDSSample/ViewControllers/CalendarViewController.swift +++ b/VDSSample/ViewControllers/CalendarViewController.swift @@ -27,7 +27,7 @@ class CalendarViewController: BaseViewController { private var datePickerOne: UIDatePicker = UIDatePicker() private var datePickerTwo: UIDatePicker = UIDatePicker() private var datePickerThree: UIDatePicker = UIDatePicker() - var indicators: [CalendarIndicatorModel] = [] + var indicators: [CalendarBase.CalendarIndicatorModel] = [] override func viewDidLoad() { super.viewDidLoad() @@ -132,7 +132,7 @@ class CalendarViewController: BaseViewController { dateFormatter.dateFormat = "MM/dd/yyyy hh:mm a" // Apply date format - let selectedDate: String = dateFormatter.string(from: sender.date) +// let selectedDate: String = dateFormatter.string(from: sender.date) switch sender.tag { case 1: updateIndicatorData(label: legendOneField.text ?? "", date: sender.date, index: 0) diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index c300171..b929fa5 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -74,6 +74,7 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self), MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self), MenuComponent(title: "ButtonIcon", completed: true, viewController: ButtonIconViewController.self), + MenuComponent(title: "Calendar", completed: false, viewController: CalendarViewController.self), MenuComponent(title: "Carousel Scrollbar", completed: true, viewController: CarouselScrollbarViewConttroller.self), MenuComponent(title: "Checkbox", completed: true, viewController: CheckboxViewController.self), MenuComponent(title: "CheckboxItem", completed: true, viewController: CheckboxItemViewController.self), From 75297a2f77ddf973492db0b7c508ef2cb86e54e5 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Tue, 30 Apr 2024 13:51:05 -0500 Subject: [PATCH 07/51] added password field Signed-off-by: Matt Bruce --- .../InputFieldViewController.swift | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/VDSSample/ViewControllers/InputFieldViewController.swift b/VDSSample/ViewControllers/InputFieldViewController.swift index 61d5350..1820266 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,6 +71,9 @@ 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 @@ -114,6 +135,19 @@ 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() { @@ -137,6 +171,7 @@ 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 labelTextField.text = component.labelText @@ -162,6 +197,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 +211,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 + } + } } From c6c5cc49b88c3cc9e7c73ab7bb6385f1e066b52f Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Wed, 1 May 2024 10:56:52 -0500 Subject: [PATCH 08/51] updated samples Signed-off-by: Matt Bruce --- .../InputFieldViewController.swift | 1 - .../TableViewTestController.swift | 24 +------------------ 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/VDSSample/ViewControllers/InputFieldViewController.swift b/VDSSample/ViewControllers/InputFieldViewController.swift index 1820266..d1e27ec 100644 --- a/VDSSample/ViewControllers/InputFieldViewController.swift +++ b/VDSSample/ViewControllers/InputFieldViewController.swift @@ -153,7 +153,6 @@ class InputFieldViewController: BaseViewController { 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." 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 { From 0fe55db7853877a3021e00391aa87bc90a078354 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Fri, 3 May 2024 09:56:36 -0500 Subject: [PATCH 09/51] refactored props Signed-off-by: Matt Bruce --- .../DropdownSelectViewController.swift | 6 +++--- .../ViewControllers/InputFieldViewController.swift | 4 ++-- .../ViewControllers/TextAreaViewController.swift | 6 +++--- .../ViewControllers/TileContainerViewController.swift | 11 +++++++++-- VDSSample/ViewControllers/TileletViewController.swift | 9 ++++++++- 5 files changed, 25 insertions(+), 11 deletions(-) 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 d1e27ec..0145f51 100644 --- a/VDSSample/ViewControllers/InputFieldViewController.swift +++ b/VDSSample/ViewControllers/InputFieldViewController.swift @@ -76,7 +76,7 @@ class InputFieldViewController: BaseViewController { 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 @@ -172,7 +172,7 @@ class InputFieldViewController: BaseViewController { 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 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