From e8049108d65c50047dfbd490260a6faea62fa87a Mon Sep 17 00:00:00 2001 From: vasavk Date: Wed, 13 Mar 2024 07:25:59 +0530 Subject: [PATCH 01/11] Digital ACT-191 ONEAPP-6827 story: added new breadcrumbItem page --- VDSSample.xcodeproj/project.pbxproj | 8 ++ .../BreadcrumbItemViewController.swift | 82 +++++++++++++++++++ .../BreadcrumbsViewController.swift | 16 ++++ .../ViewControllers/MenuViewController.swift | 1 + 4 files changed, 107 insertions(+) create mode 100644 VDSSample/ViewControllers/BreadcrumbItemViewController.swift create mode 100644 VDSSample/ViewControllers/BreadcrumbsViewController.swift diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index 071627e..5cd2d1d 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -32,6 +32,8 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ + 1832AC5B2BA1347B008AE476 /* BreadcrumbsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */; }; + 1832AC5D2BA13499008AE476 /* BreadcrumbItemViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832AC5C2BA13499008AE476 /* BreadcrumbItemViewController.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 */; }; @@ -127,6 +129,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreadcrumbsViewController.swift; sourceTree = ""; }; + 1832AC5C2BA13499008AE476 /* BreadcrumbItemViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreadcrumbItemViewController.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 = ""; }; @@ -314,6 +318,8 @@ EAB1D2C828AAAA1D00DAE764 /* BaseViewController.swift */, EA4DB30328DCD25B00103EE3 /* BadgeViewController.swift */, EAD062AC2A3B86950015965D /* BadgeIndicatorViewController.swift */, + 1832AC5C2BA13499008AE476 /* BreadcrumbItemViewController.swift */, + 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */, EA81410D2A0ED8DC004F60D2 /* ButtonIconViewController.swift */, EAB5FEEE2927E28400998C17 /* ButtonGroupViewController.swift */, 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */, @@ -500,6 +506,7 @@ EA5E3050294D11540082B959 /* TileContainerViewController.swift in Sources */, 445BA07A29C088470036A7C5 /* NotificationViewController.swift in Sources */, EAEEEC942B1F824500531FC2 /* Bundle.swift in Sources */, + 1832AC5D2BA13499008AE476 /* BreadcrumbItemViewController.swift in Sources */, EAF7F11A28A14A0E00B287F5 /* RadioButtonGroupViewController.swift in Sources */, EA89204628B66CE2006B9984 /* ScrollViewController.swift in Sources */, EA471F402A97BEAA00CE9E58 /* CustomRotorable.swift in Sources */, @@ -526,6 +533,7 @@ EA89204E28B67332006B9984 /* CheckBoxGroupViewController.swift in Sources */, EAA5EEAD28EB6924003B3210 /* InputFieldViewController.swift in Sources */, EA985C25296E06EA00F2FF2E /* TextAreaViewController.swift in Sources */, + 1832AC5B2BA1347B008AE476 /* BreadcrumbsViewController.swift in Sources */, EA81410E2A0ED8DC004F60D2 /* ButtonIconViewController.swift in Sources */, EA985C20296DECF600F2FF2E /* IconName.swift in Sources */, EA89204928B66CE2006B9984 /* KeyboardFrameChangeListening.swift in Sources */, diff --git a/VDSSample/ViewControllers/BreadcrumbItemViewController.swift b/VDSSample/ViewControllers/BreadcrumbItemViewController.swift new file mode 100644 index 0000000..78168f2 --- /dev/null +++ b/VDSSample/ViewControllers/BreadcrumbItemViewController.swift @@ -0,0 +1,82 @@ +// +// BreadcrumbItemViewController.swift +// VDSSample +// +// Created by Kanamarlapudi, Vasavi on 11/03/24. +// + +import Foundation +import UIKit +import VDS +import VDSColorTokens + +class BreadcrumbItemViewController: BaseViewController { + + var label = Label() + var disabledSwitch = Toggle() + var selectedSwitch = Toggle() + var textField = TextField() + + override func viewDidLoad() { + super.viewDidLoad() + addContentTopView(view: .makeWrapper(for: component, edgeSpacing: 16.0), edgeSpacing: 0.0) + + setupPicker() + setupModel() + } + + override func allTextFields() -> [TextField]? { [textField] } + + override func setupForm(){ + super.setupForm() + addFormRow(label: "Action", view: label) + addFormRow(label: "Surface", view: surfacePickerSelectorView) + addFormRow(label: "Disabled", view: disabledSwitch) + addFormRow(label: "Label", view: textField) + addFormRow(label: "selected", view: selectedSwitch) + + disabledSwitch.onChange = { [weak self] sender in + self?.component.isEnabled = !sender.isOn + } + + selectedSwitch.onChange = { [weak self] sender in + guard let self else { return } + self.component.selectable = !self.component.selectable + } + + textField + .textPublisher + .sink { [weak self] text in + self?.component.text = text + }.store(in: &subscribers) + } + + func setupModel() { + component.text = "Billing statement FAQs" + component.labelPublisher(label) +// component.selectable = selectedSwitch.isOn + + //setup UI + surfacePickerSelectorView.text = component.surface.rawValue + disabledSwitch.isOn = !component.isEnabled +// selectedSwitch.isOn = !component.isSelected + textField.text = component.text + } + + func setupPicker(){ + + surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.surface = item + self?.contentTopView.backgroundColor = item.color + } + } +} + +extension BreadcrumbItemViewController: ComponentSampleable { + static func makeSample() -> ComponentSample { + let component = Self.makeComponent() + component.text = "Billing statement FAQs" + component.onClick = { c in print("\(c.text!) Click")} + return ComponentSample(component: component, trailingPinningType: .lessThanOrEqual) + } +} diff --git a/VDSSample/ViewControllers/BreadcrumbsViewController.swift b/VDSSample/ViewControllers/BreadcrumbsViewController.swift new file mode 100644 index 0000000..5eaa03b --- /dev/null +++ b/VDSSample/ViewControllers/BreadcrumbsViewController.swift @@ -0,0 +1,16 @@ +// +// BreadcrumbsViewController.swift +// VDSSample +// +// Created by Kanamarlapudi, Vasavi on 05/03/24. +// + +import Foundation +import UIKit +import VDS +import VDSColorTokens +import Combine + +class BreadcrumbsViewController: BaseViewController { + +} diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index 0ef29b7..7c3ce7f 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -70,6 +70,7 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "TableView Tester", completed: true, viewController: TableViewTestController.self), MenuComponent(title: "Badge", completed: true, viewController: BadgeViewController.self), MenuComponent(title: "Badge Indicator", completed: true, viewController: BadgeIndicatorViewController.self), + MenuComponent(title: "Breadcrumb Item", completed: true, viewController: BreadcrumbItemViewController.self), MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self), MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self), MenuComponent(title: "ButtonIcon", completed: true, viewController: ButtonIconViewController.self), From b42d910b796510d3128d534dca31e24e23a4b773 Mon Sep 17 00:00:00 2001 From: vasavk Date: Wed, 13 Mar 2024 07:34:36 +0530 Subject: [PATCH 02/11] Digital ACT-191 ONEAPP-6827 story: added new Breadcrumbs page --- VDSSample/ViewControllers/MenuViewController.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index 7c3ce7f..dab3b84 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -70,7 +70,8 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "TableView Tester", completed: true, viewController: TableViewTestController.self), MenuComponent(title: "Badge", completed: true, viewController: BadgeViewController.self), MenuComponent(title: "Badge Indicator", completed: true, viewController: BadgeIndicatorViewController.self), - MenuComponent(title: "Breadcrumb Item", completed: true, viewController: BreadcrumbItemViewController.self), + MenuComponent(title: "Breadcrumb Item", completed: false, viewController: BreadcrumbItemViewController.self), + MenuComponent(title: "Breadcrumbs", completed: false, viewController: BreadcrumbsViewController.self), MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self), MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self), MenuComponent(title: "ButtonIcon", completed: true, viewController: ButtonIconViewController.self), From d647a298713f5dd9d47e09926997a5ddf6dce823 Mon Sep 17 00:00:00 2001 From: vasavk Date: Wed, 13 Mar 2024 16:39:34 +0530 Subject: [PATCH 03/11] Digital ACT-191 ONEAPP-6827 story: setup form for Breadcrumbs page --- VDSSample/Classes/Helper.swift | 7 +++ .../BreadcrumbsViewController.swift | 43 +++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/VDSSample/Classes/Helper.swift b/VDSSample/Classes/Helper.swift index 058ebd0..ef564d9 100644 --- a/VDSSample/Classes/Helper.swift +++ b/VDSSample/Classes/Helper.swift @@ -99,4 +99,11 @@ extension BaseViewController { $0.labelPublisher(label) } } + + func makeBreadcrumbItem(_ text: String, label: UILabel) -> BreadcrumbItem { + return BreadcrumbItem().with{ + $0.text = text + $0.labelPublisher(label) + } + } } diff --git a/VDSSample/ViewControllers/BreadcrumbsViewController.swift b/VDSSample/ViewControllers/BreadcrumbsViewController.swift index 5eaa03b..e9baa74 100644 --- a/VDSSample/ViewControllers/BreadcrumbsViewController.swift +++ b/VDSSample/ViewControllers/BreadcrumbsViewController.swift @@ -13,4 +13,47 @@ import Combine class BreadcrumbsViewController: BaseViewController { + var selectedSwitch = Toggle() + let breadCrumbs = Breadcrumbs() + + override func viewDidLoad() { + super.viewDidLoad() + + let label = actionLabel + addContentTopView(view: .makeWrapper(for: component)) + component.breadcrumbItems = [ + makeBreadcrumbItem("Home", label: label).with{ $0.link = "https://www.verizon.com/" }, + makeBreadcrumbItem("Support", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, + makeBreadcrumbItem("Servie & Apps", label: label).with{ $0.link = "https://www.verizon.com/" }, + makeBreadcrumbItem("My Verizon", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, + makeBreadcrumbItem("Bill", label: label).with{ $0.link = "https://www.verizon.com/" }, + makeBreadcrumbItem("Billing statement FAQs", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = true } + ] + setupPicker() + setupModel() + } + + override func setupForm(){ + super.setupForm() + addFormRow(label: "Surface", view: surfacePickerSelectorView) + addFormRow(label: "Last Crumb Selected", view: selectedSwitch) + + selectedSwitch.onChange = { [weak self] sender in + guard let self else { return } + self.component.selected = !self.component.selected + } + } + + func setupPicker(){ + + surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.surface = item + self?.contentTopView.backgroundColor = item.color + } + } + + func setupModel() { + //setup UI + surfacePickerSelectorView.text = component.surface.rawValue + } } From 87bb4eac1e76fa0ff9e0a48cc45e78635bc1cf44 Mon Sep 17 00:00:00 2001 From: vasavk Date: Thu, 14 Mar 2024 12:19:53 +0530 Subject: [PATCH 04/11] Digital ACT-191 ONEAPP-6827 story: updating selected state data --- .../BreadcrumbsViewController.swift | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/VDSSample/ViewControllers/BreadcrumbsViewController.swift b/VDSSample/ViewControllers/BreadcrumbsViewController.swift index e9baa74..dbf7cd5 100644 --- a/VDSSample/ViewControllers/BreadcrumbsViewController.swift +++ b/VDSSample/ViewControllers/BreadcrumbsViewController.swift @@ -18,9 +18,8 @@ class BreadcrumbsViewController: BaseViewController { override func viewDidLoad() { super.viewDidLoad() - let label = actionLabel - addContentTopView(view: .makeWrapper(for: component)) + component.breadcrumbItems = [ makeBreadcrumbItem("Home", label: label).with{ $0.link = "https://www.verizon.com/" }, makeBreadcrumbItem("Support", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, @@ -29,18 +28,30 @@ class BreadcrumbsViewController: BaseViewController { makeBreadcrumbItem("Bill", label: label).with{ $0.link = "https://www.verizon.com/" }, makeBreadcrumbItem("Billing statement FAQs", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = true } ] + addContentTopView(view: component) setupPicker() setupModel() } override func setupForm(){ super.setupForm() + addActionRow() addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Last Crumb Selected", view: selectedSwitch) selectedSwitch.onChange = { [weak self] sender in guard let self else { return } - self.component.selected = !self.component.selected +// self.component.selected = !self.component.selected + let label = actionLabel + print("switch flag: \(sender.isOn)") + component.breadcrumbItems = [ + makeBreadcrumbItem("Home", label: label).with{ $0.link = "https://www.verizon.com/" }, + makeBreadcrumbItem("Support", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, + makeBreadcrumbItem("Servie & Apps", label: label).with{ $0.link = "https://www.verizon.com/" }, + makeBreadcrumbItem("My Verizon", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, + makeBreadcrumbItem("Bill", label: label).with{ $0.link = "https://www.verizon.com/" }, + makeBreadcrumbItem("Bill History ", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = sender.isOn} + ] } } @@ -54,6 +65,23 @@ class BreadcrumbsViewController: BaseViewController { func setupModel() { //setup UI + selectedSwitch.isOn = true surfacePickerSelectorView.text = component.surface.rawValue } } +// +//extension BreadcrumbsViewController: ComponentSampleable { +// static func makeSample() -> ComponentSample { +// let component = Self.makeComponent() +// let onClick: (ButtonBase) -> Void = { button in print("\(button.text!) clicked")} +// component.breadcrumbItems = [ +// BreadcrumbItem().with { $0.text = "Home"; $0.onClick = onClick }, +// BreadcrumbItem().with { $0.text = "Support"; $0.onClick = onClick }, +// BreadcrumbItem().with { $0.text = "Servie & Apps"; $0.onClick = onClick }, +// BreadcrumbItem().with { $0.text = "My Verizon"; $0.onClick = onClick }, +// BreadcrumbItem().with { $0.text = "Bill"; $0.onClick = onClick }, +// BreadcrumbItem().with { $0.text = "Billing statement FAQs"; $0.onClick = onClick } +// ] +// return ComponentSample(component: component) +// } +//} From e7e4fadbdb4a253dfafef8142081489e1ec25c28 Mon Sep 17 00:00:00 2001 From: vasavk Date: Thu, 14 Mar 2024 15:05:58 +0530 Subject: [PATCH 05/11] Digital ACT-191 ONEAPP-6827 story: removed unused and commented code. --- VDSSample.xcodeproj/project.pbxproj | 4 - .../BreadcrumbItemViewController.swift | 82 ------------------- .../BreadcrumbsViewController.swift | 22 +---- .../ViewControllers/MenuViewController.swift | 1 - 4 files changed, 1 insertion(+), 108 deletions(-) delete mode 100644 VDSSample/ViewControllers/BreadcrumbItemViewController.swift diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index 5cd2d1d..9671f24 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -33,7 +33,6 @@ /* Begin PBXBuildFile section */ 1832AC5B2BA1347B008AE476 /* BreadcrumbsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */; }; - 1832AC5D2BA13499008AE476 /* BreadcrumbItemViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832AC5C2BA13499008AE476 /* BreadcrumbItemViewController.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 */; }; @@ -130,7 +129,6 @@ /* Begin PBXFileReference section */ 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreadcrumbsViewController.swift; sourceTree = ""; }; - 1832AC5C2BA13499008AE476 /* BreadcrumbItemViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreadcrumbItemViewController.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 = ""; }; @@ -318,7 +316,6 @@ EAB1D2C828AAAA1D00DAE764 /* BaseViewController.swift */, EA4DB30328DCD25B00103EE3 /* BadgeViewController.swift */, EAD062AC2A3B86950015965D /* BadgeIndicatorViewController.swift */, - 1832AC5C2BA13499008AE476 /* BreadcrumbItemViewController.swift */, 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */, EA81410D2A0ED8DC004F60D2 /* ButtonIconViewController.swift */, EAB5FEEE2927E28400998C17 /* ButtonGroupViewController.swift */, @@ -506,7 +503,6 @@ EA5E3050294D11540082B959 /* TileContainerViewController.swift in Sources */, 445BA07A29C088470036A7C5 /* NotificationViewController.swift in Sources */, EAEEEC942B1F824500531FC2 /* Bundle.swift in Sources */, - 1832AC5D2BA13499008AE476 /* BreadcrumbItemViewController.swift in Sources */, EAF7F11A28A14A0E00B287F5 /* RadioButtonGroupViewController.swift in Sources */, EA89204628B66CE2006B9984 /* ScrollViewController.swift in Sources */, EA471F402A97BEAA00CE9E58 /* CustomRotorable.swift in Sources */, diff --git a/VDSSample/ViewControllers/BreadcrumbItemViewController.swift b/VDSSample/ViewControllers/BreadcrumbItemViewController.swift deleted file mode 100644 index 78168f2..0000000 --- a/VDSSample/ViewControllers/BreadcrumbItemViewController.swift +++ /dev/null @@ -1,82 +0,0 @@ -// -// BreadcrumbItemViewController.swift -// VDSSample -// -// Created by Kanamarlapudi, Vasavi on 11/03/24. -// - -import Foundation -import UIKit -import VDS -import VDSColorTokens - -class BreadcrumbItemViewController: BaseViewController { - - var label = Label() - var disabledSwitch = Toggle() - var selectedSwitch = Toggle() - var textField = TextField() - - override func viewDidLoad() { - super.viewDidLoad() - addContentTopView(view: .makeWrapper(for: component, edgeSpacing: 16.0), edgeSpacing: 0.0) - - setupPicker() - setupModel() - } - - override func allTextFields() -> [TextField]? { [textField] } - - override func setupForm(){ - super.setupForm() - addFormRow(label: "Action", view: label) - addFormRow(label: "Surface", view: surfacePickerSelectorView) - addFormRow(label: "Disabled", view: disabledSwitch) - addFormRow(label: "Label", view: textField) - addFormRow(label: "selected", view: selectedSwitch) - - disabledSwitch.onChange = { [weak self] sender in - self?.component.isEnabled = !sender.isOn - } - - selectedSwitch.onChange = { [weak self] sender in - guard let self else { return } - self.component.selectable = !self.component.selectable - } - - textField - .textPublisher - .sink { [weak self] text in - self?.component.text = text - }.store(in: &subscribers) - } - - func setupModel() { - component.text = "Billing statement FAQs" - component.labelPublisher(label) -// component.selectable = selectedSwitch.isOn - - //setup UI - surfacePickerSelectorView.text = component.surface.rawValue - disabledSwitch.isOn = !component.isEnabled -// selectedSwitch.isOn = !component.isSelected - textField.text = component.text - } - - func setupPicker(){ - - surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in - self?.component.surface = item - self?.contentTopView.backgroundColor = item.color - } - } -} - -extension BreadcrumbItemViewController: ComponentSampleable { - static func makeSample() -> ComponentSample { - let component = Self.makeComponent() - component.text = "Billing statement FAQs" - component.onClick = { c in print("\(c.text!) Click")} - return ComponentSample(component: component, trailingPinningType: .lessThanOrEqual) - } -} diff --git a/VDSSample/ViewControllers/BreadcrumbsViewController.swift b/VDSSample/ViewControllers/BreadcrumbsViewController.swift index dbf7cd5..2e48d56 100644 --- a/VDSSample/ViewControllers/BreadcrumbsViewController.swift +++ b/VDSSample/ViewControllers/BreadcrumbsViewController.swift @@ -14,7 +14,6 @@ import Combine class BreadcrumbsViewController: BaseViewController { var selectedSwitch = Toggle() - let breadCrumbs = Breadcrumbs() override func viewDidLoad() { super.viewDidLoad() @@ -41,22 +40,19 @@ class BreadcrumbsViewController: BaseViewController { selectedSwitch.onChange = { [weak self] sender in guard let self else { return } -// self.component.selected = !self.component.selected let label = actionLabel - print("switch flag: \(sender.isOn)") component.breadcrumbItems = [ makeBreadcrumbItem("Home", label: label).with{ $0.link = "https://www.verizon.com/" }, makeBreadcrumbItem("Support", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, makeBreadcrumbItem("Servie & Apps", label: label).with{ $0.link = "https://www.verizon.com/" }, makeBreadcrumbItem("My Verizon", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, makeBreadcrumbItem("Bill", label: label).with{ $0.link = "https://www.verizon.com/" }, - makeBreadcrumbItem("Bill History ", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = sender.isOn} + makeBreadcrumbItem("Billing statement FAQs", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = sender.isOn} ] } } func setupPicker(){ - surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.component.surface = item self?.contentTopView.backgroundColor = item.color @@ -69,19 +65,3 @@ class BreadcrumbsViewController: BaseViewController { surfacePickerSelectorView.text = component.surface.rawValue } } -// -//extension BreadcrumbsViewController: ComponentSampleable { -// static func makeSample() -> ComponentSample { -// let component = Self.makeComponent() -// let onClick: (ButtonBase) -> Void = { button in print("\(button.text!) clicked")} -// component.breadcrumbItems = [ -// BreadcrumbItem().with { $0.text = "Home"; $0.onClick = onClick }, -// BreadcrumbItem().with { $0.text = "Support"; $0.onClick = onClick }, -// BreadcrumbItem().with { $0.text = "Servie & Apps"; $0.onClick = onClick }, -// BreadcrumbItem().with { $0.text = "My Verizon"; $0.onClick = onClick }, -// BreadcrumbItem().with { $0.text = "Bill"; $0.onClick = onClick }, -// BreadcrumbItem().with { $0.text = "Billing statement FAQs"; $0.onClick = onClick } -// ] -// return ComponentSample(component: component) -// } -//} diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index dab3b84..c666ad8 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -70,7 +70,6 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "TableView Tester", completed: true, viewController: TableViewTestController.self), MenuComponent(title: "Badge", completed: true, viewController: BadgeViewController.self), MenuComponent(title: "Badge Indicator", completed: true, viewController: BadgeIndicatorViewController.self), - MenuComponent(title: "Breadcrumb Item", completed: false, viewController: BreadcrumbItemViewController.self), MenuComponent(title: "Breadcrumbs", completed: false, viewController: BreadcrumbsViewController.self), MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self), MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self), From 27032ccf8aabb9ce4320daee286991cd38ae1b15 Mon Sep 17 00:00:00 2001 From: vasavk Date: Fri, 15 Mar 2024 19:22:45 +0530 Subject: [PATCH 06/11] Digital ACT-191 ONEAPP-6827 story: minor change for last breadcrumb --- .../ViewControllers/BreadcrumbsViewController.swift | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/VDSSample/ViewControllers/BreadcrumbsViewController.swift b/VDSSample/ViewControllers/BreadcrumbsViewController.swift index 2e48d56..3e35ebd 100644 --- a/VDSSample/ViewControllers/BreadcrumbsViewController.swift +++ b/VDSSample/ViewControllers/BreadcrumbsViewController.swift @@ -40,15 +40,7 @@ class BreadcrumbsViewController: BaseViewController { selectedSwitch.onChange = { [weak self] sender in guard let self else { return } - let label = actionLabel - component.breadcrumbItems = [ - makeBreadcrumbItem("Home", label: label).with{ $0.link = "https://www.verizon.com/" }, - makeBreadcrumbItem("Support", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, - makeBreadcrumbItem("Servie & Apps", label: label).with{ $0.link = "https://www.verizon.com/" }, - makeBreadcrumbItem("My Verizon", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, - makeBreadcrumbItem("Bill", label: label).with{ $0.link = "https://www.verizon.com/" }, - makeBreadcrumbItem("Billing statement FAQs", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = sender.isOn} - ] + component.breadcrumbItems.last?.selectable = sender.isOn } } From 16857ade9f1ed3547cc0f567774024d9f6e4df2a Mon Sep 17 00:00:00 2001 From: vasavk Date: Wed, 20 Mar 2024 17:16:56 +0530 Subject: [PATCH 07/11] Digital ACT-191 ONEAPP-6827 story: Updated code as per review feedback --- VDSSample/Classes/Helper.swift | 7 --- .../BreadcrumbsViewController.swift | 60 ++++++++++++++----- 2 files changed, 46 insertions(+), 21 deletions(-) diff --git a/VDSSample/Classes/Helper.swift b/VDSSample/Classes/Helper.swift index ef564d9..058ebd0 100644 --- a/VDSSample/Classes/Helper.swift +++ b/VDSSample/Classes/Helper.swift @@ -99,11 +99,4 @@ extension BaseViewController { $0.labelPublisher(label) } } - - func makeBreadcrumbItem(_ text: String, label: UILabel) -> BreadcrumbItem { - return BreadcrumbItem().with{ - $0.text = text - $0.labelPublisher(label) - } - } } diff --git a/VDSSample/ViewControllers/BreadcrumbsViewController.swift b/VDSSample/ViewControllers/BreadcrumbsViewController.swift index 3e35ebd..1b1474a 100644 --- a/VDSSample/ViewControllers/BreadcrumbsViewController.swift +++ b/VDSSample/ViewControllers/BreadcrumbsViewController.swift @@ -14,33 +14,51 @@ import Combine class BreadcrumbsViewController: BaseViewController { var selectedSwitch = Toggle() + var sampleSwitch = Toggle() + var selectedCrumbLabel = Label().with { $0.textStyle = .boldBodyMedium } + + var allBreadcrumbs: [Breadcrumbs.BreadcrumbItemModel] = [ + .init(text: "Home", link: "https://www.verizon.com/"), + .init(text: "Support", link: "https://www.verizon.com/"), + .init(text: "Servie & Apps", link: "https://www.verizon.com/"), + .init(text: "My Verizon", link: "https://www.verizon.com/"), + .init(text: "Bill", link: "https://www.verizon.com/"), + .init(text: "Mobile Billing & Payments", link: "https://www.verizon.com/"), + .init(text: "Billing statement FAQs", link: "https://www.verizon.com/", isSelected: true) + ] + + var some: [Breadcrumbs.BreadcrumbItemModel] = [ + .init(text: "Plans", link: "https://www.verizon.com/"), + .init(text: "Upgrade Plan", link: "https://www.verizon.com/", isSelected: true) + ] override func viewDidLoad() { super.viewDidLoad() - let label = actionLabel - - component.breadcrumbItems = [ - makeBreadcrumbItem("Home", label: label).with{ $0.link = "https://www.verizon.com/" }, - makeBreadcrumbItem("Support", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, - makeBreadcrumbItem("Servie & Apps", label: label).with{ $0.link = "https://www.verizon.com/" }, - makeBreadcrumbItem("My Verizon", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = false }, - makeBreadcrumbItem("Bill", label: label).with{ $0.link = "https://www.verizon.com/" }, - makeBreadcrumbItem("Billing statement FAQs", label: label).with{ $0.link = "https://www.verizon.com/"; $0.selectable = true } - ] - addContentTopView(view: component) + let stack = UIStackView(arrangedSubviews: [component, selectedCrumbLabel]).with { + $0.axis = .vertical + $0.spacing = 4 + } + addContentTopView(view: stack) setupPicker() setupModel() } override func setupForm(){ super.setupForm() - addActionRow() addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Last Crumb Selected", view: selectedSwitch) - + addFormRow(label: "Large Sample", view: sampleSwitch) + selectedSwitch.onChange = { [weak self] sender in guard let self else { return } - component.breadcrumbItems.last?.selectable = sender.isOn + component.breadcrumbs.last?.isSelected = sender.isOn + } + + sampleSwitch.onChange = { [weak self] sender in + guard let self else { return } + self.component.breadcrumbModels = sender.isOn ? self.allBreadcrumbs : self.some + selectedSwitch.isOn = true + updatedCrumbLabel(crumb: component.breadcrumbs.last ?? nil) } } @@ -51,9 +69,23 @@ class BreadcrumbsViewController: BaseViewController { } } + func updatedCrumbLabel(crumb: BreadcrumbItem?) { + selectedCrumbLabel.text = "Selected Crumb : \(crumb?.text ?? "")" + } + func setupModel() { //setup UI + component.breadcrumbModels = allBreadcrumbs selectedSwitch.isOn = true + sampleSwitch.isOn = true surfacePickerSelectorView.text = component.surface.rawValue + + updatedCrumbLabel(crumb: component.breadcrumbs.last ?? nil) + //test setup to show component was picked + component.onBreadcrumbDidSelect = { [weak self] crumb in + guard let self else { return } + self.updatedCrumbLabel(crumb: crumb) + } + } } From 3301a08ac70c275f768ce377db05f68936f2e970 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 21 Mar 2024 14:10:17 -0500 Subject: [PATCH 08/11] updated samples Signed-off-by: Matt Bruce --- .../BreadcrumbsViewController.swift | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/VDSSample/ViewControllers/BreadcrumbsViewController.swift b/VDSSample/ViewControllers/BreadcrumbsViewController.swift index 1b1474a..8c86718 100644 --- a/VDSSample/ViewControllers/BreadcrumbsViewController.swift +++ b/VDSSample/ViewControllers/BreadcrumbsViewController.swift @@ -15,28 +15,29 @@ class BreadcrumbsViewController: BaseViewController { var selectedSwitch = Toggle() var sampleSwitch = Toggle() + var line = Line() var selectedCrumbLabel = Label().with { $0.textStyle = .boldBodyMedium } - var allBreadcrumbs: [Breadcrumbs.BreadcrumbItemModel] = [ - .init(text: "Home", link: "https://www.verizon.com/"), - .init(text: "Support", link: "https://www.verizon.com/"), - .init(text: "Servie & Apps", link: "https://www.verizon.com/"), - .init(text: "My Verizon", link: "https://www.verizon.com/"), - .init(text: "Bill", link: "https://www.verizon.com/"), - .init(text: "Mobile Billing & Payments", link: "https://www.verizon.com/"), - .init(text: "Billing statement FAQs", link: "https://www.verizon.com/", isSelected: true) + .init(text: "Home"), + .init(text: "Support", enabeled: false), + .init(text: "Servie & Apps"), + .init(text: "My Verizon"), + .init(text: "Bill"), + .init(text: "Mobile Billing & Payments"), + .init(text: "Billing statement FAQs", selected: true) ] var some: [Breadcrumbs.BreadcrumbItemModel] = [ - .init(text: "Plans", link: "https://www.verizon.com/"), - .init(text: "Upgrade Plan", link: "https://www.verizon.com/", isSelected: true) + .init(text: "Plans"), + .init(text: "Upgrade Plan"), + .init(text: "Billing Statement Frequently Asked Questions About Stuff You don't want to see", selected: true) ] override func viewDidLoad() { super.viewDidLoad() let stack = UIStackView(arrangedSubviews: [component, selectedCrumbLabel]).with { $0.axis = .vertical - $0.spacing = 4 + $0.spacing = 25 } addContentTopView(view: stack) setupPicker() @@ -66,6 +67,8 @@ class BreadcrumbsViewController: BaseViewController { surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.component.surface = item self?.contentTopView.backgroundColor = item.color + self?.line.surface = item + self?.selectedCrumbLabel.surface = item } } From 403e5b4613999666d1b03b17d166780180749a6c Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 21 Mar 2024 14:10:34 -0500 Subject: [PATCH 09/11] Signed-off-by: Matt Bruce --- VDSSample/ViewControllers/BreadcrumbsViewController.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/VDSSample/ViewControllers/BreadcrumbsViewController.swift b/VDSSample/ViewControllers/BreadcrumbsViewController.swift index 8c86718..2264c75 100644 --- a/VDSSample/ViewControllers/BreadcrumbsViewController.swift +++ b/VDSSample/ViewControllers/BreadcrumbsViewController.swift @@ -15,7 +15,6 @@ class BreadcrumbsViewController: BaseViewController { var selectedSwitch = Toggle() var sampleSwitch = Toggle() - var line = Line() var selectedCrumbLabel = Label().with { $0.textStyle = .boldBodyMedium } var allBreadcrumbs: [Breadcrumbs.BreadcrumbItemModel] = [ .init(text: "Home"), @@ -67,7 +66,6 @@ class BreadcrumbsViewController: BaseViewController { surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.component.surface = item self?.contentTopView.backgroundColor = item.color - self?.line.surface = item self?.selectedCrumbLabel.surface = item } } From ecb33479b797446e7264f07e00cae54b10d74d9b Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 21 Mar 2024 14:19:22 -0500 Subject: [PATCH 10/11] updated order and menu Signed-off-by: Matt Bruce --- VDSSample.xcodeproj/project.pbxproj | 20 +++++++++---------- .../ViewControllers/MenuViewController.swift | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index 91dcd2c..b62a794 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -310,19 +310,19 @@ isa = PBXGroup; children = ( EA89203E28B66CE2006B9984 /* ScrollViewController */, - EA3C3BB228996775000CA526 /* MenuViewController.swift */, - EAD062A22A3913920015965D /* DropShawdowViewController.swift */, EA297A672A02F5320031ED56 /* TableViewTestController.swift */, - EAB1D2C828AAAA1D00DAE764 /* BaseViewController.swift */, - EA4DB30328DCD25B00103EE3 /* BadgeViewController.swift */, + EAD062A22A3913920015965D /* DropShawdowViewController.swift */, + EA3C3BB228996775000CA526 /* MenuViewController.swift */, EAD062AC2A3B86950015965D /* BadgeIndicatorViewController.swift */, + EA4DB30328DCD25B00103EE3 /* BadgeViewController.swift */, + EAB1D2C828AAAA1D00DAE764 /* BaseViewController.swift */, 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */, - EA81410D2A0ED8DC004F60D2 /* ButtonIconViewController.swift */, EAB5FEEE2927E28400998C17 /* ButtonGroupViewController.swift */, + EA81410D2A0ED8DC004F60D2 /* ButtonIconViewController.swift */, 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */, - EA0D1C2E2A66CFE900E5C127 /* CheckboxViewController.swift */, - EAF7F09B2899B92400B287F5 /* CheckboxItemViewController.swift */, EA89204D28B67332006B9984 /* CheckBoxGroupViewController.swift */, + EAF7F09B2899B92400B287F5 /* CheckboxItemViewController.swift */, + EA0D1C2E2A66CFE900E5C127 /* CheckboxViewController.swift */, EA985C00296CC21C00F2FF2E /* IconViewController.swift */, EAA5EEAC28EB6924003B3210 /* InputFieldViewController.swift */, EAB1D2D328AC409F00DAE764 /* LabelViewController.swift */, @@ -330,17 +330,17 @@ EAD0688F2A55FC11002E3A2D /* LoaderViewController.swift */, 445BA07929C088470036A7C5 /* NotificationViewController.swift */, EA89201828B56DF5006B9984 /* RadioBoxGroupViewController.swift */, - EA0D1C302A673F3500E5C127 /* RadioButtonViewController.swift */, - EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */, EAF7F11928A14A0E00B287F5 /* RadioButtonGroupViewController.swift */, + EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */, + EA0D1C302A673F3500E5C127 /* RadioButtonViewController.swift */, EA5F86CD2A1E863F00BC83E4 /* TabsContainerViewController.swift */, EA596AB92A16B2ED00300C4B /* TabsViewController.swift */, EA985C24296E06EA00F2FF2E /* TextAreaViewController.swift */, EA0FC2C02912DC5500DF80B4 /* TextLinkCaretViewController.swift */, EAC9257F29119FC400091998 /* TextLinkViewController.swift */, EA5E304F294D11540082B959 /* TileContainerViewController.swift */, - EA5E30542950EA6E0082B959 /* TitleLockupViewController.swift */, EA5E305B295111050082B959 /* TileletViewController.swift */, + EA5E30542950EA6E0082B959 /* TitleLockupViewController.swift */, EA3C3BB328996775000CA526 /* ToggleViewController.swift */, EAB2375F29E88D5D00AABE9A /* TooltipViewController.swift */, EAB2376B29E9E74900AABE9A /* TrailingTooltipLabelViewController.swift */, diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index c666ad8..8465c6f 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -70,7 +70,7 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "TableView Tester", completed: true, viewController: TableViewTestController.self), MenuComponent(title: "Badge", completed: true, viewController: BadgeViewController.self), MenuComponent(title: "Badge Indicator", completed: true, viewController: BadgeIndicatorViewController.self), - MenuComponent(title: "Breadcrumbs", completed: false, viewController: BreadcrumbsViewController.self), + MenuComponent(title: "Breadcrumbs", completed: true, viewController: BreadcrumbsViewController.self), MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self), MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self), MenuComponent(title: "ButtonIcon", completed: true, viewController: ButtonIconViewController.self), From 5fd4f0205b891c862ea13e41f5eef2b09ac6d687 Mon Sep 17 00:00:00 2001 From: "Bandaru, Krishna Kishore" Date: Thu, 21 Mar 2024 20:13:51 +0000 Subject: [PATCH 11/11] Pagination Component --- VDSSample.xcodeproj/project.pbxproj | 4 ++ .../ViewControllers/MenuViewController.swift | 1 + .../PaginationViewController.swift | 48 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 VDSSample/ViewControllers/PaginationViewController.swift diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index b62a794..6b65fa5 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -36,6 +36,7 @@ 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 */; }; + 71B23C312B921D740027F7D9 /* PaginationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71B23C302B921D730027F7D9 /* PaginationViewController.swift */; }; EA0D1C2F2A66CFE900E5C127 /* CheckboxViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0D1C2E2A66CFE900E5C127 /* CheckboxViewController.swift */; }; EA0D1C312A673F3500E5C127 /* RadioButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0D1C302A673F3500E5C127 /* RadioButtonViewController.swift */; }; EA0D1C332A673FD400E5C127 /* RadioButtonItemViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */; }; @@ -132,6 +133,7 @@ 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 = ""; }; + 71B23C302B921D730027F7D9 /* PaginationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaginationViewController.swift; sourceTree = ""; }; EA0D1C2E2A66CFE900E5C127 /* CheckboxViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckboxViewController.swift; sourceTree = ""; }; EA0D1C302A673F3500E5C127 /* RadioButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonViewController.swift; sourceTree = ""; }; EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonItemViewController.swift; sourceTree = ""; }; @@ -329,6 +331,7 @@ 44604AD829CE1CF900E62B51 /* LineViewController.swift */, EAD0688F2A55FC11002E3A2D /* LoaderViewController.swift */, 445BA07929C088470036A7C5 /* NotificationViewController.swift */, + 71B23C302B921D730027F7D9 /* PaginationViewController.swift */, EA89201828B56DF5006B9984 /* RadioBoxGroupViewController.swift */, EAF7F11928A14A0E00B287F5 /* RadioButtonGroupViewController.swift */, EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */, @@ -523,6 +526,7 @@ EAB2376029E88D5D00AABE9A /* TooltipViewController.swift in Sources */, EA89204828B66CE2006B9984 /* ScrollViewKeyboardAvoiding.swift in Sources */, EA0FC2C12912DC5500DF80B4 /* TextLinkCaretViewController.swift in Sources */, + 71B23C312B921D740027F7D9 /* PaginationViewController.swift in Sources */, EAF7F09C2899B92400B287F5 /* CheckboxItemViewController.swift in Sources */, EA0D1C2F2A66CFE900E5C127 /* CheckboxViewController.swift in Sources */, EA596ABA2A16B2ED00300C4B /* TabsViewController.swift in Sources */, diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index 8465c6f..12ac92b 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -83,6 +83,7 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "Line", completed: true, viewController: LineViewController.self), MenuComponent(title: "Loader", completed: true, viewController: LoaderViewController.self), MenuComponent(title: "Notification", completed: true, viewController: NotificationViewController.self), + MenuComponent(title: "Pagination", completed: true, viewController: PaginationViewController.self), MenuComponent(title: "RadioBoxGroup", completed: true, viewController: RadioBoxGroupViewController.self), MenuComponent(title: "RadioButton", completed: true, viewController: RadioButtonViewController.self), MenuComponent(title: "RadioButtonItem", completed: true, viewController: RadioButtonItemViewController.self), diff --git a/VDSSample/ViewControllers/PaginationViewController.swift b/VDSSample/ViewControllers/PaginationViewController.swift new file mode 100644 index 0000000..47a5807 --- /dev/null +++ b/VDSSample/ViewControllers/PaginationViewController.swift @@ -0,0 +1,48 @@ +// +// PaginationViewController.swift +// VDSSample +// +// Created by Bandaru, Krishna Kishore on 01/03/24. +// + +import UIKit +import VDS + +final class PaginationViewController: BaseViewController { + + var totalPagesTextField = NumericField() + var selectedPageTextField = NumericField() + + override func viewDidLoad() { + super.viewDidLoad() + + addContentTopView(view: component) + totalPagesTextField.text = "10" + component.total = 10 + } + + override func setupForm(){ + super.setupForm() + addFormRow(label: "Surface", view: surfacePickerSelectorView) + addFormRow(label: "Total pages", view: totalPagesTextField) + addFormRow(label: "Selected page", view: selectedPageTextField) + setUpPublishers() + } + + func setUpPublishers() { + surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.surface = item + self?.contentTopView.backgroundColor = item.color + } + totalPagesTextField + .numberPublisher + .sink { [weak self] number in + self?.component.total = number?.intValue ?? 0 + }.store(in: &subscribers) + selectedPageTextField + .numberPublisher + .sink { [weak self] number in + self?.component.selectedPage = number?.intValue ?? 0 + }.store(in: &subscribers) + } +}