diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index 071627e..f475755 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -32,6 +32,7 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ + 1808BEBE2BA4479500129230 /* CarouselScrollbarViewConttroller.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.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 +128,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarouselScrollbarViewConttroller.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 @@ EA81410D2A0ED8DC004F60D2 /* ButtonIconViewController.swift */, EAB5FEEE2927E28400998C17 /* ButtonGroupViewController.swift */, 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */, + 1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */, EA0D1C2E2A66CFE900E5C127 /* CheckboxViewController.swift */, EAF7F09B2899B92400B287F5 /* CheckboxItemViewController.swift */, EA89204D28B67332006B9984 /* CheckBoxGroupViewController.swift */, @@ -493,6 +496,7 @@ EA89205128B68307006B9984 /* TextField.swift in Sources */, EA297A682A02F5320031ED56 /* TableViewTestController.swift in Sources */, 44604AD929CE1CF900E62B51 /* LineViewController.swift in Sources */, + 1808BEBE2BA4479500129230 /* CarouselScrollbarViewConttroller.swift in Sources */, EA3C3BB528996775000CA526 /* StoryboardInitable.swift in Sources */, EA89201928B56DF5006B9984 /* RadioBoxGroupViewController.swift in Sources */, EA3C3BB628996775000CA526 /* MenuViewController.swift in Sources */, diff --git a/VDSSample/ViewControllers/CarouselScrollbarViewConttroller.swift b/VDSSample/ViewControllers/CarouselScrollbarViewConttroller.swift new file mode 100644 index 0000000..2ad8bb8 --- /dev/null +++ b/VDSSample/ViewControllers/CarouselScrollbarViewConttroller.swift @@ -0,0 +1,87 @@ +// +// CarouselScrollbarViewConttroller.swift +// VDSSample +// +// Created by Kanamarlapudi, Vasavi on 15/03/24. +// + +import Foundation +import UIKit +import VDS +import Combine +import VDSColorTokens + +class CarouselScrollbarViewConttroller: BaseViewController { + + lazy var layoutPickerSelectorView = { + PickerSelectorView(title: "1UP", + picker: self.picker, + items: CarouselScrollbar.Layout.allCases) + }() + + var slidesTextField = NumericField() + var disabledSwitch = Toggle() + var positionTextField = NumericField() + + + override func viewDidLoad() { + super.viewDidLoad() + addContentTopView(view: component) + setupPicker() + setupModel() + } + + override func setupForm(){ + super.setupForm() + addFormRow(label: "Disabled", view: disabledSwitch) + addFormRow(label: "Surface", view: surfacePickerSelectorView) + addFormRow(label: "Layout", view: layoutPickerSelectorView) + addFormRow(label: "Number Of Slides", view: slidesTextField) + addFormRow(label: "Position", view: positionTextField) + + disabledSwitch.onChange = { [weak self] sender in + self?.component.isEnabled = !sender.isOn + } + + slidesTextField + .numberPublisher + .sink { [weak self] number in + guard let number else { + self?.component.numberOfSlides = nil + return + } + self?.component.numberOfSlides = number.intValue + }.store(in: &subscribers) + + positionTextField + .numberPublisher + .sink { [weak self] number in + guard let number else { + self?.component.position = nil + return + } + self?.component.position = number.intValue + }.store(in: &subscribers) + + } + + func setupModel() { + //setup UI + component.numberOfSlides = 8 + surfacePickerSelectorView.text = component.surface.rawValue + disabledSwitch.isOn = !component.isEnabled + slidesTextField.text = String(component.numberOfSlides ?? 1) + } + + func setupPicker(){ + + surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.surface = item + self?.contentTopView.backgroundColor = item.color + } + + layoutPickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.selectedLayout = item + } + } +} diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index 0ef29b7..3964b0b 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -73,6 +73,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: "Carousel Scrollbar", completed: false, viewController: CarouselScrollbarViewConttroller.self), MenuComponent(title: "Checkbox", completed: true, viewController: CheckboxViewController.self), MenuComponent(title: "CheckboxItem", completed: true, viewController: CheckboxItemViewController.self), MenuComponent(title: "CheckboxGroup", completed: true, viewController: CheckboxGroupViewController.self),