mis-crystal-design-system 18.0.3 → 18.0.5
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/action-list/action-list.component.d.ts +1 -1
- package/analytics/analytics.service.d.ts +1 -1
- package/async-search-dropdown/async-dropdown.component.d.ts +2 -2
- package/button/button.component.d.ts +1 -1
- package/button/button.directive.d.ts +1 -1
- package/checkbox/checkbox.component.d.ts +1 -1
- package/chip/chip.component.d.ts +1 -1
- package/datepicker_v2/models/dp-config.model.d.ts +1 -1
- package/datepicker_v2/tz-datepicker.directive.d.ts +1 -1
- package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +1 -1
- package/daterangepicker_v2/models/drp-config.model.d.ts +3 -1
- package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +2 -1
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +3 -1
- package/drawer/drawer-body/drawer-body.component.d.ts +1 -1
- package/dropdown/calculate-container-height.directive.d.ts +1 -1
- package/dropdown/dropdown.component.d.ts +1 -1
- package/dynamic-form/dynamic-form.component.d.ts +1 -1
- package/esm2020/action-list/action-list.component.mjs +370 -0
- package/{esm2022 → esm2020}/action-list/action-list.module.mjs +5 -5
- package/{esm2022 → esm2020}/analytics/analytics.module.mjs +5 -5
- package/esm2020/analytics/analytics.service.mjs +64 -0
- package/esm2020/async-search-dropdown/async-dropdown.component.mjs +525 -0
- package/{esm2022 → esm2020}/async-search-dropdown/async-dropdown.module.mjs +5 -5
- package/esm2020/button/button.component.mjs +87 -0
- package/esm2020/button/button.directive.mjs +61 -0
- package/{esm2022 → esm2020}/button/button.module.mjs +5 -5
- package/esm2020/checkbox/checkbox.component.mjs +124 -0
- package/{esm2022 → esm2020}/checkbox/checkbox.module.mjs +5 -5
- package/esm2020/chip/chip.component.mjs +82 -0
- package/{esm2022 → esm2020}/chip/chip.module.mjs +5 -5
- package/{esm2022 → esm2020}/datepicker_v2/datepicker.module.mjs +5 -5
- package/esm2020/datepicker_v2/tz-datepicker.directive.mjs +183 -0
- package/esm2020/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +449 -0
- package/esm2020/datepicker_v2/utils/index.mjs +45 -0
- package/{esm2022 → esm2020}/daterangepicker_v2/daterangepicker.module.mjs +5 -5
- package/esm2020/daterangepicker_v2/models/drp-config.model.mjs +2 -0
- package/esm2020/daterangepicker_v2/tz-daterangepicker.directive.mjs +165 -0
- package/esm2020/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +502 -0
- package/{esm2022/datepicker_v2 → esm2020/daterangepicker_v2}/utils/index.mjs +1 -1
- package/esm2020/drawer/drawer-body/drawer-body.component.mjs +58 -0
- package/{esm2022 → esm2020}/drawer/drawer-ref.mjs +4 -4
- package/{esm2022 → esm2020}/drawer/drawer.module.mjs +5 -5
- package/{esm2022 → esm2020}/drawer/drawer.service.mjs +5 -5
- package/esm2020/dropdown/calculate-container-height.directive.mjs +41 -0
- package/esm2020/dropdown/dropdown.component.mjs +472 -0
- package/{esm2022 → esm2020}/dropdown/dropdown.module.mjs +5 -5
- package/esm2020/dynamic-form/dynamic-form.component.mjs +1108 -0
- package/{esm2022 → esm2020}/dynamic-form/dynamic-form.module.mjs +13 -13
- package/esm2020/fab/fab.component.mjs +144 -0
- package/{esm2022 → esm2020}/fab/fab.module.mjs +5 -5
- package/esm2020/filter/filter-panel/filter-panel.component.mjs +403 -0
- package/{esm2022 → esm2020}/filter/filters.module.mjs +17 -17
- package/esm2020/filter/has-value.pipe.mjs +31 -0
- package/{esm2022 → esm2020}/input/directives/input/input.directive.mjs +6 -6
- package/esm2020/input/mis-input.component.mjs +84 -0
- package/{esm2022 → esm2020}/input/mis-input.module.mjs +5 -5
- package/esm2020/input-stepper/input-stepper/input-stepper.component.mjs +88 -0
- package/{esm2022 → esm2020}/input-stepper/input-stepper.module.mjs +5 -5
- package/esm2020/loader/loader.component.mjs +24 -0
- package/{esm2022 → esm2020}/loader/loader.module.mjs +5 -5
- package/esm2020/menu/menu-close.directive.mjs +25 -0
- package/{esm2022 → esm2020}/menu/menu.directive.mjs +7 -7
- package/{esm2022 → esm2020}/menu/menu.module.mjs +5 -5
- package/esm2020/mobile-filter/mobile-filter.component.mjs +181 -0
- package/{esm2022 → esm2020}/mobile-filter/mobile-filter.module.mjs +5 -5
- package/{esm2022 → esm2020}/modal/modal.module.mjs +5 -5
- package/esm2020/modal/modal.service.mjs +70 -0
- package/esm2020/modal/module-wrapper/module-wrapper.component.mjs +55 -0
- package/esm2020/multi-select-dropdown/multi-select-dropdown.component.mjs +491 -0
- package/{esm2022 → esm2020}/multi-select-dropdown/multi-select-dropdown.module.mjs +5 -5
- package/esm2020/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +517 -0
- package/{esm2022 → esm2020}/nested-multi-select-dropdown/nested-multi-select-dropdown.module.mjs +5 -5
- package/esm2020/phone-input/phone-input.component.mjs +71 -0
- package/{esm2022 → esm2020}/phone-input/phone-input.module.mjs +5 -5
- package/esm2020/radio-button/radio-button.component.mjs +56 -0
- package/{esm2022 → esm2020}/radio-button/radio-button.module.mjs +5 -5
- package/esm2020/ske-loader/ske-loader.component.mjs +53 -0
- package/{esm2022 → esm2020}/ske-loader/ske-loader.module.mjs +5 -5
- package/esm2020/slider/slider.component.mjs +45 -0
- package/{esm2022 → esm2020}/slider/slider.module.mjs +7 -7
- package/esm2020/snackbar/snackbar/snackbar.component.mjs +72 -0
- package/{esm2022 → esm2020}/snackbar/snackbar.module.mjs +5 -5
- package/esm2020/snackbar/snackbar.service.mjs +47 -0
- package/{esm2022 → esm2020}/specificdatepicker/specificdatepicker.module.mjs +5 -5
- package/esm2020/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +646 -0
- package/esm2020/specificdatepicker/tz-specificdatepicker.directive.mjs +196 -0
- package/esm2020/specificdatepicker/utils/index.mjs +45 -0
- package/esm2020/star-rating/star-rating.component.mjs +112 -0
- package/{esm2022 → esm2020}/star-rating/star-rating.module.mjs +5 -5
- package/esm2020/switch/switch.component.mjs +55 -0
- package/{esm2022 → esm2020}/switch/switch.module.mjs +5 -5
- package/esm2020/table/custom-table-cell.directive.mjs +42 -0
- package/esm2020/table/filter/filter.component.mjs +176 -0
- package/esm2020/table/sub-table/sub-table.component.mjs +193 -0
- package/esm2020/table/table.component.mjs +492 -0
- package/{esm2022 → esm2020}/table/table.module.mjs +5 -5
- package/esm2020/timepicker/timepicker.component.mjs +370 -0
- package/esm2020/timepicker/timepicker.directive.mjs +69 -0
- package/{esm2022 → esm2020}/timepicker/timepicker.module.mjs +5 -5
- package/esm2020/timerangepicker/timerangepicker.component.mjs +236 -0
- package/{esm2022 → esm2020}/timerangepicker/timerangepicker.module.mjs +5 -5
- package/esm2020/toast/toast.component.mjs +50 -0
- package/{esm2022 → esm2020}/toast/toast.data.service.mjs +8 -8
- package/{esm2022 → esm2020}/toast/toast.module.mjs +5 -5
- package/esm2020/toast/toast.service.mjs +91 -0
- package/esm2020/tooltip/tooltip-container/tooltip.component.mjs +79 -0
- package/esm2020/tooltip/tooltip.directive.mjs +143 -0
- package/{esm2022 → esm2020}/tooltip/tooltip.module.mjs +5 -5
- package/esm2020/virtual-scroll/virtual-scroll.component.mjs +190 -0
- package/{esm2022 → esm2020}/virtual-scroll/virtual-scroll.module.mjs +7 -7
- package/esm2020/widgets/classes/async-widget.mjs +23 -0
- package/{esm2022 → esm2020}/widgets/classes/base-widget.mjs +1 -1
- package/esm2020/widgets/classes/sync-widget.mjs +20 -0
- package/{esm2022 → esm2020}/widgets/services/widget.service.mjs +5 -5
- package/{esm2022 → esm2020}/widgets/widgets.module.mjs +5 -5
- package/fab/fab.component.d.ts +4 -4
- package/fesm2015/mis-crystal-design-system-action-list.mjs +446 -0
- package/fesm2015/mis-crystal-design-system-action-list.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-analytics.mjs +87 -0
- package/fesm2015/mis-crystal-design-system-analytics.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs +618 -0
- package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-button.mjs +189 -0
- package/fesm2015/mis-crystal-design-system-button.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-checkbox.mjs +166 -0
- package/fesm2015/mis-crystal-design-system-checkbox.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-chip.mjs +123 -0
- package/fesm2015/mis-crystal-design-system-chip.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs +751 -0
- package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs +769 -0
- package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-drawer.mjs +185 -0
- package/fesm2015/mis-crystal-design-system-drawer.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-dropdown.mjs +616 -0
- package/fesm2015/mis-crystal-design-system-dropdown.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +1337 -0
- package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-fab.mjs +186 -0
- package/fesm2015/mis-crystal-design-system-fab.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-filter.mjs +559 -0
- package/fesm2015/mis-crystal-design-system-filter.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-input-stepper.mjs +124 -0
- package/fesm2015/mis-crystal-design-system-input-stepper.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-input.mjs +165 -0
- package/fesm2015/mis-crystal-design-system-input.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-loader.mjs +57 -0
- package/fesm2015/mis-crystal-design-system-loader.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-menu.mjs +135 -0
- package/fesm2015/mis-crystal-design-system-menu.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-mobile-filter.mjs +227 -0
- package/fesm2015/mis-crystal-design-system-mobile-filter.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-modal.mjs +184 -0
- package/fesm2015/mis-crystal-design-system-modal.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs +550 -0
- package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs +559 -0
- package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-phone-input.mjs +107 -0
- package/fesm2015/mis-crystal-design-system-phone-input.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-radio-button.mjs +89 -0
- package/fesm2015/mis-crystal-design-system-radio-button.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-ske-loader.mjs +86 -0
- package/fesm2015/mis-crystal-design-system-ske-loader.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-slider.mjs +88 -0
- package/fesm2015/mis-crystal-design-system-slider.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-snackbar.mjs +175 -0
- package/fesm2015/mis-crystal-design-system-snackbar.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs +970 -0
- package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-star-rating.mjs +145 -0
- package/fesm2015/mis-crystal-design-system-star-rating.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-switch.mjs +88 -0
- package/fesm2015/mis-crystal-design-system-switch.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-table.mjs +1045 -0
- package/fesm2015/mis-crystal-design-system-table.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-timepicker.mjs +484 -0
- package/fesm2015/mis-crystal-design-system-timepicker.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-timerangepicker.mjs +273 -0
- package/fesm2015/mis-crystal-design-system-timerangepicker.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-toast.mjs +214 -0
- package/fesm2015/mis-crystal-design-system-toast.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-tooltip.mjs +272 -0
- package/fesm2015/mis-crystal-design-system-tooltip.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-virtual-scroll.mjs +259 -0
- package/fesm2015/mis-crystal-design-system-virtual-scroll.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-widgets.mjs +131 -0
- package/fesm2015/mis-crystal-design-system-widgets.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-action-list.mjs +113 -106
- package/fesm2020/mis-crystal-design-system-action-list.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-analytics.mjs +9 -9
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-analytics.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-async-search-dropdown.mjs +144 -138
- package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-button.mjs +172 -0
- package/fesm2020/mis-crystal-design-system-button.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-checkbox.mjs +150 -0
- package/fesm2020/mis-crystal-design-system-checkbox.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-chip.mjs +108 -0
- package/fesm2020/mis-crystal-design-system-chip.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-datepicker_v2.mjs +140 -133
- package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs +736 -0
- package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-drawer.mjs +33 -34
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-dropdown.mjs +184 -176
- package/fesm2020/mis-crystal-design-system-dropdown.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-dynamic-form.mjs +456 -441
- package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-fab.mjs +47 -48
- package/fesm2020/mis-crystal-design-system-fab.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-filter.mjs +140 -133
- package/fesm2020/mis-crystal-design-system-filter.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-input-stepper.mjs +34 -35
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-input-stepper.mjs.map +1 -1
- package/{esm2022/input/mis-input.component.mjs → fesm2020/mis-crystal-design-system-input.mjs} +109 -49
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-loader.mjs +50 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-loader.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-menu.mjs +16 -16
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-menu.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-mobile-filter.mjs +206 -0
- package/fesm2020/mis-crystal-design-system-mobile-filter.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-modal.mjs +33 -34
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-modal.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-multi-select-dropdown.mjs +109 -107
- package/fesm2020/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-nested-multi-select-dropdown.mjs +129 -128
- package/fesm2020/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-phone-input.mjs +21 -22
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-radio-button.mjs +82 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-ske-loader.mjs +76 -0
- package/fesm2020/mis-crystal-design-system-ske-loader.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-slider.mjs +79 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-slider.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-snackbar.mjs +32 -32
- package/fesm2020/mis-crystal-design-system-snackbar.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-specificdatepicker.mjs +204 -204
- package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-star-rating.mjs +28 -29
- package/fesm2020/mis-crystal-design-system-star-rating.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-styles.mjs +4 -0
- package/fesm2020/mis-crystal-design-system-styles.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-switch.mjs +81 -0
- package/fesm2020/mis-crystal-design-system-switch.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-table.mjs +321 -314
- package/fesm2020/mis-crystal-design-system-table.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-timepicker.mjs +74 -78
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-timepicker.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-timerangepicker.mjs +25 -26
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-toast.mjs +34 -35
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-toast.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-tooltip.mjs +47 -47
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-utils.mjs +24 -0
- package/fesm2020/mis-crystal-design-system-utils.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-virtual-scroll.mjs +52 -50
- package/fesm2020/mis-crystal-design-system-virtual-scroll.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-widgets.mjs +4 -4
- package/{fesm2022 → fesm2020}/mis-crystal-design-system-widgets.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system.mjs +24 -0
- package/fesm2020/mis-crystal-design-system.mjs.map +1 -0
- package/filter/filter-panel/filter-panel.component.d.ts +4 -3
- package/input/directives/input/input.directive.d.ts +1 -1
- package/input/mis-input.component.d.ts +1 -1
- package/input-stepper/input-stepper/input-stepper.component.d.ts +1 -1
- package/loader/loader.component.d.ts +1 -1
- package/menu/menu-close.directive.d.ts +1 -1
- package/menu/menu.directive.d.ts +1 -1
- package/mobile-filter/mobile-filter.component.d.ts +1 -1
- package/modal/module-wrapper/module-wrapper.component.d.ts +1 -1
- package/multi-select-dropdown/multi-select-dropdown.component.d.ts +1 -1
- package/nested-multi-select-dropdown/nested-multi-select-dropdown.component.d.ts +1 -1
- package/package.json +230 -148
- package/phone-input/phone-input.component.d.ts +1 -1
- package/radio-button/radio-button.component.d.ts +1 -1
- package/ske-loader/ske-loader.component.d.ts +1 -1
- package/slider/slider.component.d.ts +1 -1
- package/snackbar/snackbar/snackbar.component.d.ts +1 -1
- package/specificdatepicker/models/sdp-config.model.d.ts +1 -1
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -1
- package/specificdatepicker/tz-specificdatepicker.directive.d.ts +1 -1
- package/star-rating/star-rating.component.d.ts +1 -1
- package/switch/switch.component.d.ts +1 -1
- package/table/custom-table-cell.directive.d.ts +1 -1
- package/table/filter/filter.component.d.ts +1 -1
- package/table/sub-table/sub-table.component.d.ts +1 -1
- package/table/table.component.d.ts +1 -1
- package/timepicker/timepicker.component.d.ts +1 -1
- package/timepicker/timepicker.directive.d.ts +1 -1
- package/timerangepicker/timerange.namespace.d.ts +1 -1
- package/timerangepicker/timerangepicker.component.d.ts +1 -1
- package/toast/toast.component.d.ts +1 -1
- package/toast/toast.service.d.ts +1 -1
- package/tooltip/models/tooltip.model.d.ts +1 -1
- package/tooltip/tooltip-container/tooltip.component.d.ts +1 -1
- package/tooltip/tooltip.directive.d.ts +1 -1
- package/virtual-scroll/virtual-scroll.component.d.ts +1 -1
- package/widgets/interfaces/widgets.model.d.ts +1 -1
- package/esm2022/action-list/action-list.component.mjs +0 -363
- package/esm2022/analytics/analytics.service.mjs +0 -64
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +0 -519
- package/esm2022/button/button.component.mjs +0 -88
- package/esm2022/button/button.directive.mjs +0 -61
- package/esm2022/checkbox/checkbox.component.mjs +0 -124
- package/esm2022/chip/chip.component.mjs +0 -82
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +0 -183
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +0 -442
- package/esm2022/daterangepicker_v2/models/drp-config.model.mjs +0 -2
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +0 -156
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +0 -473
- package/esm2022/daterangepicker_v2/utils/index.mjs +0 -45
- package/esm2022/drawer/drawer-body/drawer-body.component.mjs +0 -59
- package/esm2022/dropdown/calculate-container-height.directive.mjs +0 -41
- package/esm2022/dropdown/dropdown.component.mjs +0 -464
- package/esm2022/dynamic-form/dynamic-form.component.mjs +0 -1093
- package/esm2022/fab/fab.component.mjs +0 -145
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +0 -396
- package/esm2022/filter/has-value.pipe.mjs +0 -31
- package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +0 -89
- package/esm2022/loader/loader.component.mjs +0 -25
- package/esm2022/menu/menu-close.directive.mjs +0 -25
- package/esm2022/mobile-filter/mobile-filter.component.mjs +0 -180
- package/esm2022/modal/modal.service.mjs +0 -70
- package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +0 -56
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +0 -489
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +0 -516
- package/esm2022/phone-input/phone-input.component.mjs +0 -72
- package/esm2022/radio-button/radio-button.component.mjs +0 -57
- package/esm2022/ske-loader/ske-loader.component.mjs +0 -54
- package/esm2022/slider/slider.component.mjs +0 -46
- package/esm2022/snackbar/snackbar/snackbar.component.mjs +0 -72
- package/esm2022/snackbar/snackbar.service.mjs +0 -47
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +0 -646
- package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +0 -196
- package/esm2022/specificdatepicker/utils/index.mjs +0 -45
- package/esm2022/star-rating/star-rating.component.mjs +0 -113
- package/esm2022/switch/switch.component.mjs +0 -56
- package/esm2022/table/custom-table-cell.directive.mjs +0 -42
- package/esm2022/table/filter/filter.component.mjs +0 -177
- package/esm2022/table/sub-table/sub-table.component.mjs +0 -192
- package/esm2022/table/table.component.mjs +0 -485
- package/esm2022/timepicker/timepicker.component.mjs +0 -374
- package/esm2022/timepicker/timepicker.directive.mjs +0 -69
- package/esm2022/timerangepicker/timerangepicker.component.mjs +0 -237
- package/esm2022/toast/toast.component.mjs +0 -51
- package/esm2022/toast/toast.service.mjs +0 -91
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +0 -79
- package/esm2022/tooltip/tooltip.directive.mjs +0 -143
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +0 -188
- package/esm2022/widgets/classes/async-widget.mjs +0 -23
- package/esm2022/widgets/classes/sync-widget.mjs +0 -20
- package/fesm2022/mis-crystal-design-system-action-list.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-button.mjs +0 -173
- package/fesm2022/mis-crystal-design-system-button.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +0 -150
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +0 -108
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +0 -698
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +0 -146
- package/fesm2022/mis-crystal-design-system-loader.mjs +0 -51
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +0 -205
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +0 -83
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +0 -77
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +0 -80
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs +0 -82
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-table.mjs.map +0 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +0 -1
- /package/{esm2022 → esm2020}/action-list/index.mjs +0 -0
- /package/{esm2022 → esm2020}/action-list/mis-crystal-design-system-action-list.mjs +0 -0
- /package/{esm2022 → esm2020}/action-list/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/analytics/index.mjs +0 -0
- /package/{esm2022 → esm2020}/analytics/mis-crystal-design-system-analytics.mjs +0 -0
- /package/{esm2022 → esm2020}/analytics/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/async-search-dropdown/index.mjs +0 -0
- /package/{esm2022 → esm2020}/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs +0 -0
- /package/{esm2022 → esm2020}/async-search-dropdown/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/button/index.mjs +0 -0
- /package/{esm2022 → esm2020}/button/mis-crystal-design-system-button.mjs +0 -0
- /package/{esm2022 → esm2020}/button/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/checkbox/index.mjs +0 -0
- /package/{esm2022 → esm2020}/checkbox/mis-crystal-design-system-checkbox.mjs +0 -0
- /package/{esm2022 → esm2020}/checkbox/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/chip/index.mjs +0 -0
- /package/{esm2022 → esm2020}/chip/mis-crystal-design-system-chip.mjs +0 -0
- /package/{esm2022 → esm2020}/chip/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/datepicker_v2/datepicker-constants.mjs +0 -0
- /package/{esm2022 → esm2020}/datepicker_v2/index.mjs +0 -0
- /package/{esm2022 → esm2020}/datepicker_v2/mis-crystal-design-system-datepicker_v2.mjs +0 -0
- /package/{esm2022 → esm2020}/datepicker_v2/models/dp-config.model.mjs +0 -0
- /package/{esm2022 → esm2020}/datepicker_v2/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/daterangepicker_v2/daterangepicker-constants.mjs +0 -0
- /package/{esm2022 → esm2020}/daterangepicker_v2/index.mjs +0 -0
- /package/{esm2022 → esm2020}/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.mjs +0 -0
- /package/{esm2022 → esm2020}/daterangepicker_v2/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/drawer/drawer-constants.mjs +0 -0
- /package/{esm2022 → esm2020}/drawer/index.mjs +0 -0
- /package/{esm2022 → esm2020}/drawer/mis-crystal-design-system-drawer.mjs +0 -0
- /package/{esm2022 → esm2020}/drawer/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/dropdown/index.mjs +0 -0
- /package/{esm2022 → esm2020}/dropdown/mis-crystal-design-system-dropdown.mjs +0 -0
- /package/{esm2022 → esm2020}/dropdown/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/dynamic-form/dynamic-form.namespace.mjs +0 -0
- /package/{esm2022 → esm2020}/dynamic-form/index.mjs +0 -0
- /package/{esm2022 → esm2020}/dynamic-form/mis-crystal-design-system-dynamic-form.mjs +0 -0
- /package/{esm2022 → esm2020}/dynamic-form/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/fab/index.mjs +0 -0
- /package/{esm2022 → esm2020}/fab/mis-crystal-design-system-fab.mjs +0 -0
- /package/{esm2022 → esm2020}/fab/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/filter/animations/slideFromRight.mjs +0 -0
- /package/{esm2022 → esm2020}/filter/index.mjs +0 -0
- /package/{esm2022 → esm2020}/filter/mis-crystal-design-system-filter.mjs +0 -0
- /package/{esm2022 → esm2020}/filter/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/index.mjs +0 -0
- /package/{esm2022 → esm2020}/input/index.mjs +0 -0
- /package/{esm2022 → esm2020}/input/mis-crystal-design-system-input.mjs +0 -0
- /package/{esm2022 → esm2020}/input/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/input-stepper/index.mjs +0 -0
- /package/{esm2022 → esm2020}/input-stepper/mis-crystal-design-system-input-stepper.mjs +0 -0
- /package/{esm2022 → esm2020}/input-stepper/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/loader/index.mjs +0 -0
- /package/{esm2022 → esm2020}/loader/mis-crystal-design-system-loader.mjs +0 -0
- /package/{esm2022 → esm2020}/loader/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/menu/index.mjs +0 -0
- /package/{esm2022 → esm2020}/menu/mis-crystal-design-system-menu.mjs +0 -0
- /package/{esm2022 → esm2020}/menu/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/mis-crystal-design-system.mjs +0 -0
- /package/{esm2022 → esm2020}/mobile-filter/index.mjs +0 -0
- /package/{esm2022 → esm2020}/mobile-filter/mis-crystal-design-system-mobile-filter.mjs +0 -0
- /package/{esm2022 → esm2020}/mobile-filter/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/modal/index.mjs +0 -0
- /package/{esm2022 → esm2020}/modal/mis-crystal-design-system-modal.mjs +0 -0
- /package/{esm2022 → esm2020}/modal/modal-constants.mjs +0 -0
- /package/{esm2022 → esm2020}/modal/modal-ref.mjs +0 -0
- /package/{esm2022 → esm2020}/modal/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/multi-select-dropdown/index.mjs +0 -0
- /package/{esm2022 → esm2020}/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.mjs +0 -0
- /package/{esm2022 → esm2020}/multi-select-dropdown/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/nested-multi-select-dropdown/index.mjs +0 -0
- /package/{esm2022 → esm2020}/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.mjs +0 -0
- /package/{esm2022 → esm2020}/nested-multi-select-dropdown/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/phone-input/index.mjs +0 -0
- /package/{esm2022 → esm2020}/phone-input/mis-crystal-design-system-phone-input.mjs +0 -0
- /package/{esm2022 → esm2020}/phone-input/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/public-api.mjs +0 -0
- /package/{esm2022 → esm2020}/radio-button/index.mjs +0 -0
- /package/{esm2022 → esm2020}/radio-button/mis-crystal-design-system-radio-button.mjs +0 -0
- /package/{esm2022 → esm2020}/radio-button/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/ske-loader/index.mjs +0 -0
- /package/{esm2022 → esm2020}/ske-loader/mis-crystal-design-system-ske-loader.mjs +0 -0
- /package/{esm2022 → esm2020}/ske-loader/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/slider/index.mjs +0 -0
- /package/{esm2022 → esm2020}/slider/mis-crystal-design-system-slider.mjs +0 -0
- /package/{esm2022 → esm2020}/slider/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/snackbar/index.mjs +0 -0
- /package/{esm2022 → esm2020}/snackbar/mis-crystal-design-system-snackbar.mjs +0 -0
- /package/{esm2022 → esm2020}/snackbar/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/specificdatepicker/daterangepicker-constants.mjs +0 -0
- /package/{esm2022 → esm2020}/specificdatepicker/index.mjs +0 -0
- /package/{esm2022 → esm2020}/specificdatepicker/mis-crystal-design-system-specificdatepicker.mjs +0 -0
- /package/{esm2022 → esm2020}/specificdatepicker/models/sdp-config.model.mjs +0 -0
- /package/{esm2022 → esm2020}/specificdatepicker/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/star-rating/index.mjs +0 -0
- /package/{esm2022 → esm2020}/star-rating/mis-crystal-design-system-star-rating.mjs +0 -0
- /package/{esm2022 → esm2020}/star-rating/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/styles/index.mjs +0 -0
- /package/{esm2022 → esm2020}/styles/mis-crystal-design-system-styles.mjs +0 -0
- /package/{esm2022 → esm2020}/styles/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/switch/index.mjs +0 -0
- /package/{esm2022 → esm2020}/switch/mis-crystal-design-system-switch.mjs +0 -0
- /package/{esm2022 → esm2020}/switch/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/table/index.mjs +0 -0
- /package/{esm2022 → esm2020}/table/mis-crystal-design-system-table.mjs +0 -0
- /package/{esm2022 → esm2020}/table/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/timepicker/index.mjs +0 -0
- /package/{esm2022 → esm2020}/timepicker/mis-crystal-design-system-timepicker.mjs +0 -0
- /package/{esm2022 → esm2020}/timepicker/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/timepicker/time.namespace.mjs +0 -0
- /package/{esm2022 → esm2020}/timerangepicker/index.mjs +0 -0
- /package/{esm2022 → esm2020}/timerangepicker/mis-crystal-design-system-timerangepicker.mjs +0 -0
- /package/{esm2022 → esm2020}/timerangepicker/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/timerangepicker/timerange.namespace.mjs +0 -0
- /package/{esm2022 → esm2020}/toast/index.mjs +0 -0
- /package/{esm2022 → esm2020}/toast/mis-crystal-design-system-toast.mjs +0 -0
- /package/{esm2022 → esm2020}/toast/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/tooltip/index.mjs +0 -0
- /package/{esm2022 → esm2020}/tooltip/mis-crystal-design-system-tooltip.mjs +0 -0
- /package/{esm2022 → esm2020}/tooltip/models/tooltip.model.mjs +0 -0
- /package/{esm2022 → esm2020}/tooltip/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/utils/index.mjs +0 -0
- /package/{esm2022 → esm2020}/utils/mis-crystal-design-system-utils.mjs +0 -0
- /package/{esm2022 → esm2020}/virtual-scroll/index.mjs +0 -0
- /package/{esm2022 → esm2020}/virtual-scroll/mis-crystal-design-system-virtual-scroll.mjs +0 -0
- /package/{esm2022 → esm2020}/virtual-scroll/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/virtual-scroll/virtual-scroll.constants.mjs +0 -0
- /package/{esm2022 → esm2020}/widgets/classes/widget-group.mjs +0 -0
- /package/{esm2022 → esm2020}/widgets/index.mjs +0 -0
- /package/{esm2022 → esm2020}/widgets/interfaces/widgets.model.mjs +0 -0
- /package/{esm2022 → esm2020}/widgets/mis-crystal-design-system-widgets.mjs +0 -0
- /package/{esm2022 → esm2020}/widgets/public_api.mjs +0 -0
- /package/{fesm2022 → fesm2015}/mis-crystal-design-system-styles.mjs +0 -0
- /package/{fesm2022 → fesm2015}/mis-crystal-design-system-styles.mjs.map +0 -0
- /package/{fesm2022 → fesm2015}/mis-crystal-design-system-utils.mjs +0 -0
- /package/{fesm2022 → fesm2015}/mis-crystal-design-system-utils.mjs.map +0 -0
- /package/{fesm2022 → fesm2015}/mis-crystal-design-system.mjs +0 -0
- /package/{fesm2022 → fesm2015}/mis-crystal-design-system.mjs.map +0 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from "@angular/core";
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import timezone from 'dayjs/plugin/timezone';
|
|
4
|
+
import utc from 'dayjs/plugin/utc';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "mis-crystal-design-system/timepicker";
|
|
8
|
+
function TimeRangePickerComponent_p_2_Template(rf, ctx) { if (rf & 1) {
|
|
9
|
+
i0.ɵɵelementStart(0, "p");
|
|
10
|
+
i0.ɵɵtext(1, "-");
|
|
11
|
+
i0.ɵɵelementEnd();
|
|
12
|
+
} }
|
|
13
|
+
const _c0 = function (a0, a1) { return { "flexDirection": a0, "gap": a1 }; };
|
|
14
|
+
dayjs.extend(utc);
|
|
15
|
+
dayjs.extend(timezone);
|
|
16
|
+
export class TimeRangePickerComponent {
|
|
17
|
+
constructor(cdr) {
|
|
18
|
+
this.cdr = cdr;
|
|
19
|
+
this.inputWidth = "100px";
|
|
20
|
+
this.height = "46px";
|
|
21
|
+
this.timezone = "Asia/Kolkata";
|
|
22
|
+
this.startDateEpoch = dayjs.tz(dayjs(), this.timezone).valueOf();
|
|
23
|
+
this.endDateEpoch = dayjs.tz(dayjs(), this.timezone).valueOf();
|
|
24
|
+
this.clockFormat = 12;
|
|
25
|
+
this.interval = 15;
|
|
26
|
+
this.showTooltip = true;
|
|
27
|
+
this.direction = 'row';
|
|
28
|
+
this.gap = '1rem';
|
|
29
|
+
this.disableStartTime = false;
|
|
30
|
+
this.disableEndTime = false;
|
|
31
|
+
this.timeRangeEmitter = new EventEmitter();
|
|
32
|
+
this.firstIntervalForStartPicker = dayjs().valueOf();
|
|
33
|
+
this.firstIntervalForEndPicker = dayjs().valueOf();
|
|
34
|
+
this.rangeValidity = true;
|
|
35
|
+
this.triggerChange = true;
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() { }
|
|
38
|
+
ngOnChanges() {
|
|
39
|
+
this.timeFormat = this.clockFormat === 12 ? "hh:mm a" : "HH:mm";
|
|
40
|
+
this.startDate = dayjs.tz(this.startDateEpoch, this.timezone).format("DD-MM-YYYY");
|
|
41
|
+
this.endDate = dayjs.tz(this.endDateEpoch, this.timezone).format("DD-MM-YYYY");
|
|
42
|
+
this.currDate = dayjs.tz(dayjs(), this.timezone).format("DD-MM-YYYY");
|
|
43
|
+
this.setFirstIntervals();
|
|
44
|
+
}
|
|
45
|
+
// calculate the first interval of the picker
|
|
46
|
+
setFirstIntervals() {
|
|
47
|
+
const minutes = dayjs.tz(dayjs(), this.timezone).minute();
|
|
48
|
+
const offset = this.interval - (minutes % this.interval);
|
|
49
|
+
// start date, 22 MAY === current date, 22 MAY
|
|
50
|
+
if (this.startDate === this.currDate) {
|
|
51
|
+
const currentTime = dayjs.tz(dayjs(), this.timezone).valueOf();
|
|
52
|
+
// start date, 22 MAY === current date, 22 MAY === end date, 22 MAY
|
|
53
|
+
if (this.startDate === this.endDate) {
|
|
54
|
+
// current time is in last interval
|
|
55
|
+
if (currentTime >= dayjs.tz(this.startDateEpoch, this.timezone).endOf("d").subtract(this.interval, "m").valueOf()) {
|
|
56
|
+
this.firstIntervalForStartPicker = currentTime;
|
|
57
|
+
this.firstIntervalForEndPicker = dayjs.tz(this.endDateEpoch, this.timezone).endOf("d").valueOf();
|
|
58
|
+
}
|
|
59
|
+
// current time isn't in last interval
|
|
60
|
+
else {
|
|
61
|
+
this.firstIntervalForStartPicker = dayjs.tz(dayjs(), this.timezone).add(offset, "m").valueOf();
|
|
62
|
+
this.firstIntervalForEndPicker = dayjs.tz(dayjs(), this.timezone).add(offset, "m").add(this.interval, "m").valueOf();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// start date, 22 MAY === current date, 22 MAY !== end date, 30 MAY
|
|
66
|
+
else {
|
|
67
|
+
// current time is in last interval
|
|
68
|
+
if (currentTime >= dayjs.tz(this.startDateEpoch, this.timezone).endOf("d").subtract(this.interval, "m").valueOf()) {
|
|
69
|
+
this.firstIntervalForStartPicker = currentTime;
|
|
70
|
+
this.firstIntervalForEndPicker = dayjs.tz(this.endDateEpoch, this.timezone).endOf("d").valueOf();
|
|
71
|
+
}
|
|
72
|
+
// current time isn't in last interval
|
|
73
|
+
else {
|
|
74
|
+
this.firstIntervalForStartPicker = dayjs.tz(dayjs(), this.timezone).add(offset, "m").valueOf();
|
|
75
|
+
this.firstIntervalForEndPicker = dayjs.tz(this.endDateEpoch, this.timezone).valueOf();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// start date, 30 MAY !== current date, 22 MAY
|
|
80
|
+
else {
|
|
81
|
+
// start date === end Date
|
|
82
|
+
if (this.startDate === this.endDate) {
|
|
83
|
+
this.firstIntervalForStartPicker = dayjs.tz(this.startDateEpoch, this.timezone).startOf("d").valueOf();
|
|
84
|
+
this.firstIntervalForEndPicker = dayjs.tz(this.endDateEpoch, this.timezone).add(this.interval, "m").valueOf();
|
|
85
|
+
}
|
|
86
|
+
// start date !== end date
|
|
87
|
+
else {
|
|
88
|
+
this.firstIntervalForStartPicker = dayjs.tz(this.startDateEpoch, this.timezone).startOf("d").valueOf();
|
|
89
|
+
this.firstIntervalForEndPicker = dayjs.tz(this.startDateEpoch, this.timezone).startOf("d").valueOf();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (this.givenStartTime)
|
|
93
|
+
this.firstIntervalForStartPicker = this.givenStartTime;
|
|
94
|
+
if (this.givenEndTime)
|
|
95
|
+
this.firstIntervalForEndPicker = this.givenEndTime;
|
|
96
|
+
this.startTime = {
|
|
97
|
+
valid: true,
|
|
98
|
+
time: dayjs.tz(this.firstIntervalForStartPicker, this.timezone).format(this.timeFormat),
|
|
99
|
+
epoch: dayjs.tz(this.firstIntervalForStartPicker, this.timezone).valueOf()
|
|
100
|
+
};
|
|
101
|
+
this.endTime = {
|
|
102
|
+
valid: true,
|
|
103
|
+
time: dayjs.tz(this.firstIntervalForEndPicker, this.timezone).format(this.timeFormat),
|
|
104
|
+
epoch: dayjs.tz(this.firstIntervalForEndPicker, this.timezone).valueOf()
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
emitTimeRange(data) {
|
|
108
|
+
this.timeRangeEmitter.emit(data);
|
|
109
|
+
}
|
|
110
|
+
//handlers catch the emitted values and run validation
|
|
111
|
+
startPickerHandler(time) {
|
|
112
|
+
this.startTime = time;
|
|
113
|
+
this.rangeValidity = true;
|
|
114
|
+
// if the start time changes and the start date is the same as the end date
|
|
115
|
+
// and the start time >= end time
|
|
116
|
+
// update the first interval of end picker according to the time set in start picker
|
|
117
|
+
if (this.startDate === this.endDate) {
|
|
118
|
+
let minutes = dayjs.tz(this.startTime.time, this.timeFormat, this.timezone).minute();
|
|
119
|
+
let offset = this.interval - (minutes % this.interval);
|
|
120
|
+
this.firstIntervalForEndPicker = dayjs.tz(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`, this.timezone)
|
|
121
|
+
.add(offset, "m")
|
|
122
|
+
.valueOf();
|
|
123
|
+
// if the first interval == 12:00am, set it as 11:59pm
|
|
124
|
+
const intervalAsString = dayjs.tz(this.firstIntervalForEndPicker, this.timezone).format(this.timeFormat);
|
|
125
|
+
const endOfDayAsString = dayjs.tz(`${this.startDate}`, `DD-MM-YYYY`, this.timezone).endOf("d").add(1, "m").format(this.timeFormat);
|
|
126
|
+
if (intervalAsString === endOfDayAsString) {
|
|
127
|
+
this.firstIntervalForEndPicker = dayjs.tz(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`, this.timezone).endOf("d").valueOf();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const validity = this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) &&
|
|
132
|
+
this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);
|
|
133
|
+
this.rangeValidation(validity);
|
|
134
|
+
this.emitTimeRange({
|
|
135
|
+
valid: validity && this.rangeValidity,
|
|
136
|
+
startTime: this.startTime.time,
|
|
137
|
+
endTime: this.endTime.time,
|
|
138
|
+
startEpoch: dayjs.tz(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone).valueOf(),
|
|
139
|
+
endEpoch: dayjs.tz(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone).valueOf()
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
this.triggerChange = !this.triggerChange;
|
|
143
|
+
}
|
|
144
|
+
endPickerHandler(time) {
|
|
145
|
+
this.endTime = time;
|
|
146
|
+
const validity = this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) && this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);
|
|
147
|
+
this.rangeValidation(validity);
|
|
148
|
+
this.emitTimeRange({
|
|
149
|
+
valid: validity && this.rangeValidity,
|
|
150
|
+
startTime: this.startTime.time,
|
|
151
|
+
endTime: this.endTime.time,
|
|
152
|
+
startEpoch: dayjs.tz(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone).valueOf(),
|
|
153
|
+
endEpoch: dayjs.tz(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone).valueOf()
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
checkTimeValidity(time, date) {
|
|
157
|
+
const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;
|
|
158
|
+
const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;
|
|
159
|
+
const RE = this.clockFormat === 12 ? RE12 : RE24;
|
|
160
|
+
const timedayjs = dayjs.tz(`${dayjs.tz(date, this.timezone).format("DD-MM-YYYY")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`, this.timezone);
|
|
161
|
+
let flag = false;
|
|
162
|
+
// if the first interval is set to the start of the day
|
|
163
|
+
// then we don't check its validity against the current time
|
|
164
|
+
if ((this.givenStartTime && this.givenEndTime) || (this.startDate !== this.endDate && this.startDate !== this.currDate)) {
|
|
165
|
+
flag = time.match(RE) ? true : false;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
flag = time.match(RE) && timedayjs.diff(dayjs.tz(dayjs(), this.timezone), "m") >= 0 ? true : false;
|
|
169
|
+
}
|
|
170
|
+
return flag;
|
|
171
|
+
}
|
|
172
|
+
// validates end picker's input according to the start picker's input
|
|
173
|
+
rangeValidation(validity) {
|
|
174
|
+
if (validity && this.startDate === this.endDate) {
|
|
175
|
+
const startdayjs = dayjs.tz(this.startTime.time, this.timeFormat, this.timezone);
|
|
176
|
+
const enddayjs = dayjs.tz(this.endTime.time, this.timeFormat, this.timezone);
|
|
177
|
+
this.rangeValidity = enddayjs.diff(startdayjs, "m") >= 1 ? true : false;
|
|
178
|
+
this.cdr.detectChanges();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
TimeRangePickerComponent.ɵfac = function TimeRangePickerComponent_Factory(t) { return new (t || TimeRangePickerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
183
|
+
TimeRangePickerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimeRangePickerComponent, selectors: [["mis-timerangepicker"]], inputs: { inputWidth: "inputWidth", dropdownWidth: "dropdownWidth", height: "height", timezone: "timezone", startDateEpoch: "startDateEpoch", endDateEpoch: "endDateEpoch", givenStartTime: "givenStartTime", givenEndTime: "givenEndTime", clockFormat: "clockFormat", interval: "interval", showTooltip: "showTooltip", direction: "direction", gap: "gap", disableStartTime: "disableStartTime", disableEndTime: "disableEndTime" }, outputs: { timeRangeEmitter: "timeRangeEmitter" }, features: [i0.ɵɵNgOnChangesFeature], decls: 4, vars: 29, consts: [[1, "rangepicker-container", 3, "ngStyle"], [3, "clockFormat", "interval", "dateAsEpoch", "firstInterval", "timezone", "height", "inputWidth", "dropdownWidth", "showTooltip", "givenTime", "disable", "timeEmitter"], [4, "ngIf"], [3, "clockFormat", "interval", "dateAsEpoch", "firstInterval", "rangeValidity", "timezone", "height", "inputWidth", "dropdownWidth", "showTooltip", "givenTime", "triggerChange", "disable", "timeEmitter"]], template: function TimeRangePickerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
184
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "mis-timepicker", 1);
|
|
185
|
+
i0.ɵɵlistener("timeEmitter", function TimeRangePickerComponent_Template_mis_timepicker_timeEmitter_1_listener($event) { return ctx.startPickerHandler($event); });
|
|
186
|
+
i0.ɵɵelementEnd();
|
|
187
|
+
i0.ɵɵtemplate(2, TimeRangePickerComponent_p_2_Template, 2, 0, "p", 2);
|
|
188
|
+
i0.ɵɵelementStart(3, "mis-timepicker", 3);
|
|
189
|
+
i0.ɵɵlistener("timeEmitter", function TimeRangePickerComponent_Template_mis_timepicker_timeEmitter_3_listener($event) { return ctx.endPickerHandler($event); });
|
|
190
|
+
i0.ɵɵelementEnd()();
|
|
191
|
+
} if (rf & 2) {
|
|
192
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(26, _c0, ctx.direction, ctx.gap));
|
|
193
|
+
i0.ɵɵadvance(1);
|
|
194
|
+
i0.ɵɵproperty("clockFormat", ctx.clockFormat)("interval", ctx.interval)("dateAsEpoch", ctx.startDateEpoch)("firstInterval", ctx.firstIntervalForStartPicker)("timezone", ctx.timezone)("height", ctx.height)("inputWidth", ctx.inputWidth)("dropdownWidth", ctx.dropdownWidth)("showTooltip", ctx.showTooltip)("givenTime", ctx.givenStartTime)("disable", ctx.disableStartTime);
|
|
195
|
+
i0.ɵɵadvance(1);
|
|
196
|
+
i0.ɵɵproperty("ngIf", ctx.direction === "row");
|
|
197
|
+
i0.ɵɵadvance(1);
|
|
198
|
+
i0.ɵɵproperty("clockFormat", ctx.clockFormat)("interval", ctx.interval)("dateAsEpoch", ctx.endDateEpoch)("firstInterval", ctx.firstIntervalForEndPicker)("rangeValidity", ctx.rangeValidity)("timezone", ctx.timezone)("height", ctx.height)("inputWidth", ctx.inputWidth)("dropdownWidth", ctx.dropdownWidth)("showTooltip", ctx.showTooltip)("givenTime", ctx.givenEndTime)("triggerChange", ctx.triggerChange)("disable", ctx.disableEndTime);
|
|
199
|
+
} }, dependencies: [i1.NgIf, i1.NgStyle, i2.TimePickerComponent], styles: [".rangepicker-container[_ngcontent-%COMP%]{display:flex;gap:1rem;align-items:center}p[_ngcontent-%COMP%]{margin:0;display:inline-flex;align-items:center}"] });
|
|
200
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeRangePickerComponent, [{
|
|
201
|
+
type: Component,
|
|
202
|
+
args: [{ selector: "mis-timerangepicker", template: "<div class=\"rangepicker-container\" [ngStyle]=\"{'flexDirection': direction, 'gap': gap}\">\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"startDateEpoch\"\n [firstInterval]=\"firstIntervalForStartPicker\"\n (timeEmitter)=\"startPickerHandler($event)\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenStartTime\"\n [disable]=\"disableStartTime\"\n ></mis-timepicker>\n <p *ngIf=\"direction === 'row'\">-</p>\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"endDateEpoch\"\n [firstInterval]=\"firstIntervalForEndPicker\"\n (timeEmitter)=\"endPickerHandler($event)\"\n [rangeValidity]=\"rangeValidity\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenEndTime\"\n [triggerChange]=\"triggerChange\"\n [disable]=\"disableEndTime\"\n ></mis-timepicker>\n</div>\n", styles: [".rangepicker-container{display:flex;gap:1rem;align-items:center}p{margin:0;display:inline-flex;align-items:center}\n"] }]
|
|
203
|
+
}], function () { return [{ type: i0.ChangeDetectorRef }]; }, { inputWidth: [{
|
|
204
|
+
type: Input
|
|
205
|
+
}], dropdownWidth: [{
|
|
206
|
+
type: Input
|
|
207
|
+
}], height: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], timezone: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], startDateEpoch: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}], endDateEpoch: [{
|
|
214
|
+
type: Input
|
|
215
|
+
}], givenStartTime: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], givenEndTime: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], clockFormat: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}], interval: [{
|
|
222
|
+
type: Input
|
|
223
|
+
}], showTooltip: [{
|
|
224
|
+
type: Input
|
|
225
|
+
}], direction: [{
|
|
226
|
+
type: Input
|
|
227
|
+
}], gap: [{
|
|
228
|
+
type: Input
|
|
229
|
+
}], disableStartTime: [{
|
|
230
|
+
type: Input
|
|
231
|
+
}], disableEndTime: [{
|
|
232
|
+
type: Input
|
|
233
|
+
}], timeRangeEmitter: [{
|
|
234
|
+
type: Output
|
|
235
|
+
}] }); })();
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RpbWVyYW5nZXBpY2tlci90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGltZXJhbmdlcGlja2VyL3RpbWVyYW5nZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0lDV2pDLHlCQUErQjtJQUFBLGlCQUFDO0lBQUEsaUJBQUk7OztBRFR0QyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xCLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFNdkIsTUFBTSxPQUFPLHdCQUF3QjtJQTZCbkMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE1QmpDLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFFN0IsV0FBTSxHQUFXLE1BQU0sQ0FBQztRQUN4QixhQUFRLEdBQVcsY0FBYyxDQUFDO1FBQ2xDLG1CQUFjLEdBQVcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEUsaUJBQVksR0FBVyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUdsRSxn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QVc7a0JBQW5CLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDRyxHQUFHO2tCQUFYLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0ksZ0JBQWdCO2tCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElUaW1lUmFuZ2UsIElUaW1lLCBURGlyZWN0aW9uIH0gZnJvbSBcIi4vdGltZXJhbmdlLm5hbWVzcGFjZVwiO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB0aW1lem9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcblxuZGF5anMuZXh0ZW5kKHV0Yyk7XG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10aW1lcmFuZ2VwaWNrZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3RpbWVyYW5nZXBpY2tlci5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBpbnB1dFdpZHRoOiBzdHJpbmcgPSBcIjEwMHB4XCI7XG4gIEBJbnB1dCgpIGRyb3Bkb3duV2lkdGg/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gXCI0NnB4XCI7XG4gIEBJbnB1dCgpIHRpbWV6b25lOiBzdHJpbmcgPSBcIkFzaWEvS29sa2F0YVwiO1xuICBASW5wdXQoKSBzdGFydERhdGVFcG9jaDogbnVtYmVyID0gZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSkudmFsdWVPZigpO1xuICBASW5wdXQoKSBlbmREYXRlRXBvY2g6IG51bWJlciA9IGRheWpzLnR6KGRheWpzKCksIHRoaXMudGltZXpvbmUpLnZhbHVlT2YoKTtcbiAgQElucHV0KCkgZ2l2ZW5TdGFydFRpbWU6IG51bWJlcjtcbiAgQElucHV0KCkgZ2l2ZW5FbmRUaW1lOiBudW1iZXI7XG4gIEBJbnB1dCgpIGNsb2NrRm9ybWF0OiBudW1iZXIgPSAxMjtcbiAgQElucHV0KCkgaW50ZXJ2YWw6IG51bWJlciA9IDE1O1xuICBASW5wdXQoKSBzaG93VG9vbHRpcDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogVERpcmVjdGlvbiA9ICdyb3cnO1xuICBASW5wdXQoKSBnYXA6IHN0cmluZyA9ICcxcmVtJztcbiAgQElucHV0KCkgZGlzYWJsZVN0YXJ0VGltZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlRW5kVGltZTogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgdGltZVJhbmdlRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8SVRpbWVSYW5nZT4oKTtcblxuICBzdGFydERhdGUhOiBzdHJpbmc7XG4gIGVuZERhdGUhOiBzdHJpbmc7XG4gIGN1cnJEYXRlITogc3RyaW5nO1xuICB0aW1lRm9ybWF0ITogc3RyaW5nO1xuICBmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXI6IG51bWJlciA9IGRheWpzKCkudmFsdWVPZigpO1xuICBmaXJzdEludGVydmFsRm9yRW5kUGlja2VyOiBudW1iZXIgPSBkYXlqcygpLnZhbHVlT2YoKTtcbiAgc3RhcnRUaW1lITogSVRpbWU7XG4gIGVuZFRpbWUhOiBJVGltZTtcbiAgcmFuZ2VWYWxpZGl0eTogYm9vbGVhbiA9IHRydWU7XG4gIHRyaWdnZXJDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy50aW1lRm9ybWF0ID0gdGhpcy5jbG9ja0Zvcm1hdCA9PT0gMTIgPyBcImhoOm1tIGFcIiA6IFwiSEg6bW1cIjtcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IGRheWpzLnR6KHRoaXMuc3RhcnREYXRlRXBvY2gsIHRoaXMudGltZXpvbmUpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XG4gICAgdGhpcy5lbmREYXRlID0gZGF5anMudHoodGhpcy5lbmREYXRlRXBvY2gsIHRoaXMudGltZXpvbmUpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XG4gICAgdGhpcy5jdXJyRGF0ZSA9IGRheWpzLnR6KGRheWpzKCksIHRoaXMudGltZXpvbmUpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XG4gICAgdGhpcy5zZXRGaXJzdEludGVydmFscygpO1xuICB9XG5cbiAgLy8gY2FsY3VsYXRlIHRoZSBmaXJzdCBpbnRlcnZhbCBvZiB0aGUgcGlja2VyXG4gIHNldEZpcnN0SW50ZXJ2YWxzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXlqcy50eihkYXlqcygpLCB0aGlzLnRpbWV6b25lKS5taW51dGUoKTtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmludGVydmFsIC0gKG1pbnV0ZXMgJSB0aGlzLmludGVydmFsKTtcblxuICAgIC8vIHN0YXJ0IGRhdGUsIDIyIE1BWSA9PT0gIGN1cnJlbnQgZGF0ZSwgMjIgTUFZXG4gICAgaWYoIHRoaXMuc3RhcnREYXRlID09PSB0aGlzLmN1cnJEYXRlICl7XG4gICAgICBjb25zdCBjdXJyZW50VGltZSA9IGRheWpzLnR6KGRheWpzKCksIHRoaXMudGltZXpvbmUpLnZhbHVlT2YoKTtcblxuICAgICAgLy8gc3RhcnQgZGF0ZSwgMjIgTUFZICA9PT0gY3VycmVudCBkYXRlLCAyMiBNQVkgPT09IGVuZCBkYXRlLCAyMiBNQVlcbiAgICAgIGlmKHRoaXMuc3RhcnREYXRlID09PSB0aGlzLmVuZERhdGUpe1xuXG4gICAgICAgIC8vIGN1cnJlbnQgdGltZSBpcyBpbiBsYXN0IGludGVydmFsXG4gICAgICAgIGlmKGN1cnJlbnRUaW1lID49IGRheWpzLnR6KHRoaXMuc3RhcnREYXRlRXBvY2gsIHRoaXMudGltZXpvbmUpLmVuZE9mKFwiZFwiKS5zdWJ0cmFjdCh0aGlzLmludGVydmFsLFwibVwiKS52YWx1ZU9mKCkpe1xuICAgICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gY3VycmVudFRpbWU7XG4gICAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gIGRheWpzLnR6KHRoaXMuZW5kRGF0ZUVwb2NoLCB0aGlzLnRpbWV6b25lKS5lbmRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGN1cnJlbnQgdGltZSBpc24ndCBpbiBsYXN0IGludGVydmFsXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSkuYWRkKG9mZnNldCwgXCJtXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSAgZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSkuYWRkKG9mZnNldCwgXCJtXCIpLmFkZCh0aGlzLmludGVydmFsLCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgICB9IFxuICAgICAgLy8gc3RhcnQgZGF0ZSwgMjIgTUFZID09PSBjdXJyZW50IGRhdGUsIDIyIE1BWSAhPT0gZW5kIGRhdGUsIDMwIE1BWVxuICAgICAgZWxzZSB7XG4gICAgICAgIC8vIGN1cnJlbnQgdGltZSBpcyBpbiBsYXN0IGludGVydmFsXG4gICAgICAgIGlmKGN1cnJlbnRUaW1lID49IGRheWpzLnR6KHRoaXMuc3RhcnREYXRlRXBvY2gsIHRoaXMudGltZXpvbmUpLmVuZE9mKFwiZFwiKS5zdWJ0cmFjdCh0aGlzLmludGVydmFsLFwibVwiKS52YWx1ZU9mKCkpe1xuICAgICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gY3VycmVudFRpbWU7XG4gICAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gIGRheWpzLnR6KHRoaXMuZW5kRGF0ZUVwb2NoLCB0aGlzLnRpbWV6b25lKS5lbmRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGN1cnJlbnQgdGltZSBpc24ndCBpbiBsYXN0IGludGVydmFsXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSkuYWRkKG9mZnNldCwgXCJtXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSAgZGF5anMudHoodGhpcy5lbmREYXRlRXBvY2gsIHRoaXMudGltZXpvbmUpLnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBzdGFydCBkYXRlLCAzMCBNQVkgIT09IGN1cnJlbnQgZGF0ZSwgMjIgTUFZXG4gICAgZWxzZSB7XG4gICAgICAvLyBzdGFydCBkYXRlID09PSBlbmQgRGF0ZVxuICAgICAgaWYodGhpcy5zdGFydERhdGUgPT09IHRoaXMuZW5kRGF0ZSl7XG4gICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gZGF5anMudHoodGhpcy5zdGFydERhdGVFcG9jaCwgdGhpcy50aW1lem9uZSkuc3RhcnRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSAgZGF5anMudHoodGhpcy5lbmREYXRlRXBvY2gsIHRoaXMudGltZXpvbmUpLmFkZCh0aGlzLmludGVydmFsLCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgfSBcbiAgICAgIC8vIHN0YXJ0IGRhdGUgIT09IGVuZCBkYXRlXG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBkYXlqcy50eih0aGlzLnN0YXJ0RGF0ZUVwb2NoLCB0aGlzLnRpbWV6b25lKS5zdGFydE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9ICBkYXlqcy50eih0aGlzLnN0YXJ0RGF0ZUVwb2NoLCB0aGlzLnRpbWV6b25lKS5zdGFydE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYodGhpcy5naXZlblN0YXJ0VGltZSlcbiAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gdGhpcy5naXZlblN0YXJ0VGltZTtcbiAgIFxuICAgIGlmKHRoaXMuZ2l2ZW5FbmRUaW1lKVxuICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gdGhpcy5naXZlbkVuZFRpbWU7XG4gICAgICBcbiAgICB0aGlzLnN0YXJ0VGltZSA9IHtcbiAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgdGltZTogZGF5anMudHoodGhpcy5maXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIsIHRoaXMudGltZXpvbmUpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpLFxuICAgICAgZXBvY2g6IGRheWpzLnR6KHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyLCB0aGlzLnRpbWV6b25lKS52YWx1ZU9mKClcbiAgICB9O1xuXG4gICAgdGhpcy5lbmRUaW1lID0ge1xuICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICB0aW1lOiBkYXlqcy50eih0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIsIHRoaXMudGltZXpvbmUpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpLFxuICAgICAgZXBvY2g6IGRheWpzLnR6KHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciwgdGhpcy50aW1lem9uZSkudmFsdWVPZigpXG4gICAgfTtcbiAgfVxuXG4gIGVtaXRUaW1lUmFuZ2UoZGF0YTogSVRpbWVSYW5nZSk6IHZvaWQge1xuICAgIHRoaXMudGltZVJhbmdlRW1pdHRlci5lbWl0KGRhdGEpO1xuICB9XG5cbiAgLy9oYW5kbGVycyBjYXRjaCB0aGUgZW1pdHRlZCB2YWx1ZXMgYW5kIHJ1biB2YWxpZGF0aW9uXG4gIHN0YXJ0UGlja2VySGFuZGxlcih0aW1lOiBJVGltZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnRUaW1lID0gdGltZTtcbiAgICB0aGlzLnJhbmdlVmFsaWRpdHkgPSB0cnVlO1xuICAgIC8vIGlmIHRoZSBzdGFydCB0aW1lIGNoYW5nZXMgYW5kIHRoZSBzdGFydCBkYXRlIGlzIHRoZSBzYW1lIGFzIHRoZSBlbmQgZGF0ZVxuICAgIC8vIGFuZCB0aGUgc3RhcnQgdGltZSA+PSAgZW5kIHRpbWVcbiAgICAvLyB1cGRhdGUgdGhlIGZpcnN0IGludGVydmFsIG9mIGVuZCBwaWNrZXIgYWNjb3JkaW5nIHRvIHRoZSB0aW1lIHNldCBpbiBzdGFydCBwaWNrZXJcbiAgICBpZiAodGhpcy5zdGFydERhdGUgPT09IHRoaXMuZW5kRGF0ZSkge1xuICAgICAgbGV0IG1pbnV0ZXMgPSBkYXlqcy50eih0aGlzLnN0YXJ0VGltZS50aW1lLCB0aGlzLnRpbWVGb3JtYXQsIHRoaXMudGltZXpvbmUpLm1pbnV0ZSgpO1xuICAgICAgbGV0IG9mZnNldCA9IHRoaXMuaW50ZXJ2YWwgLSAobWludXRlcyAlIHRoaXMuaW50ZXJ2YWwpO1xuICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gZGF5anMudHooYCR7dGhpcy5zdGFydERhdGV9ICR7dGhpcy5zdGFydFRpbWUudGltZX1gLCBgJ0RELU1NLVlZWVknICR7dGhpcy50aW1lRm9ybWF0fWAsIHRoaXMudGltZXpvbmUpXG4gICAgICAgIC5hZGQob2Zmc2V0LCBcIm1cIilcbiAgICAgICAgLnZhbHVlT2YoKTtcblxuICAgICAgLy8gaWYgdGhlIGZpcnN0IGludGVydmFsID09IDEyOjAwYW0sIHNldCBpdCBhcyAxMTo1OXBtXG4gICAgICBjb25zdCBpbnRlcnZhbEFzU3RyaW5nID0gZGF5anMudHoodGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyLCB0aGlzLnRpbWV6b25lKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KTtcbiAgICAgIGNvbnN0IGVuZE9mRGF5QXNTdHJpbmcgPSBkYXlqcy50eihgJHt0aGlzLnN0YXJ0RGF0ZX1gLCBgREQtTU0tWVlZWWAsIHRoaXMudGltZXpvbmUpLmVuZE9mKFwiZFwiKS5hZGQoMSwgXCJtXCIpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpO1xuICAgICAgaWYgKGludGVydmFsQXNTdHJpbmcgPT09IGVuZE9mRGF5QXNTdHJpbmcpIHtcbiAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gZGF5anMudHooYCR7dGhpcy5zdGFydERhdGV9ICR7dGhpcy5zdGFydFRpbWUudGltZX1gLCBgJ0RELU1NLVlZWVknICR7dGhpcy50aW1lRm9ybWF0fWAsIHRoaXMudGltZXpvbmUpLmVuZE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB2YWxpZGl0eSA9XG4gICAgICAgIHRoaXMuY2hlY2tUaW1lVmFsaWRpdHkodGhpcy5zdGFydFRpbWUudGltZS50cmltKCksIHRoaXMuc3RhcnREYXRlRXBvY2gpICYmXG4gICAgICAgIHRoaXMuY2hlY2tUaW1lVmFsaWRpdHkodGhpcy5lbmRUaW1lLnRpbWUudHJpbSgpLCB0aGlzLmVuZERhdGVFcG9jaCk7XG5cbiAgICAgICAgdGhpcy5yYW5nZVZhbGlkYXRpb24odmFsaWRpdHkpO1xuICAgICAgICB0aGlzLmVtaXRUaW1lUmFuZ2Uoe1xuICAgICAgICAgIHZhbGlkOiB2YWxpZGl0eSAmJiB0aGlzLnJhbmdlVmFsaWRpdHksXG4gICAgICAgICAgc3RhcnRUaW1lOiB0aGlzLnN0YXJ0VGltZS50aW1lLFxuICAgICAgICAgIGVuZFRpbWU6IHRoaXMuZW5kVGltZS50aW1lLFxuICAgICAgICAgIHN0YXJ0RXBvY2g6IGRheWpzLnR6KGAke3RoaXMuc3RhcnREYXRlfSAke3RoaXMuc3RhcnRUaW1lLnRpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLnRpbWVGb3JtYXR9YCwgdGhpcy50aW1lem9uZSkudmFsdWVPZigpLFxuICAgICAgICAgIGVuZEVwb2NoOiBkYXlqcy50eihgJHt0aGlzLmVuZERhdGV9ICR7dGhpcy5lbmRUaW1lLnRpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLnRpbWVGb3JtYXR9YCwgdGhpcy50aW1lem9uZSkudmFsdWVPZigpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudHJpZ2dlckNoYW5nZSA9ICF0aGlzLnRyaWdnZXJDaGFuZ2U7XG4gIH1cblxuICBlbmRQaWNrZXJIYW5kbGVyKHRpbWU6IElUaW1lKTogdm9pZCB7XG4gICAgdGhpcy5lbmRUaW1lID0gdGltZTtcblxuICAgIGNvbnN0IHZhbGlkaXR5ID1cbiAgICAgIHRoaXMuY2hlY2tUaW1lVmFsaWRpdHkodGhpcy5zdGFydFRpbWUudGltZS50cmltKCksIHRoaXMuc3RhcnREYXRlRXBvY2gpICYmIHRoaXMuY2hlY2tUaW1lVmFsaWRpdHkodGhpcy5lbmRUaW1lLnRpbWUudHJpbSgpLCB0aGlzLmVuZERhdGVFcG9jaCk7XG5cbiAgICB0aGlzLnJhbmdlVmFsaWRhdGlvbih2YWxpZGl0eSk7XG4gICAgdGhpcy5lbWl0VGltZVJhbmdlKHtcbiAgICAgIHZhbGlkOiB2YWxpZGl0eSAmJiB0aGlzLnJhbmdlVmFsaWRpdHksXG4gICAgICBzdGFydFRpbWU6IHRoaXMuc3RhcnRUaW1lLnRpbWUsXG4gICAgICBlbmRUaW1lOiB0aGlzLmVuZFRpbWUudGltZSxcbiAgICAgIHN0YXJ0RXBvY2g6IGRheWpzLnR6KGAke3RoaXMuc3RhcnREYXRlfSAke3RoaXMuc3RhcnRUaW1lLnRpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLnRpbWVGb3JtYXR9YCwgdGhpcy50aW1lem9uZSkudmFsdWVPZigpLFxuICAgICAgZW5kRXBvY2g6IGRheWpzLnR6KGAke3RoaXMuZW5kRGF0ZX0gJHt0aGlzLmVuZFRpbWUudGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gLCB0aGlzLnRpbWV6b25lKS52YWx1ZU9mKClcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrVGltZVZhbGlkaXR5KHRpbWU6IHN0cmluZywgZGF0ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgUkUxMiA9IC9eKChbMF1bMS05XXwxWzAtMl0pOihbMC01XVswLTldKSggKT8oYW18cG18QU18UE0pKSQvaTtcbiAgICBjb25zdCBSRTI0ID0gL14oWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSQvO1xuICAgIGNvbnN0IFJFID0gdGhpcy5jbG9ja0Zvcm1hdCA9PT0gMTIgPyBSRTEyIDogUkUyNDtcblxuICAgIGNvbnN0IHRpbWVkYXlqcyA9IGRheWpzLnR6KGAke2RheWpzLnR6KGRhdGUsIHRoaXMudGltZXpvbmUpLmZvcm1hdChcIkRELU1NLVlZWVlcIil9ICR7dGltZX1gLCBgJ0RELU1NLVlZWVknICR7dGhpcy50aW1lRm9ybWF0fWAsIHRoaXMudGltZXpvbmUpO1xuICAgIGxldCBmbGFnOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBpZiB0aGUgZmlyc3QgaW50ZXJ2YWwgaXMgc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5XG4gICAgLy8gdGhlbiB3ZSBkb24ndCBjaGVjayBpdHMgdmFsaWRpdHkgYWdhaW5zdCB0aGUgY3VycmVudCB0aW1lXG4gICAgaWYgKCh0aGlzLmdpdmVuU3RhcnRUaW1lICYmIHRoaXMuZ2l2ZW5FbmRUaW1lKSB8fCAodGhpcy5zdGFydERhdGUgIT09IHRoaXMuZW5kRGF0ZSAmJiB0aGlzLnN0YXJ0RGF0ZSAhPT0gdGhpcy5jdXJyRGF0ZSkpIHtcbiAgICAgIGZsYWcgPSB0aW1lLm1hdGNoKFJFKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmxhZyA9IHRpbWUubWF0Y2goUkUpICYmIHRpbWVkYXlqcy5kaWZmKGRheWpzLnR6KGRheWpzKCksIHRoaXMudGltZXpvbmUpLCBcIm1cIikgPj0gMCA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmxhZztcbiAgfVxuXG4gIC8vIHZhbGlkYXRlcyBlbmQgcGlja2VyJ3MgaW5wdXQgYWNjb3JkaW5nIHRvIHRoZSBzdGFydCBwaWNrZXIncyBpbnB1dFxuICByYW5nZVZhbGlkYXRpb24odmFsaWRpdHk6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsaWRpdHkgJiYgdGhpcy5zdGFydERhdGUgPT09IHRoaXMuZW5kRGF0ZSkge1xuICAgICAgY29uc3Qgc3RhcnRkYXlqcyA9IGRheWpzLnR6KHRoaXMuc3RhcnRUaW1lLnRpbWUsIHRoaXMudGltZUZvcm1hdCwgdGhpcy50aW1lem9uZSk7XG4gICAgICBjb25zdCBlbmRkYXlqcyA9IGRheWpzLnR6KHRoaXMuZW5kVGltZS50aW1lLCB0aGlzLnRpbWVGb3JtYXQsIHRoaXMudGltZXpvbmUpO1xuICAgICAgdGhpcy5yYW5nZVZhbGlkaXR5ID0gZW5kZGF5anMuZGlmZihzdGFydGRheWpzLCBcIm1cIikgPj0gMSA/IHRydWUgOiBmYWxzZTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cInJhbmdlcGlja2VyLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsnZmxleERpcmVjdGlvbic6IGRpcmVjdGlvbiwgJ2dhcCc6IGdhcH1cIj5cbiAgPG1pcy10aW1lcGlja2VyXG4gICAgW2Nsb2NrRm9ybWF0XT1cImNsb2NrRm9ybWF0XCJcbiAgICBbaW50ZXJ2YWxdPVwiaW50ZXJ2YWxcIlxuICAgIFtkYXRlQXNFcG9jaF09XCJzdGFydERhdGVFcG9jaFwiXG4gICAgW2ZpcnN0SW50ZXJ2YWxdPVwiZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyXCJcbiAgICAodGltZUVtaXR0ZXIpPVwic3RhcnRQaWNrZXJIYW5kbGVyKCRldmVudClcIlxuICAgIFt0aW1lem9uZV09XCJ0aW1lem9uZVwiXG4gICAgW2hlaWdodF09XCJoZWlnaHRcIlxuICAgIFtpbnB1dFdpZHRoXT1cImlucHV0V2lkdGhcIlxuICAgIFtkcm9wZG93bldpZHRoXT1cImRyb3Bkb3duV2lkdGhcIlxuICAgIFtzaG93VG9vbHRpcF09XCJzaG93VG9vbHRpcFwiXG4gICAgW2dpdmVuVGltZV09XCJnaXZlblN0YXJ0VGltZVwiXG4gICAgW2Rpc2FibGVdPVwiZGlzYWJsZVN0YXJ0VGltZVwiXG4gID48L21pcy10aW1lcGlja2VyPlxuICA8cCAqbmdJZj1cImRpcmVjdGlvbiA9PT0gJ3JvdydcIj4tPC9wPlxuICA8bWlzLXRpbWVwaWNrZXJcbiAgICBbY2xvY2tGb3JtYXRdPVwiY2xvY2tGb3JtYXRcIlxuICAgIFtpbnRlcnZhbF09XCJpbnRlcnZhbFwiXG4gICAgW2RhdGVBc0Vwb2NoXT1cImVuZERhdGVFcG9jaFwiXG4gICAgW2ZpcnN0SW50ZXJ2YWxdPVwiZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlclwiXG4gICAgKHRpbWVFbWl0dGVyKT1cImVuZFBpY2tlckhhbmRsZXIoJGV2ZW50KVwiXG4gICAgW3JhbmdlVmFsaWRpdHldPVwicmFuZ2VWYWxpZGl0eVwiXG4gICAgW3RpbWV6b25lXT1cInRpbWV6b25lXCJcbiAgICBbaGVpZ2h0XT1cImhlaWdodFwiXG4gICAgW2lucHV0V2lkdGhdPVwiaW5wdXRXaWR0aFwiXG4gICAgW2Ryb3Bkb3duV2lkdGhdPVwiZHJvcGRvd25XaWR0aFwiXG4gICAgW3Nob3dUb29sdGlwXT1cInNob3dUb29sdGlwXCJcbiAgICBbZ2l2ZW5UaW1lXT1cImdpdmVuRW5kVGltZVwiXG4gICAgW3RyaWdnZXJDaGFuZ2VdPVwidHJpZ2dlckNoYW5nZVwiXG4gICAgW2Rpc2FibGVdPVwiZGlzYWJsZUVuZFRpbWVcIlxuICA+PC9taXMtdGltZXBpY2tlcj5cbjwvZGl2PlxuIl19
|
|
@@ -8,11 +8,11 @@ export class TimeRangePickerModule {
|
|
|
8
8
|
static forRoot() {
|
|
9
9
|
return { ngModule: TimeRangePickerModule, providers: [] };
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = function TimeRangePickerModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimeRangePickerModule)(); }; }
|
|
12
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TimeRangePickerModule }); }
|
|
13
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, FormsModule, TimePickerModule] }); }
|
|
14
11
|
}
|
|
15
|
-
(
|
|
12
|
+
TimeRangePickerModule.ɵfac = function TimeRangePickerModule_Factory(t) { return new (t || TimeRangePickerModule)(); };
|
|
13
|
+
TimeRangePickerModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TimeRangePickerModule });
|
|
14
|
+
TimeRangePickerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, FormsModule, TimePickerModule] });
|
|
15
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeRangePickerModule, [{
|
|
16
16
|
type: NgModule,
|
|
17
17
|
args: [{
|
|
18
18
|
declarations: [TimeRangePickerComponent],
|
|
@@ -21,4 +21,4 @@ export class TimeRangePickerModule {
|
|
|
21
21
|
}]
|
|
22
22
|
}], null, null); })();
|
|
23
23
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(TimeRangePickerModule, { declarations: [TimeRangePickerComponent], imports: [CommonModule, FormsModule, TimePickerModule], exports: [TimeRangePickerComponent] }); })();
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXJhbmdlcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RpbWVyYW5nZXBpY2tlci90aW1lcmFuZ2VwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBT3hFLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM1RCxDQUFDOzswRkFIVSxxQkFBcUI7dUVBQXJCLHFCQUFxQjsyRUFIdEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0I7dUZBRzFDLHFCQUFxQjtjQUxqQyxRQUFRO2VBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7Z0JBQ3RELE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2FBQ3BDOzt3RkFDWSxxQkFBcUIsbUJBSmpCLHdCQUF3QixhQUM3QixZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixhQUMzQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUaW1lUGlja2VyTW9kdWxlIH0gZnJvbSBcIm1pcy1jcnlzdGFsLWRlc2lnbi1zeXN0ZW0vdGltZXBpY2tlclwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgVGltZVBpY2tlck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVSYW5nZVBpY2tlck1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VGltZVJhbmdlUGlja2VyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHsgbmdNb2R1bGU6IFRpbWVSYW5nZVBpY2tlck1vZHVsZSwgcHJvdmlkZXJzOiBbXSB9O1xuICB9XG59Il19
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { animate, style, transition, trigger } from "@angular/animations";
|
|
2
|
+
import { Component } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./toast.data.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
function ToastComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
7
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 2)(2, "div", 3);
|
|
8
|
+
i0.ɵɵtext(3);
|
|
9
|
+
i0.ɵɵelementEnd()()();
|
|
10
|
+
} if (rf & 2) {
|
|
11
|
+
const msg_r1 = ctx.$implicit;
|
|
12
|
+
i0.ɵɵproperty("@fadeInOut", undefined);
|
|
13
|
+
i0.ɵɵadvance(3);
|
|
14
|
+
i0.ɵɵtextInterpolate(msg_r1);
|
|
15
|
+
} }
|
|
16
|
+
export class ToastComponent {
|
|
17
|
+
constructor(data) {
|
|
18
|
+
this.data = data;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
ToastComponent.ɵfac = function ToastComponent_Factory(t) { return new (t || ToastComponent)(i0.ɵɵdirectiveInject(i1.ToastDataService)); };
|
|
22
|
+
ToastComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ToastComponent, selectors: [["mis-teams-toast"]], decls: 2, vars: 1, consts: [[1, "toast-container"], [4, "ngFor", "ngForOf"], [1, "toast-wrapper"], [1, "msg"]], template: function ToastComponent_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
24
|
+
i0.ɵɵtemplate(1, ToastComponent_div_1_Template, 4, 2, "div", 1);
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
} if (rf & 2) {
|
|
27
|
+
i0.ɵɵadvance(1);
|
|
28
|
+
i0.ɵɵproperty("ngForOf", ctx.data.messages);
|
|
29
|
+
} }, dependencies: [i2.NgForOf], styles: [".toast-container[_ngcontent-%COMP%]{transition:max-height .3s ease-in}.toast-container[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{position:relative;display:flex;justify-content:center}.toast-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:20px;padding:14px 12px;background:#181f33;box-shadow:0 12px 17px #00000024,0 5px 22px #0000001f,0 7px 8px #0003;border-radius:4px;transition:all .3s ease-in;min-height:44px;transform-origin:top}.toast-wrapper[_ngcontent-%COMP%] .msg[_ngcontent-%COMP%]{color:#fff;max-width:314px;flex:1 1 314px;font-size:14px;line-height:20px;letter-spacing:.2px}@media screen and (max-width: 360px){.toast-wrapper[_ngcontent-%COMP%] .msg[_ngcontent-%COMP%]{max-width:90vw;flex:1 1 90vw}}"], data: { animation: [
|
|
30
|
+
trigger("fadeInOut", [
|
|
31
|
+
transition(":enter", [
|
|
32
|
+
style({ opacity: "0", transform: "translateY(-50%)", height: "0" }),
|
|
33
|
+
animate("300ms ease-in", style({ opacity: "1", transform: "translateY(0)", height: "*" }))
|
|
34
|
+
]),
|
|
35
|
+
transition(":leave", [animate("300ms ease-in", style({ opacity: "0", transform: "translateY(50%)" }))])
|
|
36
|
+
])
|
|
37
|
+
] } });
|
|
38
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToastComponent, [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: "mis-teams-toast", animations: [
|
|
41
|
+
trigger("fadeInOut", [
|
|
42
|
+
transition(":enter", [
|
|
43
|
+
style({ opacity: "0", transform: "translateY(-50%)", height: "0" }),
|
|
44
|
+
animate("300ms ease-in", style({ opacity: "1", transform: "translateY(0)", height: "*" }))
|
|
45
|
+
]),
|
|
46
|
+
transition(":leave", [animate("300ms ease-in", style({ opacity: "0", transform: "translateY(50%)" }))])
|
|
47
|
+
])
|
|
48
|
+
], template: "<div class=\"toast-container\">\n <div *ngFor=\"let msg of data.messages\" @fadeInOut>\n <div class=\"toast-wrapper\">\n <div class=\"msg\">{{ msg }}</div>\n </div>\n </div>\n</div>\n", styles: [".toast-container{transition:max-height .3s ease-in}.toast-container>div{position:relative;display:flex;justify-content:center}.toast-wrapper{display:flex;flex-direction:row;align-items:center;gap:20px;padding:14px 12px;background:#181f33;box-shadow:0 12px 17px #00000024,0 5px 22px #0000001f,0 7px 8px #0003;border-radius:4px;transition:all .3s ease-in;min-height:44px;transform-origin:top}.toast-wrapper .msg{color:#fff;max-width:314px;flex:1 1 314px;font-size:14px;line-height:20px;letter-spacing:.2px}@media screen and (max-width: 360px){.toast-wrapper .msg{max-width:90vw;flex:1 1 90vw}}\n"] }]
|
|
49
|
+
}], function () { return [{ type: i1.ToastDataService }]; }, null); })();
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0lDQXhDLDJCQUFrRCxhQUFBLGFBQUE7SUFFN0IsWUFBUztJQUFBLGlCQUFNLEVBQUEsRUFBQTs7O0lBRkcsc0NBQVU7SUFFNUIsZUFBUztJQUFULDRCQUFTOztBRGVoQyxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFtQixJQUFzQjtRQUF0QixTQUFJLEdBQUosSUFBSSxDQUFrQjtJQUFHLENBQUM7OzRFQURsQyxjQUFjO2lFQUFkLGNBQWM7UUNsQjNCLDhCQUE2QjtRQUMzQiwrREFJTTtRQUNSLGlCQUFNOztRQUxpQixlQUFnQjtRQUFoQiwyQ0FBZ0I7bXpCRE96QjtZQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBQ25CLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztvQkFDbkUsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7aUJBQzNGLENBQUM7Z0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4RyxDQUFDO1NBQ0g7dUZBRVUsY0FBYztjQWQxQixTQUFTOzJCQUNFLGlCQUFpQixjQUdmO29CQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7d0JBQ25CLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQzs0QkFDbkUsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7eUJBQzNGLENBQUM7d0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDeEcsQ0FBQztpQkFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUb2FzdERhdGFTZXJ2aWNlIH0gZnJvbSBcIi4vdG9hc3QuZGF0YS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtdGVhbXMtdG9hc3RcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90b2FzdC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdG9hc3QuY29tcG9uZW50LnNjc3NcIl0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFwiZmFkZUluT3V0XCIsIFtcbiAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IFwiMFwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgtNTAlKVwiLCBoZWlnaHQ6IFwiMFwiIH0pLFxuICAgICAgICBhbmltYXRlKFwiMzAwbXMgZWFzZS1pblwiLCBzdHlsZSh7IG9wYWNpdHk6IFwiMVwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgwKVwiLCBoZWlnaHQ6IFwiKlwiIH0pKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKFwiOmxlYXZlXCIsIFthbmltYXRlKFwiMzAwbXMgZWFzZS1pblwiLCBzdHlsZSh7IG9wYWNpdHk6IFwiMFwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSg1MCUpXCIgfSkpXSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGE6IFRvYXN0RGF0YVNlcnZpY2UpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwidG9hc3QtY29udGFpbmVyXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IG1zZyBvZiBkYXRhLm1lc3NhZ2VzXCIgQGZhZGVJbk91dD5cbiAgICA8ZGl2IGNsYXNzPVwidG9hc3Qtd3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1zZ1wiPnt7IG1zZyB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Injectable } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class ToastDataService {
|
|
4
|
-
get messages() {
|
|
5
|
-
return Array.from(this.messageMap.values()).reverse();
|
|
6
|
-
}
|
|
7
4
|
constructor() {
|
|
8
5
|
this.messageMap = new Map();
|
|
9
6
|
}
|
|
7
|
+
get messages() {
|
|
8
|
+
return Array.from(this.messageMap.values()).reverse();
|
|
9
|
+
}
|
|
10
10
|
updateMessage(msg) {
|
|
11
11
|
const id = new Date().getTime();
|
|
12
12
|
this.messageMap.set(id, msg);
|
|
@@ -18,13 +18,13 @@ export class ToastDataService {
|
|
|
18
18
|
hasMessage() {
|
|
19
19
|
return this.messageMap.size > 0;
|
|
20
20
|
}
|
|
21
|
-
static { this.ɵfac = function ToastDataService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ToastDataService)(); }; }
|
|
22
|
-
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ToastDataService, factory: ToastDataService.ɵfac, providedIn: "root" }); }
|
|
23
21
|
}
|
|
24
|
-
(
|
|
22
|
+
ToastDataService.ɵfac = function ToastDataService_Factory(t) { return new (t || ToastDataService)(); };
|
|
23
|
+
ToastDataService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ToastDataService, factory: ToastDataService.ɵfac, providedIn: "root" });
|
|
24
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToastDataService, [{
|
|
25
25
|
type: Injectable,
|
|
26
26
|
args: [{
|
|
27
27
|
providedIn: "root"
|
|
28
28
|
}]
|
|
29
|
-
}], ()
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
}], function () { return []; }, null); })();
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QuZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0I7UUFMUSxlQUFVLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFLckMsQ0FBQztJQUpoQixJQUFJLFFBQVE7UUFDVixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFJRCxhQUFhLENBQUMsR0FBVztRQUN2QixNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM3QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBVTtRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O2dGQXBCVSxnQkFBZ0I7c0VBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0IsbUJBRmYsTUFBTTt1RkFFUCxnQkFBZ0I7Y0FINUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3REYXRhU2VydmljZSB7XG4gIHByaXZhdGUgbWVzc2FnZU1hcDogTWFwPG51bWJlciwgc3RyaW5nPiA9IG5ldyBNYXAoKTtcbiAgZ2V0IG1lc3NhZ2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLm1lc3NhZ2VNYXAudmFsdWVzKCkpLnJldmVyc2UoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICB1cGRhdGVNZXNzYWdlKG1zZzogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBpZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIHRoaXMubWVzc2FnZU1hcC5zZXQoaWQsIG1zZyk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgcmVtb3ZlTWVzc2FnZShpZDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlTWFwLmRlbGV0ZShpZCk7XG4gIH1cblxuICBoYXNNZXNzYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VNYXAuc2l6ZSA+IDA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -18,11 +18,11 @@ export class ToastModule {
|
|
|
18
18
|
providers: [ToastDataService, ToastService]
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
static { this.ɵfac = function ToastModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ToastModule)(); }; }
|
|
22
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ToastModule }); }
|
|
23
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, OverlayModule] }); }
|
|
24
21
|
}
|
|
25
|
-
(
|
|
22
|
+
ToastModule.ɵfac = function ToastModule_Factory(t) { return new (t || ToastModule)(); };
|
|
23
|
+
ToastModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ToastModule });
|
|
24
|
+
ToastModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, OverlayModule] });
|
|
25
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToastModule, [{
|
|
26
26
|
type: NgModule,
|
|
27
27
|
args: [{
|
|
28
28
|
declarations: [ToastComponent],
|
|
@@ -30,4 +30,4 @@ export class ToastModule {
|
|
|
30
30
|
}]
|
|
31
31
|
}], null, null); })();
|
|
32
32
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ToastModule, { declarations: [ToastComponent], imports: [CommonModule, OverlayModule] }); })();
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNL0MsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLFdBQVc7WUFDckIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO1NBQzVDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixPQUFPO1lBQ0wsUUFBUSxFQUFFLFdBQVc7WUFDckIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO1NBQzVDLENBQUM7SUFDSixDQUFDOztzRUFiVSxXQUFXOzZEQUFYLFdBQVc7aUVBRlYsWUFBWSxFQUFFLGFBQWE7dUZBRTVCLFdBQVc7Y0FKdkIsUUFBUTtlQUFDO2dCQUNOLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDOUIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQzthQUN6Qzs7d0ZBQ1ksV0FBVyxtQkFITCxjQUFjLGFBQ25CLFlBQVksRUFBRSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVG9hc3RDb21wb25lbnQgfSBmcm9tIFwiLi90b2FzdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRvYXN0RGF0YVNlcnZpY2UgfSBmcm9tIFwiLi90b2FzdC5kYXRhLnNlcnZpY2VcIjtcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gXCIuL3RvYXN0LnNlcnZpY2VcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtUb2FzdENvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgT3ZlcmxheU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRvYXN0TW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBUb2FzdE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1RvYXN0RGF0YVNlcnZpY2UsIFRvYXN0U2VydmljZV1cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckNoaWxkKCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VG9hc3RNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFRvYXN0TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbVG9hc3REYXRhU2VydmljZSwgVG9hc3RTZXJ2aWNlXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { OverlayConfig } from "@angular/cdk/overlay";
|
|
2
|
+
import { ComponentPortal } from "@angular/cdk/portal";
|
|
3
|
+
import { Injectable } from "@angular/core";
|
|
4
|
+
import { ToastComponent } from "./toast.component";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
7
|
+
import * as i2 from "./toast.data.service";
|
|
8
|
+
export class ToastService {
|
|
9
|
+
constructor(overlay, data) {
|
|
10
|
+
this.overlay = overlay;
|
|
11
|
+
this.data = data;
|
|
12
|
+
this.messagePromises = [];
|
|
13
|
+
this.messageBuilder = {
|
|
14
|
+
error: {
|
|
15
|
+
simple: "Something went wrong. Please try again later.",
|
|
16
|
+
400: "Bad Request! We are working to fix this.",
|
|
17
|
+
401: "UNAUTHORISED",
|
|
18
|
+
403: "Sorry for the interruption but seems like your session has expired. Please login again and continue",
|
|
19
|
+
404: "Unable to find resource. Please try again later"
|
|
20
|
+
},
|
|
21
|
+
item: (item) => {
|
|
22
|
+
return {
|
|
23
|
+
action: (act = "updated") => {
|
|
24
|
+
const success = `Successfully ${act} ${item}.`;
|
|
25
|
+
const failure = `Failed to ${act} ${item}.`;
|
|
26
|
+
return {
|
|
27
|
+
success,
|
|
28
|
+
failure
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
},
|
|
33
|
+
short: (act = "updated") => {
|
|
34
|
+
const success = `Successfully ${act}.`;
|
|
35
|
+
const failure = `Failed to ${act}.`;
|
|
36
|
+
return {
|
|
37
|
+
success,
|
|
38
|
+
failure
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
simple: (...args) => args.join(" "),
|
|
42
|
+
simplest: "Done!"
|
|
43
|
+
};
|
|
44
|
+
this.userProfilePortal = new ComponentPortal(ToastComponent);
|
|
45
|
+
}
|
|
46
|
+
displayMsg(msg, timeout = 3000) {
|
|
47
|
+
const positionStrategy = this.overlay.position().global().centerHorizontally();
|
|
48
|
+
if (window?.innerWidth < 600) {
|
|
49
|
+
positionStrategy.bottom("48px");
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
positionStrategy.top("80px");
|
|
53
|
+
}
|
|
54
|
+
const config = new OverlayConfig({
|
|
55
|
+
hasBackdrop: false,
|
|
56
|
+
positionStrategy
|
|
57
|
+
});
|
|
58
|
+
if (!this.toastWrapperRef?.hasAttached()) {
|
|
59
|
+
this.toastWrapperRef = this.overlay.create(config);
|
|
60
|
+
this.toastWrapperRef.attach(this.userProfilePortal);
|
|
61
|
+
}
|
|
62
|
+
const messageId = this.data.updateMessage(msg);
|
|
63
|
+
this.messagePromises.push(new Promise((resolve, reject) => {
|
|
64
|
+
setTimeout(() => {
|
|
65
|
+
resolve(this.data.removeMessage(messageId));
|
|
66
|
+
if (!this.data.hasMessage()) {
|
|
67
|
+
this.closeToastOverlay();
|
|
68
|
+
}
|
|
69
|
+
// adding 300ms for entry animation
|
|
70
|
+
}, timeout + 300);
|
|
71
|
+
}));
|
|
72
|
+
Promise.race(this.messagePromises).then(() => { });
|
|
73
|
+
}
|
|
74
|
+
// tslint:disable-next-line
|
|
75
|
+
closeToastOverlay() {
|
|
76
|
+
return setTimeout(() => {
|
|
77
|
+
this.messagePromises = [];
|
|
78
|
+
this.toastWrapperRef?.detach();
|
|
79
|
+
// adding 300ms for exit animation
|
|
80
|
+
}, 300);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
ToastService.ɵfac = function ToastService_Factory(t) { return new (t || ToastService)(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i2.ToastDataService)); };
|
|
84
|
+
ToastService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ToastService, factory: ToastService.ɵfac, providedIn: "root" });
|
|
85
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToastService, [{
|
|
86
|
+
type: Injectable,
|
|
87
|
+
args: [{
|
|
88
|
+
providedIn: "root"
|
|
89
|
+
}]
|
|
90
|
+
}], function () { return [{ type: i1.Overlay }, { type: i2.ToastDataService }]; }, null); })();
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RvYXN0L3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQVFuRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFvQixPQUFnQixFQUFVLElBQXNCO1FBQWhELFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUk1RCxvQkFBZSxHQUFvQixFQUFFLENBQUM7UUFHOUMsbUJBQWMsR0FBRztZQUNmLEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsK0NBQStDO2dCQUN2RCxHQUFHLEVBQUUsMENBQTBDO2dCQUMvQyxHQUFHLEVBQUUsY0FBYztnQkFDbkIsR0FBRyxFQUFFLHFHQUFxRztnQkFDMUcsR0FBRyxFQUFFLGlEQUFpRDthQUN2RDtZQUNELElBQUksRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUNyQixPQUFPO29CQUNMLE1BQU0sRUFBRSxDQUFDLE1BQWtCLFNBQVMsRUFBRSxFQUFFO3dCQUN0QyxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLElBQUksR0FBRyxDQUFDO3dCQUMvQyxNQUFNLE9BQU8sR0FBRyxhQUFhLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQzt3QkFDNUMsT0FBTzs0QkFDTCxPQUFPOzRCQUNQLE9BQU87eUJBQ1IsQ0FBQztvQkFDSixDQUFDO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsTUFBa0IsU0FBUyxFQUFFLEVBQUU7Z0JBQ3JDLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztnQkFDdkMsTUFBTSxPQUFPLEdBQUcsYUFBYSxHQUFHLEdBQUcsQ0FBQztnQkFDcEMsT0FBTztvQkFDTCxPQUFPO29CQUNQLE9BQU87aUJBQ1IsQ0FBQztZQUNKLENBQUM7WUFDRCxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDN0MsUUFBUSxFQUFFLE9BQU87U0FDbEIsQ0FBQztRQXBDQSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQXFDRCxVQUFVLENBQUMsR0FBVyxFQUFFLE9BQU8sR0FBRyxJQUFJO1FBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRS9FLElBQUksTUFBTSxFQUFFLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDNUIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pDO2FBQU07WUFDTCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUI7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUMvQixXQUFXLEVBQUUsS0FBSztZQUNsQixnQkFBZ0I7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNyRDtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUN2QixJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUM5QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7aUJBQzFCO2dCQUNELG1DQUFtQztZQUNyQyxDQUFDLEVBQUUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELDJCQUEyQjtJQUNuQixpQkFBaUI7UUFDdkIsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDL0Isa0NBQWtDO1FBQ3BDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7O3dFQTlFVSxZQUFZO2tFQUFaLFlBQVksV0FBWixZQUFZLG1CQUZYLE1BQU07dUZBRVAsWUFBWTtjQUh4QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gXCIuL3RvYXN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVG9hc3REYXRhU2VydmljZSB9IGZyb20gXCIuL3RvYXN0LmRhdGEuc2VydmljZVwiO1xuXG50eXBlIE9wZXJhdGlvbnMgPSBcImNyZWF0ZWRcIiB8IFwidXBkYXRlZFwiIHwgXCJkZWxldGVkXCIgfCBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVsZXRlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIGRhdGE6IFRvYXN0RGF0YVNlcnZpY2UpIHtcbiAgICB0aGlzLnVzZXJQcm9maWxlUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChUb2FzdENvbXBvbmVudCk7XG4gIH1cbiAgcHJpdmF0ZSB0b2FzdFdyYXBwZXJSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgbWVzc2FnZVByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcbiAgcHJpdmF0ZSB1c2VyUHJvZmlsZVBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFRvYXN0Q29tcG9uZW50PjtcblxuICBtZXNzYWdlQnVpbGRlciA9IHtcbiAgICBlcnJvcjoge1xuICAgICAgc2ltcGxlOiBcIlNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLlwiLFxuICAgICAgNDAwOiBcIkJhZCBSZXF1ZXN0ISBXZSBhcmUgd29ya2luZyB0byBmaXggdGhpcy5cIixcbiAgICAgIDQwMTogXCJVTkFVVEhPUklTRURcIixcbiAgICAgIDQwMzogXCJTb3JyeSBmb3IgdGhlIGludGVycnVwdGlvbiBidXQgc2VlbXMgbGlrZSB5b3VyIHNlc3Npb24gaGFzIGV4cGlyZWQuIFBsZWFzZSBsb2dpbiBhZ2FpbiBhbmQgY29udGludWVcIixcbiAgICAgIDQwNDogXCJVbmFibGUgdG8gZmluZCByZXNvdXJjZS4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlclwiXG4gICAgfSxcbiAgICBpdGVtOiAoaXRlbTogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY3Rpb246IChhY3Q6IE9wZXJhdGlvbnMgPSBcInVwZGF0ZWRcIikgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBgU3VjY2Vzc2Z1bGx5ICR7YWN0fSAke2l0ZW19LmA7XG4gICAgICAgICAgY29uc3QgZmFpbHVyZSA9IGBGYWlsZWQgdG8gJHthY3R9ICR7aXRlbX0uYDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sXG4gICAgc2hvcnQ6IChhY3Q6IE9wZXJhdGlvbnMgPSBcInVwZGF0ZWRcIikgPT4ge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGBTdWNjZXNzZnVsbHkgJHthY3R9LmA7XG4gICAgICBjb25zdCBmYWlsdXJlID0gYEZhaWxlZCB0byAke2FjdH0uYDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgIGZhaWx1cmVcbiAgICAgIH07XG4gICAgfSxcbiAgICBzaW1wbGU6ICguLi5hcmdzOiBzdHJpbmdbXSkgPT4gYXJncy5qb2luKFwiIFwiKSxcbiAgICBzaW1wbGVzdDogXCJEb25lIVwiXG4gIH07XG5cbiAgZGlzcGxheU1zZyhtc2c6IHN0cmluZywgdGltZW91dCA9IDMwMDApOiB2b2lkIHtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCk7XG5cbiAgICBpZiAod2luZG93Py5pbm5lcldpZHRoIDwgNjAwKSB7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LmJvdHRvbShcIjQ4cHhcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3kudG9wKFwiODBweFwiKTtcbiAgICB9XG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgcG9zaXRpb25TdHJhdGVneVxuICAgIH0pO1xuICAgIGlmICghdGhpcy50b2FzdFdyYXBwZXJSZWY/Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMudG9hc3RXcmFwcGVyUmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuICAgICAgdGhpcy50b2FzdFdyYXBwZXJSZWYuYXR0YWNoKHRoaXMudXNlclByb2ZpbGVQb3J0YWwpO1xuICAgIH1cbiAgICBjb25zdCBtZXNzYWdlSWQgPSB0aGlzLmRhdGEudXBkYXRlTWVzc2FnZShtc2cpO1xuICAgIHRoaXMubWVzc2FnZVByb21pc2VzLnB1c2goXG4gICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5kYXRhLnJlbW92ZU1lc3NhZ2UobWVzc2FnZUlkKSk7XG4gICAgICAgICAgaWYgKCF0aGlzLmRhdGEuaGFzTWVzc2FnZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlVG9hc3RPdmVybGF5KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGFkZGluZyAzMDBtcyBmb3IgZW50cnkgYW5pbWF0aW9uXG4gICAgICAgIH0sIHRpbWVvdXQgKyAzMDApO1xuICAgICAgfSlcbiAgICApO1xuICAgIFByb21pc2UucmFjZSh0aGlzLm1lc3NhZ2VQcm9taXNlcykudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgcHJpdmF0ZSBjbG9zZVRvYXN0T3ZlcmxheSgpOiBhbnkge1xuICAgIHJldHVybiBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubWVzc2FnZVByb21pc2VzID0gW107XG4gICAgICB0aGlzLnRvYXN0V3JhcHBlclJlZj8uZGV0YWNoKCk7XG4gICAgICAvLyBhZGRpbmcgMzAwbXMgZm9yIGV4aXQgYW5pbWF0aW9uXG4gICAgfSwgMzAwKTtcbiAgfVxufVxuIl19
|