// // CarouselViewController.swift // VDSSample // // Created by Kanamarlapudi, Vasavi on 29/05/24. // import Foundation import UIKit import VDS import Combine import VDSTokens class CarouselViewController: BaseViewController { let label = Label() lazy var scalingTypePickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: Carousel.AspectRatio.allCases) }() lazy var layoutPickerSelectorView = { PickerSelectorView(title: "1UP", picker: self.picker, items: UIDevice.isIPad ? Carousel.Layout.allCases : [Carousel.Layout.oneUP, Carousel.Layout.twoUP, Carousel.Layout.threeUP]) }() lazy var paginationDisplayPickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: Carousel.PaginationDisplay.allCases) }() lazy var peekPickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: Carousel.Peek.allCases) }() lazy var gutterPickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: Carousel.Gutter.allCases) }() lazy var paginationKindPickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: Carousel.PaginationKind.allCases) }() lazy var horizAlignmtPickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: Carousel.Horizontal.allCases) }() lazy var vertAlignmtPickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: Carousel.Vertical.allCases) }() var paginationFloatSwitch = Toggle() var paginationInsetField = TextField() var slotsWidthField = TextField() override func viewDidLoad() { super.viewDidLoad() addContentTopView(view: component) setupPicker() setupModel() } override func setupForm() { super.setupForm() //add form rows addFormRow(label: "onChange", view: label) addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Aspect Ratio", view: scalingTypePickerSelectorView) //data addFormRow(label: "data", view: slidesTextField) addFormRow(label: "Pagination Display", view: paginationDisplayPickerSelectorView) addFormRow(label: "Peek", view: peekPickerSelectorView) addFormRow(label: "Gutter", view: gutterPickerSelectorView) addFormRow(label: "Layout", view: layoutPickerSelectorView) addFormRow(label: "Pagination Kind", view: paginationKindPickerSelectorView) addFormRow(label: "Pagination Float", view: paginationFloatSwitch) addFormRow(label: "Pagination Inset", view: paginationInsetField) addFormRow(label: "Slots Width", view: slotsWidthField) addFormRow(label: "Slot Horizontal Alignment", view: horizAlignmtPickerSelectorView) addFormRow(label: "Slot Vertical Alignment", view: vertAlignmtPickerSelectorView) // slotsWidthField // .numberPublisher // .sink { [weak self] number in // guard let number else { // return // } //// self?.component.numberOfSlides = number.intValue //// self?.component.position = Int(self?.positionTextField.text ?? "1") ?? 1 // }.store(in: &subscribers) // // paginationInsetField // .textPublisher // .sink { [weak self] text in //// self?.component.labelText = text // }.store(in: &subscribers) // } func setupModel() { //setup UI scalingTypePickerSelectorView.text = component.aspectRatio.rawValue } 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.layout = item } } }