mis-crystal-design-system 18.0.22-test-dynamic-theme-2 → 18.0.23
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/button/button.directive.scss +13 -13
- package/datepicker_v2/datepicker-constants.d.ts +6 -0
- package/datepicker_v2/datepicker.module.d.ts +6 -5
- package/datepicker_v2/models/dp-config.model.d.ts +3 -0
- package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +12 -1
- package/daterangepicker_v2/daterangepicker.module.d.ts +6 -5
- package/daterangepicker_v2/models/drp-config.model.d.ts +2 -0
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +20 -0
- package/drawer/drawer.scss +1 -1
- package/esm2022/action-list/action-list.component.mjs +4 -4
- package/esm2022/action-list/action-list.module.mjs +2 -2
- package/esm2022/analytics/analytics.module.mjs +2 -2
- package/esm2022/analytics/analytics.service.mjs +2 -2
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +4 -4
- package/esm2022/async-search-dropdown/async-dropdown.module.mjs +2 -2
- package/esm2022/button/button.component.mjs +4 -4
- package/esm2022/button/button.directive.mjs +2 -2
- package/esm2022/button/button.module.mjs +2 -2
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/checkbox/checkbox.module.mjs +2 -2
- package/esm2022/chip/chip.component.mjs +4 -4
- package/esm2022/chip/chip.module.mjs +2 -2
- package/esm2022/datepicker_v2/datepicker-constants.mjs +7 -1
- package/esm2022/datepicker_v2/datepicker.module.mjs +6 -5
- package/esm2022/datepicker_v2/models/dp-config.model.mjs +1 -1
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +2 -2
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +500 -95
- package/esm2022/datepicker_v2/utils/index.mjs +1 -1
- package/esm2022/daterangepicker_v2/daterangepicker.module.mjs +6 -5
- package/esm2022/daterangepicker_v2/models/drp-config.model.mjs +1 -1
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +2 -2
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +481 -54
- package/esm2022/daterangepicker_v2/utils/index.mjs +1 -1
- package/esm2022/drawer/drawer-body/drawer-body.component.mjs +2 -2
- package/esm2022/drawer/drawer.module.mjs +2 -2
- package/esm2022/drawer/drawer.service.mjs +2 -2
- package/esm2022/dropdown/calculate-container-height.directive.mjs +2 -2
- package/esm2022/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.module.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form.component.mjs +4 -4
- package/esm2022/dynamic-form/dynamic-form.module.mjs +2 -2
- package/esm2022/fab/fab.component.mjs +4 -4
- package/esm2022/fab/fab.module.mjs +2 -2
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +4 -4
- package/esm2022/filter/filters.module.mjs +2 -2
- package/esm2022/filter/has-value.pipe.mjs +2 -2
- package/esm2022/input/directives/input/input.directive.mjs +2 -2
- package/esm2022/input/mis-input.component.mjs +4 -4
- package/esm2022/input/mis-input.module.mjs +2 -2
- package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +4 -4
- package/esm2022/input-stepper/input-stepper.module.mjs +2 -2
- package/esm2022/loader/loader.component.mjs +4 -4
- package/esm2022/loader/loader.module.mjs +2 -2
- package/esm2022/menu/menu-close.directive.mjs +3 -3
- package/esm2022/menu/menu.directive.mjs +3 -3
- package/esm2022/menu/menu.module.mjs +2 -2
- package/esm2022/mobile-filter/mobile-filter.component.mjs +4 -4
- package/esm2022/mobile-filter/mobile-filter.module.mjs +2 -2
- package/esm2022/modal/modal.module.mjs +2 -2
- package/esm2022/modal/modal.service.mjs +2 -2
- package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +2 -2
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +4 -4
- package/esm2022/multi-select-dropdown/multi-select-dropdown.module.mjs +2 -2
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +4 -4
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.module.mjs +2 -2
- package/esm2022/phone-input/phone-input.component.mjs +4 -4
- package/esm2022/phone-input/phone-input.module.mjs +2 -2
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/radio-button/radio-button.component.mjs +4 -4
- package/esm2022/radio-button/radio-button.module.mjs +2 -2
- package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
- package/esm2022/ske-loader/ske-loader.module.mjs +2 -2
- package/esm2022/slider/slider.component.mjs +4 -4
- package/esm2022/slider/slider.module.mjs +2 -2
- package/esm2022/snackbar/snackbar/snackbar.component.mjs +4 -4
- package/esm2022/snackbar/snackbar.module.mjs +2 -2
- package/esm2022/snackbar/snackbar.service.mjs +2 -2
- package/esm2022/specificdatepicker/specificdatepicker.module.mjs +2 -2
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +4 -4
- package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +2 -2
- package/esm2022/specificdatepicker/utils/index.mjs +1 -1
- package/esm2022/star-rating/star-rating.component.mjs +4 -4
- package/esm2022/star-rating/star-rating.module.mjs +2 -2
- package/esm2022/switch/switch.component.mjs +4 -4
- package/esm2022/switch/switch.module.mjs +2 -2
- package/esm2022/table/actions-cell/actions-cell.component.mjs +4 -4
- package/esm2022/table/custom-table-cell.directive.mjs +2 -2
- package/esm2022/table/filter/filter.component.mjs +4 -4
- package/esm2022/table/sort-icons.directive.mjs +3 -3
- package/esm2022/table/sub-table/sub-table.component.mjs +4 -4
- package/esm2022/table/table.component.mjs +99 -82
- package/esm2022/table/table.module.mjs +2 -2
- package/esm2022/timepicker/timepicker.component.mjs +4 -4
- package/esm2022/timepicker/timepicker.directive.mjs +3 -3
- package/esm2022/timepicker/timepicker.module.mjs +2 -2
- package/esm2022/timerangepicker/timerangepicker.component.mjs +2 -2
- package/esm2022/timerangepicker/timerangepicker.module.mjs +2 -2
- package/esm2022/toast/toast.component.mjs +4 -4
- package/esm2022/toast/toast.data.service.mjs +2 -2
- package/esm2022/toast/toast.module.mjs +2 -2
- package/esm2022/toast/toast.service.mjs +2 -2
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +4 -4
- package/esm2022/tooltip/tooltip.directive.mjs +2 -2
- package/esm2022/tooltip/tooltip.module.mjs +2 -2
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +2 -2
- package/esm2022/virtual-scroll/virtual-scroll.module.mjs +2 -2
- package/esm2022/widgets/classes/async-widget.mjs +1 -1
- package/esm2022/widgets/classes/base-widget.mjs +1 -1
- package/esm2022/widgets/classes/sync-widget.mjs +1 -1
- package/esm2022/widgets/services/widget.service.mjs +2 -2
- package/esm2022/widgets/widgets.module.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-action-list.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-analytics.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-analytics.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-button.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +513 -102
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +488 -61
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-drawer.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dropdown.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-loader.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-menu.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-menu.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-modal.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +112 -95
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timepicker.mjs +7 -7
- package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-toast.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-utils.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-widgets.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-widgets.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system.mjs.map +1 -1
- package/input/mis-input.component.scss +17 -17
- package/modal/modal.scss +1 -1
- package/package.json +7 -13
- package/styles/mis-color-constants.scss +0 -204
- package/styles/mis-icons.scss +56 -56
- package/styles/mis-old-icon-styles.scss +21 -21
- package/table/table.component.d.ts +1 -1
- package/dynamic-theme/branding.types.d.ts +0 -84
- package/dynamic-theme/dynamic-theme.module.d.ts +0 -9
- package/dynamic-theme/dynamic-theme.service.d.ts +0 -89
- package/dynamic-theme/index.d.ts +0 -1
- package/dynamic-theme/public_api.d.ts +0 -3
- package/esm2022/dynamic-theme/branding.types.mjs +0 -93
- package/esm2022/dynamic-theme/dynamic-theme.module.mjs +0 -25
- package/esm2022/dynamic-theme/dynamic-theme.service.mjs +0 -193
- package/esm2022/dynamic-theme/index.mjs +0 -2
- package/esm2022/dynamic-theme/mis-crystal-design-system-dynamic-theme.mjs +0 -5
- package/esm2022/dynamic-theme/public_api.mjs +0 -4
- package/fesm2022/mis-crystal-design-system-dynamic-theme.mjs +0 -313
- package/fesm2022/mis-crystal-design-system-dynamic-theme.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-daterangepicker_v2.mjs","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.html","../../../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","<div class=\"daterangepicker-container\" aria-label=\"date range picker\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <div class=\"daterangepicker-container__view\">\n <div tabindex=\"-1\" cdkFocusInitial></div>\n <div *ngIf=\"data?.dpConfig?.ranges?.length > 0\" class=\"daterangepicker-container__ranges\">\n <div *ngFor=\"let item of data?.dpConfig?.ranges ?? []\" >\n <button\n [ngClass]=\"{'active-range' : selectedItemLabel === item.label}\"\n (click)=\"selectRange(item)\"\n class=\"mis-btn\"\n >\n {{ item.label }}\n </button>\n </div>\n <div> <button class=\"mis-btn\" [ngClass]=\"{'active-range' : selectedItemLabel === 'Custom Range'}\" (click)=\"resetRange()\">Custom Range</button> </div>\n </div>\n <div class=\"datepicker__left\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div\n class=\"daterangepicker-container__arrow__icon\"\n tabindex=\"0\"\n (click)=\"!isPreviousMonthDisabled && navigateMonth('PREVIOUS')\"\n (keyup.enter)=\"!isPreviousMonthDisabled && navigateMonth('PREVIOUS')\"\n aria-label=\"Previous Month\"\n [ngClass]=\"{\n 'disabled-month': isPreviousMonthDisabled\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n <span> {{ currentMonth }} {{ currentYearNumber }} </span>\n <div></div>\n <!-- Button visible in mobile view -->\n <div\n class=\"daterangepicker-container__arrow__icon mobile_view\"\n tabindex=\"0\"\n (click)=\"!isNextMonthDisabled && navigateMonth('NEXT')\"\n (keyup.enter)=\"!isNextMonthDisabled && navigateMonth('NEXT')\"\n aria-label=\"Next Month\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays\">\n <span>{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\" \n [ngClass]=\"{\n 'selected-same-day': day.isSelectedStartDay && day.isSelectedEndDay,\n 'selected-start-day': day.isSelectedStartDay,\n 'selected-end-day': day.isSelectedEndDay,\n 'disabled-day': day.isDisabledDay,\n 'in-range-day': day.inRangeDay,\n 'is-valid-date': day.date > 0 && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of currentMonthDates\"\n (click)=\"selectDay('LEFT', day)\"\n (keyup.enter)=\"selectDay('LEFT', day)\"\n >\n <span *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [attr.aria-label]=\"retractDayMonth(day.date, currentMonth, currentYearNumber)\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"datepicker__right\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div></div>\n <span> {{ nextMonth }} {{ nextYearNumber }} </span>\n <div\n class=\"daterangepicker-container__arrow__icon pc_view\"\n tabindex=\"0\"\n (click)=\"!isNextMonthDisabled && navigateMonth('NEXT')\"\n (keyup.enter)=\"!isNextMonthDisabled && navigateMonth('NEXT')\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays\">\n <span>{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\"\n [ngClass]=\"{\n 'selected-same-day': day.isSelectedStartDay && day.isSelectedEndDay,\n 'selected-start-day': day.isSelectedStartDay,\n 'selected-end-day': day.isSelectedEndDay,\n 'disabled-day': day.isDisabledDay,\n 'in-range-day': day.inRangeDay,\n 'is-valid-date': day.date > 0 && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of nextMonthDates\"\n (click)=\"selectDay('RIGHT', day)\"\n (keyup.enter)=\"selectDay('RIGHT', day)\"\n >\n <span *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [attr.aria-label]=\"retractDayMonth(day.date, nextMonth, nextYearNumber)\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"daterangepicker__footer\">\n <button mis-button type=\"none\" id='mobile-footer-btn' (click)=\"cancelDatePicker()\">Cancel</button>\n <button mis-button type=\"primary\" id=\"mobile-footer-btn\" (click)=\"applyDates()\" [disabled]=\"!isDatesValid\">Apply</button>\n </div>\n</div>","import { Component, HostListener, Inject, OnInit } from \"@angular/core\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"../daterangepicker-constants\";\nimport { ICurrentMonth, ICurrentMonthDates, IDatePickerData, IWeekDay, ISelectedDatesConfig, RangeItem } from \"../models/drp-config.model\";\nimport { getMonth } from \"../utils\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\n\nimport dayjs, { Dayjs, tz } from 'dayjs';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\nimport isBetween from 'dayjs/plugin/isBetween';\ndayjs.extend(isBetween);\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(customParseFormat);\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\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 private readonly CUSTOM_RANGE_LABEL = \"Custom Range\";\n data: IDatePickerData;\n private dayjsInstance = (...args) => {\n return tz(args[0], args[1] || 'DD/MM/YYYY', this.data.dpConfig.timezone || 'Asia/Kolkata');\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 selectedItemLabel = this.CUSTOM_RANGE_LABEL;\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 \n // Initialize selectedItemLabel from data.selectedRangeLabel if available\n if (this.data.selectedRangeLabel) {\n this.selectedItemLabel = this.data.selectedRangeLabel;\n }\n \n if (this.data?.dpConfig?.timezone) {\n this.dayjsInstance = (...args) => {\n return tz(args[0], args[1], this.data.dpConfig.timezone);\n };\n }\n this.currentMonthNumber = this.dayjsInstance().month();\n this.nextMonthNumber = this.dayjsInstance().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n this.currentYearNumber = this.dayjsInstance().year();\n this.nextYearNumber = this.dayjsInstance().add(1, \"month\").year();\n this.weekDays = this.rawWeekDays.map((day, index) => ({\n label: `${day[0]}${day.slice(1).toLowerCase()}`,\n isCurrentDay: this.dayjsInstance().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 retractDayMonth(day: any, month: any, year: any): any {\n return `${day} ${month} ${year}`;\n }\n\n @HostListener(\"keydown.esc\")\n closeOnEsc() {\n this.cancelDatePicker();\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.localSelectedDates?.startDate ? this.dayjsInstance(this.localSelectedDates?.startDate, this.data.dpConfig.format) : dayjs('invalid');\n if (selectedStartDate.isValid()) {\n this.currentYearNumber = selectedStartDate.year();\n this.nextYearNumber = selectedStartDate.add(1, \"month\").year();\n this.currentMonthNumber = selectedStartDate.get(\"month\");\n this.nextMonthNumber = selectedStartDate.add(1, \"month\").month();\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.dayjsInstance().year(this.currentYearNumber).month(this.currentMonthNumber);\n const minDate = !!this.data.dpConfig.minDate ? this.dayjsInstance(this.data.dpConfig.minDate, this.data.dpConfig.format) : dayjs('invalid');\n if (minDate.isValid()) {\n this.isPreviousMonthDisabled = minDate.isSameOrAfter(currentInstance, \"month\");\n }\n const maxDate = !!this.data.dpConfig.maxDate ? this.dayjsInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format) : dayjs('invalid');\n if (maxDate.isValid()) {\n this.isNextMonthDisabled = maxDate.isSameOrBefore(currentInstance, \"month\");\n }\n }\n\n navigateMonth(direction: \"NEXT\" | \"PREVIOUS\"): void {\n let thisMonth: Dayjs = dayjs().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 = dayjs().year(currentYearNumber).month(month).daysInMonth();\n for (let currentDate = 1; currentDate <= daysInMonth; currentDate++) {\n const date = dayjs().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.data.dpConfig.minDate ? this.dayjsInstance(this.data.dpConfig.minDate, this.data.dpConfig.format) : dayjs('invalid');\n if (!isDisabledDay && minDate.isValid()) {\n let Date = this.dayjsInstance().year(currentYearNumber).month(month).date(currentDate);\n isDisabledDay = minDate.isAfter(dayjs(Date, this.data.dpConfig.format), \"day\");\n }\n const maxDate = !!this.data.dpConfig.maxDate ? this.dayjsInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format) : dayjs('invalid');\n if (!isDisabledDay && maxDate.isValid()) {\n isDisabledDay = maxDate.isBefore(dayjs(date, this.data.dpConfig.format), \"day\");\n }\n if (\n this.data?.dpConfig?.maxAllowedRange > 0 &&\n !isDisabledDay &&\n (this.localSelectedDates?.startDate ?? false) && (!(this.localSelectedDates.endDate ?? false))\n ) {\n const startDate = dayjs(this.localSelectedDates.startDate, this.data.dpConfig.format).startOf('day');\n const maxEndDate = startDate.clone().add(this.data.dpConfig.maxAllowedRange - 1, 'days');\n isDisabledDay = date.isAfter(maxEndDate, 'day') \n }\n const isCurrentDay =\n this.dayjsInstance().year(currentYearNumber).month(month).date(currentDate).format(this.data.dpConfig.format) ===\n this.dayjsInstance().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 = dayjs(date,this.data?.dpConfig?.format).startOf('day').isAfter(dayjs(this.localSelectedDates.startDate,this.data?.dpConfig?.format).startOf('day'), 'day');\n\n const isBeforeSelectedEndDate = dayjs(date,this.data?.dpConfig?.format).startOf('day').isBefore(dayjs(this.localSelectedDates.endDate,this.data?.dpConfig?.format).startOf('day'), 'day');\n const inRangeDay =\n (this.localSelectedDates.startDate ?? false) &&\n (this.localSelectedDates.endDate ?? false) &&\n isAfterSelectedStartDate &&\n isBeforeSelectedEndDate;\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 this.selectedItemLabel = this.CUSTOM_RANGE_LABEL;\n if (this.selectionStarted) {\n const dayjsDay = dayjs()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date);\n if (dayjsDay.isBefore(dayjs(this.localSelectedDates.startDate, this.data.dpConfig.format), 'day')) {\n this.localSelectedDates = {\n startDate: dayjsDay.format(this.data.dpConfig.format),\n endDate: null,\n selectedRangeLabel: this.CUSTOM_RANGE_LABEL\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: dayjsDay.format(this.data.dpConfig.format),\n selectedRangeLabel: this.CUSTOM_RANGE_LABEL\n };\n } else {\n this.selectionStarted = true;\n this.localSelectedDates = {\n startDate: dayjs()\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 selectedRangeLabel: this.CUSTOM_RANGE_LABEL\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 selectRange(item: RangeItem) {\n if (!item) return;\n \n let startDate = this.dayjsInstance(item.value[0]); \n let endDate = this.dayjsInstance(item.value[1]); \n \n const startDateStr = startDate.format(this.data.dpConfig.format);\n const endDateStr = endDate.format(this.data.dpConfig.format);\n \n const isAnyDateDisabled = this.data.datesDisabled.some((date) =>\n this.dayjsInstance(date , this.data.dpConfig.format).isBetween(startDateStr, endDateStr, null, '[]')\n );\n \n const minDate = !!this.data.dpConfig.minDate ? this.dayjsInstance(this.data.dpConfig.minDate, this.data.dpConfig.format) : dayjs('invalid');\n const maxDate = !!this.data.dpConfig.maxDate ? this.dayjsInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format) : dayjs('invalid');\n \n const isWithinLimits =\n (!minDate.isValid() || !startDate.isBefore(minDate, \"day\")) &&\n (!maxDate.isValid() || !endDate.isAfter(maxDate, \"day\"));\n \n if (!isWithinLimits || isAnyDateDisabled) {\n this.toast.displayMsg(\"Selected range contains disabled dates or is out of bounds.\", 4000);\n return;\n }\n \n this.selectedItemLabel = item.label;\n this.currentMonthNumber = startDate.month();\n this.currentYearNumber = startDate.year();\n \n if (this.currentMonthNumber === 11) {\n this.nextMonthNumber = 0;\n this.nextYearNumber = this.currentYearNumber + 1;\n } else {\n this.nextMonthNumber = this.currentMonthNumber + 1;\n this.nextYearNumber = this.currentYearNumber;\n }\n \n this.localSelectedDates = { \n startDate: startDateStr, \n endDate: endDateStr,\n selectedRangeLabel: item.label\n };\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n \n this.isDatesValid = !!(this.localSelectedDates.startDate && this.localSelectedDates.endDate);\n }\n resetRange() {\n this.selectedItemLabel = this.CUSTOM_RANGE_LABEL;\n this.localSelectedDates = {\n startDate: null,\n endDate: null,\n selectedRangeLabel: this.CUSTOM_RANGE_LABEL\n };\n this.selectionStarted = false;\n this.isDatesValid = false;\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }\n \n applyDates() {\n const result = {\n ...this.localSelectedDates,\n selectedRangeLabel: this.selectedItemLabel\n };\n this.data.dateChange(result);\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 maxAllowedRange: 0,\n ranges : []\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() selectedRangeLabel: string = 'Custom Range';\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 @HostListener(\"keydown.enter\")\n toggleDatePickerOnEnter() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n @HostListener(\"keydown.esc\")\n closeOnEsc() {\n if (this.isOpen) {\n this.close();\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 selectedRangeLabel: this.selectedRangeLabel,\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 // If selectedRangeLabel is present in the date object, keep it, otherwise it's a custom range\n const result = {\n ...dates,\n selectedRangeLabel: dates['selectedRangeLabel'] || 'Custom Range'\n };\n this.dateChange.emit(result);\n this.control?.control.patchValue(result);\n this.dates = result;\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\";\nimport { A11yModule } from \"@angular/cdk/a11y\";\n\n@NgModule({\n declarations: [TzDrpContainerComponent, TzDaterangepickerDirective],\n imports: [CommonModule, OverlayModule, ToastModule.forRoot(), ButtonModule.forRoot(), A11yModule],\n exports: [TzDrpContainerComponent, TzDaterangepickerDirective]\n})\nexport class DateRangepickerModuleV2 {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-daterangepicker_v2.mjs","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.html","../../../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","<div class=\"daterangepicker-container\" aria-label=\"date range picker\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <div class=\"daterangepicker-container__view\">\n <div tabindex=\"-1\" cdkFocusInitial></div>\n <div *ngIf=\"data?.dpConfig?.ranges?.length > 0\" class=\"daterangepicker-container__ranges\">\n <div *ngFor=\"let item of data?.dpConfig?.ranges ?? []\" >\n <button\n [ngClass]=\"{'active-range' : selectedItemLabel === item.label}\"\n (click)=\"selectRange(item)\"\n class=\"mis-btn\"\n >\n {{ item.label }}\n </button>\n </div>\n <div> <button class=\"mis-btn\" [ngClass]=\"{'active-range' : selectedItemLabel === 'Custom Range'}\" (click)=\"resetRange()\">Custom Range</button> </div>\n </div>\n <div class=\"datepicker__left\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div\n class=\"daterangepicker-container__arrow__icon\"\n tabindex=\"0\"\n (click)=\"!isPreviousMonthDisabled && navigateMonth('PREVIOUS')\"\n (keyup.enter)=\"!isPreviousMonthDisabled && navigateMonth('PREVIOUS')\"\n aria-label=\"Previous Month\"\n [ngClass]=\"{\n 'disabled-month': isPreviousMonthDisabled\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n <span> {{ currentMonth }} {{ currentYearNumber }} </span>\n <div></div>\n <!-- Button visible in mobile view -->\n <div\n class=\"daterangepicker-container__arrow__icon mobile_view\"\n tabindex=\"0\"\n (click)=\"!isNextMonthDisabled && navigateMonth('NEXT')\"\n (keyup.enter)=\"!isNextMonthDisabled && navigateMonth('NEXT')\"\n aria-label=\"Next Month\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays\">\n <span>{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\" \n [ngClass]=\"{\n 'selected-same-day': day.isSelectedStartDay && day.isSelectedEndDay,\n 'selected-start-day': day.isSelectedStartDay,\n 'selected-end-day': day.isSelectedEndDay,\n 'disabled-day': day.isDisabledDay,\n 'in-range-day': day.inRangeDay,\n 'is-valid-date': day.date > 0 && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of currentMonthDates\"\n (click)=\"selectDay('LEFT', day)\"\n (keyup.enter)=\"selectDay('LEFT', day)\"\n >\n <span *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [attr.aria-label]=\"retractDayMonth(day.date, currentMonth, currentYearNumber)\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"datepicker__right\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div></div>\n <span> {{ nextMonth }} {{ nextYearNumber }} </span>\n <div\n class=\"daterangepicker-container__arrow__icon pc_view\"\n tabindex=\"0\"\n (click)=\"!isNextMonthDisabled && navigateMonth('NEXT')\"\n (keyup.enter)=\"!isNextMonthDisabled && navigateMonth('NEXT')\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays\">\n <span>{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\"\n [ngClass]=\"{\n 'selected-same-day': day.isSelectedStartDay && day.isSelectedEndDay,\n 'selected-start-day': day.isSelectedStartDay,\n 'selected-end-day': day.isSelectedEndDay,\n 'disabled-day': day.isDisabledDay,\n 'in-range-day': day.inRangeDay,\n 'is-valid-date': day.date > 0 && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of nextMonthDates\"\n (click)=\"selectDay('RIGHT', day)\"\n (keyup.enter)=\"selectDay('RIGHT', day)\"\n >\n <span *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [attr.aria-label]=\"retractDayMonth(day.date, nextMonth, nextYearNumber)\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Time Selection Section -->\n <div class=\"daterangepicker-container__time\" *ngIf=\"data.dpConfig.enableTime === true\">\n <div class=\"time-section\">\n <h4>From</h4>\n <div class=\"time-inputs\">\n <input \n type=\"number\" \n [ngModel]=\"is12HourFormat() ? startHour : startHour24\" \n (ngModelChange)=\"is12HourFormat() ? (startHour = $event) : (startHour24 = $event); onStartHourInput()\"\n [min]=\"is12HourFormat() ? 1 : 0\" \n [max]=\"is12HourFormat() ? 12 : 23\" \n step=\"1\"\n class=\"time-input hour-input\"\n placeholder=\"HH\">\n <span class=\"time-separator\">:</span>\n <input \n type=\"number\" \n [(ngModel)]=\"startMinute\" \n (input)=\"onStartMinuteInput()\"\n min=\"0\" \n max=\"59\" \n step=\"1\"\n class=\"time-input minute-input\"\n placeholder=\"MM\">\n <select \n [(ngModel)]=\"startAmPm\" \n class=\"am-pm-selector\"\n *ngIf=\"is12HourFormat()\">\n <option value=\"AM\">AM</option>\n <option value=\"PM\">PM</option>\n </select>\n </div>\n </div>\n \n <div class=\"time-section\">\n <h4>To</h4>\n <div class=\"time-inputs\">\n <input \n type=\"number\" \n [ngModel]=\"is12HourFormat() ? endHour : endHour24\" \n (ngModelChange)=\"is12HourFormat() ? (endHour = $event) : (endHour24 = $event); onEndHourInput()\"\n [min]=\"is12HourFormat() ? 1 : 0\" \n [max]=\"is12HourFormat() ? 12 : 23\" \n step=\"1\"\n class=\"time-input hour-input\"\n placeholder=\"HH\">\n <span class=\"time-separator\">:</span>\n <input \n type=\"number\" \n [(ngModel)]=\"endMinute\" \n (input)=\"onEndMinuteInput()\"\n min=\"0\" \n max=\"59\" \n step=\"1\"\n class=\"time-input minute-input\"\n placeholder=\"MM\">\n <select \n [(ngModel)]=\"endAmPm\" \n class=\"am-pm-selector\"\n *ngIf=\"is12HourFormat()\">\n <option value=\"AM\">AM</option>\n <option value=\"PM\">PM</option>\n </select>\n </div>\n </div>\n </div>\n \n <div class=\"daterangepicker__footer\">\n <button mis-button type=\"none\" id='mobile-footer-btn' (click)=\"cancelDatePicker()\">Cancel</button>\n <button mis-button type=\"primary\" id=\"mobile-footer-btn\" (click)=\"applyDates()\" [disabled]=\"!isDatesValid\">Apply</button>\n </div>\n</div>","import { Component, HostListener, Inject, OnInit } from \"@angular/core\";\nimport { CONTAINER_DATA, DATE_FORMAT } from \"../daterangepicker-constants\";\nimport { ICurrentMonth, ICurrentMonthDates, IDatePickerData, IWeekDay, ISelectedDatesConfig, RangeItem } from \"../models/drp-config.model\";\nimport { getMonth } from \"../utils\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\n\nimport dayjs, { Dayjs } from 'dayjs';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\nimport isBetween from 'dayjs/plugin/isBetween';\ndayjs.extend(isBetween);\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(customParseFormat);\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\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 private readonly CUSTOM_RANGE_LABEL = \"Custom Range\";\n data: IDatePickerData;\n private dayjsInstance = (...args) => {\n return dayjs(...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 selectedItemLabel = this.CUSTOM_RANGE_LABEL;\n // Time selection properties\n startHour: number = 12;\n startMinute: number = 0;\n startAmPm: string = 'AM';\n endHour: number = 12;\n endMinute: number = 0;\n endAmPm: string = 'AM';\n \n // For 24-hour format, store actual 24-hour values\n startHour24: number = 12;\n endHour24: number = 12;\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 \n // Initialize selectedItemLabel from data.selectedRangeLabel if available\n if (this.data.selectedRangeLabel) {\n this.selectedItemLabel = this.data.selectedRangeLabel;\n }\n \n // Initialize dayjsInstance with timezone handling\n if (this.data?.dpConfig?.timezone) {\n this.dayjsInstance = (...args) => {\n try {\n return dayjs.tz(args[0], args[1] || 'DD/MM/YYYY', this.data.dpConfig.timezone);\n } catch (error) {\n console.warn('Error parsing date with timezone:', error, 'args:', args);\n return dayjs(args[0], args[1]);\n }\n };\n }\n\n this.currentMonthNumber = this.dayjsInstance().month();\n this.nextMonthNumber = this.dayjsInstance().add(1, \"month\").month();\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n this.currentYearNumber = this.dayjsInstance().year();\n this.nextYearNumber = this.dayjsInstance().add(1, \"month\").year();\n this.weekDays = this.rawWeekDays.map((day, index) => ({\n label: `${day[0]}${day.slice(1).toLowerCase()}`,\n isCurrentDay: this.dayjsInstance().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 this.initializeTimeValues();\n\n if(this.data?.showPrevMonth && !this.isPreviousMonthDisabled){\n this.navigateMonth('PREVIOUS');\n }\n }\n\n retractDayMonth(day: any, month: any, year: any): any {\n return `${day} ${month} ${year}`;\n }\n\n @HostListener(\"keydown.esc\")\n closeOnEsc() {\n this.cancelDatePicker();\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 \n // Extract date part for parsing (handle both date-only and datetime formats)\n const startDateString = this.localSelectedDates?.startDate?.split(' ')[0] || this.localSelectedDates?.startDate;\n const endDateString = this.localSelectedDates?.endDate?.split(' ')[0] || this.localSelectedDates?.endDate;\n \n // Validate date strings before parsing\n if (!startDateString || startDateString === 'Invalid Date' || startDateString === 'undefined' || startDateString === 'null') {\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n return;\n }\n \n const selectedStartDate = this.dayjsInstance(startDateString, 'DD/MM/YYYY');\n const selectedEndDate = endDateString ? this.dayjsInstance(endDateString, 'DD/MM/YYYY') : null;\n \n if (selectedStartDate.isValid()) {\n this.currentYearNumber = selectedStartDate.year();\n this.nextYearNumber = selectedStartDate.add(1, \"month\").year();\n this.currentMonthNumber = selectedStartDate.get(\"month\");\n this.nextMonthNumber = selectedStartDate.add(1, \"month\").month();\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 \n // If we have an end date, use it to determine the next month\n if (selectedEndDate && selectedEndDate.isValid() && selectedEndDate.isAfter(selectedStartDate, 'month')) {\n this.nextMonthNumber = selectedEndDate.month();\n this.nextYearNumber = selectedEndDate.year();\n this.nextMonth = getMonth(this.nextMonthNumber);\n }\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.dayjsInstance().year(this.currentYearNumber).month(this.currentMonthNumber);\n const minDate = !!this.data.dpConfig.minDate ? this.dayjsInstance(this.data.dpConfig.minDate, this.data.dpConfig.format) : dayjs('invalid');\n if (minDate.isValid()) {\n this.isPreviousMonthDisabled = minDate.isSameOrAfter(currentInstance, \"month\");\n }\n const maxDate = !!this.data.dpConfig.maxDate ? this.dayjsInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format) : dayjs('invalid');\n if (maxDate.isValid()) {\n this.isNextMonthDisabled = maxDate.isSameOrBefore(currentInstance, \"month\");\n }\n }\n\n navigateMonth(direction: \"NEXT\" | \"PREVIOUS\"): void {\n let thisMonth: Dayjs = dayjs().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 = dayjs().year(currentYearNumber).month(month).daysInMonth();\n for (let currentDate = 1; currentDate <= daysInMonth; currentDate++) {\n const date = dayjs().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 // Parse min/max dates safely - try date-only format first, then full format\n let minDate = null;\n let maxDate = null;\n \n if (this.data.dpConfig.minDate) {\n try {\n // Extract date part only for comparison\n const minDateStr = this.data.dpConfig.minDate.split(' ')[0];\n minDate = dayjs(minDateStr, 'DD/MM/YYYY');\n if (!minDate.isValid()) {\n minDate = dayjs(this.data.dpConfig.minDate, this.data.dpConfig.format);\n }\n } catch (error) {\n console.warn('Error parsing min date:', error);\n }\n }\n \n if (this.data.dpConfig.maxDate) {\n try {\n const maxDateStr = this.data.dpConfig.maxDate.split(' ')[0];\n maxDate = dayjs(maxDateStr, 'DD/MM/YYYY');\n if (!maxDate.isValid()) {\n maxDate = dayjs(this.data.dpConfig.maxDate, this.data.dpConfig.format);\n }\n } catch (error) {\n console.warn('Error parsing max date:', error);\n }\n }\n \n if (!isDisabledDay && minDate && minDate.isValid()) {\n isDisabledDay = minDate.isAfter(date, \"day\");\n }\n if (!isDisabledDay && maxDate && maxDate.isValid()) {\n isDisabledDay = maxDate.isBefore(date, \"day\");\n }\n if (\n this.data?.dpConfig?.maxAllowedRange > 0 &&\n !isDisabledDay &&\n (this.localSelectedDates?.startDate ?? false) && (!(this.localSelectedDates.endDate ?? false))\n ) {\n const startDate = dayjs(this.localSelectedDates.startDate, this.data.dpConfig.format).startOf('day');\n const maxEndDate = startDate.clone().add(this.data.dpConfig.maxAllowedRange - 1, 'days');\n isDisabledDay = date.isAfter(maxEndDate, 'day') \n }\n const isCurrentDay =\n this.dayjsInstance().year(currentYearNumber).month(month).date(currentDate).format(this.data.dpConfig.format) ===\n this.dayjsInstance().format(this.data.dpConfig.format);\n \n // Extract date part for comparison (handle both date-only and datetime formats)\n const startDateString = this.localSelectedDates?.startDate?.split(' ')[0] || this.localSelectedDates?.startDate;\n const endDateString = this.localSelectedDates?.endDate?.split(' ')[0] || this.localSelectedDates?.endDate;\n \n const isSelectedStartDay =\n !isDisabledDay &&\n (startDateString ?? false) &&\n date.format('DD/MM/YYYY') === startDateString;\n \n const isSelectedEndDay =\n !isDisabledDay &&\n (endDateString ?? false) &&\n date.format('DD/MM/YYYY') === endDateString;\n \n // For range calculation, parse dates properly\n const startDate = startDateString ? dayjs(startDateString, 'DD/MM/YYYY') : null;\n const endDate = endDateString ? dayjs(endDateString, 'DD/MM/YYYY') : null;\n \n const isAfterSelectedStartDate = startDate ? this.dayjsInstance(date).isAfter(startDate, \"day\") : false;\n const isBeforeSelectedEndDate = endDate ? this.dayjsInstance(date).isBefore(endDate, \"day\") : false;\n \n const inRangeDay =\n startDate && endDate &&\n isAfterSelectedStartDate &&\n isBeforeSelectedEndDate;\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 this.selectedItemLabel = this.CUSTOM_RANGE_LABEL;\n if (this.selectionStarted) {\n const dayjsDay = dayjs()\n .year(from === \"LEFT\" ? this.currentYearNumber : this.nextYearNumber)\n .month(from === \"LEFT\" ? this.currentMonthNumber : this.nextMonthNumber)\n .date(day.date);\n \n // Extract date part from existing start date for comparison\n const startDateString = this.localSelectedDates.startDate?.split(' ')[0] || this.localSelectedDates.startDate;\n const startDate = startDateString ? dayjs(startDateString, 'DD/MM/YYYY') : null;\n \n // If the selected date is before the start date, make it the new start date\n if (startDate && dayjsDay.isBefore(startDate, \"day\")) {\n this.localSelectedDates = {\n startDate: dayjsDay.format(this.data.dpConfig.format),\n endDate: null,\n selectedRangeLabel: this.CUSTOM_RANGE_LABEL\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: dayjsDay.format(this.data.dpConfig.format),\n selectedRangeLabel: this.CUSTOM_RANGE_LABEL\n };\n } else {\n this.selectionStarted = true;\n this.localSelectedDates = {\n startDate: dayjs()\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 selectedRangeLabel: this.CUSTOM_RANGE_LABEL\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 selectRange(item: RangeItem) {\n if (!item) return;\n \n let startDate = this.dayjsInstance(item.value[0]); \n let endDate = this.dayjsInstance(item.value[1]); \n \n const startDateStr = startDate.format(this.data.dpConfig.format);\n const endDateStr = endDate.format(this.data.dpConfig.format);\n \n const isAnyDateDisabled = this.data.datesDisabled.some((date) =>\n this.dayjsInstance(date , this.data.dpConfig.format).isBetween(startDateStr, endDateStr, null, '[]')\n );\n \n const minDate = !!this.data.dpConfig.minDate ? this.dayjsInstance(this.data.dpConfig.minDate, this.data.dpConfig.format) : dayjs('invalid');\n const maxDate = !!this.data.dpConfig.maxDate ? this.dayjsInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format) : dayjs('invalid');\n \n const isWithinLimits =\n (!minDate.isValid() || !startDate.isBefore(minDate, \"day\")) &&\n (!maxDate.isValid() || !endDate.isAfter(maxDate, \"day\"));\n \n if (!isWithinLimits || isAnyDateDisabled) {\n this.toast.displayMsg(\"Selected range contains disabled dates or is out of bounds.\", 4000);\n return;\n }\n \n this.selectedItemLabel = item.label;\n this.currentMonthNumber = startDate.month();\n this.currentYearNumber = startDate.year();\n \n if (this.currentMonthNumber === 11) {\n this.nextMonthNumber = 0;\n this.nextYearNumber = this.currentYearNumber + 1;\n } else {\n this.nextMonthNumber = this.currentMonthNumber + 1;\n this.nextYearNumber = this.currentYearNumber;\n }\n \n this.localSelectedDates = { \n startDate: startDateStr, \n endDate: endDateStr,\n selectedRangeLabel: item.label\n };\n this.currentMonth = getMonth(this.currentMonthNumber);\n this.nextMonth = getMonth(this.nextMonthNumber);\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n \n this.isDatesValid = !!(this.localSelectedDates.startDate && this.localSelectedDates.endDate);\n }\n resetRange() {\n this.selectedItemLabel = this.CUSTOM_RANGE_LABEL;\n this.localSelectedDates = {\n startDate: null,\n endDate: null,\n selectedRangeLabel: this.CUSTOM_RANGE_LABEL\n };\n this.selectionStarted = false;\n this.isDatesValid = false;\n this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);\n this.nextMonthDates = this.generateDates(this.nextMonthNumber, this.nextYearNumber);\n }\n \n applyDates() {\n // If time is enabled, append time to the dates before applying\n if (this.data.dpConfig.enableTime === true) {\n let startTime: string;\n let endTime: string;\n \n if (this.is12HourFormat()) {\n startTime = this.formatTime(this.startHour, this.startMinute, this.startAmPm);\n endTime = this.formatTime(this.endHour, this.endMinute, this.endAmPm);\n } else {\n startTime = this.formatTime(this.startHour24, this.startMinute, '');\n endTime = this.formatTime(this.endHour24, this.endMinute, '');\n }\n \n // Extract only the date part (before any existing time) and append the selected time\n const startDateOnly = this.localSelectedDates.startDate?.split(' ')[0] || this.localSelectedDates.startDate;\n const endDateOnly = this.localSelectedDates.endDate?.split(' ')[0] || this.localSelectedDates.endDate;\n \n const startDateWithTime = startDateOnly + ' ' + startTime;\n const endDateWithTime = endDateOnly + ' ' + endTime;\n \n this.data.dateChange({\n startDate: startDateWithTime,\n endDate: endDateWithTime\n });\n } else {\n this.data.dateChange(this.localSelectedDates);\n }\n }\n \n cancelDatePicker() {\n this.data.close();\n }\n \n // Time-related methods\n onStartHourInput() {\n if (this.is12HourFormat()) {\n this.startHour = this.validateHourInput(this.startHour);\n } else {\n this.startHour24 = this.validateHourInput24(this.startHour24);\n }\n }\n \n onStartMinuteInput() {\n this.startMinute = this.validateMinuteInput(this.startMinute);\n }\n \n onEndHourInput() {\n if (this.is12HourFormat()) {\n this.endHour = this.validateHourInput(this.endHour);\n } else {\n this.endHour24 = this.validateHourInput24(this.endHour24);\n }\n }\n \n onEndMinuteInput() {\n this.endMinute = this.validateMinuteInput(this.endMinute);\n }\n \n validateHourInput(hour: number) {\n // Apply bounds based on format\n if (this.is12HourFormat()) {\n // 12-hour format: 1-12\n if (hour < 1) hour = 1;\n if (hour > 12) hour = 12;\n } else {\n // 24-hour format: 0-23\n if (hour < 0) hour = 0;\n if (hour > 23) hour = 23;\n }\n return hour;\n }\n \n // Special validation for 24-hour format\n validateHourInput24(hour: number) {\n if (hour < 0) hour = 0;\n if (hour > 23) hour = 23;\n return hour;\n }\n \n validateMinuteInput(minute: number) {\n if (minute < 0) minute = 0;\n if (minute > 59) minute = 59;\n return minute;\n }\n \n public is12HourFormat(): boolean {\n return this.data.dpConfig.format.includes('A') || this.data.dpConfig.format.includes('a');\n }\n \n private formatTime(hour: number, minute: number, amPm: string): string {\n if (this.is12HourFormat()) {\n return `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')} ${amPm}`;\n } else {\n // For 24-hour format, just return the hour and minute\n return `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;\n }\n }\n\n private initializeTimeValues(): void {\n // Initialize time values from existing selected dates if they contain time\n let startTimeInitialized = false;\n let endTimeInitialized = false;\n \n if (this.data.dpConfig.enableTime && this.localSelectedDates.startDate) {\n const startDateParts = this.localSelectedDates.startDate.split(' ');\n if (startDateParts.length > 1) {\n const timePart = startDateParts.slice(1).join(' '); // Handle multiple spaces\n this.parseTimeString(timePart, true);\n startTimeInitialized = true;\n }\n }\n \n if (this.data.dpConfig.enableTime && this.localSelectedDates.endDate) {\n const endDateParts = this.localSelectedDates.endDate.split(' ');\n if (endDateParts.length > 1) {\n const timePart = endDateParts.slice(1).join(' '); // Handle multiple spaces\n this.parseTimeString(timePart, false);\n endTimeInitialized = true;\n }\n }\n \n // If no existing time found, set current time as default\n if (this.data.dpConfig.enableTime) {\n if (!startTimeInitialized) {\n this.setCurrentTimeAsDefault(true);\n }\n if (!endTimeInitialized) {\n this.setCurrentTimeAsDefault(false);\n }\n }\n }\n\n private setCurrentTimeAsDefault(isStart: boolean): void {\n const now = dayjs();\n const currentHour = now.hour();\n const currentMinute = now.minute();\n \n if (this.is12HourFormat()) {\n // Convert current time to 12-hour format\n let hour12 = currentHour;\n let amPm = 'AM';\n \n if (currentHour === 0) {\n hour12 = 12;\n amPm = 'AM';\n } else if (currentHour === 12) {\n hour12 = 12;\n amPm = 'PM';\n } else if (currentHour > 12) {\n hour12 = currentHour - 12;\n amPm = 'PM';\n } else {\n amPm = 'AM';\n }\n \n if (isStart) {\n this.startHour = hour12;\n this.startMinute = currentMinute;\n this.startAmPm = amPm;\n this.startHour24 = currentHour;\n } else {\n this.endHour = hour12;\n this.endMinute = currentMinute;\n this.endAmPm = amPm;\n this.endHour24 = currentHour;\n }\n } else {\n // Use current time directly for 24-hour format\n if (isStart) {\n this.startHour24 = currentHour;\n this.startMinute = currentMinute;\n // Also set 12-hour values for consistency\n if (currentHour === 0) {\n this.startHour = 12;\n this.startAmPm = 'AM';\n } else if (currentHour === 12) {\n this.startHour = 12;\n this.startAmPm = 'PM';\n } else if (currentHour > 12) {\n this.startHour = currentHour - 12;\n this.startAmPm = 'PM';\n } else {\n this.startHour = currentHour;\n this.startAmPm = 'AM';\n }\n } else {\n this.endHour24 = currentHour;\n this.endMinute = currentMinute;\n // Also set 12-hour values for consistency\n if (currentHour === 0) {\n this.endHour = 12;\n this.endAmPm = 'AM';\n } else if (currentHour === 12) {\n this.endHour = 12;\n this.endAmPm = 'PM';\n } else if (currentHour > 12) {\n this.endHour = currentHour - 12;\n this.endAmPm = 'PM';\n } else {\n this.endHour = currentHour;\n this.endAmPm = 'AM';\n }\n }\n }\n }\n\n private parseTimeString(timeString: string, isStart: boolean): void {\n if (this.is12HourFormat()) {\n // Parse 12-hour format: \"10:00 PM\"\n const match = timeString.match(/(\\d+):(\\d+)\\s*(AM|PM)/i);\n if (match) {\n const hour = parseInt(match[1]);\n const minute = parseInt(match[2]);\n const amPm = match[3].toUpperCase();\n \n if (isStart) {\n this.startHour = hour;\n this.startMinute = minute;\n this.startAmPm = amPm;\n // Also set 24-hour value for consistency\n this.startHour24 = hour === 12 ? (amPm === 'PM' ? 12 : 0) : (amPm === 'PM' ? hour + 12 : hour);\n } else {\n this.endHour = hour;\n this.endMinute = minute;\n this.endAmPm = amPm;\n // Also set 24-hour value for consistency\n this.endHour24 = hour === 12 ? (amPm === 'PM' ? 12 : 0) : (amPm === 'PM' ? hour + 12 : hour);\n }\n }\n } else {\n // Parse 24-hour format: \"22:00\"\n const match = timeString.match(/(\\d+):(\\d+)/);\n if (match) {\n const hour24 = parseInt(match[1]);\n const minute = parseInt(match[2]);\n \n if (isStart) {\n // Store directly in 24-hour format\n this.startHour24 = hour24;\n this.startMinute = minute;\n // Also set 12-hour values for consistency (though not used in 24-hour mode)\n if (hour24 === 0) {\n this.startHour = 12;\n this.startAmPm = 'AM';\n } else if (hour24 === 12) {\n this.startHour = 12;\n this.startAmPm = 'PM';\n } else if (hour24 > 12) {\n this.startHour = hour24 - 12;\n this.startAmPm = 'PM';\n } else {\n this.startHour = hour24;\n this.startAmPm = 'AM';\n }\n } else {\n // Store directly in 24-hour format\n this.endHour24 = hour24;\n this.endMinute = minute;\n // Also set 12-hour values for consistency (though not used in 24-hour mode)\n if (hour24 === 0) {\n this.endHour = 12;\n this.endAmPm = 'AM';\n } else if (hour24 === 12) {\n this.endHour = 12;\n this.endAmPm = 'PM';\n } else if (hour24 > 12) {\n this.endHour = hour24 - 12;\n this.endAmPm = 'PM';\n } else {\n this.endHour = hour24;\n this.endAmPm = 'AM';\n }\n }\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, 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 maxAllowedRange: 0,\n ranges : []\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() selectedRangeLabel: string = 'Custom Range';\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 @HostListener(\"keydown.enter\")\n toggleDatePickerOnEnter() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n @HostListener(\"keydown.esc\")\n closeOnEsc() {\n if (this.isOpen) {\n this.close();\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 selectedRangeLabel: this.selectedRangeLabel,\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 // If selectedRangeLabel is present in the date object, keep it, otherwise it's a custom range\n const result = {\n ...dates,\n selectedRangeLabel: dates['selectedRangeLabel'] || 'Custom Range'\n };\n this.dateChange.emit(result);\n this.control?.control.patchValue(result);\n this.dates = result;\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 { FormsModule } from \"@angular/forms\";\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\";\nimport { A11yModule } from \"@angular/cdk/a11y\";\n\n@NgModule({\n declarations: [TzDrpContainerComponent, TzDaterangepickerDirective],\n imports: [CommonModule, FormsModule, OverlayModule, ToastModule.forRoot(), ButtonModule.forRoot(), A11yModule],\n exports: [TzDrpContainerComponent, TzDaterangepickerDirective]\n})\nexport class DateRangepickerModuleV2 {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ class DrawerBodyComponent {
|
|
|
54
54
|
return new PortalInjector(inj, injectorTokens);
|
|
55
55
|
// return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });
|
|
56
56
|
}
|
|
57
|
-
static { this.ɵfac = function DrawerBodyComponent_Factory(
|
|
57
|
+
static { this.ɵfac = function DrawerBodyComponent_Factory(t) { return new (t || DrawerBodyComponent)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver)); }; }
|
|
58
58
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawerBodyComponent, selectors: [["mis-drawer-body"]], viewQuery: function DrawerBodyComponent_Query(rf, ctx) { if (rf & 1) {
|
|
59
59
|
i0.ɵɵviewQuery(_c0, 5, ViewContainerRef);
|
|
60
60
|
} if (rf & 2) {
|
|
@@ -129,7 +129,7 @@ class DrawerService {
|
|
|
129
129
|
return new PortalInjector(inj, injectorTokens);
|
|
130
130
|
// return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });
|
|
131
131
|
}
|
|
132
|
-
static { this.ɵfac = function DrawerService_Factory(
|
|
132
|
+
static { this.ɵfac = function DrawerService_Factory(t) { return new (t || DrawerService)(i0.ɵɵinject(i1$1.Overlay), i0.ɵɵinject(i0.Injector)); }; }
|
|
133
133
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DrawerService, factory: DrawerService.ɵfac, providedIn: "root" }); }
|
|
134
134
|
}
|
|
135
135
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawerService, [{
|
|
@@ -152,7 +152,7 @@ class DrawerModule {
|
|
|
152
152
|
providers: [DrawerService]
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
|
-
static { this.ɵfac = function DrawerModule_Factory(
|
|
155
|
+
static { this.ɵfac = function DrawerModule_Factory(t) { return new (t || DrawerModule)(); }; }
|
|
156
156
|
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: DrawerModule }); }
|
|
157
157
|
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, OverlayModule, PortalModule] }); }
|
|
158
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-drawer.mjs","sources":["../../../projects/mis-components/drawer/drawer-ref.ts","../../../projects/mis-components/drawer/drawer-body/drawer-body.component.ts","../../../projects/mis-components/drawer/drawer-body/drawer-body.component.html","../../../projects/mis-components/drawer/drawer-constants.ts","../../../projects/mis-components/drawer/drawer.service.ts","../../../projects/mis-components/drawer/drawer.module.ts","../../../projects/mis-components/drawer/mis-crystal-design-system-drawer.ts"],"sourcesContent":["/** @format */\n\nimport { OverlayRef } from \"@angular/cdk/overlay\";\nimport { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class DrawerRef {\n private _isExpanded = false;\n private afterClosed$ = new Subject<any>();\n afterClosed = this.afterClosed$.asObservable();\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n constructor(public overlay: OverlayRef) {}\n\n close(data?: any): void {\n this.overlay.detach();\n this.overlay.dispose();\n this.afterClosed$.next(data);\n this.afterClosed$.complete();\n }\n\n expand(): void {\n this.overlay.updateSize({ width: \"100%\" });\n this._isExpanded = true;\n }\n\n collapse(): void {\n this.overlay.updateSize({ width: \"422px\" });\n this._isExpanded = false;\n }\n}\n","/** @format */\n\nimport { trigger, transition, style, animate } from \"@angular/animations\";\nimport { ComponentPortal, PortalInjector } from \"@angular/cdk/portal\";\nimport { Component, ComponentFactoryResolver, Injector, OnInit, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { DrawerRef } from \"../drawer-ref\";\n\n@Component({\n selector: \"mis-drawer-body\",\n templateUrl: \"./drawer-body.component.html\",\n styleUrls: [\"./drawer-body.component.scss\"],\n animations: [\n trigger(\"slideInOut\", [\n transition(\":enter\", [style({ transform: \"translateX(100%)\" }), animate(\"200ms ease-out\", style({ transform: \"translateX(0%)\" }))]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ transform: \"translateX(100%)\" }))])\n ])\n ]\n})\nexport class DrawerBodyComponent {\n drawerPortal: ComponentPortal<any>;\n constructor(private cfr: ComponentFactoryResolver) {}\n\n @ViewChild(\"place\", { static: false, read: ViewContainerRef }) place: ViewContainerRef;\n\n bindComponent(type: any, injector: PortalInjector) {\n this.initComponent(type, injector);\n }\n\n private initComponent(type: any, injector: PortalInjector) {\n this.drawerPortal = new ComponentPortal(type, this.place, injector);\n }\n\n private createInjector(ref: DrawerRef, inj: Injector): PortalInjector {\n const injectorTokens = new WeakMap([[DrawerRef, ref]]);\n return new PortalInjector(inj, injectorTokens);\n // return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });\n }\n}\n","<!-- @format -->\n\n<div class=\"mis-drawer-body\" #place @slideInOut>\n <ng-template [cdkPortalOutlet]=\"drawerPortal\"></ng-template>\n</div>\n","/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const DRAWER_DATA_VAR = new InjectionToken<any>(\"MISDrawerDataInjectionToken\");\n","/** @format */\n\nimport { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal, ComponentType, PortalInjector } from \"@angular/cdk/portal\";\nimport { ComponentRef, Injectable, Injector } from \"@angular/core\";\nimport { take } from \"rxjs/operators\";\nimport { DrawerBodyComponent } from \"./drawer-body/drawer-body.component\";\nimport { DrawerRef } from \"./drawer-ref\";\nimport { DRAWER_DATA_VAR } from \"./drawer-constants\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class DrawerService {\n drawerRef: DrawerRef;\n componentInstance: ComponentRef<any>;\n\n constructor(private overlay: Overlay, private injector: Injector) {}\n\n show<T, D>(component: ComponentType<T>, data?: D, options?: { width?: string; height?: string }): DrawerRef {\n const positionStrategy = this.overlay.position().global().top(\"0px\").right(\"0px\");\n const { width = \"422px\", height = \"100%\" } = options || {};\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n width: width,\n height,\n panelClass: \"mis-drawer\",\n backdropClass: \"mis-drawer-overlay\"\n });\n const overlayRef = this.overlay.create(config);\n this.drawerRef = new DrawerRef(overlayRef);\n const injector = this.createInjector(this.drawerRef, this.injector, data);\n const portal = new ComponentPortal(DrawerBodyComponent, null);\n this.componentInstance = overlayRef.attach(portal);\n this.componentInstance.instance.bindComponent(component, injector);\n overlayRef.backdropClick().pipe(take(1)).subscribe(this.hide.bind(this));\n return this.drawerRef;\n }\n\n hide(): void {\n this.drawerRef?.close();\n }\n\n private createInjector<D>(ref: DrawerRef, inj: Injector, data?: D): PortalInjector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(DrawerRef, ref);\n injectorTokens.set(DRAWER_DATA_VAR, data);\n return new PortalInjector(inj, injectorTokens);\n // return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DrawerService } from \"./drawer.service\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { DrawerBodyComponent } from \"./drawer-body/drawer-body.component\";\nimport { PortalModule } from \"@angular/cdk/portal\";\n\n@NgModule({\n declarations: [DrawerBodyComponent],\n imports: [CommonModule, OverlayModule, PortalModule]\n})\nexport class DrawerModule {\n static forRoot(): ModuleWithProviders<DrawerModule> {\n return {\n ngModule: DrawerModule,\n providers: [DrawerService]\n };\n }\n\n static forChild(): ModuleWithProviders<DrawerModule> {\n return {\n ngModule: DrawerModule,\n providers: [DrawerService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-drawer.mjs","sources":["../../../projects/mis-components/drawer/drawer-ref.ts","../../../projects/mis-components/drawer/drawer-body/drawer-body.component.ts","../../../projects/mis-components/drawer/drawer-body/drawer-body.component.html","../../../projects/mis-components/drawer/drawer-constants.ts","../../../projects/mis-components/drawer/drawer.service.ts","../../../projects/mis-components/drawer/drawer.module.ts","../../../projects/mis-components/drawer/mis-crystal-design-system-drawer.ts"],"sourcesContent":["/** @format */\n\nimport { OverlayRef } from \"@angular/cdk/overlay\";\nimport { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class DrawerRef {\n private _isExpanded = false;\n private afterClosed$ = new Subject<any>();\n afterClosed = this.afterClosed$.asObservable();\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n constructor(public overlay: OverlayRef) {}\n\n close(data?: any): void {\n this.overlay.detach();\n this.overlay.dispose();\n this.afterClosed$.next(data);\n this.afterClosed$.complete();\n }\n\n expand(): void {\n this.overlay.updateSize({ width: \"100%\" });\n this._isExpanded = true;\n }\n\n collapse(): void {\n this.overlay.updateSize({ width: \"422px\" });\n this._isExpanded = false;\n }\n}\n","/** @format */\n\nimport { trigger, transition, style, animate } from \"@angular/animations\";\nimport { ComponentPortal, PortalInjector } from \"@angular/cdk/portal\";\nimport { Component, ComponentFactoryResolver, Injector, OnInit, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { DrawerRef } from \"../drawer-ref\";\n\n@Component({\n selector: \"mis-drawer-body\",\n templateUrl: \"./drawer-body.component.html\",\n styleUrls: [\"./drawer-body.component.scss\"],\n animations: [\n trigger(\"slideInOut\", [\n transition(\":enter\", [style({ transform: \"translateX(100%)\" }), animate(\"200ms ease-out\", style({ transform: \"translateX(0%)\" }))]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ transform: \"translateX(100%)\" }))])\n ])\n ]\n})\nexport class DrawerBodyComponent {\n drawerPortal: ComponentPortal<any>;\n constructor(private cfr: ComponentFactoryResolver) {}\n\n @ViewChild(\"place\", { static: false, read: ViewContainerRef }) place: ViewContainerRef;\n\n bindComponent(type: any, injector: PortalInjector) {\n this.initComponent(type, injector);\n }\n\n private initComponent(type: any, injector: PortalInjector) {\n this.drawerPortal = new ComponentPortal(type, this.place, injector);\n }\n\n private createInjector(ref: DrawerRef, inj: Injector): PortalInjector {\n const injectorTokens = new WeakMap([[DrawerRef, ref]]);\n return new PortalInjector(inj, injectorTokens);\n // return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });\n }\n}\n","<!-- @format -->\n\n<div class=\"mis-drawer-body\" #place @slideInOut>\n <ng-template [cdkPortalOutlet]=\"drawerPortal\"></ng-template>\n</div>\n","/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const DRAWER_DATA_VAR = new InjectionToken<any>(\"MISDrawerDataInjectionToken\");\n","/** @format */\n\nimport { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal, ComponentType, PortalInjector } from \"@angular/cdk/portal\";\nimport { ComponentRef, Injectable, Injector } from \"@angular/core\";\nimport { take } from \"rxjs/operators\";\nimport { DrawerBodyComponent } from \"./drawer-body/drawer-body.component\";\nimport { DrawerRef } from \"./drawer-ref\";\nimport { DRAWER_DATA_VAR } from \"./drawer-constants\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class DrawerService {\n drawerRef: DrawerRef;\n componentInstance: ComponentRef<any>;\n\n constructor(private overlay: Overlay, private injector: Injector) {}\n\n show<T, D>(component: ComponentType<T>, data?: D, options?: { width?: string; height?: string }): DrawerRef {\n const positionStrategy = this.overlay.position().global().top(\"0px\").right(\"0px\");\n const { width = \"422px\", height = \"100%\" } = options || {};\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n width: width,\n height,\n panelClass: \"mis-drawer\",\n backdropClass: \"mis-drawer-overlay\"\n });\n const overlayRef = this.overlay.create(config);\n this.drawerRef = new DrawerRef(overlayRef);\n const injector = this.createInjector(this.drawerRef, this.injector, data);\n const portal = new ComponentPortal(DrawerBodyComponent, null);\n this.componentInstance = overlayRef.attach(portal);\n this.componentInstance.instance.bindComponent(component, injector);\n overlayRef.backdropClick().pipe(take(1)).subscribe(this.hide.bind(this));\n return this.drawerRef;\n }\n\n hide(): void {\n this.drawerRef?.close();\n }\n\n private createInjector<D>(ref: DrawerRef, inj: Injector, data?: D): PortalInjector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(DrawerRef, ref);\n injectorTokens.set(DRAWER_DATA_VAR, data);\n return new PortalInjector(inj, injectorTokens);\n // return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DrawerService } from \"./drawer.service\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { DrawerBodyComponent } from \"./drawer-body/drawer-body.component\";\nimport { PortalModule } from \"@angular/cdk/portal\";\n\n@NgModule({\n declarations: [DrawerBodyComponent],\n imports: [CommonModule, OverlayModule, PortalModule]\n})\nexport class DrawerModule {\n static forRoot(): ModuleWithProviders<DrawerModule> {\n return {\n ngModule: DrawerModule,\n providers: [DrawerService]\n };\n }\n\n static forChild(): ModuleWithProviders<DrawerModule> {\n return {\n ngModule: DrawerModule,\n providers: [DrawerService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|