mis-crystal-design-system 4.0.13 → 4.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.js +2 -2
- package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.js.map +1 -1
- package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.min.js +1 -1
- package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.min.js.map +1 -1
- package/bundles/mis-crystal-design-system-specificdatepicker.umd.js +3 -3
- package/bundles/mis-crystal-design-system-specificdatepicker.umd.js.map +1 -1
- package/bundles/mis-crystal-design-system-specificdatepicker.umd.min.js +1 -1
- package/bundles/mis-crystal-design-system-specificdatepicker.umd.min.js.map +1 -1
- package/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.metadata.json +1 -1
- package/esm2015/daterangepicker_v2/tz-drp-container/tz-drp-container.component.js +3 -3
- package/esm2015/specificdatepicker/tz-sdp-container/tz-sdp-container.component.js +4 -4
- package/fesm2015/mis-crystal-design-system-daterangepicker_v2.js +2 -2
- package/fesm2015/mis-crystal-design-system-daterangepicker_v2.js.map +1 -1
- package/fesm2015/mis-crystal-design-system-specificdatepicker.js +3 -3
- package/fesm2015/mis-crystal-design-system-specificdatepicker.js.map +1 -1
- package/package.json +1 -1
- package/styles/mis-borders-backgrounds.scss +764 -0
- package/styles/mis-flex.scss +321 -0
- package/styles/mis-spacing-sizing.scss +2590 -0
- package/styles/mis-typography.scss +462 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-daterangepicker_v2.js","sources":["../../../projects/mis-components/daterangepicker_v2/daterangepicker-constants.ts","../../../projects/mis-components/daterangepicker_v2/utils/index.ts","../../../projects/mis-components/daterangepicker_v2/tz-drp-container/tz-drp-container.component.ts","../../../projects/mis-components/daterangepicker_v2/tz-daterangepicker.directive.ts","../../../projects/mis-components/daterangepicker_v2/daterangepicker.module.ts","../../../projects/mis-components/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.ts"],"sourcesContent":["/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const CONTAINER_DATA = new InjectionToken<{}>(\"CONTAINER_DATA\");\nexport const DATE_FORMAT = \"DD-MM-YYYY\";\n","import { ICurrentMonth } from \"../models/drp-config.model\";\n\nexport const getMonth = (index: number): ICurrentMonth => {\n let month;\n switch (index) {\n case 0:\n month = \"January\";\n break;\n case 1:\n month = \"February\";\n break;\n case 2:\n month = \"March\";\n break;\n case 3:\n month = \"April\";\n break;\n case 4:\n month = \"May\";\n break;\n case 5:\n month = \"June\";\n break;\n case 6:\n month = \"July\";\n break;\n case 7:\n month = \"August\";\n break;\n case 8:\n month = \"September\";\n break;\n case 9:\n month = \"October\";\n break;\n case 10:\n month = \"November\";\n break;\n case 11:\n month = \"December\";\n break;\n default:\n break;\n }\n return month;\n};\n","import { Component, Inject, OnInit } from \"@angular/core\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"../daterangepicker-constants\";\nimport { ICurrentMonth, ICurrentMonthDates, IDatePickerData, IWeekDay, ISelectedDatesConfig } from \"../models/drp-config.model\";\nimport { parseZone, Moment } from \"moment-timezone\";\nimport { getMonth } from \"../utils\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\n\n@Component({\n selector: \"mis-tz-drp\",\n templateUrl: \"./tz-drp-container.component.html\",\n styleUrls: [\"./tz-drp-container.component.scss\"]\n})\nexport class TzDrpContainerComponent implements OnInit {\n data: IDatePickerData;\n private parseZoneInstance = (...args) => {\n return parseZone(...args);\n };\n private rawWeekDays: string[] = [\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"];\n weekDays: IWeekDay[] = [];\n currentMonthNumber: number;\n currentMonth: ICurrentMonth;\n currentYearNumber: number;\n currentMonthDates: ICurrentMonthDates[] = [];\n nextMonthNumber: number;\n nextMonth: ICurrentMonth;\n nextYearNumber: number;\n nextMonthDates: ICurrentMonthDates[] = [];\n isPreviousMonthDisabled: boolean = false;\n isNextMonthDisabled: boolean = false;\n selectionStarted = false;\n localSelectedDates: ISelectedDatesConfig;\n isDatesValid = false;\n\n constructor(@Inject(CONTAINER_DATA) data: IDatePickerData, private toast: ToastService) {\n this.data = data;\n this.localSelectedDates = this.data.dates;\n this.isDatesValid = false;\n if (this.localSelectedDates.startDate && this.localSelectedDates.endDate) {\n this.isDatesValid = true;\n }\n if (this.data?.dpConfig?.timezone) {\n this.parseZoneInstance = (...args) => {\n return parseZone(...args).tz(this.data.dpConfig.timezone);\n };\n }\n this.currentMonthNumber = this.parseZoneInstance().month();\n this.nextMonthNumber = this.parseZoneInstance().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n this.currentYearNumber = this.parseZoneInstance().year();\n this.nextYearNumber = this.parseZoneInstance().add(1, \"month\").year();\n this.weekDays = this.rawWeekDays.map((day, index) => ({\n label: `${day[0]}${day.slice(1).toLowerCase()}`,\n isCurrentDay: this.parseZoneInstance().day() === index\n }));\n if (!this.data?.dpConfig?.format) {\n this.data.dpConfig = {\n ...this.data.dpConfig,\n format: DATE_FORMAT\n };\n }\n }\n\n ngOnInit(): void {\n this.currentDateInstance();\n this.calculateMinMaxDays();\n }\n\n private currentDateInstance(): void {\n if (!this.localSelectedDates?.startDate) {\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n return;\n }\n const selectedStartDate = this.parseZoneInstance(this.localSelectedDates?.startDate, this.data.dpConfig.format);\n if (selectedStartDate.isValid()) {\n this.currentYearNumber = selectedStartDate.year();\n this.nextYearNumber = selectedStartDate.add(1, \"month\").year();\n this.currentMonthNumber = selectedStartDate.get(\"month\") - 1;\n this.nextMonthNumber = selectedStartDate.add(1, \"month\").month() - 1;\n if(this.currentMonthNumber === -1){\n this.currentMonthNumber = 11\n }\n if(this.nextMonthNumber === -1){\n this.nextMonthNumber = 11\n }\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }\n\n private calculateMinMaxDays() {\n const currentInstance = this.parseZoneInstance().year(this.currentYearNumber).month(this.currentMonthNumber);\n const minDate = this.parseZoneInstance(this.data.dpConfig.minDate, this.data.dpConfig.format);\n if (minDate.isValid()) {\n this.isPreviousMonthDisabled = minDate.isSameOrAfter(currentInstance, \"month\");\n }\n const maxDate = this.parseZoneInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format);\n if (maxDate.isValid()) {\n this.isNextMonthDisabled = maxDate.isSameOrBefore(currentInstance, \"month\");\n }\n }\n\n navigateMonth(direction: \"NEXT\" | \"PREVIOUS\"): void {\n let thisMonth: Moment = parseZone().year(this.currentYearNumber).month(this.currentMonthNumber);\n if (direction === \"NEXT\") {\n thisMonth = thisMonth.add(1, \"month\");\n } else if (direction === \"PREVIOUS\") {\n thisMonth = thisMonth.subtract(1, \"month\");\n }\n this.currentMonthNumber = thisMonth.month();\n this.nextMonthNumber = thisMonth.clone().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n if (this.nextMonthNumber === 0 && direction === \"PREVIOUS\") {\n this.currentYearNumber--;\n } else if (this.currentMonthNumber === 11 && direction === \"NEXT\") {\n this.nextYearNumber++;\n }else if (this.currentMonthNumber === 0 && direction === \"NEXT\") {\n this.currentYearNumber++;\n } else if (this.nextMonthNumber === 11 && direction === \"PREVIOUS\") {\n this.nextYearNumber--;\n }else{\n this.nextYearNumber = this.currentYearNumber;\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n this.calculateMinMaxDays();\n }\n\n private generateDates(month: number, currentYearNumber: number): ICurrentMonthDates[] {\n let dates: ICurrentMonthDates[] = [];\n const daysInMonth = parseZone().year(currentYearNumber).month(month).daysInMonth();\n for (let currentDate = 1; currentDate <= daysInMonth; currentDate++) {\n const date = this.parseZoneInstance().year(currentYearNumber).month(month).date(currentDate);\n const dateString = date.format(this.data.dpConfig.format);\n let isDisabledDay = this.data.datesDisabled.some(d => d === dateString);\n const minDate = this.parseZoneInstance(this.data.dpConfig.minDate, this.data.dpConfig.format);\n if (!isDisabledDay && minDate.isValid()) {\n isDisabledDay = minDate.isAfter(date, \"day\");\n }\n const maxDate = this.parseZoneInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format);\n if (!isDisabledDay && maxDate.isValid()) {\n isDisabledDay = maxDate.isBefore(date, \"day\");\n }\n const isCurrentDay =\n this.parseZoneInstance().year(currentYearNumber).month(month).date(currentDate).format(this.data.dpConfig.format) ===\n this.parseZoneInstance().format(this.data.dpConfig.format);\n const isSelectedStartDay =\n !isDisabledDay &&\n (this.localSelectedDates?.startDate ?? false) &&\n date.format(this.data.dpConfig.format) === this.localSelectedDates?.startDate;\n const isAfterSelectedStartDate = this.parseZoneInstance(date).isAfter(this.localSelectedDates.startDate, \"day\");\n const isBeforeSelectedEndDate = this.parseZoneInstance(date).isBefore(parseZone(this.localSelectedDates.endDate), \"day\");\n const inRangeDay =\n (this.localSelectedDates.startDate ?? false) &&\n (this.localSelectedDates.endDate ?? false) &&\n isAfterSelectedStartDate &&\n isBeforeSelectedEndDate;\n\n const isSelectedEndDay =\n !isDisabledDay &&\n ((this.localSelectedDates?.startDate && this.localSelectedDates?.endDate) ?? false) &&\n date.format(this.data.dpConfig.format) === this.localSelectedDates?.endDate;\n dates.push({\n date: currentDate,\n weekDay: date.day(),\n isCurrentDay,\n isSelectedStartDay,\n isSelectedEndDay,\n inRangeDay,\n toastMessage: this.data.messages.find(q => date.format(this.data.dpConfig.format) === q.date)?.message || \"\",\n isDisabledDay\n });\n }\n for (let i = dates[0].weekDay; i > 0; i--) {\n dates.unshift({ date: 0, weekDay: i - 1 });\n }\n return dates;\n }\n\n selectDay(from: \"LEFT\" | \"RIGHT\", day: ICurrentMonthDates) {\n if (day.date <= 0) return;\n if (!day.isDisabledDay) {\n if (this.selectionStarted) {\n const momentDay = parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date);\n if (momentDay.isBefore(this.localSelectedDates.startDate, \"day\")) {\n this.localSelectedDates = {\n startDate: momentDay.format(this.data.dpConfig.format),\n endDate: null\n };\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n return;\n }\n this.selectionStarted = false;\n this.localSelectedDates = {\n ...this.localSelectedDates,\n endDate: momentDay.format(this.data.dpConfig.format)\n };\n } else {\n this.selectionStarted = true;\n this.localSelectedDates = {\n startDate: parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date)\n .format(this.data.dpConfig.format),\n endDate: null\n };\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n this.isDatesValid = false;\n if (this.localSelectedDates.startDate && this.localSelectedDates.endDate) {\n this.isDatesValid = true;\n }\n }\n if (day.toastMessage) {\n this.toast.displayMsg(day.toastMessage, 4000);\n }\n }\n applyDates() {\n this.data.dateChange(this.localSelectedDates);\n }\n cancelDatePicker() {\n this.data.close();\n }\n}\n","import { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Directive, ElementRef, EventEmitter, HostListener, Injector, Input, Optional, Output, Self, ViewContainerRef } from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\nimport { take } from \"rxjs/operators\";\nimport { genPositionPairs } from \"mis-crystal-design-system/utils\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"./daterangepicker-constants\";\nimport { IDatePickerConfig, IDatePickerToastText, ISelectedDatesConfig } from \"./models/drp-config.model\";\nimport { TzDrpContainerComponent } from \"./tz-drp-container/tz-drp-container.component\";\n\n@Directive({\n selector: \"input[misTzDrp]\"\n})\nexport class TzDaterangepickerDirective {\n @Input() dpConfig: Partial<IDatePickerConfig> = {\n format: DATE_FORMAT,\n minDate: \"\",\n maxDate: \"\"\n };\n // dd-mm-yyyy 01-12-2022\n @Input() set selectedDates(dates: ISelectedDatesConfig) {\n this.dates = { startDate: null, endDate: null, ...dates };\n }\n @Input() set datesDisabled(dates: string[]) {\n this.dpDisabledDates = dates;\n }\n @Input() dateMessages: IDatePickerToastText[] = [];\n @Input() positionX: \"start\" | \"center\" | \"end\" = \"center\";\n @Input() positionY: \"top\" | \"center\" | \"bottom\" = \"bottom\";\n @Input() offsetX: number = 0;\n @Input() offsetY: number = 0;\n private overlayRef: OverlayRef;\n @Output() dateChange = new EventEmitter<ISelectedDatesConfig>(true);\n private isOpen = false;\n dates: ISelectedDatesConfig;\n\n private dpDisabledDates: string[] = [];\n\n constructor(\n @Self() @Optional() private control: NgControl,\n private element: ElementRef,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener(\"click\")\n toggleDatePicker() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n private open() {\n this.isOpen = true;\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions(\n genPositionPairs(\n {\n positionX: this.positionX,\n positionY: this.positionY,\n offsetX: this.offsetX,\n offsetY: this.offsetY\n },\n true\n )\n )\n .withPush(true);\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n backdropClass: \"cdk-overlay-transparent-backdrop\"\n });\n this.overlayRef = this.overlay.create(config);\n const tempRef = new ComponentPortal(\n TzDrpContainerComponent,\n this.viewContainerRef,\n Injector.create({\n providers: [\n {\n provide: CONTAINER_DATA,\n useValue: {\n messages: this.dateMessages,\n dates: this.control?.control.value || this.dates,\n dpConfig: this.dpConfig,\n datesDisabled: this.dpDisabledDates,\n dateChange: this.applyDate.bind(this),\n close: this.close.bind(this)\n }\n }\n ]\n })\n );\n this.overlayRef.attach(tempRef);\n this.overlayRef\n .backdropClick()\n .pipe(take(1))\n .subscribe(() => {\n this.close();\n });\n }\n\n applyDate(dates: ISelectedDatesConfig) {\n this.dateChange.emit(dates);\n this.control?.control.patchValue(dates);\n this.dates = dates;\n this.close();\n }\n\n close() {\n this.isOpen = false;\n this.overlayRef.detach();\n this.overlayRef.dispose();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TzDrpContainerComponent } from \"./tz-drp-container/tz-drp-container.component\";\nimport { TzDaterangepickerDirective } from \"./tz-daterangepicker.directive\";\nimport { ToastModule } from \"mis-crystal-design-system/toast\";\nimport { ButtonModule } from \"mis-crystal-design-system/button\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\n\n@NgModule({\n declarations: [TzDrpContainerComponent, TzDaterangepickerDirective],\n imports: [CommonModule, OverlayModule, ToastModule.forRoot(), ButtonModule.forRoot()],\n exports: [TzDrpContainerComponent, TzDaterangepickerDirective],\n entryComponents: [TzDrpContainerComponent]\n})\nexport class DateRangepickerModuleV2 {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {CONTAINER_DATA as ɵc} from './daterangepicker-constants';\nexport {IDatePickerData as ɵa} from './models/drp-config.model';\nexport {TzDrpContainerComponent as ɵb} from './tz-drp-container/tz-drp-container.component';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-daterangepicker_v2.js","sources":["../../../projects/mis-components/daterangepicker_v2/daterangepicker-constants.ts","../../../projects/mis-components/daterangepicker_v2/utils/index.ts","../../../projects/mis-components/daterangepicker_v2/tz-drp-container/tz-drp-container.component.ts","../../../projects/mis-components/daterangepicker_v2/tz-daterangepicker.directive.ts","../../../projects/mis-components/daterangepicker_v2/daterangepicker.module.ts","../../../projects/mis-components/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.ts"],"sourcesContent":["/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const CONTAINER_DATA = new InjectionToken<{}>(\"CONTAINER_DATA\");\nexport const DATE_FORMAT = \"DD-MM-YYYY\";\n","import { ICurrentMonth } from \"../models/drp-config.model\";\n\nexport const getMonth = (index: number): ICurrentMonth => {\n let month;\n switch (index) {\n case 0:\n month = \"January\";\n break;\n case 1:\n month = \"February\";\n break;\n case 2:\n month = \"March\";\n break;\n case 3:\n month = \"April\";\n break;\n case 4:\n month = \"May\";\n break;\n case 5:\n month = \"June\";\n break;\n case 6:\n month = \"July\";\n break;\n case 7:\n month = \"August\";\n break;\n case 8:\n month = \"September\";\n break;\n case 9:\n month = \"October\";\n break;\n case 10:\n month = \"November\";\n break;\n case 11:\n month = \"December\";\n break;\n default:\n break;\n }\n return month;\n};\n","import { Component, Inject, OnInit } from \"@angular/core\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"../daterangepicker-constants\";\nimport { ICurrentMonth, ICurrentMonthDates, IDatePickerData, IWeekDay, ISelectedDatesConfig } from \"../models/drp-config.model\";\nimport { parseZone, Moment } from \"moment-timezone\";\nimport { getMonth } from \"../utils\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\n\n@Component({\n selector: \"mis-tz-drp\",\n templateUrl: \"./tz-drp-container.component.html\",\n styleUrls: [\"./tz-drp-container.component.scss\"]\n})\nexport class TzDrpContainerComponent implements OnInit {\n data: IDatePickerData;\n private parseZoneInstance = (...args) => {\n return parseZone(...args);\n };\n private rawWeekDays: string[] = [\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"];\n weekDays: IWeekDay[] = [];\n currentMonthNumber: number;\n currentMonth: ICurrentMonth;\n currentYearNumber: number;\n currentMonthDates: ICurrentMonthDates[] = [];\n nextMonthNumber: number;\n nextMonth: ICurrentMonth;\n nextYearNumber: number;\n nextMonthDates: ICurrentMonthDates[] = [];\n isPreviousMonthDisabled: boolean = false;\n isNextMonthDisabled: boolean = false;\n selectionStarted = false;\n localSelectedDates: ISelectedDatesConfig;\n isDatesValid = false;\n\n constructor(@Inject(CONTAINER_DATA) data: IDatePickerData, private toast: ToastService) {\n this.data = data;\n this.localSelectedDates = this.data.dates;\n this.isDatesValid = false;\n if (this.localSelectedDates.startDate && this.localSelectedDates.endDate) {\n this.isDatesValid = true;\n }\n if (this.data?.dpConfig?.timezone) {\n this.parseZoneInstance = (...args) => {\n return parseZone(...args).tz(this.data.dpConfig.timezone);\n };\n }\n this.currentMonthNumber = this.parseZoneInstance().month();\n this.nextMonthNumber = this.parseZoneInstance().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n this.currentYearNumber = this.parseZoneInstance().year();\n this.nextYearNumber = this.parseZoneInstance().add(1, \"month\").year();\n this.weekDays = this.rawWeekDays.map((day, index) => ({\n label: `${day[0]}${day.slice(1).toLowerCase()}`,\n isCurrentDay: this.parseZoneInstance().day() === index\n }));\n if (!this.data?.dpConfig?.format) {\n this.data.dpConfig = {\n ...this.data.dpConfig,\n format: DATE_FORMAT\n };\n }\n }\n\n ngOnInit(): void {\n this.currentDateInstance();\n this.calculateMinMaxDays();\n }\n\n private currentDateInstance(): void {\n if (!this.localSelectedDates?.startDate) {\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n return;\n }\n const selectedStartDate = this.parseZoneInstance(this.localSelectedDates?.startDate, this.data.dpConfig.format);\n if (selectedStartDate.isValid()) {\n this.currentYearNumber = selectedStartDate.year();\n this.nextYearNumber = selectedStartDate.add(1, \"month\").year();\n this.currentMonthNumber = selectedStartDate.get(\"month\") - 1;\n this.nextMonthNumber = selectedStartDate.add(1, \"month\").month() - 1;\n if(this.currentMonthNumber === -1){\n this.currentMonthNumber = 11\n }\n if(this.nextMonthNumber === -1){\n this.nextMonthNumber = 11\n }\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }\n\n private calculateMinMaxDays() {\n const currentInstance = this.parseZoneInstance().year(this.currentYearNumber).month(this.currentMonthNumber);\n const minDate = this.parseZoneInstance(this.data.dpConfig.minDate, this.data.dpConfig.format);\n if (minDate.isValid()) {\n this.isPreviousMonthDisabled = minDate.isSameOrAfter(currentInstance, \"month\");\n }\n const maxDate = this.parseZoneInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format);\n if (maxDate.isValid()) {\n this.isNextMonthDisabled = maxDate.isSameOrBefore(currentInstance, \"month\");\n }\n }\n\n navigateMonth(direction: \"NEXT\" | \"PREVIOUS\"): void {\n let thisMonth: Moment = parseZone().year(this.currentYearNumber).month(this.currentMonthNumber);\n if (direction === \"NEXT\") {\n thisMonth = thisMonth.add(1, \"month\");\n } else if (direction === \"PREVIOUS\") {\n thisMonth = thisMonth.subtract(1, \"month\");\n }\n this.currentMonthNumber = thisMonth.month();\n this.nextMonthNumber = thisMonth.clone().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n if (this.nextMonthNumber === 0 && direction === \"PREVIOUS\") {\n this.currentYearNumber--;\n } else if (this.currentMonthNumber === 11 && direction === \"NEXT\") {\n this.nextYearNumber++;\n }else if (this.currentMonthNumber === 0 && direction === \"NEXT\") {\n this.currentYearNumber++;\n } else if (this.nextMonthNumber === 11 && direction === \"PREVIOUS\") {\n this.nextYearNumber--;\n }else{\n this.nextYearNumber = this.currentYearNumber;\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n this.calculateMinMaxDays();\n }\n\n private generateDates(month: number, currentYearNumber: number): ICurrentMonthDates[] {\n let dates: ICurrentMonthDates[] = [];\n const daysInMonth = parseZone().year(currentYearNumber).month(month).daysInMonth();\n for (let currentDate = 1; currentDate <= daysInMonth; currentDate++) {\n const date = this.parseZoneInstance().year(currentYearNumber).month(month).date(currentDate);\n const dateString = date.format(this.data.dpConfig.format);\n let isDisabledDay = this.data.datesDisabled.some(d => d === dateString);\n const minDate = this.parseZoneInstance(this.data.dpConfig.minDate, this.data.dpConfig.format);\n if (!isDisabledDay && minDate.isValid()) {\n isDisabledDay = minDate.isAfter(date, \"day\");\n }\n const maxDate = this.parseZoneInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format);\n if (!isDisabledDay && maxDate.isValid()) {\n isDisabledDay = maxDate.isBefore(date, \"day\");\n }\n const isCurrentDay =\n this.parseZoneInstance().year(currentYearNumber).month(month).date(currentDate).format(this.data.dpConfig.format) ===\n this.parseZoneInstance().format(this.data.dpConfig.format);\n const isSelectedStartDay =\n !isDisabledDay &&\n (this.localSelectedDates?.startDate ?? false) &&\n date.format(this.data.dpConfig.format) === this.localSelectedDates?.startDate;\n const isAfterSelectedStartDate = this.parseZoneInstance(date).isAfter(this.localSelectedDates.startDate, \"day\");\n const isBeforeSelectedEndDate = this.parseZoneInstance(date).isBefore(parseZone(this.localSelectedDates.endDate), \"day\");\n const inRangeDay =\n (this.localSelectedDates.startDate ?? false) &&\n (this.localSelectedDates.endDate ?? false) &&\n isAfterSelectedStartDate &&\n isBeforeSelectedEndDate;\n\n const isSelectedEndDay =\n !isDisabledDay &&\n ((this.localSelectedDates?.startDate && this.localSelectedDates?.endDate) ?? false) &&\n date.format(this.data.dpConfig.format) === this.localSelectedDates?.endDate;\n dates.push({\n date: currentDate,\n weekDay: date.day(),\n isCurrentDay,\n isSelectedStartDay,\n isSelectedEndDay,\n inRangeDay,\n toastMessage: this.data.messages.find(q => date.format(this.data.dpConfig.format) === q.date)?.message || \"\",\n isDisabledDay\n });\n }\n for (let i = dates[0].weekDay; i > 0; i--) {\n dates.unshift({ date: 0, weekDay: i - 1 });\n }\n return dates;\n }\n\n selectDay(from: \"LEFT\" | \"RIGHT\", day: ICurrentMonthDates) {\n if (day.date <= 0) return;\n if (!day.isDisabledDay) {\n if (this.selectionStarted) {\n const momentDay = parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date);\n if (momentDay.isBefore(this.localSelectedDates.startDate, \"day\")) {\n this.localSelectedDates = {\n startDate: momentDay.format(this.data.dpConfig.format),\n endDate: null\n };\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n return;\n }\n this.selectionStarted = false;\n this.localSelectedDates = {\n ...this.localSelectedDates,\n endDate: momentDay.format(this.data.dpConfig.format)\n };\n } else {\n this.selectionStarted = true;\n this.localSelectedDates = {\n startDate: parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date)\n .format(this.data.dpConfig.format),\n endDate: null\n };\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n this.isDatesValid = false;\n if (this.localSelectedDates.startDate && this.localSelectedDates.endDate) {\n this.isDatesValid = true;\n }\n }\n if (day.toastMessage) {\n this.toast.displayMsg(day.toastMessage, 4000);\n }\n }\n applyDates() {\n this.data.dateChange(this.localSelectedDates);\n }\n cancelDatePicker() {\n this.data.close();\n }\n}\n","import { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Directive, ElementRef, EventEmitter, HostListener, Injector, Input, Optional, Output, Self, ViewContainerRef } from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\nimport { take } from \"rxjs/operators\";\nimport { genPositionPairs } from \"mis-crystal-design-system/utils\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"./daterangepicker-constants\";\nimport { IDatePickerConfig, IDatePickerToastText, ISelectedDatesConfig } from \"./models/drp-config.model\";\nimport { TzDrpContainerComponent } from \"./tz-drp-container/tz-drp-container.component\";\n\n@Directive({\n selector: \"input[misTzDrp]\"\n})\nexport class TzDaterangepickerDirective {\n @Input() dpConfig: Partial<IDatePickerConfig> = {\n format: DATE_FORMAT,\n minDate: \"\",\n maxDate: \"\"\n };\n // dd-mm-yyyy 01-12-2022\n @Input() set selectedDates(dates: ISelectedDatesConfig) {\n this.dates = { startDate: null, endDate: null, ...dates };\n }\n @Input() set datesDisabled(dates: string[]) {\n this.dpDisabledDates = dates;\n }\n @Input() dateMessages: IDatePickerToastText[] = [];\n @Input() positionX: \"start\" | \"center\" | \"end\" = \"center\";\n @Input() positionY: \"top\" | \"center\" | \"bottom\" = \"bottom\";\n @Input() offsetX: number = 0;\n @Input() offsetY: number = 0;\n private overlayRef: OverlayRef;\n @Output() dateChange = new EventEmitter<ISelectedDatesConfig>(true);\n private isOpen = false;\n dates: ISelectedDatesConfig;\n\n private dpDisabledDates: string[] = [];\n\n constructor(\n @Self() @Optional() private control: NgControl,\n private element: ElementRef,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener(\"click\")\n toggleDatePicker() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n private open() {\n this.isOpen = true;\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions(\n genPositionPairs(\n {\n positionX: this.positionX,\n positionY: this.positionY,\n offsetX: this.offsetX,\n offsetY: this.offsetY\n },\n true\n )\n )\n .withPush(true);\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n backdropClass: \"cdk-overlay-transparent-backdrop\"\n });\n this.overlayRef = this.overlay.create(config);\n const tempRef = new ComponentPortal(\n TzDrpContainerComponent,\n this.viewContainerRef,\n Injector.create({\n providers: [\n {\n provide: CONTAINER_DATA,\n useValue: {\n messages: this.dateMessages,\n dates: this.control?.control.value || this.dates,\n dpConfig: this.dpConfig,\n datesDisabled: this.dpDisabledDates,\n dateChange: this.applyDate.bind(this),\n close: this.close.bind(this)\n }\n }\n ]\n })\n );\n this.overlayRef.attach(tempRef);\n this.overlayRef\n .backdropClick()\n .pipe(take(1))\n .subscribe(() => {\n this.close();\n });\n }\n\n applyDate(dates: ISelectedDatesConfig) {\n this.dateChange.emit(dates);\n this.control?.control.patchValue(dates);\n this.dates = dates;\n this.close();\n }\n\n close() {\n this.isOpen = false;\n this.overlayRef.detach();\n this.overlayRef.dispose();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TzDrpContainerComponent } from \"./tz-drp-container/tz-drp-container.component\";\nimport { TzDaterangepickerDirective } from \"./tz-daterangepicker.directive\";\nimport { ToastModule } from \"mis-crystal-design-system/toast\";\nimport { ButtonModule } from \"mis-crystal-design-system/button\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\n\n@NgModule({\n declarations: [TzDrpContainerComponent, TzDaterangepickerDirective],\n imports: [CommonModule, OverlayModule, ToastModule.forRoot(), ButtonModule.forRoot()],\n exports: [TzDrpContainerComponent, TzDaterangepickerDirective],\n entryComponents: [TzDrpContainerComponent]\n})\nexport class DateRangepickerModuleV2 {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {CONTAINER_DATA as ɵc} from './daterangepicker-constants';\nexport {IDatePickerData as ɵa} from './models/drp-config.model';\nexport {TzDrpContainerComponent as ɵb} from './tz-drp-container/tz-drp-container.component';"],"names":[],"mappings":"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"}
|
|
@@ -232,8 +232,8 @@ class TzDrpContainerComponent {
|
|
|
232
232
|
const isSelectedStartDay = !isDisabledDay &&
|
|
233
233
|
((_b = (_a = this.localSelectedDatesRange) === null || _a === void 0 ? void 0 : _a.startDate) !== null && _b !== void 0 ? _b : false) &&
|
|
234
234
|
date.format(this.data.dpConfig.format) === ((_c = this.localSelectedDatesRange) === null || _c === void 0 ? void 0 : _c.startDate);
|
|
235
|
-
const isAfterSelectedStartDate = this.parseZoneInstance(date).isAfter((_d = this.localSelectedDatesRange) === null || _d === void 0 ? void 0 : _d.startDate, "day");
|
|
236
|
-
const isBeforeSelectedEndDate = this.parseZoneInstance(date).isBefore(parseZone((_e = this.localSelectedDatesRange) === null || _e === void 0 ? void 0 : _e.endDate), "day");
|
|
235
|
+
const isAfterSelectedStartDate = this.parseZoneInstance(date).isAfter(parseZone((_d = this.localSelectedDatesRange) === null || _d === void 0 ? void 0 : _d.startDate, this.data.dpConfig.format), "day");
|
|
236
|
+
const isBeforeSelectedEndDate = this.parseZoneInstance(date).isBefore(parseZone((_e = this.localSelectedDatesRange) === null || _e === void 0 ? void 0 : _e.endDate, this.data.dpConfig.format), "day");
|
|
237
237
|
const inRangeDay = ((_g = (_f = this.localSelectedDatesRange) === null || _f === void 0 ? void 0 : _f.startDate) !== null && _g !== void 0 ? _g : false) &&
|
|
238
238
|
((_j = (_h = this.localSelectedDatesRange) === null || _h === void 0 ? void 0 : _h.endDate) !== null && _j !== void 0 ? _j : false) &&
|
|
239
239
|
isAfterSelectedStartDate &&
|
|
@@ -271,7 +271,7 @@ class TzDrpContainerComponent {
|
|
|
271
271
|
.year(from === "LEFT" ? this.currentYearNumber : this.nextYearNumber)
|
|
272
272
|
.month(from === "LEFT" ? this.currentMonthNumber : this.nextMonthNumber)
|
|
273
273
|
.date(day.date);
|
|
274
|
-
if (momentDay.isBefore((_a = this.localSelectedDatesRange) === null || _a === void 0 ? void 0 : _a.startDate, "day")) {
|
|
274
|
+
if (momentDay.isBefore(parseZone((_a = this.localSelectedDatesRange) === null || _a === void 0 ? void 0 : _a.startDate, this.data.dpConfig.format), "day")) {
|
|
275
275
|
this.localSelectedDatesRange = {
|
|
276
276
|
startDate: momentDay.format(this.data.dpConfig.format),
|
|
277
277
|
endDate: null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-specificdatepicker.js","sources":["../../../projects/mis-components/specificdatepicker/daterangepicker-constants.ts","../../../projects/mis-components/specificdatepicker/utils/index.ts","../../../projects/mis-components/specificdatepicker/tz-sdp-container/tz-sdp-container.component.ts","../../../projects/mis-components/specificdatepicker/tz-specificdatepicker.directive.ts","../../../projects/mis-components/specificdatepicker/specificdatepicker.module.ts","../../../projects/mis-components/specificdatepicker/mis-crystal-design-system-specificdatepicker.ts"],"sourcesContent":["/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const CONTAINER_DATA = new InjectionToken<{}>(\"CONTAINER_DATA\");\nexport const DATE_FORMAT = \"DD-MM-YYYY\";\n","import { ICurrentMonth } from \"../models/sdp-config.model\";\n\nexport const getMonth = (index: number): ICurrentMonth => {\n let month;\n switch (index) {\n case 0:\n month = \"January\";\n break;\n case 1:\n month = \"February\";\n break;\n case 2:\n month = \"March\";\n break;\n case 3:\n month = \"April\";\n break;\n case 4:\n month = \"May\";\n break;\n case 5:\n month = \"June\";\n break;\n case 6:\n month = \"July\";\n break;\n case 7:\n month = \"August\";\n break;\n case 8:\n month = \"September\";\n break;\n case 9:\n month = \"October\";\n break;\n case 10:\n month = \"November\";\n break;\n case 11:\n month = \"December\";\n break;\n default:\n break;\n }\n return month;\n};\n","import { Component, Inject, OnInit } from \"@angular/core\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"../daterangepicker-constants\";\nimport { ICurrentMonth, ICurrentMonthDates, IDatePickerData, IWeekDay, ISSelectedDatesConfig, IRSelectedDatesConfig } from \"../models/sdp-config.model\";\nimport { parseZone, Moment } from \"moment-timezone\";\nimport { getMonth } from \"../utils\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\nimport { FormControl } from \"@angular/forms\";\n\n@Component({\n selector: \"mis-tz-sdp\",\n templateUrl: \"./tz-sdp-container.component.html\",\n styleUrls: [\"./tz-sdp-container.component.scss\"]\n})\nexport class TzDrpContainerComponent implements OnInit {\n data: IDatePickerData;\n private parseZoneInstance = (...args) => {\n return parseZone(...args);\n };\n private rawWeekDays: string[] = [\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"];\n weekDays: IWeekDay[] = [];\n currentMonthNumber: number;\n currentMonth: ICurrentMonth;\n currentYearNumber: number;\n currentMonthDates: ICurrentMonthDates[] = [];\n nextMonthNumber: number;\n nextMonth: ICurrentMonth;\n nextYearNumber: number;\n nextMonthDates: ICurrentMonthDates[] = [];\n isPreviousMonthDisabled: boolean = false;\n isNextMonthDisabled: boolean = false;\n selectionStarted = false;\n localSelectedDates: ISSelectedDatesConfig[]; \n localSelectedDatesRange: IRSelectedDatesConfig;\n isDatesValid = false;\n today = new Date();\n todayMonthNumber = this.today.getMonth()\n dateRangeSelected:boolean = false;\n dateRangeLength: number = 0;\n formControl: FormControl = new FormControl('Specific Date(s)');\n datePickerValue:string[]= ['Specific Date(s)','Date Range'];\n constructor(@Inject(CONTAINER_DATA) data: IDatePickerData, private toast: ToastService) {\n \n this.data = data;\n this.localSelectedDatesRange = this.data.datesRange;\n const startDate = new Date(this.localSelectedDatesRange?.startDate);\n const endDate = new Date(this.localSelectedDatesRange?.endDate);\n if(startDate && endDate){\n this.dateRangeLength = (endDate.getTime() - startDate.getTime())/ (1000 * 60 * 60 * 24) + 1;\n }\n this.localSelectedDates = this.data.dates;\n if(!this.data.isSPickerSelected){\n this.formControl.setValue(\"Date Range\")\n this.isDatesValid = false;\n if (this.localSelectedDatesRange.startDate && this.localSelectedDatesRange.endDate) {\n this.isDatesValid = true;\n }\n }else{\n this.isDatesValid = false;\n if (this.localSelectedDates.length > 0) {\n this.isDatesValid = true;\n }\n }\n if (this.data?.dpConfig?.timezone) {\n this.parseZoneInstance = (...args) => {\n return parseZone(...args).tz(this.data.dpConfig.timezone);\n };\n }\n this.currentMonthNumber = this.parseZoneInstance().month();\n this.nextMonthNumber = this.parseZoneInstance().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n this.currentYearNumber = this.parseZoneInstance().year();\n this.nextYearNumber = this.parseZoneInstance().add(1, \"month\").year();\n this.weekDays = this.rawWeekDays.map((day, index) => ({\n label: `${day[0]}${day.slice(1).toLowerCase()}`,\n isCurrentDay: this.parseZoneInstance().day() === index \n }));\n if (!this.data?.dpConfig?.format) {\n this.data.dpConfig = {\n ...this.data.dpConfig,\n format: DATE_FORMAT\n };\n }\n }\n\n ngOnInit(): void {\n this.currentDateInstance();\n this.calculateMinMaxDays();\n }\n\n private currentDateInstance(): void {\n let selectedStartDate;\n if(!this.data.isSPickerSelected){\n if (!this.localSelectedDatesRange?.startDate) {\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n return;\n }\n selectedStartDate = this.parseZoneInstance(this.localSelectedDatesRange?.startDate, this.data.dpConfig.format);\n }else{\n selectedStartDate = this.parseZoneInstance(this.localSelectedDates?.[0].selectedDate, this.data.dpConfig.format);\n }\n if (selectedStartDate.isValid()) {\n this.currentYearNumber = selectedStartDate.year();\n this.nextYearNumber = selectedStartDate.add(1, \"month\").year();\n this.currentMonthNumber = selectedStartDate.get(\"month\") - 1;\n this.nextMonthNumber = selectedStartDate.add(1, \"month\").month() - 1;\n if(this.currentMonthNumber === -1){\n this.currentMonthNumber = 11\n }\n if(this.nextMonthNumber === -1){\n this.nextMonthNumber = 11\n }\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }\n\n private calculateMinMaxDays() {\n const currentInstance = this.parseZoneInstance().year(this.currentYearNumber).month(this.currentMonthNumber);\n const minDate = this.parseZoneInstance(this.data.dpConfig.minDate, this.data.dpConfig.format);\n if (minDate.isValid()) {\n this.isPreviousMonthDisabled = minDate.isSameOrAfter(currentInstance, \"month\");\n }\n const maxDate = this.parseZoneInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format);\n if (maxDate.isValid()) {\n this.isNextMonthDisabled = maxDate.isSameOrBefore(currentInstance, \"month\");\n }\n }\n\nnavigateMonth(direction: \"NEXT\" | \"PREVIOUS\"): void {\n let thisMonth: Moment = parseZone().year(this.currentYearNumber).month(this.currentMonthNumber);\n if (direction === \"NEXT\") {\n thisMonth = thisMonth.add(1, \"month\");\n } else if (direction === \"PREVIOUS\") {\n thisMonth = thisMonth.subtract(1, \"month\");\n }\n this.currentMonthNumber = thisMonth.month();\n this.nextMonthNumber = thisMonth.clone().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n if (this.nextMonthNumber === 0 && direction === \"PREVIOUS\") {\n this.currentYearNumber--;\n } else if (this.currentMonthNumber === 11 && direction === \"NEXT\") {\n this.nextYearNumber++;\n }else if (this.currentMonthNumber === 0 && direction === \"NEXT\") {\n this.currentYearNumber++;\n } else if (this.nextMonthNumber === 11 && direction === \"PREVIOUS\") {\n this.nextYearNumber--;\n }else{\n this.nextYearNumber = this.currentYearNumber;\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n this.calculateMinMaxDays();\n}\n\n private generateDates(month: number, currentYearNumber: number): ICurrentMonthDates[] {\n let dates: ICurrentMonthDates[] = [];\n const daysInMonth = parseZone().year(currentYearNumber).month(month).daysInMonth();\n for (let currentDate = 1; currentDate <= daysInMonth; currentDate++) {\n const date = this.parseZoneInstance().year(currentYearNumber).month(month).date(currentDate);\n const dateString = date.format(this.data.dpConfig.format);\n let isDisabledDay = this.data.datesDisabled.some(d => d === dateString);\n const minDate = this.parseZoneInstance(this.data.dpConfig.minDate, this.data.dpConfig.format);\n if (!isDisabledDay && minDate.isValid()) {\n isDisabledDay = minDate.isAfter(date, \"day\");\n }\n const maxDate = this.parseZoneInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format);\n if (!isDisabledDay && maxDate.isValid()) {\n isDisabledDay = maxDate.isBefore(date, \"day\");\n }\n const isCurrentDay =\n this.parseZoneInstance().year(currentYearNumber).month(month).date(currentDate).format(this.data.dpConfig.format) ===\n this.parseZoneInstance().format(this.data.dpConfig.format);\n let isSelectedDay = false;\n for (const selectedDateConfig of this.localSelectedDates) {\n if (!isSelectedDay && date.format(this.data.dpConfig.format) === selectedDateConfig.selectedDate) {\n isSelectedDay = true;\n }\n }\n let isHoliday = false;\n for (const day of this.data.holidays) {\n if ( date.format(this.data.dpConfig.format) === day) {\n isHoliday = true;\n }\n }\n const dayOfWeek = date.format('ddd');\n const isWeekOff = this.data.weekOffs.includes(dayOfWeek);\n const isSelectedStartDay =\n !isDisabledDay &&\n (this.localSelectedDatesRange?.startDate ?? false) &&\n date.format(this.data.dpConfig.format) === this.localSelectedDatesRange?.startDate;\n const isAfterSelectedStartDate = this.parseZoneInstance(date).isAfter(this.localSelectedDatesRange?.startDate, \"day\");\n const isBeforeSelectedEndDate = this.parseZoneInstance(date).isBefore(parseZone(this.localSelectedDatesRange?.endDate), \"day\");\n const inRangeDay =\n (this.localSelectedDatesRange?.startDate ?? false) &&\n (this.localSelectedDatesRange?.endDate ?? false) &&\n isAfterSelectedStartDate &&\n isBeforeSelectedEndDate;\n\n const isSelectedEndDay =\n !isDisabledDay &&\n ((this.localSelectedDatesRange?.startDate && this.localSelectedDatesRange?.endDate) ?? false) &&\n date.format(this.data.dpConfig.format) === this.localSelectedDatesRange?.endDate;\n dates.push({\n date: currentDate,\n weekDay: date.day(),\n isSelectedDay,\n isCurrentDay,\n isSelectedStartDay,\n isSelectedEndDay,\n inRangeDay,\n isHoliday,\n isWeekOff,\n toastMessage: this.data.messages.find(q => date.format(this.data.dpConfig.format) === q.date)?.message || \"\",\n isDisabledDay\n });\n }\n for (let i = dates[0].weekDay; i > 0; i--) {\n dates.unshift({ date: 0, weekDay: i - 1 });\n }\n return dates;\n }\n\n selectDay(from: \"LEFT\" | \"RIGHT\", day: ICurrentMonthDates) {\n if (day.date <= 0) return;\n if(!this.data.isSPickerSelected){\n if (!day.isDisabledDay) {\n if (this.selectionStarted) {\n const momentDay = parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date);\n if (momentDay.isBefore(this.localSelectedDatesRange?.startDate, \"day\")) {\n this.localSelectedDatesRange = {\n startDate: momentDay.format(this.data.dpConfig.format),\n endDate: null\n };\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n return;\n }\n this.selectionStarted = false;\n this.localSelectedDatesRange = {\n ...this.localSelectedDatesRange,\n endDate: momentDay.format(this.data.dpConfig.format)\n };\n } else {\n this.selectionStarted = true;\n this.localSelectedDatesRange = {\n startDate: parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date)\n .format(this.data.dpConfig.format),\n endDate: null\n };\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n this.isDatesValid = false;\n if (this.localSelectedDatesRange?.startDate && this.localSelectedDatesRange?.endDate) {\n this.isDatesValid = true;\n }\n }\n const startDate = new Date(this.localSelectedDatesRange?.startDate);\n const endDate = new Date(this.localSelectedDatesRange?.endDate);\n if(startDate && endDate){\n this.dateRangeLength = (endDate.getTime() - startDate.getTime())/ (1000 * 60 * 60 * 24) + 1;\n }\n \n }else{\n const currentSelection = parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date).format(this.data.dpConfig.format)\n const existingIndex = this.localSelectedDates.findIndex(selectedDateConfig => selectedDateConfig.selectedDate === currentSelection);\n \n if (existingIndex !== -1) {\n this.localSelectedDates = this.localSelectedDates.filter((_, index) => index !== existingIndex);\n this.isDatesValid = false;\n if (this.localSelectedDates.length > 0) {\n this.isDatesValid = true;\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }else if(!day.isDisabledDay) {\n this.localSelectedDates = [\n ...this.localSelectedDates,\n {\n selectedDate: currentSelection\n }\n ];\n this.isDatesValid = false;\n if (this.localSelectedDates.length > 0) {\n this.isDatesValid = true;\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }else{\n return;\n }\n }\n \n if (day.toastMessage) {\n this.toast.displayMsg(day.toastMessage, 4000);\n }\n }\n\n applyDates() {\n this.data.dateChange(this.localSelectedDates);\n }\n applyDatesRange() {\n this.data.dateChangeRange(this.localSelectedDatesRange);\n }\n\n cancelDatePicker() {\n this.data.close();\n }\n changePicker(event: any) {\n if(event === \"Date Range\"){\n this.formControl.setValue(\"Date Range\")\n this.data.isSPickerSelected = false;\n }else{\n this.formControl.setValue(\"Specific Date(s)\")\n this.data.isSPickerSelected = true;\n }\n }\n}\n\n","import { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Directive, ElementRef, EventEmitter, HostListener, Injector, Input, Optional, Output, Self, SimpleChanges, ViewContainerRef } from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\nimport { take } from \"rxjs/operators\";\nimport { genPositionPairs } from \"mis-crystal-design-system/utils\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"./daterangepicker-constants\";\nimport { ISDatePickerConfig, ISDatePickerToastText, ISSelectedDatesConfig,IRSelectedDatesConfig } from \"./models/sdp-config.model\";\nimport { TzDrpContainerComponent } from \"./tz-sdp-container/tz-sdp-container.component\";\n\n@Directive({\n selector: \"input[misTzSdp]\"\n})\nexport class TzSpecificDatepickerDirective {\n @Input() dpConfig: ISDatePickerConfig = {\n format: DATE_FORMAT,\n minDate: \"\",\n maxDate: \"\",\n timezone: \"Asia/Kolkata\"\n };\n @Input() set selectedDates(dates: ISSelectedDatesConfig[]) {\n this.dates = dates;\n }\n @Input() set selectedDatesRange(dates: IRSelectedDatesConfig) {\n this.datesRange = dates;\n }\n @Input() set datesDisabled(dates: string[]) {\n this.dpDisabledDates = dates;\n }\n @Input() set holidaysDates(dates: string[]) {\n this.dpHolidays = dates;\n }\n @Input() set weekOffsSelection(dates: string[]){\n this.weekOffs = dates;\n }\n @Input() dateMessages: ISDatePickerToastText[] = [];\n @Input() positionX: \"start\" | \"center\" | \"end\" = \"center\";\n @Input() positionY: \"top\" | \"center\" | \"bottom\" = \"bottom\";\n @Input() offsetX: number = 0;\n @Input() offsetY: number = 0;\n @Input() isSPickerSelected: boolean = false;\n private overlayRef: OverlayRef;\n @Output() dateChange = new EventEmitter<ISSelectedDatesConfig[]>(true);\n @Output() dateChangeRange = new EventEmitter<IRSelectedDatesConfig>(true);\n private isOpen = false;\n dates: ISSelectedDatesConfig[] = [];\n datesRange:IRSelectedDatesConfig; \n weekOffs: string[] = [];\n private dpDisabledDates: string[] = [];\n private dpHolidays: string[] = [];\n\n constructor(\n @Self() @Optional() private control: NgControl,\n private element: ElementRef,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener(\"click\")\n toggleDatePicker() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n private open() {\n this.isOpen = true;\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions(\n genPositionPairs(\n {\n positionX: this.positionX,\n positionY: this.positionY,\n offsetX: this.offsetX,\n offsetY: this.offsetY\n },\n true\n )\n )\n .withPush(true);\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n backdropClass: \"cdk-overlay-transparent-backdrop\"\n });\n this.overlayRef = this.overlay.create(config);\n const tempRef = new ComponentPortal(\n TzDrpContainerComponent,\n this.viewContainerRef,\n Injector.create({\n providers: [\n {\n provide: CONTAINER_DATA,\n useValue: {\n messages: this.dateMessages,\n dates: this.control?.control.value || this.dates,\n datesRange: this.control?.control.value || this.datesRange,\n dpConfig: this.dpConfig,\n datesDisabled: this.dpDisabledDates,\n dateChange: this.applyDate.bind(this),\n dateChangeRange: this.applyDateRange.bind(this),\n close: this.close.bind(this),\n weekOffs: this.weekOffs,\n holidays: this.dpHolidays,\n isSPickerSelected: this.isSPickerSelected\n }\n }\n ]\n })\n );\n this.overlayRef.attach(tempRef);\n this.overlayRef\n .backdropClick()\n .pipe(take(1))\n .subscribe(() => {\n this.close();\n });\n }\n updateOverlayPosition() {\n if (this.overlayRef) {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions(\n genPositionPairs(\n {\n positionX: this.positionX,\n positionY: this.positionY,\n offsetX: this.offsetX,\n offsetY: this.offsetY,\n },\n true\n )\n )\n .withPush(true);\n \n this.overlayRef.updatePositionStrategy(positionStrategy);\n }\n }\n applyDate(dates: ISSelectedDatesConfig[]) {\n this.dateChange.emit(dates);\n this.control?.control.patchValue(dates);\n this.dates = dates;\n this.close();\n }\n applyDateRange(dates: IRSelectedDatesConfig) {\n this.dateChangeRange.emit(dates);\n this.control?.control.patchValue(dates);\n this.datesRange = dates;\n this.close();\n }\n close() {\n this.isOpen = false;\n this.overlayRef.detach();\n this.overlayRef.dispose();\n }\n ngOnChanges(changes: SimpleChanges) {\n if (\n (changes.offsetX && !changes.offsetX.firstChange) || (changes.offsetY && !changes.offsetY.firstChange) ||\n (changes.positionX && !changes.positionX.firstChange) ||\n (changes.positionY && !changes.positionY.firstChange)\n ) {\n this.updateOverlayPosition();\n }\n }\n}\n\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TzDrpContainerComponent } from \"./tz-sdp-container/tz-sdp-container.component\";\nimport { TzSpecificDatepickerDirective } from \"./tz-specificdatepicker.directive\";\nimport { ToastModule } from \"mis-crystal-design-system/toast\";\nimport { ButtonModule } from \"mis-crystal-design-system/button\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { RadioButtonModule } from \"mis-crystal-design-system/radio-button\";\n\n@NgModule({\n declarations: [TzDrpContainerComponent, TzSpecificDatepickerDirective],\n imports: [CommonModule, OverlayModule, ToastModule.forRoot(), ButtonModule.forRoot(),RadioButtonModule],\n exports: [TzDrpContainerComponent, TzSpecificDatepickerDirective],\n entryComponents: [TzDrpContainerComponent]\n})\nexport class SpecificDatepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {CONTAINER_DATA as ɵc} from './daterangepicker-constants';\nexport {IDatePickerData as ɵa} from './models/sdp-config.model';\nexport {TzDrpContainerComponent as ɵb} from './tz-sdp-container/tz-sdp-container.component';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-specificdatepicker.js","sources":["../../../projects/mis-components/specificdatepicker/daterangepicker-constants.ts","../../../projects/mis-components/specificdatepicker/utils/index.ts","../../../projects/mis-components/specificdatepicker/tz-sdp-container/tz-sdp-container.component.ts","../../../projects/mis-components/specificdatepicker/tz-specificdatepicker.directive.ts","../../../projects/mis-components/specificdatepicker/specificdatepicker.module.ts","../../../projects/mis-components/specificdatepicker/mis-crystal-design-system-specificdatepicker.ts"],"sourcesContent":["/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const CONTAINER_DATA = new InjectionToken<{}>(\"CONTAINER_DATA\");\nexport const DATE_FORMAT = \"DD-MM-YYYY\";\n","import { ICurrentMonth } from \"../models/sdp-config.model\";\n\nexport const getMonth = (index: number): ICurrentMonth => {\n let month;\n switch (index) {\n case 0:\n month = \"January\";\n break;\n case 1:\n month = \"February\";\n break;\n case 2:\n month = \"March\";\n break;\n case 3:\n month = \"April\";\n break;\n case 4:\n month = \"May\";\n break;\n case 5:\n month = \"June\";\n break;\n case 6:\n month = \"July\";\n break;\n case 7:\n month = \"August\";\n break;\n case 8:\n month = \"September\";\n break;\n case 9:\n month = \"October\";\n break;\n case 10:\n month = \"November\";\n break;\n case 11:\n month = \"December\";\n break;\n default:\n break;\n }\n return month;\n};\n","import { Component, Inject, OnInit } from \"@angular/core\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"../daterangepicker-constants\";\nimport { ICurrentMonth, ICurrentMonthDates, IDatePickerData, IWeekDay, ISSelectedDatesConfig, IRSelectedDatesConfig } from \"../models/sdp-config.model\";\nimport { parseZone, Moment } from \"moment-timezone\";\nimport { getMonth } from \"../utils\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\nimport { FormControl } from \"@angular/forms\";\n\n@Component({\n selector: \"mis-tz-sdp\",\n templateUrl: \"./tz-sdp-container.component.html\",\n styleUrls: [\"./tz-sdp-container.component.scss\"]\n})\nexport class TzDrpContainerComponent implements OnInit {\n data: IDatePickerData;\n private parseZoneInstance = (...args) => {\n return parseZone(...args);\n };\n private rawWeekDays: string[] = [\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"];\n weekDays: IWeekDay[] = [];\n currentMonthNumber: number;\n currentMonth: ICurrentMonth;\n currentYearNumber: number;\n currentMonthDates: ICurrentMonthDates[] = [];\n nextMonthNumber: number;\n nextMonth: ICurrentMonth;\n nextYearNumber: number;\n nextMonthDates: ICurrentMonthDates[] = [];\n isPreviousMonthDisabled: boolean = false;\n isNextMonthDisabled: boolean = false;\n selectionStarted = false;\n localSelectedDates: ISSelectedDatesConfig[]; \n localSelectedDatesRange: IRSelectedDatesConfig;\n isDatesValid = false;\n today = new Date();\n todayMonthNumber = this.today.getMonth()\n dateRangeSelected:boolean = false;\n dateRangeLength: number = 0;\n formControl: FormControl = new FormControl('Specific Date(s)');\n datePickerValue:string[]= ['Specific Date(s)','Date Range'];\n constructor(@Inject(CONTAINER_DATA) data: IDatePickerData, private toast: ToastService) {\n \n this.data = data;\n this.localSelectedDatesRange = this.data.datesRange;\n const startDate = new Date(this.localSelectedDatesRange?.startDate);\n const endDate = new Date(this.localSelectedDatesRange?.endDate);\n if(startDate && endDate){\n this.dateRangeLength = (endDate.getTime() - startDate.getTime())/ (1000 * 60 * 60 * 24) + 1;\n }\n this.localSelectedDates = this.data.dates;\n if(!this.data.isSPickerSelected){\n this.formControl.setValue(\"Date Range\")\n this.isDatesValid = false;\n if (this.localSelectedDatesRange.startDate && this.localSelectedDatesRange.endDate) {\n this.isDatesValid = true;\n }\n }else{\n this.isDatesValid = false;\n if (this.localSelectedDates.length > 0) {\n this.isDatesValid = true;\n }\n }\n if (this.data?.dpConfig?.timezone) {\n this.parseZoneInstance = (...args) => {\n return parseZone(...args).tz(this.data.dpConfig.timezone);\n };\n }\n this.currentMonthNumber = this.parseZoneInstance().month();\n this.nextMonthNumber = this.parseZoneInstance().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n this.currentYearNumber = this.parseZoneInstance().year();\n this.nextYearNumber = this.parseZoneInstance().add(1, \"month\").year();\n this.weekDays = this.rawWeekDays.map((day, index) => ({\n label: `${day[0]}${day.slice(1).toLowerCase()}`,\n isCurrentDay: this.parseZoneInstance().day() === index \n }));\n if (!this.data?.dpConfig?.format) {\n this.data.dpConfig = {\n ...this.data.dpConfig,\n format: DATE_FORMAT\n };\n }\n }\n\n ngOnInit(): void {\n this.currentDateInstance();\n this.calculateMinMaxDays();\n }\n\n private currentDateInstance(): void {\n let selectedStartDate;\n if(!this.data.isSPickerSelected){\n if (!this.localSelectedDatesRange?.startDate) {\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n return;\n }\n selectedStartDate = this.parseZoneInstance(this.localSelectedDatesRange?.startDate, this.data.dpConfig.format);\n }else{\n selectedStartDate = this.parseZoneInstance(this.localSelectedDates?.[0].selectedDate, this.data.dpConfig.format);\n }\n if (selectedStartDate.isValid()) {\n this.currentYearNumber = selectedStartDate.year();\n this.nextYearNumber = selectedStartDate.add(1, \"month\").year();\n this.currentMonthNumber = selectedStartDate.get(\"month\") - 1;\n this.nextMonthNumber = selectedStartDate.add(1, \"month\").month() - 1;\n if(this.currentMonthNumber === -1){\n this.currentMonthNumber = 11\n }\n if(this.nextMonthNumber === -1){\n this.nextMonthNumber = 11\n }\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }\n\n private calculateMinMaxDays() {\n const currentInstance = this.parseZoneInstance().year(this.currentYearNumber).month(this.currentMonthNumber);\n const minDate = this.parseZoneInstance(this.data.dpConfig.minDate, this.data.dpConfig.format);\n if (minDate.isValid()) {\n this.isPreviousMonthDisabled = minDate.isSameOrAfter(currentInstance, \"month\");\n }\n const maxDate = this.parseZoneInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format);\n if (maxDate.isValid()) {\n this.isNextMonthDisabled = maxDate.isSameOrBefore(currentInstance, \"month\");\n }\n }\n\nnavigateMonth(direction: \"NEXT\" | \"PREVIOUS\"): void {\n let thisMonth: Moment = parseZone().year(this.currentYearNumber).month(this.currentMonthNumber);\n if (direction === \"NEXT\") {\n thisMonth = thisMonth.add(1, \"month\");\n } else if (direction === \"PREVIOUS\") {\n thisMonth = thisMonth.subtract(1, \"month\");\n }\n this.currentMonthNumber = thisMonth.month();\n this.nextMonthNumber = thisMonth.clone().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n if (this.nextMonthNumber === 0 && direction === \"PREVIOUS\") {\n this.currentYearNumber--;\n } else if (this.currentMonthNumber === 11 && direction === \"NEXT\") {\n this.nextYearNumber++;\n }else if (this.currentMonthNumber === 0 && direction === \"NEXT\") {\n this.currentYearNumber++;\n } else if (this.nextMonthNumber === 11 && direction === \"PREVIOUS\") {\n this.nextYearNumber--;\n }else{\n this.nextYearNumber = this.currentYearNumber;\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n this.calculateMinMaxDays();\n}\n\n private generateDates(month: number, currentYearNumber: number): ICurrentMonthDates[] {\n let dates: ICurrentMonthDates[] = [];\n const daysInMonth = parseZone().year(currentYearNumber).month(month).daysInMonth();\n for (let currentDate = 1; currentDate <= daysInMonth; currentDate++) {\n const date = this.parseZoneInstance().year(currentYearNumber).month(month).date(currentDate);\n const dateString = date.format(this.data.dpConfig.format);\n let isDisabledDay = this.data.datesDisabled.some(d => d === dateString);\n const minDate = this.parseZoneInstance(this.data.dpConfig.minDate, this.data.dpConfig.format);\n if (!isDisabledDay && minDate.isValid()) {\n isDisabledDay = minDate.isAfter(date, \"day\");\n }\n const maxDate = this.parseZoneInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format);\n if (!isDisabledDay && maxDate.isValid()) {\n isDisabledDay = maxDate.isBefore(date, \"day\");\n }\n const isCurrentDay =\n this.parseZoneInstance().year(currentYearNumber).month(month).date(currentDate).format(this.data.dpConfig.format) ===\n this.parseZoneInstance().format(this.data.dpConfig.format);\n let isSelectedDay = false;\n for (const selectedDateConfig of this.localSelectedDates) {\n if (!isSelectedDay && date.format(this.data.dpConfig.format) === selectedDateConfig.selectedDate) {\n isSelectedDay = true;\n }\n }\n let isHoliday = false;\n for (const day of this.data.holidays) {\n if ( date.format(this.data.dpConfig.format) === day) {\n isHoliday = true;\n }\n }\n const dayOfWeek = date.format('ddd');\n const isWeekOff = this.data.weekOffs.includes(dayOfWeek);\n const isSelectedStartDay =\n !isDisabledDay &&\n (this.localSelectedDatesRange?.startDate ?? false) &&\n date.format(this.data.dpConfig.format) === this.localSelectedDatesRange?.startDate;\n const isAfterSelectedStartDate = this.parseZoneInstance(date).isAfter(parseZone(this.localSelectedDatesRange?.startDate,this.data.dpConfig.format), \"day\");\n const isBeforeSelectedEndDate = this.parseZoneInstance(date).isBefore(parseZone(this.localSelectedDatesRange?.endDate,this.data.dpConfig.format), \"day\");\n const inRangeDay =\n (this.localSelectedDatesRange?.startDate ?? false) &&\n (this.localSelectedDatesRange?.endDate ?? false) &&\n isAfterSelectedStartDate &&\n isBeforeSelectedEndDate;\n\n const isSelectedEndDay =\n !isDisabledDay &&\n ((this.localSelectedDatesRange?.startDate && this.localSelectedDatesRange?.endDate) ?? false) &&\n date.format(this.data.dpConfig.format) === this.localSelectedDatesRange?.endDate;\n dates.push({\n date: currentDate,\n weekDay: date.day(),\n isSelectedDay,\n isCurrentDay,\n isSelectedStartDay,\n isSelectedEndDay,\n inRangeDay,\n isHoliday,\n isWeekOff,\n toastMessage: this.data.messages.find(q => date.format(this.data.dpConfig.format) === q.date)?.message || \"\",\n isDisabledDay\n });\n }\n for (let i = dates[0].weekDay; i > 0; i--) {\n dates.unshift({ date: 0, weekDay: i - 1 });\n }\n return dates;\n }\n\n selectDay(from: \"LEFT\" | \"RIGHT\", day: ICurrentMonthDates) {\n if (day.date <= 0) return;\n if(!this.data.isSPickerSelected){\n if (!day.isDisabledDay) {\n if (this.selectionStarted) {\n const momentDay = parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date);\n if (momentDay.isBefore(parseZone(this.localSelectedDatesRange?.startDate,this.data.dpConfig.format), \"day\")) {\n this.localSelectedDatesRange = {\n startDate: momentDay.format(this.data.dpConfig.format),\n endDate: null\n };\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n return;\n }\n this.selectionStarted = false;\n this.localSelectedDatesRange = {\n ...this.localSelectedDatesRange,\n endDate: momentDay.format(this.data.dpConfig.format)\n };\n } else {\n this.selectionStarted = true;\n this.localSelectedDatesRange = {\n startDate: parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date)\n .format(this.data.dpConfig.format),\n endDate: null\n };\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n this.isDatesValid = false;\n if (this.localSelectedDatesRange?.startDate && this.localSelectedDatesRange?.endDate) {\n this.isDatesValid = true;\n }\n }\n const startDate = new Date(this.localSelectedDatesRange?.startDate);\n const endDate = new Date(this.localSelectedDatesRange?.endDate);\n if(startDate && endDate){\n this.dateRangeLength = (endDate.getTime() - startDate.getTime())/ (1000 * 60 * 60 * 24) + 1;\n }\n \n }else{\n const currentSelection = parseZone()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date).format(this.data.dpConfig.format)\n const existingIndex = this.localSelectedDates.findIndex(selectedDateConfig => selectedDateConfig.selectedDate === currentSelection);\n \n if (existingIndex !== -1) {\n this.localSelectedDates = this.localSelectedDates.filter((_, index) => index !== existingIndex);\n this.isDatesValid = false;\n if (this.localSelectedDates.length > 0) {\n this.isDatesValid = true;\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }else if(!day.isDisabledDay) {\n this.localSelectedDates = [\n ...this.localSelectedDates,\n {\n selectedDate: currentSelection\n }\n ];\n this.isDatesValid = false;\n if (this.localSelectedDates.length > 0) {\n this.isDatesValid = true;\n }\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }else{\n return;\n }\n }\n \n if (day.toastMessage) {\n this.toast.displayMsg(day.toastMessage, 4000);\n }\n }\n\n applyDates() {\n this.data.dateChange(this.localSelectedDates);\n }\n applyDatesRange() {\n this.data.dateChangeRange(this.localSelectedDatesRange);\n }\n\n cancelDatePicker() {\n this.data.close();\n }\n changePicker(event: any) {\n if(event === \"Date Range\"){\n this.formControl.setValue(\"Date Range\")\n this.data.isSPickerSelected = false;\n }else{\n this.formControl.setValue(\"Specific Date(s)\")\n this.data.isSPickerSelected = true;\n }\n }\n}\n\n","import { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Directive, ElementRef, EventEmitter, HostListener, Injector, Input, Optional, Output, Self, SimpleChanges, ViewContainerRef } from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\nimport { take } from \"rxjs/operators\";\nimport { genPositionPairs } from \"mis-crystal-design-system/utils\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"./daterangepicker-constants\";\nimport { ISDatePickerConfig, ISDatePickerToastText, ISSelectedDatesConfig,IRSelectedDatesConfig } from \"./models/sdp-config.model\";\nimport { TzDrpContainerComponent } from \"./tz-sdp-container/tz-sdp-container.component\";\n\n@Directive({\n selector: \"input[misTzSdp]\"\n})\nexport class TzSpecificDatepickerDirective {\n @Input() dpConfig: ISDatePickerConfig = {\n format: DATE_FORMAT,\n minDate: \"\",\n maxDate: \"\",\n timezone: \"Asia/Kolkata\"\n };\n @Input() set selectedDates(dates: ISSelectedDatesConfig[]) {\n this.dates = dates;\n }\n @Input() set selectedDatesRange(dates: IRSelectedDatesConfig) {\n this.datesRange = dates;\n }\n @Input() set datesDisabled(dates: string[]) {\n this.dpDisabledDates = dates;\n }\n @Input() set holidaysDates(dates: string[]) {\n this.dpHolidays = dates;\n }\n @Input() set weekOffsSelection(dates: string[]){\n this.weekOffs = dates;\n }\n @Input() dateMessages: ISDatePickerToastText[] = [];\n @Input() positionX: \"start\" | \"center\" | \"end\" = \"center\";\n @Input() positionY: \"top\" | \"center\" | \"bottom\" = \"bottom\";\n @Input() offsetX: number = 0;\n @Input() offsetY: number = 0;\n @Input() isSPickerSelected: boolean = false;\n private overlayRef: OverlayRef;\n @Output() dateChange = new EventEmitter<ISSelectedDatesConfig[]>(true);\n @Output() dateChangeRange = new EventEmitter<IRSelectedDatesConfig>(true);\n private isOpen = false;\n dates: ISSelectedDatesConfig[] = [];\n datesRange:IRSelectedDatesConfig; \n weekOffs: string[] = [];\n private dpDisabledDates: string[] = [];\n private dpHolidays: string[] = [];\n\n constructor(\n @Self() @Optional() private control: NgControl,\n private element: ElementRef,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener(\"click\")\n toggleDatePicker() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n private open() {\n this.isOpen = true;\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions(\n genPositionPairs(\n {\n positionX: this.positionX,\n positionY: this.positionY,\n offsetX: this.offsetX,\n offsetY: this.offsetY\n },\n true\n )\n )\n .withPush(true);\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n backdropClass: \"cdk-overlay-transparent-backdrop\"\n });\n this.overlayRef = this.overlay.create(config);\n const tempRef = new ComponentPortal(\n TzDrpContainerComponent,\n this.viewContainerRef,\n Injector.create({\n providers: [\n {\n provide: CONTAINER_DATA,\n useValue: {\n messages: this.dateMessages,\n dates: this.control?.control.value || this.dates,\n datesRange: this.control?.control.value || this.datesRange,\n dpConfig: this.dpConfig,\n datesDisabled: this.dpDisabledDates,\n dateChange: this.applyDate.bind(this),\n dateChangeRange: this.applyDateRange.bind(this),\n close: this.close.bind(this),\n weekOffs: this.weekOffs,\n holidays: this.dpHolidays,\n isSPickerSelected: this.isSPickerSelected\n }\n }\n ]\n })\n );\n this.overlayRef.attach(tempRef);\n this.overlayRef\n .backdropClick()\n .pipe(take(1))\n .subscribe(() => {\n this.close();\n });\n }\n updateOverlayPosition() {\n if (this.overlayRef) {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions(\n genPositionPairs(\n {\n positionX: this.positionX,\n positionY: this.positionY,\n offsetX: this.offsetX,\n offsetY: this.offsetY,\n },\n true\n )\n )\n .withPush(true);\n \n this.overlayRef.updatePositionStrategy(positionStrategy);\n }\n }\n applyDate(dates: ISSelectedDatesConfig[]) {\n this.dateChange.emit(dates);\n this.control?.control.patchValue(dates);\n this.dates = dates;\n this.close();\n }\n applyDateRange(dates: IRSelectedDatesConfig) {\n this.dateChangeRange.emit(dates);\n this.control?.control.patchValue(dates);\n this.datesRange = dates;\n this.close();\n }\n close() {\n this.isOpen = false;\n this.overlayRef.detach();\n this.overlayRef.dispose();\n }\n ngOnChanges(changes: SimpleChanges) {\n if (\n (changes.offsetX && !changes.offsetX.firstChange) || (changes.offsetY && !changes.offsetY.firstChange) ||\n (changes.positionX && !changes.positionX.firstChange) ||\n (changes.positionY && !changes.positionY.firstChange)\n ) {\n this.updateOverlayPosition();\n }\n }\n}\n\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TzDrpContainerComponent } from \"./tz-sdp-container/tz-sdp-container.component\";\nimport { TzSpecificDatepickerDirective } from \"./tz-specificdatepicker.directive\";\nimport { ToastModule } from \"mis-crystal-design-system/toast\";\nimport { ButtonModule } from \"mis-crystal-design-system/button\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { RadioButtonModule } from \"mis-crystal-design-system/radio-button\";\n\n@NgModule({\n declarations: [TzDrpContainerComponent, TzSpecificDatepickerDirective],\n imports: [CommonModule, OverlayModule, ToastModule.forRoot(), ButtonModule.forRoot(),RadioButtonModule],\n exports: [TzDrpContainerComponent, TzSpecificDatepickerDirective],\n entryComponents: [TzDrpContainerComponent]\n})\nexport class SpecificDatepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {CONTAINER_DATA as ɵc} from './daterangepicker-constants';\nexport {IDatePickerData as ɵa} from './models/sdp-config.model';\nexport {TzDrpContainerComponent as ɵb} from './tz-sdp-container/tz-sdp-container.component';"],"names":[],"mappings":";;;;;;;;;;;;AAAA;MAIa,cAAc,GAAG,IAAI,cAAc,CAAK,gBAAgB,EAAE;AAChE,MAAM,WAAW,GAAG,YAAY;;ACHhC,MAAM,QAAQ,GAAG,CAAC,KAAa;IACpC,IAAI,KAAK,CAAC;IACV,QAAQ,KAAK;QACX,KAAK,CAAC;YACJ,KAAK,GAAG,SAAS,CAAC;YAClB,MAAM;QACR,KAAK,CAAC;YACJ,KAAK,GAAG,UAAU,CAAC;YACnB,MAAM;QACR,KAAK,CAAC;YACJ,KAAK,GAAG,OAAO,CAAC;YAChB,MAAM;QACR,KAAK,CAAC;YACJ,KAAK,GAAG,OAAO,CAAC;YAChB,MAAM;QACR,KAAK,CAAC;YACJ,KAAK,GAAG,KAAK,CAAC;YACd,MAAM;QACR,KAAK,CAAC;YACJ,KAAK,GAAG,MAAM,CAAC;YACf,MAAM;QACR,KAAK,CAAC;YACJ,KAAK,GAAG,MAAM,CAAC;YACf,MAAM;QACR,KAAK,CAAC;YACJ,KAAK,GAAG,QAAQ,CAAC;YACjB,MAAM;QACR,KAAK,CAAC;YACJ,KAAK,GAAG,WAAW,CAAC;YACpB,MAAM;QACR,KAAK,CAAC;YACJ,KAAK,GAAG,SAAS,CAAC;YAClB,MAAM;QACR,KAAK,EAAE;YACL,KAAK,GAAG,UAAU,CAAC;YACnB,MAAM;QACR,KAAK,EAAE;YACL,KAAK,GAAG,UAAU,CAAC;YACnB,MAAM;QACR;YACE,MAAM;KACT;IACD,OAAO,KAAK,CAAC;AACf,CAAC;;MChCY,uBAAuB;IA2BlC,YAAoC,IAAqB,EAAU,KAAmB;;QAAnB,UAAK,GAAL,KAAK,CAAc;QAzB9E,sBAAiB,GAAG,CAAC,GAAG,IAAI;YAClC,OAAO,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;SAC3B,CAAC;QACM,gBAAW,GAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClF,aAAQ,GAAe,EAAE,CAAC;QAI1B,sBAAiB,GAAyB,EAAE,CAAC;QAI7C,mBAAc,GAAyB,EAAE,CAAC;QAC1C,4BAAuB,GAAY,KAAK,CAAC;QACzC,wBAAmB,GAAY,KAAK,CAAC;QACrC,qBAAgB,GAAG,KAAK,CAAC;QAGzB,iBAAY,GAAG,KAAK,CAAC;QACrB,UAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACnB,qBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QACxC,sBAAiB,GAAW,KAAK,CAAC;QAClC,oBAAe,GAAW,CAAC,CAAC;QAC5B,gBAAW,GAAgB,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC/D,oBAAe,GAAW,CAAC,kBAAkB,EAAC,YAAY,CAAC,CAAC;QAG1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,IAAI,OAAC,IAAI,CAAC,uBAAuB,0CAAE,SAAS,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,IAAI,OAAC,IAAI,CAAC,uBAAuB,0CAAE,OAAO,CAAC,CAAC;QAChE,IAAG,SAAS,IAAI,OAAO,EAAC;YACtB,IAAI,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,KAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;SAC7F;QACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;YACvC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,IAAI,CAAC,uBAAuB,CAAC,SAAS,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE;gBAClF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;SACF;aAAI;YACH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;SACF;QACD,gBAAI,IAAI,CAAC,IAAI,0CAAE,QAAQ,0CAAE,QAAQ,EAAE;YACjC,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI;gBAC/B,OAAO,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC3D,CAAC;SACH;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,MAAM;YACpD,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;YAC/C,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK;SACvD,CAAC,CAAC,CAAC;QACJ,IAAI,cAAC,IAAI,CAAC,IAAI,0CAAE,QAAQ,0CAAE,MAAM,CAAA,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,mCACb,IAAI,CAAC,IAAI,CAAC,QAAQ,KACrB,MAAM,EAAE,WAAW,GACpB,CAAC;SACH;KACF;IAED,QAAQ;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAEO,mBAAmB;;QACzB,IAAI,iBAAiB,CAAC;QACtB,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC;YAC9B,IAAI,QAAC,IAAI,CAAC,uBAAuB,0CAAE,SAAS,CAAA,EAAE;gBAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpF,OAAO;aACR;YACF,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,OAAC,IAAI,CAAC,uBAAuB,0CAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC/G;aAAI;YACH,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,OAAC,IAAI,CAAC,kBAAkB,0CAAG,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAClH;QACD,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE;YAC/B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/D,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACrE,IAAG,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC,EAAC;gBAC7B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;aAC7B;YACJ,IAAG,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC,EAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;aAC1B;YACJ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACjD;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;KACrF;IAEO,mBAAmB;QACzB,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7G,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9F,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;YACrB,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;SAChF;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9F,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;YACrB,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;SAC7E;KACF;IAEH,aAAa,CAAC,SAA8B;QAC3C,IAAI,SAAS,GAAW,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChG,IAAI,SAAS,KAAK,MAAM,EAAE;YACzB,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SACtC;aAAM,IAAI,SAAS,KAAK,UAAU,EAAE;YACpC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,SAAS,KAAK,UAAU,EAAE;YAC3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;aAAM,IAAI,IAAI,CAAC,kBAAkB,KAAK,EAAE,IAAI,SAAS,KAAK,MAAM,EAAE;YAClE,IAAI,CAAC,cAAc,EAAE,CAAC;SACtB;aAAK,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,SAAS,KAAK,MAAM,EAAE;YAChE,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;aAAM,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE,IAAI,SAAS,KAAK,UAAU,EAAE;YACnE,IAAI,CAAC,cAAc,EAAE,CAAC;SACtB;aAAI;YACJ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC;SAC7C;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpF,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC3B;IAES,aAAa,CAAC,KAAa,EAAE,iBAAyB;;QAC5D,IAAI,KAAK,GAAyB,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACnF,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,IAAI,WAAW,EAAE,WAAW,EAAE,EAAE;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9F,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;gBACvC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC9C;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9F,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;gBACvC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC/C;YACD,MAAM,YAAY,GAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACjH,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,KAAK,MAAM,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC1D,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC,YAAY,EAAE;oBAChG,aAAa,GAAG,IAAI,CAAC;iBACpB;aACF;YACD,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtC,IAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;oBACnD,SAAS,GAAG,IAAI,CAAC;iBAChB;aACF;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,kBAAkB,GACtB,CAAC,aAAa;6BACb,IAAI,CAAC,uBAAuB,0CAAE,SAAS,mCAAI,KAAK,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAK,IAAI,CAAC,uBAAuB,0CAAE,SAAS,CAAA,CAAC;YACrF,MAAM,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,OAAC,IAAI,CAAC,uBAAuB,0CAAE,SAAS,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3J,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,OAAC,IAAI,CAAC,uBAAuB,0CAAE,OAAO,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YACzJ,MAAM,UAAU,GACd,aAAC,IAAI,CAAC,uBAAuB,0CAAE,SAAS,mCAAI,KAAK;6BAChD,IAAI,CAAC,uBAAuB,0CAAE,OAAO,mCAAI,KAAK,CAAC;gBAChD,wBAAwB;gBACxB,uBAAuB,CAAC;YAE1B,MAAM,gBAAgB,GACpB,CAAC,aAAa;wBACZ,OAAA,IAAI,CAAC,uBAAuB,0CAAE,SAAS,YAAI,IAAI,CAAC,uBAAuB,0CAAE,OAAO,CAAA,CAAC,mCAAI,KAAK,CAAC;gBAC7F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAK,IAAI,CAAC,uBAAuB,0CAAE,OAAO,CAAA,CAAC;YACnF,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;gBACnB,aAAa;gBACb,YAAY;gBACZ,kBAAkB;gBAClB,gBAAgB;gBAChB,UAAU;gBACV,SAAS;gBACT,SAAS;gBACT,YAAY,EAAE,OAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0CAAE,OAAO,KAAI,EAAE;gBAC5G,aAAa;aACd,CAAC,CAAC;SACJ;QACD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACzC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAC5C;QACD,OAAO,KAAK,CAAC;KACd;IAED,SAAS,CAAC,IAAsB,EAAE,GAAuB;;QACvD,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;YAAE,OAAO;QAC1B,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;gBACtB,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACzB,MAAM,SAAS,GAAG,SAAS,EAAE;yBAC1B,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC;yBACpE,KAAK,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;yBACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClB,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,OAAC,IAAI,CAAC,uBAAuB,0CAAE,SAAS,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE;wBAC3G,IAAI,CAAC,uBAAuB,GAAG;4BAC7B,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACtD,OAAO,EAAE,IAAI;yBACd,CAAC;wBACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBAC7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;wBACpF,OAAO;qBACR;oBACD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;oBAC9B,IAAI,CAAC,uBAAuB,mCACvB,IAAI,CAAC,uBAAuB,KAC/B,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GACrD,CAAC;iBACH;qBAAM;oBACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC7B,IAAI,CAAC,uBAAuB,GAAG;wBAC7B,SAAS,EAAE,SAAS,EAAE;6BACnB,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC;6BACpE,KAAK,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;6BACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;6BACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACpC,OAAO,EAAE,IAAI;qBACd,CAAC;iBACH;gBACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpF,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,OAAA,IAAI,CAAC,uBAAuB,0CAAE,SAAS,YAAI,IAAI,CAAC,uBAAuB,0CAAE,OAAO,CAAA,EAAE;oBACpF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC1B;aACF;YACD,MAAM,SAAS,GAAG,IAAI,IAAI,OAAC,IAAI,CAAC,uBAAuB,0CAAE,SAAS,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,IAAI,IAAI,OAAC,IAAI,CAAC,uBAAuB,0CAAE,OAAO,CAAC,CAAC;YAChE,IAAG,SAAS,IAAI,OAAO,EAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,KAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;aAC7F;SAEF;aAAI;YACH,MAAM,gBAAgB,GAAI,SAAS,EAAE;iBACpC,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC;iBACpE,KAAK,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;iBACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACjD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,YAAY,KAAK,gBAAgB,CAAC,CAAC;YAEpI,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;gBAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,KAAK,aAAa,CAAC,CAAC;gBAChG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC1B;gBACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;aACnF;iBAAK,IAAG,CAAC,GAAG,CAAC,aAAa,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,GAAG;oBACxB,GAAG,IAAI,CAAC,kBAAkB;oBAC1B;wBACE,YAAY,EAAE,gBAAgB;qBAC/B;iBACF,CAAC;gBACF,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC1B;gBACC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;aACrF;iBAAI;gBACH,OAAO;aACR;SACF;QAED,IAAI,GAAG,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC/C;KACF;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC/C;IACD,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;KACzD;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;KACnB;IACD,YAAY,CAAC,KAAU;QACrB,IAAG,KAAK,KAAK,YAAY,EAAC;YACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;YACvC,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SACrC;aAAI;YACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;YAC7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACpC;KACF;;;YAlUF,SAAS,SAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,wmPAAgD;;aAEjD;;;4CA4Bc,MAAM,SAAC,cAAc;YAnC3B,YAAY;;;MCQR,6BAA6B;IAsCxC,YAC8B,OAAkB,EACtC,OAAmB,EACnB,OAAgB,EAChB,gBAAkC;QAHd,YAAO,GAAP,OAAO,CAAW;QACtC,YAAO,GAAP,OAAO,CAAY;QACnB,YAAO,GAAP,OAAO,CAAS;QAChB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAzCnC,aAAQ,GAAuB;YACtC,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,cAAc;SACzB,CAAC;QAgBO,iBAAY,GAA4B,EAAE,CAAC;QAC3C,cAAS,GAA+B,QAAQ,CAAC;QACjD,cAAS,GAAgC,QAAQ,CAAC;QAClD,YAAO,GAAW,CAAC,CAAC;QACpB,YAAO,GAAW,CAAC,CAAC;QACpB,sBAAiB,GAAY,KAAK,CAAC;QAElC,eAAU,GAAG,IAAI,YAAY,CAA0B,IAAI,CAAC,CAAC;QAC7D,oBAAe,GAAG,IAAI,YAAY,CAAwB,IAAI,CAAC,CAAC;QAClE,WAAM,GAAG,KAAK,CAAC;QACvB,UAAK,GAA4B,EAAE,CAAC;QAEpC,aAAQ,GAAa,EAAE,CAAC;QAChB,oBAAe,GAAa,EAAE,CAAC;QAC/B,eAAU,GAAa,EAAE,CAAC;KAO9B;IApCJ,IAAa,aAAa,CAAC,KAA8B;QACvD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;IACD,IAAa,kBAAkB,CAAC,KAA4B;QAC1D,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;IACD,IAAa,aAAa,CAAC,KAAe;QACxC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;IACD,IAAa,aAAa,CAAC,KAAe;QACxC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;IACD,IAAa,iBAAiB,CAAC,KAAe;QAC5C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;IAyBD,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAEO,IAAI;;QACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO;aAClC,QAAQ,EAAE;aACV,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;aACjC,aAAa,CACZ,gBAAgB,CACd;YACE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,EACD,IAAI,CACL,CACF;aACA,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;YAC/B,WAAW,EAAE,IAAI;YACjB,gBAAgB;YAChB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;YAC1D,aAAa,EAAE,kCAAkC;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,eAAe,CACjC,uBAAuB,EACvB,IAAI,CAAC,gBAAgB,EACrB,QAAQ,CAAC,MAAM,CAAC;YACd,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE;wBACR,QAAQ,EAAE,IAAI,CAAC,YAAY;wBAC3B,KAAK,EAAE,OAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,KAAK,KAAI,IAAI,CAAC,KAAK;wBAChD,UAAU,EAAG,OAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,KAAK,KAAI,IAAI,CAAC,UAAU;wBAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,aAAa,EAAE,IAAI,CAAC,eAAe;wBACnC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;wBACrC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC/C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,QAAQ,EAAE,IAAI,CAAC,UAAU;wBACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;qBAC1C;iBACF;aACF;SACF,CAAC,CACH,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU;aACZ,aAAa,EAAE;aACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC;YACT,IAAI,CAAC,KAAK,EAAE,CAAC;SACd,CAAC,CAAC;KACN;IACD,qBAAqB;QACnB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO;iBAClC,QAAQ,EAAE;iBACV,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;iBACjC,aAAa,CACZ,gBAAgB,CACd;gBACE,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,EACD,IAAI,CACL,CACF;iBACA,QAAQ,CAAC,IAAI,CAAC,CAAC;YAElB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;SAC1D;KACF;IACD,SAAS,CAAC,KAA8B;;QACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IACD,cAAc,CAAC,KAA4B;;QACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE;QACxC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IACD,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;KAC3B;IACD,WAAW,CAAC,OAAsB;QAChC,IACE,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,MAAM,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;aACrG,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;aACpD,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EACrD;YACA,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;KACF;;;YA/JF,SAAS,SAAC;gBACT,QAAQ,EAAE,iBAAiB;aAC5B;;;YATQ,SAAS,uBAiDb,IAAI,YAAI,QAAQ;YAlDD,UAAU;YAFrB,OAAO;YAEoG,gBAAgB;;;uBAYjI,KAAK;4BAML,KAAK;iCAGL,KAAK;4BAGL,KAAK;4BAGL,KAAK;gCAGL,KAAK;2BAGL,KAAK;wBACL,KAAK;wBACL,KAAK;sBACL,KAAK;sBACL,KAAK;gCACL,KAAK;yBAEL,MAAM;8BACN,MAAM;+BAeN,YAAY,SAAC,OAAO;;;MC3CV,wBAAwB;;;YANpC,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;gBACtE,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,OAAO,EAAE,EAAC,iBAAiB,CAAC;gBACvG,OAAO,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;gBACjE,eAAe,EAAE,CAAC,uBAAuB,CAAC;aAC3C;;;ACdD;;;;;;"}
|