Merge branch 'vasavk/calendar' of https://gitlab.verizon.com/BPHV_MIPS/vds_ios_sample.git into feature/datePicker
This commit is contained in:
commit
7cef54c509
@ -35,6 +35,7 @@
|
|||||||
1808BEBE2BA4479500129230 /* CarouselScrollbarViewConttroller.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */; };
|
1808BEBE2BA4479500129230 /* CarouselScrollbarViewConttroller.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */; };
|
||||||
1832AC5B2BA1347B008AE476 /* BreadcrumbsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */; };
|
1832AC5B2BA1347B008AE476 /* BreadcrumbsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */; };
|
||||||
186D13CD2BBA990800986B53 /* DropdownSelectViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 186D13CC2BBA990800986B53 /* DropdownSelectViewController.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 */; };
|
445BA07A29C088470036A7C5 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 445BA07929C088470036A7C5 /* NotificationViewController.swift */; };
|
||||||
44604AD929CE1CF900E62B51 /* LineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44604AD829CE1CF900E62B51 /* LineViewController.swift */; };
|
44604AD929CE1CF900E62B51 /* LineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44604AD829CE1CF900E62B51 /* LineViewController.swift */; };
|
||||||
5FC35BE928D5235A004EBEAC /* ButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */; };
|
5FC35BE928D5235A004EBEAC /* ButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */; };
|
||||||
@ -130,6 +131,7 @@
|
|||||||
1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarouselScrollbarViewConttroller.swift; sourceTree = "<group>"; };
|
1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarouselScrollbarViewConttroller.swift; sourceTree = "<group>"; };
|
||||||
1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreadcrumbsViewController.swift; sourceTree = "<group>"; };
|
1832AC5A2BA1347B008AE476 /* BreadcrumbsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreadcrumbsViewController.swift; sourceTree = "<group>"; };
|
||||||
186D13CC2BBA990800986B53 /* DropdownSelectViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropdownSelectViewController.swift; sourceTree = "<group>"; };
|
186D13CC2BBA990800986B53 /* DropdownSelectViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DropdownSelectViewController.swift; sourceTree = "<group>"; };
|
||||||
|
18A3F12F2BD9332500498E4A /* CalendarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarViewController.swift; sourceTree = "<group>"; };
|
||||||
445BA07929C088470036A7C5 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = "<group>"; };
|
445BA07929C088470036A7C5 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = "<group>"; };
|
||||||
44604AD829CE1CF900E62B51 /* LineViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineViewController.swift; sourceTree = "<group>"; };
|
44604AD829CE1CF900E62B51 /* LineViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineViewController.swift; sourceTree = "<group>"; };
|
||||||
5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonViewController.swift; sourceTree = "<group>"; };
|
5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonViewController.swift; sourceTree = "<group>"; };
|
||||||
@ -319,6 +321,7 @@
|
|||||||
EAB5FEEE2927E28400998C17 /* ButtonGroupViewController.swift */,
|
EAB5FEEE2927E28400998C17 /* ButtonGroupViewController.swift */,
|
||||||
EA81410D2A0ED8DC004F60D2 /* ButtonIconViewController.swift */,
|
EA81410D2A0ED8DC004F60D2 /* ButtonIconViewController.swift */,
|
||||||
5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */,
|
5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */,
|
||||||
|
18A3F12F2BD9332500498E4A /* CalendarViewController.swift */,
|
||||||
1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */,
|
1808BEBD2BA4479500129230 /* CarouselScrollbarViewConttroller.swift */,
|
||||||
EA89204D28B67332006B9984 /* CheckBoxGroupViewController.swift */,
|
EA89204D28B67332006B9984 /* CheckBoxGroupViewController.swift */,
|
||||||
EAF7F09B2899B92400B287F5 /* CheckboxItemViewController.swift */,
|
EAF7F09B2899B92400B287F5 /* CheckboxItemViewController.swift */,
|
||||||
@ -533,6 +536,7 @@
|
|||||||
71B23C312B921D740027F7D9 /* PaginationViewController.swift in Sources */,
|
71B23C312B921D740027F7D9 /* PaginationViewController.swift in Sources */,
|
||||||
EAF7F09C2899B92400B287F5 /* CheckboxItemViewController.swift in Sources */,
|
EAF7F09C2899B92400B287F5 /* CheckboxItemViewController.swift in Sources */,
|
||||||
EA0D1C2F2A66CFE900E5C127 /* CheckboxViewController.swift in Sources */,
|
EA0D1C2F2A66CFE900E5C127 /* CheckboxViewController.swift in Sources */,
|
||||||
|
18A3F1302BD9332500498E4A /* CalendarViewController.swift in Sources */,
|
||||||
EA596ABA2A16B2ED00300C4B /* TabsViewController.swift in Sources */,
|
EA596ABA2A16B2ED00300C4B /* TabsViewController.swift in Sources */,
|
||||||
EA89204E28B67332006B9984 /* CheckBoxGroupViewController.swift in Sources */,
|
EA89204E28B67332006B9984 /* CheckBoxGroupViewController.swift in Sources */,
|
||||||
EAA5EEAD28EB6924003B3210 /* InputFieldViewController.swift in Sources */,
|
EAA5EEAD28EB6924003B3210 /* InputFieldViewController.swift in Sources */,
|
||||||
|
|||||||
305
VDSSample/ViewControllers/CalendarViewController.swift
Normal file
305
VDSSample/ViewControllers/CalendarViewController.swift
Normal file
@ -0,0 +1,305 @@
|
|||||||
|
//
|
||||||
|
// CalendarViewController.swift
|
||||||
|
// VDSSample
|
||||||
|
//
|
||||||
|
// Created by Kanamarlapudi, Vasavi on 19/04/24.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
import VDS
|
||||||
|
import Combine
|
||||||
|
import VDSTokens
|
||||||
|
|
||||||
|
class CalendarViewController: BaseViewController<CalendarBase> {
|
||||||
|
|
||||||
|
var containerBorderSwitch = Toggle()
|
||||||
|
var hideCurrentDateIndicatorSwitch = Toggle()
|
||||||
|
var transparentBgSwitch = Toggle()
|
||||||
|
var indicatorOneSwitch = Toggle()
|
||||||
|
var indicatorTwoSwitch = Toggle()
|
||||||
|
var indicatorThreeSwitch = Toggle()
|
||||||
|
var clearActiveDatesSwitch = Toggle()
|
||||||
|
var clearInactiveDatesSwitch = Toggle()
|
||||||
|
var activeDatesField = TextField()
|
||||||
|
var inactiveDatesField = TextField()
|
||||||
|
var legendOneField = TextField()
|
||||||
|
var legendTwoField = TextField()
|
||||||
|
var legendThreeField = TextField()
|
||||||
|
|
||||||
|
private var minDatePicker: UIDatePicker = UIDatePicker()
|
||||||
|
private var maxDatePicker: UIDatePicker = UIDatePicker()
|
||||||
|
private var indicatorOnePicker: UIDatePicker = UIDatePicker()
|
||||||
|
private var indicatorTwoPicker: UIDatePicker = UIDatePicker()
|
||||||
|
private var indicatorThreePicker: UIDatePicker = UIDatePicker()
|
||||||
|
private var activeDatePicker: UIDatePicker = UIDatePicker()
|
||||||
|
private var inactiveDatePicker: UIDatePicker = UIDatePicker()
|
||||||
|
|
||||||
|
var indicators: [CalendarBase.CalendarIndicatorModel] = []
|
||||||
|
let indicatorOnePickerTag = 1
|
||||||
|
let indicatorTwoPickerTag = 2
|
||||||
|
let indicatorThreePickerTag = 3
|
||||||
|
let minDatePickerTag = 4
|
||||||
|
let maxDatePickerTag = 5
|
||||||
|
let activeDatePickerTag = 6
|
||||||
|
let inactiveDatePickerTag = 7
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
addContentTopView(view: component)
|
||||||
|
setupPicker()
|
||||||
|
setupModel()
|
||||||
|
}
|
||||||
|
|
||||||
|
override func setupForm() {
|
||||||
|
super.setupForm()
|
||||||
|
configurePicker(indicatorOnePicker)
|
||||||
|
indicatorOnePicker.tag = indicatorOnePickerTag
|
||||||
|
configurePicker(indicatorTwoPicker)
|
||||||
|
indicatorTwoPicker.tag = indicatorTwoPickerTag
|
||||||
|
configurePicker(indicatorThreePicker)
|
||||||
|
indicatorThreePicker.tag = indicatorThreePickerTag
|
||||||
|
configurePicker(minDatePicker)
|
||||||
|
minDatePicker.tag = minDatePickerTag
|
||||||
|
configurePicker(maxDatePicker)
|
||||||
|
maxDatePicker.tag = maxDatePickerTag
|
||||||
|
configurePicker(activeDatePicker)
|
||||||
|
activeDatePicker.tag = activeDatePickerTag
|
||||||
|
configurePicker(inactiveDatePicker)
|
||||||
|
inactiveDatePicker.tag = inactiveDatePickerTag
|
||||||
|
indicators = [
|
||||||
|
.init(label: "Due Date", date: indicatorOnePicker.date),
|
||||||
|
.init(label: "Auto Pay", date: indicatorTwoPicker.date),
|
||||||
|
.init(label: "Scheduled", date: indicatorThreePicker.date)
|
||||||
|
]
|
||||||
|
|
||||||
|
//add form rows
|
||||||
|
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||||
|
addFormRow(label: "Hide Container Border", view: containerBorderSwitch)
|
||||||
|
addFormRow(label: "Hide Current Date Indicator", view: hideCurrentDateIndicatorSwitch)
|
||||||
|
addFormRow(label: "Min Date", view: minDatePicker)
|
||||||
|
addFormRow(label: "Max Date", view: maxDatePicker)
|
||||||
|
addFormRow(label: "Transparent Background", view: transparentBgSwitch)
|
||||||
|
addFormRow(label: "Active Dates", view: activeDatesField)
|
||||||
|
addFormRow(label: "Select ActiveDate", view: activeDatePicker)
|
||||||
|
addFormRow(label: "Clear Active Dates", view: clearActiveDatesSwitch)
|
||||||
|
addFormRow(label: "Inactive Dates", view: inactiveDatesField)
|
||||||
|
addFormRow(label: "Select InActiveDate", view: inactiveDatePicker)
|
||||||
|
addFormRow(label: "Clear Inactive Dates", view: clearInactiveDatesSwitch)
|
||||||
|
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: indicatorOnePicker)
|
||||||
|
addFormRow(label: "Indicator Two Date", view: indicatorTwoPicker)
|
||||||
|
addFormRow(label: "Indicator Three Date", view: indicatorThreePicker)
|
||||||
|
activeDatesField.isUserInteractionEnabled = false
|
||||||
|
inactiveDatesField.isUserInteractionEnabled = false
|
||||||
|
activeDatesField.isEnabled = false
|
||||||
|
inactiveDatesField.isEnabled = false
|
||||||
|
|
||||||
|
containerBorderSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
component.hideContainerBorder = sender.isOn
|
||||||
|
}
|
||||||
|
|
||||||
|
hideCurrentDateIndicatorSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
component.hideCurrentDateIndicator = sender.isOn
|
||||||
|
}
|
||||||
|
|
||||||
|
transparentBgSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
component.transparentBackground = sender.isOn
|
||||||
|
}
|
||||||
|
|
||||||
|
clearActiveDatesSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
if sender.isOn {
|
||||||
|
activeDatesField.text = ""
|
||||||
|
component.activeDates = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
clearInactiveDatesSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
if sender.isOn {
|
||||||
|
inactiveDatesField.text = ""
|
||||||
|
component.inactiveDates = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
legendOneField
|
||||||
|
.textPublisher
|
||||||
|
.sink {
|
||||||
|
[weak self] text in
|
||||||
|
self?.updateIndicatorData(label: text, date: self?.indicatorOnePicker.date, index: 0)
|
||||||
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
|
legendTwoField
|
||||||
|
.textPublisher
|
||||||
|
.sink {
|
||||||
|
[weak self] text in
|
||||||
|
self?.updateIndicatorData(label: text, date: self?.indicatorTwoPicker.date, index: 1)
|
||||||
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
|
legendThreeField
|
||||||
|
.textPublisher
|
||||||
|
.sink {
|
||||||
|
[weak self] text in
|
||||||
|
self?.updateIndicatorData(label: text, date: self?.indicatorThreePicker.date, index: 2)
|
||||||
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
|
indicatorOneSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
if !sender.isOn {
|
||||||
|
component.indicators.removeAll()
|
||||||
|
} else {
|
||||||
|
self.setIndicatorsData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
indicatorTwoSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
if !sender.isOn {
|
||||||
|
if component.indicators.count > 2 {
|
||||||
|
component.indicators.removeLast()
|
||||||
|
component.indicators.removeLast()
|
||||||
|
} else if component.indicators.count == 2 {
|
||||||
|
component.indicators.removeLast()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
self.setIndicatorsData()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
indicatorThreeSwitch.onChange = { [weak self] sender in
|
||||||
|
guard let self else { return }
|
||||||
|
if !sender.isOn {
|
||||||
|
if component.indicators.count > 2 {
|
||||||
|
component.indicators.removeLast()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
self.setIndicatorsData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func setupPicker(){
|
||||||
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
|
self?.component.surface = item
|
||||||
|
self?.contentTopView.backgroundColor = item.color
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func setupModel() {
|
||||||
|
component.indicators = indicators
|
||||||
|
legendOneField.text = "Due Date"
|
||||||
|
legendTwoField.text = "Auto Pay"
|
||||||
|
legendThreeField.text = "Scheduled"
|
||||||
|
indicatorOneSwitch.isOn = true
|
||||||
|
indicatorTwoSwitch.isOn = true
|
||||||
|
indicatorThreeSwitch.isOn = true
|
||||||
|
hideCurrentDateIndicatorSwitch.isOn = false
|
||||||
|
indicatorOnePicker.date = Calendar.current.date(byAdding: .day, value: 1, to: Date())!
|
||||||
|
indicatorTwoPicker.date = Calendar.current.date(byAdding: .day, value: 1, to: Date())!
|
||||||
|
indicatorThreePicker.date = Calendar.current.date(byAdding: .day, value: 1, to: Date())!
|
||||||
|
updateIndicatorData(label: legendOneField.text ?? "", date: indicatorOnePicker.date, index: 0)
|
||||||
|
updateIndicatorData(label: legendTwoField.text ?? "", date: indicatorTwoPicker.date, index: 1)
|
||||||
|
updateIndicatorData(label: legendThreeField.text ?? "", date: indicatorThreePicker.date, index: 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
func updateIndicatorData(label: String = "", date: Date?, index:Int) {
|
||||||
|
indicators[index].label = label
|
||||||
|
indicators[index].date = date ?? Date()
|
||||||
|
component.indicators = indicators
|
||||||
|
}
|
||||||
|
|
||||||
|
func setIndicatorsData() {
|
||||||
|
if indicatorOneSwitch.isOn && indicatorTwoSwitch.isOn && indicatorThreeSwitch.isOn {
|
||||||
|
component.indicators = [
|
||||||
|
.init(label: self.legendOneField.text ?? "", date: indicatorOnePicker.date),
|
||||||
|
.init(label: self.legendTwoField.text ?? "", date: indicatorTwoPicker.date),
|
||||||
|
.init(label: self.legendThreeField.text ?? "", date: indicatorThreePicker.date)
|
||||||
|
]
|
||||||
|
} else if indicatorOneSwitch.isOn && indicatorTwoSwitch.isOn && !indicatorThreeSwitch.isOn {
|
||||||
|
component.indicators = [
|
||||||
|
.init(label: self.legendOneField.text ?? "", date: indicatorOnePicker.date),
|
||||||
|
.init(label: self.legendTwoField.text ?? "", date: indicatorTwoPicker.date),
|
||||||
|
]
|
||||||
|
|
||||||
|
} else if indicatorOneSwitch.isOn && !indicatorTwoSwitch.isOn {
|
||||||
|
component.indicators = [
|
||||||
|
.init(label: self.legendOneField.text ?? "", date: indicatorOnePicker.date),
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
// print("Selected value \(selectedDate)")
|
||||||
|
|
||||||
|
switch sender.tag {
|
||||||
|
case indicatorOnePickerTag:
|
||||||
|
updateIndicatorData(label: legendOneField.text ?? "", date: sender.date, index: 0)
|
||||||
|
case indicatorTwoPickerTag:
|
||||||
|
updateIndicatorData(label: legendTwoField.text ?? "", date: sender.date, index: 1)
|
||||||
|
case indicatorThreePickerTag:
|
||||||
|
updateIndicatorData(label: legendThreeField.text ?? "", date: sender.date, index: 2)
|
||||||
|
case minDatePickerTag:
|
||||||
|
component.minDate = sender.date
|
||||||
|
case maxDatePickerTag:
|
||||||
|
component.maxDate = sender.date
|
||||||
|
case activeDatePickerTag:
|
||||||
|
component.activeDates.append(sender.date)
|
||||||
|
var text = activeDatesField.text
|
||||||
|
if let textEmpty = text?.isEmpty, textEmpty == true {
|
||||||
|
text?.append("")
|
||||||
|
} else {
|
||||||
|
text?.append(", ")
|
||||||
|
}
|
||||||
|
text?.append("\(self.getSelectedDate(with: sender.date))")
|
||||||
|
clearActiveDatesSwitch.isOn = false
|
||||||
|
activeDatesField.text = text
|
||||||
|
case inactiveDatePickerTag:
|
||||||
|
component.inactiveDates.append(sender.date)
|
||||||
|
var text = inactiveDatesField.text
|
||||||
|
if let textEmpty = text?.isEmpty, textEmpty == true {
|
||||||
|
text?.append("")
|
||||||
|
} else {
|
||||||
|
text?.append(", ")
|
||||||
|
}
|
||||||
|
text?.append("\(self.getSelectedDate(with: sender.date))")
|
||||||
|
clearInactiveDatesSwitch.isOn = false
|
||||||
|
inactiveDatesField.text = text
|
||||||
|
default: break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getSelectedDate(with date:Date) -> String {
|
||||||
|
let dateFormatter: DateFormatter = DateFormatter()
|
||||||
|
dateFormatter.dateFormat = "MM/dd/yyyy"
|
||||||
|
let day: String = dateFormatter.string(from: date)
|
||||||
|
return day
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -74,6 +74,7 @@ class MenuViewController: UITableViewController, TooltipLaunchable {
|
|||||||
MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self),
|
MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self),
|
||||||
MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self),
|
MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self),
|
||||||
MenuComponent(title: "ButtonIcon", completed: true, viewController: ButtonIconViewController.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: "Carousel Scrollbar", completed: true, viewController: CarouselScrollbarViewConttroller.self),
|
||||||
MenuComponent(title: "Checkbox", completed: true, viewController: CheckboxViewController.self),
|
MenuComponent(title: "Checkbox", completed: true, viewController: CheckboxViewController.self),
|
||||||
MenuComponent(title: "CheckboxItem", completed: true, viewController: CheckboxItemViewController.self),
|
MenuComponent(title: "CheckboxItem", completed: true, viewController: CheckboxItemViewController.self),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user