@norwegian/core-components 5.18.1 → 5.18.2
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/esm2020/lib/components/accordion/accordion.component.mjs +148 -0
- package/esm2020/lib/components/accordion/accordion.module.mjs +20 -0
- package/esm2020/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.mjs +610 -0
- package/esm2020/lib/components/airport-select/airport-select.component.mjs +438 -0
- package/esm2020/lib/components/airport-select/airport-select.module.mjs +42 -0
- package/esm2020/lib/components/airport-select/services/airport-select-dropdown.service.mjs +35 -0
- package/esm2020/lib/components/airport-select/services/airport-select.service.mjs +38 -0
- package/esm2020/lib/components/autocomplete/autocomplete.component.mjs +287 -0
- package/esm2020/lib/components/autocomplete/autocomplete.module.mjs +43 -0
- package/esm2020/lib/components/backdrop/backdrop.component.mjs +56 -0
- package/esm2020/lib/components/backdrop/backdrop.module.mjs +24 -0
- package/esm2020/lib/components/box/box.component.mjs +68 -0
- package/esm2020/lib/components/box/box.module.mjs +19 -0
- package/esm2020/lib/components/button/button.component.mjs +167 -0
- package/esm2020/lib/components/button/button.module.mjs +20 -0
- package/esm2020/lib/components/checkbox/checkbox.component.mjs +148 -0
- package/esm2020/lib/components/checkbox/checkbox.module.mjs +20 -0
- package/esm2020/lib/components/chip/chip.component.mjs +53 -0
- package/esm2020/lib/components/chip/chip.module.mjs +24 -0
- package/esm2020/lib/components/container/container.component.mjs +50 -0
- package/esm2020/lib/components/container/container.module.mjs +19 -0
- package/esm2020/lib/components/continue/continue.component.mjs +194 -0
- package/esm2020/lib/components/continue/continue.module.mjs +34 -0
- package/esm2020/lib/components/cover/cover.component.mjs +75 -0
- package/esm2020/lib/components/cover/cover.module.mjs +21 -0
- package/esm2020/lib/components/datepicker/calendar/calendar.component.mjs +583 -0
- package/esm2020/lib/components/datepicker/datepicker.component.mjs +550 -0
- package/esm2020/lib/components/datepicker/datepicker.module.mjs +55 -0
- package/esm2020/lib/components/datepicker/services/calendar.service.mjs +213 -0
- package/esm2020/lib/components/datepicker-combo/datepicker-combo.component.mjs +355 -0
- package/esm2020/lib/components/datepicker-combo/datepicker-combo.module.mjs +31 -0
- package/esm2020/lib/components/divider/divider.component.mjs +61 -0
- package/esm2020/lib/components/divider/divider.module.mjs +20 -0
- package/esm2020/lib/components/dropdown/dropdown.component.mjs +169 -0
- package/esm2020/lib/components/dropdown/dropdown.module.mjs +32 -0
- package/esm2020/lib/components/filter/filter.component.mjs +1253 -0
- package/esm2020/lib/components/filter/filter.module.mjs +73 -0
- package/esm2020/lib/components/grid/col/col.component.mjs +49 -0
- package/esm2020/lib/components/grid/grid.component.mjs +72 -0
- package/esm2020/lib/components/grid/grid.module.mjs +20 -0
- package/esm2020/lib/components/icon/icon.component.mjs +44 -0
- package/esm2020/lib/components/icon/icon.module.mjs +24 -0
- package/esm2020/lib/components/icon-list/icon-list.component.mjs +50 -0
- package/esm2020/lib/components/icon-list/icon-list.module.mjs +20 -0
- package/esm2020/lib/components/info/info.component.mjs +106 -0
- package/esm2020/lib/components/info/info.module.mjs +36 -0
- package/esm2020/lib/components/input/input.component.mjs +179 -0
- package/esm2020/lib/components/input/input.module.mjs +21 -0
- package/esm2020/lib/components/journey/journey.component.mjs +126 -0
- package/esm2020/lib/components/journey/journey.module.mjs +28 -0
- package/esm2020/lib/components/journey-availability/journey-availability.component.mjs +126 -0
- package/esm2020/lib/components/journey-availability/journey-availability.module.mjs +39 -0
- package/esm2020/lib/components/journey-availability-list/journey-availability-list.component.mjs +185 -0
- package/{esm2015/lib/components/journey-availability-list/journey-availability-list.module.js → esm2020/lib/components/journey-availability-list/journey-availability-list.module.mjs} +27 -14
- package/esm2020/lib/components/journey-selection/journey-selection.component.mjs +112 -0
- package/esm2020/lib/components/journey-selection/journey-selection.module.mjs +35 -0
- package/esm2020/lib/components/journey-stopover/journey-stopover.component.mjs +125 -0
- package/esm2020/lib/components/journey-stopover/journey-stopover.module.mjs +28 -0
- package/esm2020/lib/components/list/list-item/list-item.component.mjs +52 -0
- package/esm2020/lib/components/list/list.component.mjs +78 -0
- package/esm2020/lib/components/list/list.module.mjs +20 -0
- package/esm2020/lib/components/modal/modal.component.mjs +141 -0
- package/esm2020/lib/components/modal/modal.module.mjs +38 -0
- package/esm2020/lib/components/number-field/number-field.component.mjs +135 -0
- package/esm2020/lib/components/number-field/number-field.module.mjs +39 -0
- package/esm2020/lib/components/page-footer/page-footer.component.mjs +54 -0
- package/esm2020/lib/components/page-footer/page-footer.module.mjs +21 -0
- package/esm2020/lib/components/page-header/hamburger/hamburger.component.mjs +22 -0
- package/esm2020/lib/components/page-header/page-header.component.mjs +142 -0
- package/esm2020/lib/components/page-header/page-header.module.mjs +23 -0
- package/esm2020/lib/components/page-header/search/search.component.mjs +49 -0
- package/{esm2015/lib/components/passenger-select/models/passengers.model.js → esm2020/lib/components/passenger-select/models/passengers.model.mjs} +1 -1
- package/esm2020/lib/components/passenger-select/passenger-select.component.mjs +225 -0
- package/esm2020/lib/components/passenger-select/passenger-select.module.mjs +28 -0
- package/esm2020/lib/components/phone-number/phone-number.component.mjs +148 -0
- package/esm2020/lib/components/phone-number/phone-number.module.mjs +44 -0
- package/esm2020/lib/components/premium-toggle/premium-toggle.component.mjs +69 -0
- package/esm2020/lib/components/premium-toggle/premium-toggle.module.mjs +28 -0
- package/esm2020/lib/components/radio/radio.component.mjs +98 -0
- package/esm2020/lib/components/radio/radio.module.mjs +20 -0
- package/esm2020/lib/components/select/optgroup/optgroup.component.mjs +29 -0
- package/esm2020/lib/components/select/option/option.component.mjs +26 -0
- package/esm2020/lib/components/select/select.component.mjs +354 -0
- package/esm2020/lib/components/select/select.module.mjs +30 -0
- package/esm2020/lib/components/simple-list/simple-list.component.mjs +48 -0
- package/esm2020/lib/components/simple-list/simple-list.module.mjs +19 -0
- package/esm2020/lib/components/slide-toggle/slide-toggle.component.mjs +111 -0
- package/esm2020/lib/components/slide-toggle/slide-toggle.module.mjs +31 -0
- package/esm2020/lib/components/slider/slider.component.mjs +501 -0
- package/esm2020/lib/components/slider/slider.module.mjs +28 -0
- package/esm2020/lib/components/sort/sort.component.mjs +93 -0
- package/esm2020/lib/components/sort/sort.module.mjs +36 -0
- package/esm2020/lib/components/spinner/spinner.component.mjs +112 -0
- package/esm2020/lib/components/spinner/spinner.module.mjs +19 -0
- package/esm2020/lib/components/subsidy-discount/subsidy-discount.component.mjs +110 -0
- package/esm2020/lib/components/subsidy-discount/subsidy-discount.module.mjs +36 -0
- package/esm2020/lib/components/suggestions/suggestions.component.mjs +43 -0
- package/esm2020/lib/components/suggestions/suggestions.module.mjs +28 -0
- package/esm2020/lib/components/tab-group/tab/tab.component.mjs +131 -0
- package/esm2020/lib/components/tab-group/tab-group.component.mjs +87 -0
- package/esm2020/lib/components/tab-group/tab-group.module.mjs +29 -0
- package/esm2020/lib/components/table/column/column.component.mjs +16 -0
- package/esm2020/lib/components/table/column-group/column-group.component.mjs +30 -0
- package/esm2020/lib/components/table/services/table.service.mjs +21 -0
- package/esm2020/lib/components/table/table-body/table-body.component.mjs +23 -0
- package/esm2020/lib/components/table/table-foot/table-foot.component.mjs +23 -0
- package/esm2020/lib/components/table/table-head/table-head.component.mjs +23 -0
- package/esm2020/lib/components/table/table-row/table-data/table-data.component.mjs +15 -0
- package/esm2020/lib/components/table/table-row/table-header/table-header.component.mjs +15 -0
- package/esm2020/lib/components/table/table-row/table-row.component.mjs +23 -0
- package/esm2020/lib/components/table/table.component.mjs +29 -0
- package/esm2020/lib/components/table/table.module.mjs +68 -0
- package/esm2020/lib/components/textarea/textarea.component.mjs +93 -0
- package/esm2020/lib/components/textarea/textarea.module.mjs +31 -0
- package/esm2020/lib/components/toggle/toggle.component.mjs +103 -0
- package/esm2020/lib/components/toggle/toggle.module.mjs +35 -0
- package/esm2020/lib/components/trip-summary/trip-summary.component.mjs +170 -0
- package/esm2020/lib/components/trip-summary/trip-summary.module.mjs +36 -0
- package/esm2020/lib/components/weather-icon/weather-icon.component.mjs +60 -0
- package/esm2020/lib/components/weather-icon/weather-icon.module.mjs +19 -0
- package/esm2020/lib/core/base/nas-component.base.mjs +47 -0
- package/esm2020/lib/core/directives/nas-class/nas-class.directive.mjs +80 -0
- package/esm2020/lib/core/directives/nas-class/nas-class.module.mjs +22 -0
- package/{esm2015/lib/core/extensions/html-element.extension.js → esm2020/lib/core/extensions/html-element.extension.mjs} +1 -1
- package/esm2020/lib/core/services/abandoned-basket/abandoned-basket.service.mjs +58 -0
- package/esm2020/lib/core/services/animate-helper/animate-helper.service.mjs +49 -0
- package/esm2020/lib/core/services/bem-helper/bem-helper.service.mjs +44 -0
- package/esm2020/lib/core/services/date/date-helper.service.mjs +199 -0
- package/esm2020/lib/core/services/device/device-helper.service.mjs +46 -0
- package/esm2020/lib/core/services/geolocation/geolocation.service.mjs +63 -0
- package/esm2020/lib/core/services/language/language-helper.service.mjs +129 -0
- package/esm2020/lib/core/services/sort/sort.service.mjs +22 -0
- package/esm2020/lib/core/services/viewport/viewport.service.mjs +32 -0
- package/esm2020/lib/services/get-position.service.mjs +23 -0
- package/esm2020/norwegian-core-components.mjs +5 -0
- package/fesm2015/norwegian-core-components.mjs +11843 -0
- package/fesm2015/norwegian-core-components.mjs.map +1 -0
- package/fesm2020/norwegian-core-components.mjs +11829 -0
- package/fesm2020/norwegian-core-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/accordion/accordion.component.d.ts +3 -0
- package/lib/components/accordion/accordion.module.d.ts +8 -0
- package/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.d.ts +5 -2
- package/lib/components/airport-select/airport-select.component.d.ts +5 -2
- package/lib/components/airport-select/airport-select.module.d.ts +11 -0
- package/lib/components/airport-select/services/airport-select-dropdown.service.d.ts +3 -0
- package/lib/components/airport-select/services/airport-select.service.d.ts +3 -0
- package/lib/components/autocomplete/autocomplete.component.d.ts +5 -2
- package/lib/components/autocomplete/autocomplete.module.d.ts +11 -0
- package/lib/components/backdrop/backdrop.component.d.ts +3 -0
- package/lib/components/backdrop/backdrop.module.d.ts +7 -0
- package/lib/components/box/box.component.d.ts +3 -4
- package/lib/components/box/box.module.d.ts +7 -0
- package/lib/components/button/button.component.d.ts +3 -0
- package/lib/components/button/button.module.d.ts +8 -0
- package/lib/components/checkbox/checkbox.component.d.ts +5 -2
- package/lib/components/checkbox/checkbox.module.d.ts +8 -0
- package/lib/components/chip/chip.component.d.ts +3 -0
- package/lib/components/chip/chip.module.d.ts +7 -0
- package/lib/components/container/container.component.d.ts +3 -4
- package/lib/components/container/container.module.d.ts +7 -0
- package/lib/components/continue/continue.component.d.ts +3 -0
- package/lib/components/continue/continue.module.d.ts +9 -0
- package/lib/components/cover/cover.component.d.ts +3 -0
- package/lib/components/cover/cover.module.d.ts +9 -0
- package/lib/components/datepicker/calendar/calendar.component.d.ts +5 -2
- package/lib/components/datepicker/datepicker.component.d.ts +5 -2
- package/lib/components/datepicker/datepicker.module.d.ts +14 -0
- package/lib/components/datepicker/services/calendar.service.d.ts +3 -0
- package/lib/components/datepicker-combo/datepicker-combo.component.d.ts +3 -0
- package/lib/components/datepicker-combo/datepicker-combo.module.d.ts +8 -0
- package/lib/components/divider/divider.component.d.ts +3 -4
- package/lib/components/divider/divider.module.d.ts +8 -0
- package/lib/components/dropdown/dropdown.component.d.ts +3 -0
- package/lib/components/dropdown/dropdown.module.d.ts +9 -0
- package/lib/components/filter/filter.component.d.ts +5 -2
- package/lib/components/filter/filter.module.d.ts +18 -0
- package/lib/components/grid/col/col.component.d.ts +4 -1
- package/lib/components/grid/grid.component.d.ts +3 -4
- package/lib/components/grid/grid.module.d.ts +8 -0
- package/lib/components/icon/icon.component.d.ts +3 -4
- package/lib/components/icon/icon.module.d.ts +7 -0
- package/lib/components/icon-list/icon-list.component.d.ts +3 -0
- package/lib/components/icon-list/icon-list.module.d.ts +8 -0
- package/lib/components/info/info.component.d.ts +3 -0
- package/lib/components/info/info.module.d.ts +10 -0
- package/lib/components/input/input.component.d.ts +5 -2
- package/lib/components/input/input.module.d.ts +9 -0
- package/lib/components/journey/journey.component.d.ts +3 -0
- package/lib/components/journey/journey.module.d.ts +8 -0
- package/lib/components/journey-availability/journey-availability.component.d.ts +3 -0
- package/lib/components/journey-availability/journey-availability.module.d.ts +10 -0
- package/lib/components/journey-availability-list/journey-availability-list.component.d.ts +3 -0
- package/lib/components/journey-availability-list/journey-availability-list.module.d.ts +10 -0
- package/lib/components/journey-selection/journey-selection.component.d.ts +3 -0
- package/lib/components/journey-selection/journey-selection.module.d.ts +9 -0
- package/lib/components/journey-stopover/journey-stopover.component.d.ts +3 -0
- package/lib/components/journey-stopover/journey-stopover.module.d.ts +8 -0
- package/lib/components/list/list-item/list-item.component.d.ts +3 -0
- package/lib/components/list/list.component.d.ts +4 -1
- package/lib/components/list/list.module.d.ts +8 -0
- package/lib/components/modal/modal.component.d.ts +3 -0
- package/lib/components/modal/modal.module.d.ts +10 -0
- package/lib/components/number-field/number-field.component.d.ts +5 -2
- package/lib/components/number-field/number-field.module.d.ts +10 -0
- package/lib/components/page-footer/page-footer.component.d.ts +3 -0
- package/lib/components/page-footer/page-footer.module.d.ts +9 -0
- package/lib/components/page-header/hamburger/hamburger.component.d.ts +3 -0
- package/lib/components/page-header/page-header.component.d.ts +3 -0
- package/lib/components/page-header/page-header.module.d.ts +11 -0
- package/lib/components/page-header/search/search.component.d.ts +3 -0
- package/lib/components/passenger-select/models/passengers.model.d.ts +2 -2
- package/lib/components/passenger-select/passenger-select.component.d.ts +5 -2
- package/lib/components/passenger-select/passenger-select.module.d.ts +8 -0
- package/lib/components/phone-number/phone-number.component.d.ts +5 -2
- package/lib/components/phone-number/phone-number.module.d.ts +11 -0
- package/lib/components/premium-toggle/premium-toggle.component.d.ts +3 -0
- package/lib/components/premium-toggle/premium-toggle.module.d.ts +8 -0
- package/lib/components/radio/radio.component.d.ts +5 -2
- package/lib/components/radio/radio.module.d.ts +8 -0
- package/lib/components/select/optgroup/optgroup.component.d.ts +3 -0
- package/lib/components/select/option/option.component.d.ts +3 -0
- package/lib/components/select/select.component.d.ts +6 -3
- package/lib/components/select/select.module.d.ts +10 -0
- package/lib/components/simple-list/simple-list.component.d.ts +4 -1
- package/lib/components/simple-list/simple-list.module.d.ts +7 -0
- package/lib/components/slide-toggle/slide-toggle.component.d.ts +5 -2
- package/lib/components/slide-toggle/slide-toggle.module.d.ts +8 -0
- package/lib/components/slider/slider.component.d.ts +5 -2
- package/lib/components/slider/slider.module.d.ts +8 -0
- package/lib/components/sort/sort.component.d.ts +3 -0
- package/lib/components/sort/sort.module.d.ts +10 -0
- package/lib/components/spinner/spinner.component.d.ts +3 -0
- package/lib/components/spinner/spinner.module.d.ts +7 -0
- package/lib/components/subsidy-discount/subsidy-discount.component.d.ts +3 -0
- package/lib/components/subsidy-discount/subsidy-discount.module.d.ts +10 -0
- package/lib/components/suggestions/suggestions.component.d.ts +3 -0
- package/lib/components/suggestions/suggestions.module.d.ts +8 -0
- package/lib/components/tab-group/tab/tab.component.d.ts +3 -0
- package/lib/components/tab-group/tab-group.component.d.ts +3 -0
- package/lib/components/tab-group/tab-group.module.d.ts +9 -0
- package/lib/components/table/column/column.component.d.ts +3 -0
- package/lib/components/table/column-group/column-group.component.d.ts +3 -0
- package/lib/components/table/services/table.service.d.ts +3 -0
- package/lib/components/table/table-body/table-body.component.d.ts +3 -0
- package/lib/components/table/table-foot/table-foot.component.d.ts +3 -0
- package/lib/components/table/table-head/table-head.component.d.ts +3 -0
- package/lib/components/table/table-row/table-data/table-data.component.d.ts +3 -0
- package/lib/components/table/table-row/table-header/table-header.component.d.ts +3 -0
- package/lib/components/table/table-row/table-row.component.d.ts +3 -0
- package/lib/components/table/table.component.d.ts +3 -0
- package/lib/components/table/table.module.d.ts +15 -0
- package/lib/components/textarea/textarea.component.d.ts +5 -2
- package/lib/components/textarea/textarea.module.d.ts +8 -0
- package/lib/components/toggle/toggle.component.d.ts +6 -3
- package/lib/components/toggle/toggle.module.d.ts +9 -0
- package/lib/components/trip-summary/trip-summary.component.d.ts +3 -0
- package/lib/components/trip-summary/trip-summary.module.d.ts +10 -0
- package/lib/components/weather-icon/weather-icon.component.d.ts +3 -0
- package/lib/components/weather-icon/weather-icon.module.d.ts +7 -0
- package/lib/core/directives/nas-class/nas-class.directive.d.ts +3 -0
- package/lib/core/directives/nas-class/nas-class.module.d.ts +6 -0
- package/lib/core/services/abandoned-basket/abandoned-basket.service.d.ts +3 -0
- package/lib/core/services/animate-helper/animate-helper.service.d.ts +3 -0
- package/lib/core/services/bem-helper/bem-helper.service.d.ts +3 -0
- package/lib/core/services/date/date-helper.service.d.ts +3 -0
- package/lib/core/services/device/device-helper.service.d.ts +3 -0
- package/lib/core/services/geolocation/geolocation.service.d.ts +3 -0
- package/lib/core/services/language/language-helper.service.d.ts +3 -0
- package/lib/core/services/sort/sort.service.d.ts +3 -0
- package/lib/core/services/viewport/viewport.service.d.ts +3 -0
- package/lib/services/get-position.service.d.ts +3 -0
- package/package.json +21 -9
- package/bundles/norwegian-core-components.umd.js +0 -12203
- package/bundles/norwegian-core-components.umd.js.map +0 -1
- package/esm2015/lib/components/accordion/accordion.component.js +0 -130
- package/esm2015/lib/components/accordion/accordion.module.js +0 -15
- package/esm2015/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.js +0 -583
- package/esm2015/lib/components/airport-select/airport-select.component.js +0 -400
- package/esm2015/lib/components/airport-select/airport-select.module.js +0 -27
- package/esm2015/lib/components/airport-select/services/airport-select-dropdown.service.js +0 -34
- package/esm2015/lib/components/airport-select/services/airport-select.service.js +0 -37
- package/esm2015/lib/components/autocomplete/autocomplete.component.js +0 -265
- package/esm2015/lib/components/autocomplete/autocomplete.module.js +0 -26
- package/esm2015/lib/components/backdrop/backdrop.component.js +0 -54
- package/esm2015/lib/components/backdrop/backdrop.module.js +0 -17
- package/esm2015/lib/components/box/box.component.js +0 -61
- package/esm2015/lib/components/box/box.module.js +0 -14
- package/esm2015/lib/components/button/button.component.js +0 -140
- package/esm2015/lib/components/button/button.module.js +0 -15
- package/esm2015/lib/components/checkbox/checkbox.component.js +0 -127
- package/esm2015/lib/components/checkbox/checkbox.module.js +0 -15
- package/esm2015/lib/components/chip/chip.component.js +0 -50
- package/esm2015/lib/components/chip/chip.module.js +0 -17
- package/esm2015/lib/components/container/container.component.js +0 -47
- package/esm2015/lib/components/container/container.module.js +0 -14
- package/esm2015/lib/components/continue/continue.component.js +0 -173
- package/esm2015/lib/components/continue/continue.module.js +0 -23
- package/esm2015/lib/components/cover/cover.component.js +0 -61
- package/esm2015/lib/components/cover/cover.module.js +0 -16
- package/esm2015/lib/components/datepicker/calendar/calendar.component.js +0 -560
- package/esm2015/lib/components/datepicker/datepicker.component.js +0 -515
- package/esm2015/lib/components/datepicker/datepicker.module.js +0 -34
- package/esm2015/lib/components/datepicker/services/calendar.service.js +0 -217
- package/esm2015/lib/components/datepicker-combo/datepicker-combo.component.js +0 -317
- package/esm2015/lib/components/datepicker-combo/datepicker-combo.module.js +0 -22
- package/esm2015/lib/components/divider/divider.component.js +0 -53
- package/esm2015/lib/components/divider/divider.module.js +0 -15
- package/esm2015/lib/components/dropdown/dropdown.component.js +0 -150
- package/esm2015/lib/components/dropdown/dropdown.module.js +0 -21
- package/esm2015/lib/components/filter/filter.component.js +0 -1122
- package/esm2015/lib/components/filter/filter.module.js +0 -44
- package/esm2015/lib/components/grid/col/col.component.js +0 -49
- package/esm2015/lib/components/grid/grid.component.js +0 -63
- package/esm2015/lib/components/grid/grid.module.js +0 -15
- package/esm2015/lib/components/icon/icon.component.js +0 -42
- package/esm2015/lib/components/icon/icon.module.js +0 -17
- package/esm2015/lib/components/icon-list/icon-list.component.js +0 -46
- package/esm2015/lib/components/icon-list/icon-list.module.js +0 -15
- package/esm2015/lib/components/info/info.component.js +0 -94
- package/esm2015/lib/components/info/info.module.js +0 -23
- package/esm2015/lib/components/input/input.component.js +0 -148
- package/esm2015/lib/components/input/input.module.js +0 -16
- package/esm2015/lib/components/journey/journey.component.js +0 -122
- package/esm2015/lib/components/journey/journey.module.js +0 -19
- package/esm2015/lib/components/journey-availability/journey-availability.component.js +0 -125
- package/esm2015/lib/components/journey-availability/journey-availability.module.js +0 -26
- package/esm2015/lib/components/journey-availability-list/journey-availability-list.component.js +0 -175
- package/esm2015/lib/components/journey-selection/journey-selection.component.js +0 -110
- package/esm2015/lib/components/journey-selection/journey-selection.module.js +0 -24
- package/esm2015/lib/components/journey-stopover/journey-stopover.component.js +0 -121
- package/esm2015/lib/components/journey-stopover/journey-stopover.module.js +0 -19
- package/esm2015/lib/components/list/list-item/list-item.component.js +0 -56
- package/esm2015/lib/components/list/list.component.js +0 -75
- package/esm2015/lib/components/list/list.module.js +0 -15
- package/esm2015/lib/components/modal/modal.component.js +0 -131
- package/esm2015/lib/components/modal/modal.module.js +0 -25
- package/esm2015/lib/components/number-field/number-field.component.js +0 -118
- package/esm2015/lib/components/number-field/number-field.module.js +0 -24
- package/esm2015/lib/components/page-footer/page-footer.component.js +0 -49
- package/esm2015/lib/components/page-footer/page-footer.module.js +0 -16
- package/esm2015/lib/components/page-header/hamburger/hamburger.component.js +0 -24
- package/esm2015/lib/components/page-header/page-header.component.js +0 -126
- package/esm2015/lib/components/page-header/page-header.module.js +0 -18
- package/esm2015/lib/components/page-header/search/search.component.js +0 -47
- package/esm2015/lib/components/passenger-select/passenger-select.component.js +0 -207
- package/esm2015/lib/components/passenger-select/passenger-select.module.js +0 -19
- package/esm2015/lib/components/phone-number/phone-number.component.js +0 -115
- package/esm2015/lib/components/phone-number/phone-number.module.js +0 -27
- package/esm2015/lib/components/premium-toggle/premium-toggle.component.js +0 -66
- package/esm2015/lib/components/premium-toggle/premium-toggle.module.js +0 -19
- package/esm2015/lib/components/radio/radio.component.js +0 -79
- package/esm2015/lib/components/radio/radio.module.js +0 -15
- package/esm2015/lib/components/select/optgroup/optgroup.component.js +0 -31
- package/esm2015/lib/components/select/option/option.component.js +0 -29
- package/esm2015/lib/components/select/select.component.js +0 -325
- package/esm2015/lib/components/select/select.module.js +0 -21
- package/esm2015/lib/components/simple-list/simple-list.component.js +0 -42
- package/esm2015/lib/components/simple-list/simple-list.module.js +0 -14
- package/esm2015/lib/components/slide-toggle/slide-toggle.component.js +0 -105
- package/esm2015/lib/components/slide-toggle/slide-toggle.module.js +0 -20
- package/esm2015/lib/components/slider/slider.component.js +0 -475
- package/esm2015/lib/components/slider/slider.module.js +0 -19
- package/esm2015/lib/components/sort/sort.component.js +0 -87
- package/esm2015/lib/components/sort/sort.module.js +0 -23
- package/esm2015/lib/components/spinner/spinner.component.js +0 -109
- package/esm2015/lib/components/spinner/spinner.module.js +0 -14
- package/esm2015/lib/components/subsidy-discount/subsidy-discount.component.js +0 -101
- package/esm2015/lib/components/subsidy-discount/subsidy-discount.module.js +0 -23
- package/esm2015/lib/components/suggestions/suggestions.component.js +0 -40
- package/esm2015/lib/components/suggestions/suggestions.module.js +0 -19
- package/esm2015/lib/components/tab-group/tab/tab.component.js +0 -123
- package/esm2015/lib/components/tab-group/tab-group.component.js +0 -85
- package/esm2015/lib/components/tab-group/tab-group.module.js +0 -20
- package/esm2015/lib/components/table/column/column.component.js +0 -17
- package/esm2015/lib/components/table/column-group/column-group.component.js +0 -34
- package/esm2015/lib/components/table/services/table.service.js +0 -20
- package/esm2015/lib/components/table/table-body/table-body.component.js +0 -27
- package/esm2015/lib/components/table/table-foot/table-foot.component.js +0 -27
- package/esm2015/lib/components/table/table-head/table-head.component.js +0 -27
- package/esm2015/lib/components/table/table-row/table-data/table-data.component.js +0 -15
- package/esm2015/lib/components/table/table-row/table-header/table-header.component.js +0 -15
- package/esm2015/lib/components/table/table-row/table-row.component.js +0 -27
- package/esm2015/lib/components/table/table.component.js +0 -29
- package/esm2015/lib/components/table/table.module.js +0 -45
- package/esm2015/lib/components/textarea/textarea.component.js +0 -73
- package/esm2015/lib/components/textarea/textarea.module.js +0 -20
- package/esm2015/lib/components/toggle/toggle.component.js +0 -86
- package/esm2015/lib/components/toggle/toggle.module.js +0 -22
- package/esm2015/lib/components/trip-summary/trip-summary.component.js +0 -152
- package/esm2015/lib/components/trip-summary/trip-summary.module.js +0 -23
- package/esm2015/lib/components/weather-icon/weather-icon.component.js +0 -56
- package/esm2015/lib/components/weather-icon/weather-icon.module.js +0 -14
- package/esm2015/lib/core/base/nas-component.base.js +0 -48
- package/esm2015/lib/core/directives/nas-class/nas-class.directive.js +0 -75
- package/esm2015/lib/core/directives/nas-class/nas-class.module.js +0 -17
- package/esm2015/lib/core/services/abandoned-basket/abandoned-basket.service.js +0 -55
- package/esm2015/lib/core/services/animate-helper/animate-helper.service.js +0 -47
- package/esm2015/lib/core/services/bem-helper/bem-helper.service.js +0 -41
- package/esm2015/lib/core/services/date/date-helper.service.js +0 -196
- package/esm2015/lib/core/services/device/device-helper.service.js +0 -43
- package/esm2015/lib/core/services/geolocation/geolocation.service.js +0 -60
- package/esm2015/lib/core/services/language/language-helper.service.js +0 -162
- package/esm2015/lib/core/services/sort/sort.service.js +0 -19
- package/esm2015/lib/core/services/viewport/viewport.service.js +0 -29
- package/esm2015/lib/services/get-position.service.js +0 -21
- package/esm2015/norwegian-core-components.js +0 -12
- package/fesm2015/norwegian-core-components.js +0 -10860
- package/fesm2015/norwegian-core-components.js.map +0 -1
- package/norwegian-core-components.d.ts +0 -11
- package/norwegian-core-components.metadata.json +0 -1
- /package/{esm2015/lib/components/accordion/index.js → esm2020/lib/components/accordion/index.mjs} +0 -0
- /package/{esm2015/lib/components/airport-select/index.js → esm2020/lib/components/airport-select/index.mjs} +0 -0
- /package/{esm2015/lib/components/airport-select/models/airport.model.js → esm2020/lib/components/airport-select/models/airport.model.mjs} +0 -0
- /package/{esm2015/lib/components/airport-select/models/results-labels.model.js → esm2020/lib/components/airport-select/models/results-labels.model.mjs} +0 -0
- /package/{esm2015/lib/components/autocomplete/index.js → esm2020/lib/components/autocomplete/index.mjs} +0 -0
- /package/{esm2015/lib/components/autocomplete/models/autocomplete.model.js → esm2020/lib/components/autocomplete/models/autocomplete.model.mjs} +0 -0
- /package/{esm2015/lib/components/backdrop/index.js → esm2020/lib/components/backdrop/index.mjs} +0 -0
- /package/{esm2015/lib/components/box/index.js → esm2020/lib/components/box/index.mjs} +0 -0
- /package/{esm2015/lib/components/button/index.js → esm2020/lib/components/button/index.mjs} +0 -0
- /package/{esm2015/lib/components/checkbox/index.js → esm2020/lib/components/checkbox/index.mjs} +0 -0
- /package/{esm2015/lib/components/chip/index.js → esm2020/lib/components/chip/index.mjs} +0 -0
- /package/{esm2015/lib/components/container/index.js → esm2020/lib/components/container/index.mjs} +0 -0
- /package/{esm2015/lib/components/continue/index.js → esm2020/lib/components/continue/index.mjs} +0 -0
- /package/{esm2015/lib/components/cover/index.js → esm2020/lib/components/cover/index.mjs} +0 -0
- /package/{esm2015/lib/components/datepicker/calendar/calendar-date.model.js → esm2020/lib/components/datepicker/calendar/calendar-date.model.mjs} +0 -0
- /package/{esm2015/lib/components/datepicker/calendar/enums/week-start.enum.js → esm2020/lib/components/datepicker/calendar/enums/week-start.enum.mjs} +0 -0
- /package/{esm2015/lib/components/datepicker/calendar/models/day.model.js → esm2020/lib/components/datepicker/calendar/models/day.model.mjs} +0 -0
- /package/{esm2015/lib/components/datepicker/calendar/models/select-option.model.js → esm2020/lib/components/datepicker/calendar/models/select-option.model.mjs} +0 -0
- /package/{esm2015/lib/components/datepicker/calendar/models/week.model.js → esm2020/lib/components/datepicker/calendar/models/week.model.mjs} +0 -0
- /package/{esm2015/lib/components/datepicker/index.js → esm2020/lib/components/datepicker/index.mjs} +0 -0
- /package/{esm2015/lib/components/datepicker-combo/index.js → esm2020/lib/components/datepicker-combo/index.mjs} +0 -0
- /package/{esm2015/lib/components/divider/index.js → esm2020/lib/components/divider/index.mjs} +0 -0
- /package/{esm2015/lib/components/dropdown/index.js → esm2020/lib/components/dropdown/index.mjs} +0 -0
- /package/{esm2015/lib/components/filter/enums/trip-type.enum.js → esm2020/lib/components/filter/enums/trip-type.enum.mjs} +0 -0
- /package/{esm2015/lib/components/filter/index.js → esm2020/lib/components/filter/index.mjs} +0 -0
- /package/{esm2015/lib/components/grid/index.js → esm2020/lib/components/grid/index.mjs} +0 -0
- /package/{esm2015/lib/components/icon/index.js → esm2020/lib/components/icon/index.mjs} +0 -0
- /package/{esm2015/lib/components/icon-list/icon-list.model.js → esm2020/lib/components/icon-list/icon-list.model.mjs} +0 -0
- /package/{esm2015/lib/components/icon-list/index.js → esm2020/lib/components/icon-list/index.mjs} +0 -0
- /package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
- /package/{esm2015/lib/components/info/index.js → esm2020/lib/components/info/index.mjs} +0 -0
- /package/{esm2015/lib/components/info/models/info.model.js → esm2020/lib/components/info/models/info.model.mjs} +0 -0
- /package/{esm2015/lib/components/input/index.js → esm2020/lib/components/input/index.mjs} +0 -0
- /package/{esm2015/lib/components/journey/index.js → esm2020/lib/components/journey/index.mjs} +0 -0
- /package/{esm2015/lib/components/journey/models/journey-flight.model.js → esm2020/lib/components/journey/models/journey-flight.model.mjs} +0 -0
- /package/{esm2015/lib/components/journey/models/journey.model.js → esm2020/lib/components/journey/models/journey.model.mjs} +0 -0
- /package/{esm2015/lib/components/journey-availability/index.js → esm2020/lib/components/journey-availability/index.mjs} +0 -0
- /package/{esm2015/lib/components/journey-availability-list/enums/availability-sort-option.enum.js → esm2020/lib/components/journey-availability-list/enums/availability-sort-option.enum.mjs} +0 -0
- /package/{esm2015/lib/components/journey-availability-list/index.js → esm2020/lib/components/journey-availability-list/index.mjs} +0 -0
- /package/{esm2015/lib/components/journey-selection/index.js → esm2020/lib/components/journey-selection/index.mjs} +0 -0
- /package/{esm2015/lib/components/journey-selection/models/journey-selection-collapsed.model.js → esm2020/lib/components/journey-selection/models/journey-selection-collapsed.model.mjs} +0 -0
- /package/{esm2015/lib/components/journey-selection/models/journey-selection-common.model.js → esm2020/lib/components/journey-selection/models/journey-selection-common.model.mjs} +0 -0
- /package/{esm2015/lib/components/journey-selection/models/journey-selection-expanded.model.js → esm2020/lib/components/journey-selection/models/journey-selection-expanded.model.mjs} +0 -0
- /package/{esm2015/lib/components/journey-selection/models/journey-selection.model.js → esm2020/lib/components/journey-selection/models/journey-selection.model.mjs} +0 -0
- /package/{esm2015/lib/components/journey-stopover/index.js → esm2020/lib/components/journey-stopover/index.mjs} +0 -0
- /package/{esm2015/lib/components/journey-stopover/models/stopover-time.model.js → esm2020/lib/components/journey-stopover/models/stopover-time.model.mjs} +0 -0
- /package/{esm2015/lib/components/list/index.js → esm2020/lib/components/list/index.mjs} +0 -0
- /package/{esm2015/lib/components/modal/index.js → esm2020/lib/components/modal/index.mjs} +0 -0
- /package/{esm2015/lib/components/number-field/index.js → esm2020/lib/components/number-field/index.mjs} +0 -0
- /package/{esm2015/lib/components/page-footer/index.js → esm2020/lib/components/page-footer/index.mjs} +0 -0
- /package/{esm2015/lib/components/page-header/index.js → esm2020/lib/components/page-header/index.mjs} +0 -0
- /package/{esm2015/lib/components/passenger-select/enums/passenger-type.enum.js → esm2020/lib/components/passenger-select/enums/passenger-type.enum.mjs} +0 -0
- /package/{esm2015/lib/components/passenger-select/index.js → esm2020/lib/components/passenger-select/index.mjs} +0 -0
- /package/{esm2015/lib/components/phone-number/index.js → esm2020/lib/components/phone-number/index.mjs} +0 -0
- /package/{esm2015/lib/components/premium-toggle/index.js → esm2020/lib/components/premium-toggle/index.mjs} +0 -0
- /package/{esm2015/lib/components/radio/index.js → esm2020/lib/components/radio/index.mjs} +0 -0
- /package/{esm2015/lib/components/select/index.js → esm2020/lib/components/select/index.mjs} +0 -0
- /package/{esm2015/lib/components/select/models/select-option.model.js → esm2020/lib/components/select/models/select-option.model.mjs} +0 -0
- /package/{esm2015/lib/components/simple-list/index.js → esm2020/lib/components/simple-list/index.mjs} +0 -0
- /package/{esm2015/lib/components/slide-toggle/index.js → esm2020/lib/components/slide-toggle/index.mjs} +0 -0
- /package/{esm2015/lib/components/slider/index.js → esm2020/lib/components/slider/index.mjs} +0 -0
- /package/{esm2015/lib/components/sort/index.js → esm2020/lib/components/sort/index.mjs} +0 -0
- /package/{esm2015/lib/components/spinner/index.js → esm2020/lib/components/spinner/index.mjs} +0 -0
- /package/{esm2015/lib/components/subsidy-discount/index.js → esm2020/lib/components/subsidy-discount/index.mjs} +0 -0
- /package/{esm2015/lib/components/subsidy-discount/models/subsidy-discount.model.js → esm2020/lib/components/subsidy-discount/models/subsidy-discount.model.mjs} +0 -0
- /package/{esm2015/lib/components/suggestions/index.js → esm2020/lib/components/suggestions/index.mjs} +0 -0
- /package/{esm2015/lib/components/tab-group/index.js → esm2020/lib/components/tab-group/index.mjs} +0 -0
- /package/{esm2015/lib/components/table/index.js → esm2020/lib/components/table/index.mjs} +0 -0
- /package/{esm2015/lib/components/textarea/index.js → esm2020/lib/components/textarea/index.mjs} +0 -0
- /package/{esm2015/lib/components/toggle/index.js → esm2020/lib/components/toggle/index.mjs} +0 -0
- /package/{esm2015/lib/components/toggle/models/options.model.js → esm2020/lib/components/toggle/models/options.model.mjs} +0 -0
- /package/{esm2015/lib/components/trip-summary/index.js → esm2020/lib/components/trip-summary/index.mjs} +0 -0
- /package/{esm2015/lib/components/weather-icon/index.js → esm2020/lib/components/weather-icon/index.mjs} +0 -0
- /package/{esm2015/lib/core/decorators/debounce.decorator.js → esm2020/lib/core/decorators/debounce.decorator.mjs} +0 -0
- /package/{esm2015/lib/core/directives/index.js → esm2020/lib/core/directives/index.mjs} +0 -0
- /package/{esm2015/lib/core/index.js → esm2020/lib/core/index.mjs} +0 -0
- /package/{esm2015/lib/core/models/abandoned-basket-item.model.js → esm2020/lib/core/models/abandoned-basket-item.model.mjs} +0 -0
- /package/{esm2015/lib/core/models/animate.model.js → esm2020/lib/core/models/animate.model.mjs} +0 -0
- /package/{esm2015/lib/core/models/class.model.js → esm2020/lib/core/models/class.model.mjs} +0 -0
- /package/{esm2015/lib/core/models/index.js → esm2020/lib/core/models/index.mjs} +0 -0
- /package/{esm2015/lib/core/models/link.model.js → esm2020/lib/core/models/link.model.mjs} +0 -0
- /package/{esm2015/lib/core/models/position.model.js → esm2020/lib/core/models/position.model.mjs} +0 -0
- /package/{esm2015/lib/core/models/utc-date.model.js → esm2020/lib/core/models/utc-date.model.mjs} +0 -0
- /package/{esm2015/lib/core/services/date/date-compare.enum.js → esm2020/lib/core/services/date/date-compare.enum.mjs} +0 -0
- /package/{esm2015/lib/core/services/geolocation/geolocation-state.enum.js → esm2020/lib/core/services/geolocation/geolocation-state.enum.mjs} +0 -0
- /package/{esm2015/lib/core/services/index.js → esm2020/lib/core/services/index.mjs} +0 -0
- /package/{esm2015/lib/index.js → esm2020/lib/index.mjs} +0 -0
- /package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
- /package/{esm2015/lib/shared/index.js → esm2020/lib/shared/index.mjs} +0 -0
- /package/{esm2015/lib/shared/models/flight-details.js → esm2020/lib/shared/models/flight-details.mjs} +0 -0
- /package/{esm2015/lib/shared/models/index.js → esm2020/lib/shared/models/index.mjs} +0 -0
- /package/{esm2015/lib/shared/models/journey-availability-sort.model.js → esm2020/lib/shared/models/journey-availability-sort.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/journey-availability.model.js → esm2020/lib/shared/models/journey-availability.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/journey-details.model.js → esm2020/lib/shared/models/journey-details.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/journey-duration.model.js → esm2020/lib/shared/models/journey-duration.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/journey-stopover.model.js → esm2020/lib/shared/models/journey-stopover.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/journey-transit-info.model.js → esm2020/lib/shared/models/journey-transit-info.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/operating-carrier.model.js → esm2020/lib/shared/models/operating-carrier.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/sort-option.model.js → esm2020/lib/shared/models/sort-option.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/sort.model.js → esm2020/lib/shared/models/sort.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/trip-item-details.model.js → esm2020/lib/shared/models/trip-item-details.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/trip-summary-details.model.js → esm2020/lib/shared/models/trip-summary-details.model.mjs} +0 -0
- /package/{esm2015/lib/shared/models/trip-summary.model.js → esm2020/lib/shared/models/trip-summary.model.mjs} +0 -0
- /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
|
@@ -1,515 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Norwegian Air Shuttle. All Rights Reserved.
|
|
4
|
-
*/
|
|
5
|
-
import { DatePipe } from '@angular/common';
|
|
6
|
-
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
7
|
-
import { NasComponentBase } from '../../core/base/nas-component.base';
|
|
8
|
-
import { UtcDate } from '../../core/models/utc-date.model';
|
|
9
|
-
import { DateHelper } from '../../core/services/date/date-helper.service';
|
|
10
|
-
/**
|
|
11
|
-
* @description
|
|
12
|
-
* Norwegian Date Picker Component | Functional
|
|
13
|
-
*/
|
|
14
|
-
export class DatepickerComponent extends NasComponentBase {
|
|
15
|
-
constructor(datePipe, dateService) {
|
|
16
|
-
super('nas-datepicker');
|
|
17
|
-
this.datePipe = datePipe;
|
|
18
|
-
this.dateService = dateService;
|
|
19
|
-
this.show = false;
|
|
20
|
-
/**
|
|
21
|
-
* @description
|
|
22
|
-
* The display format of the date when user has selected the date and it is being shown in the input box for the date picker.
|
|
23
|
-
* Please look at the angular Date pipe for valid formats and variations.
|
|
24
|
-
*/
|
|
25
|
-
this.dateDisplayFormat = 'EEEE d, MMMM yyyy';
|
|
26
|
-
/**
|
|
27
|
-
* @description
|
|
28
|
-
* The time display format.
|
|
29
|
-
*/
|
|
30
|
-
this.timeDisplayFormat = 'HH:mm';
|
|
31
|
-
/**
|
|
32
|
-
* @description
|
|
33
|
-
* A locale code for the locale format rules to use. When not supplied, uses the value of LOCALE_ID, which is en-US by default.
|
|
34
|
-
* This requires that registerLocaleData is called with the respective locale.
|
|
35
|
-
*/
|
|
36
|
-
this.locale = 'en-US';
|
|
37
|
-
/**
|
|
38
|
-
* @description
|
|
39
|
-
* Date selected by the user by clicking in date-picker date-box.
|
|
40
|
-
*/
|
|
41
|
-
this.selectedDateChange = new EventEmitter();
|
|
42
|
-
/**
|
|
43
|
-
* @description
|
|
44
|
-
* Month selected by the user by clicking in drop down for month selection or month navigation buttons.
|
|
45
|
-
*/
|
|
46
|
-
this.selectedMonthChange = new EventEmitter();
|
|
47
|
-
/**
|
|
48
|
-
* @description
|
|
49
|
-
* The calendar is open or closed.
|
|
50
|
-
*/
|
|
51
|
-
this.openChange = new EventEmitter();
|
|
52
|
-
/**
|
|
53
|
-
* @description
|
|
54
|
-
* When a user has actively changed the date.
|
|
55
|
-
*/
|
|
56
|
-
this.focusOnNextChange = new EventEmitter();
|
|
57
|
-
/**
|
|
58
|
-
* @description
|
|
59
|
-
* When a user has pressed shift + tab to go to previous control.
|
|
60
|
-
*/
|
|
61
|
-
this.focusOnPreviousChange = new EventEmitter();
|
|
62
|
-
this.forceNotOpenCalendar = false;
|
|
63
|
-
}
|
|
64
|
-
get showBackdrop() {
|
|
65
|
-
return this.show && !this.exists(this.disableBackdrop);
|
|
66
|
-
}
|
|
67
|
-
set showBackdrop(value) {
|
|
68
|
-
if (this.show === value) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
setTimeout(() => {
|
|
72
|
-
this.show = value;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* @description
|
|
77
|
-
* The lowest date allowed.
|
|
78
|
-
*/
|
|
79
|
-
get lowerLimitDate() {
|
|
80
|
-
return this.lowerLimitDateValue;
|
|
81
|
-
}
|
|
82
|
-
set lowerLimitDate(date) {
|
|
83
|
-
this.lowerLimitDateValue = date;
|
|
84
|
-
if (this.dateService.isLessThan(this.selectedDate, date, false, true, true)) {
|
|
85
|
-
this.selectedDate = date;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* @description
|
|
90
|
-
* boolean value to disable or enable the input of the date picker.
|
|
91
|
-
*/
|
|
92
|
-
get disabled() {
|
|
93
|
-
return this.disabledValue;
|
|
94
|
-
}
|
|
95
|
-
set disabled(value) {
|
|
96
|
-
this.disabledValue = value;
|
|
97
|
-
if (this.nasFormGroup && this.nasFormControlName) {
|
|
98
|
-
setTimeout(() => {
|
|
99
|
-
const control = this.nasFormGroup.get(this.nasFormControlName);
|
|
100
|
-
if (!control) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (value) {
|
|
104
|
-
control.disable();
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
control.enable();
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* @description
|
|
114
|
-
* An array of times to be added in the time selector.
|
|
115
|
-
*/
|
|
116
|
-
get times() {
|
|
117
|
-
return this.timesValue;
|
|
118
|
-
}
|
|
119
|
-
set times(times) {
|
|
120
|
-
if (!times) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
this.timesValue = times;
|
|
124
|
-
this.timeOptions = times.map(x => {
|
|
125
|
-
x.year = new Date().getUTCFullYear();
|
|
126
|
-
const option = {
|
|
127
|
-
title: this.datePipe.transform(this.dateService.date(x), this.timeDisplayFormat, 'UTC', this.locale),
|
|
128
|
-
value: this.dateService.date(x).toISOString()
|
|
129
|
-
};
|
|
130
|
-
return option;
|
|
131
|
-
});
|
|
132
|
-
this.dateDisplayFormat = 'mediumDate';
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* @description
|
|
136
|
-
* The calendar is open or closed.
|
|
137
|
-
*/
|
|
138
|
-
get open() {
|
|
139
|
-
return this.openValue;
|
|
140
|
-
}
|
|
141
|
-
set open(open) {
|
|
142
|
-
if (open === this.openValue) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
this.openValue = open;
|
|
146
|
-
if (open) {
|
|
147
|
-
this.openCalendar();
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
this.closeCalendar();
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* @description
|
|
155
|
-
* Set selected month.
|
|
156
|
-
*/
|
|
157
|
-
get selectedMonth() {
|
|
158
|
-
return this.selectedMonthValue;
|
|
159
|
-
}
|
|
160
|
-
set selectedMonth(month) {
|
|
161
|
-
if (!month) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
if (this.dateService.isSameMonth(this.selectedMonthValue, month)) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
setTimeout(() => {
|
|
168
|
-
this.selectedMonthValue = month;
|
|
169
|
-
this.selectedMonthChange.emit(month);
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* @description
|
|
174
|
-
* Gets or sets the selected Date in the date picker. Setting this date will highlight the date in the date picker
|
|
175
|
-
* and user can change it by clicking from any other enabled dates
|
|
176
|
-
* or by navigating betrween months and selecting from different available month.
|
|
177
|
-
*/
|
|
178
|
-
get selectedDate() {
|
|
179
|
-
return this.selectedDateValue;
|
|
180
|
-
}
|
|
181
|
-
set selectedDate(date) {
|
|
182
|
-
if (!date) {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
if (this.selectedDateValue && this.dateService.isSameDate(this.selectedDateValue, date)) {
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
if (this.selectedTimeValue) {
|
|
189
|
-
date = new UtcDate(date.year, date.month, date.date, this.selectedTimeValue.hours, this.selectedTimeValue.minutes);
|
|
190
|
-
}
|
|
191
|
-
this.selectedDateValue = date;
|
|
192
|
-
if (this.nasFormGroup && this.nasFormControlName) {
|
|
193
|
-
const control = this.nasFormGroup.get(this.nasFormControlName);
|
|
194
|
-
if (control) {
|
|
195
|
-
const calendarDate = {
|
|
196
|
-
model: this.datePipe.transform(this.dateService.date(date), this.dateDisplayFormat, 'UTC', this.locale),
|
|
197
|
-
date: date
|
|
198
|
-
};
|
|
199
|
-
control.patchValue(calendarDate);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
setTimeout(() => {
|
|
203
|
-
this.model = this.datePipe.transform(this.dateService.date(date), this.dateDisplayFormat, 'UTC', this.locale);
|
|
204
|
-
});
|
|
205
|
-
this.selectedDateChange.emit(date);
|
|
206
|
-
if (this.show) {
|
|
207
|
-
this.closeCalendar();
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* @description
|
|
212
|
-
* Sets the selected time in the time selector.
|
|
213
|
-
*/
|
|
214
|
-
get selectedTime() {
|
|
215
|
-
return this.selectedTimeValue;
|
|
216
|
-
}
|
|
217
|
-
set selectedTime(time) {
|
|
218
|
-
if (!time) {
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
this.selectedTimeValue = time;
|
|
222
|
-
if (this.timeOptions && this.timeOptions.length > 0) {
|
|
223
|
-
const timeOption = this.timeOptions.find(x => x.value === this.dateService.date(time).toISOString());
|
|
224
|
-
if (timeOption) {
|
|
225
|
-
this.selectedTimeOption = timeOption;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
if (this.selectedDate) {
|
|
229
|
-
this.selectedDate = new UtcDate(this.selectedDate.year, this.selectedDate.month, this.selectedDate.date, this.selectedTimeValue.hours, this.selectedTimeValue.minutes);
|
|
230
|
-
}
|
|
231
|
-
else if (this.activeDate) {
|
|
232
|
-
this.selectedDate = new UtcDate(this.activeDate.year, this.activeDate.month, this.activeDate.date, this.selectedTimeValue.hours, this.selectedTimeValue.minutes);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
get activeDate() {
|
|
236
|
-
if (this.selectedDate && this.activeDateValue &&
|
|
237
|
-
this.dateService.isLessThan(this.activeDateValue, this.selectedDate, false, true, true)) {
|
|
238
|
-
return this.activeDateValue;
|
|
239
|
-
}
|
|
240
|
-
if (this.activeDateValue) {
|
|
241
|
-
return this.activeDateValue;
|
|
242
|
-
}
|
|
243
|
-
else if (this.selectedDate) {
|
|
244
|
-
this.activeDateValue = this.selectedDate;
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
const now = new Date();
|
|
248
|
-
this.activeDateValue = new UtcDate(now.getFullYear(), now.getMonth(), now.getDate());
|
|
249
|
-
}
|
|
250
|
-
return this.activeDateValue;
|
|
251
|
-
}
|
|
252
|
-
set activeDate(date) {
|
|
253
|
-
if (this.lowerLimitDate && this.dateService.isLessThan(date, this.lowerLimitDate, false, true, true)) {
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
this.activeDateValue = date;
|
|
257
|
-
clearTimeout(this.activeDateTimeout);
|
|
258
|
-
this.activeDateTimeout = setTimeout(() => {
|
|
259
|
-
this.model = this.datePipe.transform(this.dateService.date(this.selectedDate), this.dateDisplayFormat, 'UTC', this.locale);
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
ngOnInit() {
|
|
263
|
-
if (this.nasFormGroup && this.nasFormControlName) {
|
|
264
|
-
this.nasFormGroup
|
|
265
|
-
.get(this.nasFormControlName)
|
|
266
|
-
.valueChanges
|
|
267
|
-
.subscribe(value => {
|
|
268
|
-
if (this.model === (value === null || value === void 0 ? void 0 : value.model)) {
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
setTimeout(() => {
|
|
272
|
-
this.model = value === null || value === void 0 ? void 0 : value.model;
|
|
273
|
-
this.selectedDateValue = value === null || value === void 0 ? void 0 : value.date;
|
|
274
|
-
});
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
onInputKeydownShiftTab(event) {
|
|
279
|
-
this.closeCalendar();
|
|
280
|
-
this.focusOnPreviousChange.emit(event);
|
|
281
|
-
}
|
|
282
|
-
onCalendarKeyDown(event) {
|
|
283
|
-
let currentActiveDate = this.activeDate.date;
|
|
284
|
-
let date;
|
|
285
|
-
if (document.activeElement === this.input.nativeElement) {
|
|
286
|
-
event.stopImmediatePropagation();
|
|
287
|
-
}
|
|
288
|
-
switch (event.key) {
|
|
289
|
-
case 'ArrowRight':
|
|
290
|
-
if (this.isActiveElementMonthButtons()) {
|
|
291
|
-
event.preventDefault();
|
|
292
|
-
break;
|
|
293
|
-
}
|
|
294
|
-
currentActiveDate++;
|
|
295
|
-
this.activeDate = this.dateService.utcDate(new Date(Date.UTC(this.activeDate.year, this.activeDate.month, currentActiveDate)));
|
|
296
|
-
this.setFocusOnActiveDateAsync();
|
|
297
|
-
break;
|
|
298
|
-
case 'ArrowLeft':
|
|
299
|
-
if (this.isActiveElementMonthButtons()) {
|
|
300
|
-
event.preventDefault();
|
|
301
|
-
break;
|
|
302
|
-
}
|
|
303
|
-
currentActiveDate--;
|
|
304
|
-
date = this.dateService.utcDate(new Date(Date.UTC(this.activeDate.year, this.activeDate.month, currentActiveDate)));
|
|
305
|
-
if (this.exists(this.disablePastSelection) && this.dateService.isInThePast(date)) {
|
|
306
|
-
break;
|
|
307
|
-
}
|
|
308
|
-
this.activeDate = date;
|
|
309
|
-
this.setFocusOnActiveDateAsync();
|
|
310
|
-
break;
|
|
311
|
-
case 'ArrowUp':
|
|
312
|
-
if (this.isActiveElementMonthButtons()) {
|
|
313
|
-
event.preventDefault();
|
|
314
|
-
break;
|
|
315
|
-
}
|
|
316
|
-
currentActiveDate -= 7;
|
|
317
|
-
date = this.dateService.utcDate(new Date(Date.UTC(this.activeDate.year, this.activeDate.month, currentActiveDate)));
|
|
318
|
-
if (this.exists(this.disablePastSelection) && this.dateService.isInThePast(date)) {
|
|
319
|
-
break;
|
|
320
|
-
}
|
|
321
|
-
this.activeDate = date;
|
|
322
|
-
this.setFocusOnActiveDateAsync();
|
|
323
|
-
event.preventDefault();
|
|
324
|
-
break;
|
|
325
|
-
case 'ArrowDown':
|
|
326
|
-
if (this.isActiveElementMonthButtons()) {
|
|
327
|
-
event.preventDefault();
|
|
328
|
-
break;
|
|
329
|
-
}
|
|
330
|
-
currentActiveDate += 7;
|
|
331
|
-
this.activeDateValue = this.dateService.utcDate(new Date(Date.UTC(this.activeDate.year, this.activeDate.month, currentActiveDate)));
|
|
332
|
-
this.setFocusOnActiveDateAsync();
|
|
333
|
-
event.preventDefault();
|
|
334
|
-
break;
|
|
335
|
-
case 'Escape':
|
|
336
|
-
this.closeCalendar();
|
|
337
|
-
this.forceNotOpenCalendar = true;
|
|
338
|
-
if (this.input) {
|
|
339
|
-
this.input.nativeElement.select();
|
|
340
|
-
}
|
|
341
|
-
break;
|
|
342
|
-
case 'Enter':
|
|
343
|
-
if (this.isActiveElementMonthButtons()) {
|
|
344
|
-
return;
|
|
345
|
-
}
|
|
346
|
-
this.setFocusOnTimeSelectorOrNext(event);
|
|
347
|
-
break;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
onTimeSelectorKeydown(event) {
|
|
351
|
-
if (event.key === 'Tab') {
|
|
352
|
-
if (event.shiftKey) {
|
|
353
|
-
this.openCalendar();
|
|
354
|
-
}
|
|
355
|
-
else {
|
|
356
|
-
this.focusOnNextChange.emit(event);
|
|
357
|
-
}
|
|
358
|
-
event.preventDefault();
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
setFocusOnTimeSelectorOrNext(event) {
|
|
362
|
-
if (this.timeOptions) {
|
|
363
|
-
setTimeout(() => {
|
|
364
|
-
const selectElement = this.timeSelector.select.nativeElement;
|
|
365
|
-
if (selectElement) {
|
|
366
|
-
selectElement.focus();
|
|
367
|
-
}
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
else {
|
|
371
|
-
this.focusOnNextChange.emit(event);
|
|
372
|
-
}
|
|
373
|
-
this.closeCalendar();
|
|
374
|
-
}
|
|
375
|
-
onMonthChange(currentMonth) {
|
|
376
|
-
this.selectedMonth = currentMonth;
|
|
377
|
-
}
|
|
378
|
-
onMouseDownDatepicker() {
|
|
379
|
-
this.openCalendar();
|
|
380
|
-
}
|
|
381
|
-
openCalendar() {
|
|
382
|
-
if (this.show || this.disabled || this.forceNotOpenCalendar) {
|
|
383
|
-
this.forceNotOpenCalendar = false;
|
|
384
|
-
return;
|
|
385
|
-
}
|
|
386
|
-
setTimeout(() => {
|
|
387
|
-
this.show = true;
|
|
388
|
-
});
|
|
389
|
-
this.activeDate = this.selectedDate;
|
|
390
|
-
clearTimeout(this.openCalendarTimeout);
|
|
391
|
-
this.openCalendarTimeout = setTimeout(() => {
|
|
392
|
-
this.input.nativeElement.select();
|
|
393
|
-
this.openChange.emit(this.show);
|
|
394
|
-
}, 100);
|
|
395
|
-
}
|
|
396
|
-
onTimeSelected(option) {
|
|
397
|
-
this.selectedTime = this.dateService.utcDate(option.value);
|
|
398
|
-
this.focusOnNextChange.emit();
|
|
399
|
-
}
|
|
400
|
-
getMainClass() {
|
|
401
|
-
return this.getContainerClass('', [(this.exists(this.timeOptions) && 'has-time'),
|
|
402
|
-
(this.exists(this.compact) && 'compact')]);
|
|
403
|
-
}
|
|
404
|
-
getLabelClass() {
|
|
405
|
-
if (this.exists(this.disabled)) {
|
|
406
|
-
return this.getClass('date-picker-label', ['disabled']);
|
|
407
|
-
}
|
|
408
|
-
else {
|
|
409
|
-
return this.getClass('date-picker-label');
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
closeCalendar() {
|
|
413
|
-
setTimeout(() => {
|
|
414
|
-
this.show = false;
|
|
415
|
-
});
|
|
416
|
-
this.openChange.emit(false);
|
|
417
|
-
}
|
|
418
|
-
selectDate(event) {
|
|
419
|
-
if (!this.isModelValid()) {
|
|
420
|
-
return;
|
|
421
|
-
}
|
|
422
|
-
this.activeDate = this.date();
|
|
423
|
-
if (!this.someValidDaysEqualsSelectedDay(this.activeDate)) {
|
|
424
|
-
return;
|
|
425
|
-
}
|
|
426
|
-
this.selectedDate = this.activeDate;
|
|
427
|
-
this.setFocusOnTimeSelectorOrNext(event);
|
|
428
|
-
this.closeCalendar();
|
|
429
|
-
}
|
|
430
|
-
isActiveElementMonthButtons() {
|
|
431
|
-
return document.activeElement === this.calendar.nextMonthRef.nativeElement ||
|
|
432
|
-
document.activeElement === this.calendar.previousMonthRef.nativeElement ||
|
|
433
|
-
this.calendar.monthSelectRef && document.activeElement === this.calendar.monthSelectRef.select.nativeElement;
|
|
434
|
-
}
|
|
435
|
-
setFocusOnActiveDateAsync() {
|
|
436
|
-
setTimeout(() => {
|
|
437
|
-
const elmementToFocus = this.calendar.activeDateCell;
|
|
438
|
-
if (elmementToFocus) {
|
|
439
|
-
elmementToFocus.focus();
|
|
440
|
-
}
|
|
441
|
-
}, 200);
|
|
442
|
-
}
|
|
443
|
-
isModelValid() {
|
|
444
|
-
const timestamp = Date.parse(this.model);
|
|
445
|
-
return isNaN(timestamp) !== true;
|
|
446
|
-
}
|
|
447
|
-
allDays() {
|
|
448
|
-
const allDays = new Array();
|
|
449
|
-
if (this.calendar) {
|
|
450
|
-
this.calendar.weeks.forEach(x => x && x.days.forEach(d => allDays.push(d)));
|
|
451
|
-
}
|
|
452
|
-
return allDays;
|
|
453
|
-
}
|
|
454
|
-
someValidDaysEqualsSelectedDay(selectedDay) {
|
|
455
|
-
return this.allDays()
|
|
456
|
-
.some(x => x
|
|
457
|
-
&& this.dateService.isSameDate(this.dateService.utcDate(x.date), selectedDay)
|
|
458
|
-
&& (x.isAvailable || !x.isDisabled));
|
|
459
|
-
}
|
|
460
|
-
date() {
|
|
461
|
-
const modelDate = new Date(this.model);
|
|
462
|
-
const modelUtcDate = new UtcDate(modelDate.getFullYear(), modelDate.getMonth(), modelDate.getDate());
|
|
463
|
-
return modelUtcDate;
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
DatepickerComponent.decorators = [
|
|
467
|
-
{ type: Component, args: [{
|
|
468
|
-
selector: 'nas-datepicker',
|
|
469
|
-
template: "<label [nasClass]=\"getMainClass()\">\n <div [nasClass]=\"getClass('date-picker-content')\">\n <div [nasClass]=\"getClass('date-picker-wrapper')\">\n <div [nasClass]=\"getClass('controls', show && 'active')\"\n (mousedown)=\"onMouseDownDatepicker()\">\n <div #datePickerContent\n [nasClass]=\"getLabelClass()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <input #input\n [nasClass]=\"getClass('date-picker')\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-required]=\"required\"\n [attr.aria-haspopup]=\"true\"\n (keydown.tab)=\"selectDate($event)\"\n (keydown.shift.tab)=\"onInputKeydownShiftTab($event)\"\n (keydown.enter)=\"selectDate($event)\"\n (keydown.arrowdown)=\"onCalendarKeyDown($event)\"\n (keydown.arrowleft)=\"onCalendarKeyDown($event)\"\n (keydown.arrowright)=\"onCalendarKeyDown($event)\"\n (keydown.arrowup)=\"onCalendarKeyDown($event)\"\n (focus)=\"openCalendar()\"\n [(ngModel)]=\"model\" />\n </div>\n <div [nasClass]=\"getClass('calendar-icon')\">\n <nas-icon *ngIf=\"exists(disabled); else regularIcon\"\n [icon]=\"'calendar--disabled'\"\n [ngStyle]=\"{'pointer-events': 'none'}\">\n </nas-icon>\n <ng-template #regularIcon>\n <nas-icon icon=\"calendar\"\n (click)=\"openCalendar()\">\n </nas-icon>\n </ng-template>\n </div>\n <nas-calendar #calendar *ngIf=\"show\"\n [nasFormGroup]=\"nasFormGroup\"\n [nasFormControlName]=\"nasFormControlName\"\n [dateDisplayFormat]=\"dateDisplayFormat\"\n [noAvailableFlightsLabel]=\"noAvailableFlightsLabel\"\n [availableFlightsLabel]=\"availableFlightsLabel\"\n [availability]=\"exists(availability)\"\n [availableDates]=\"availableDates\"\n [lowerLimitDate]=\"lowerLimitDate\"\n [disablePastSelection]=\"exists(disablePastSelection)\"\n [locale]=\"locale\"\n [ariaLabelPreviousMonth]=\"ariaLabelPreviousMonth\"\n [ariaLabelNextMonth]=\"ariaLabelNextMonth\"\n [(activeDate)]=\"activeDate\"\n [(selectedDate)]=\"selectedDate\"\n (focusOnNextChange)=\"setFocusOnTimeSelectorOrNext($event)\"\n (keydown)=\"onCalendarKeyDown($event)\"\n (monthChange)=\"onMonthChange($event)\">\n </nas-calendar>\n </div>\n <nas-backdrop [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>\n </div>\n</label>\n<div *ngIf=\"timeOptions\"\n [nasClass]=\"getClass('time-selector-wrapper')\">\n <nas-select #timeSelector\n [selected]=\"selectedTimeOption\"\n (selectedChange)=\"onTimeSelected($event)\"\n (keydown)=\"onTimeSelectorKeydown($event)\">\n <nas-option *ngFor=\"let time of timeOptions\"\n [option]=\"time\"></nas-option>\n </nas-select>\n</div>\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n",
|
|
470
|
-
encapsulation: ViewEncapsulation.None,
|
|
471
|
-
styles: ["@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@-webkit-keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@-webkit-keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@-webkit-keyframes fade-out{to{opacity:0}}@keyframes fade-out{to{opacity:0}}@-webkit-keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@-webkit-keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@-webkit-keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}:host{display:flex}.nas-datepicker{position:relative;top:0;left:0;width:100%;height:100%;overflow-x:visible;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px;max-height:98vh;overflow-y:visible}.nas-datepicker__date-picker-wrapper{position:relative;padding-bottom:3px;border-bottom:3px solid #c3c3c3}.nas-datepicker__date-picker-wrapper .nas-datepicker__date-picker{display:block;width:100%;height:35px;padding:0 16px 9px;border:0;border-radius:0;transition:all .2s cubic-bezier(0,0,.1,1);font-family:inherit;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;color:#003251;font-family:\"Apercu\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-weight:normal;font-size:16px;line-height:26px;position:relative;z-index:3;background-color:inherit}.nas-datepicker__date-picker-wrapper .nas-datepicker__date-picker[disabled]{color:#909090;background-color:#fff}.nas-datepicker__date-picker-wrapper .nas-datepicker__date-picker:-moz-placeholder{line-height:normal}.nas-datepicker__date-picker-wrapper .nas-datepicker__date-picker::-moz-placeholder{line-height:normal}.nas-datepicker__date-picker-wrapper .nas-datepicker__date-picker:-ms-input-placeholder{line-height:normal}.nas-datepicker__date-picker-wrapper .nas-datepicker__date-picker::-webkit-input-placeholder{line-height:normal}.nas-datepicker__date-picker-wrapper .nas-datepicker__date-picker:focus~.nas-datepicker__input-line{border-color:#003251}.nas-datepicker__date-picker-wrapper .nas-datepicker__calendar-icon{position:absolute;right:15px;top:50%;margin-top:-12px;vertical-align:middle;cursor:pointer;z-index:3}.nas-datepicker__date-picker-wrapper .nas-datepicker__date-picker-label{padding:9px 16px 0;position:relative;z-index:3;color:#003251;font-family:\"Apercu\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-weight:bold;font-size:14px;line-height:20px;background-color:inherit;display:flex}.nas-datepicker__date-picker-wrapper .nas-datepicker__date-picker-label--disabled{color:#909090}.nas-datepicker__date-picker-wrapper nas-calendar{position:absolute;top:75px;vertical-align:middle;right:0px;z-index:4}@media (min-width: 640px){.nas-datepicker__date-picker-wrapper nas-calendar{right:-15px}}.nas-datepicker__date-picker-wrapper .nas-datepicker__controls{background-color:#fff}.nas-datepicker__time-selector-wrapper{border-bottom:3px solid #c3c3c3}.nas-datepicker__time-selector-wrapper nas-select{display:flex}.nas-datepicker__time-selector-wrapper nas-select ::ng-deep .nas-select{margin-bottom:0;margin-left:3px}.nas-datepicker__time-selector-wrapper nas-select ::ng-deep .nas-select:after{bottom:26px}.nas-datepicker__time-selector-wrapper nas-select ::ng-deep .nas-select select{border:3px solid #fff;background-color:#fff;height:64px}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.nas-datepicker__time-selector-wrapper nas-select ::ng-deep .nas-select select{height:60px}}.nas-datepicker__time-selector-wrapper nas-select ::ng-deep .nas-select select:focus{border-color:#003251}.nas-datepicker--has-time{padding-right:3px}.nas-datepicker nas-spinner{position:absolute;top:300px;left:45%;right:45%}.nas-datepicker__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0019292b;-webkit-animation:datepicker-backdrop .7s ease-out both;animation:datepicker-backdrop .7s ease-out both}.nas-datepicker--compact{padding:0;margin-bottom:0}@-webkit-keyframes datepicker-backdrop{0%{opacity:0}}@keyframes datepicker-backdrop{0%{opacity:0}}\n"]
|
|
472
|
-
},] }
|
|
473
|
-
];
|
|
474
|
-
DatepickerComponent.ctorParameters = () => [
|
|
475
|
-
{ type: DatePipe },
|
|
476
|
-
{ type: DateHelper }
|
|
477
|
-
];
|
|
478
|
-
DatepickerComponent.propDecorators = {
|
|
479
|
-
input: [{ type: ViewChild, args: ['input',] }],
|
|
480
|
-
calendar: [{ type: ViewChild, args: ['calendar',] }],
|
|
481
|
-
datePickerContent: [{ type: ViewChild, args: ['datePickerContent',] }],
|
|
482
|
-
timeSelector: [{ type: ViewChild, args: ['timeSelector',] }],
|
|
483
|
-
ariaLabelBackdrop: [{ type: Input }],
|
|
484
|
-
disableBackdrop: [{ type: Input }],
|
|
485
|
-
noAvailableFlightsLabel: [{ type: Input }],
|
|
486
|
-
availableFlightsLabel: [{ type: Input }],
|
|
487
|
-
disablePastSelection: [{ type: Input }],
|
|
488
|
-
lowerLimitDate: [{ type: Input }],
|
|
489
|
-
availability: [{ type: Input }],
|
|
490
|
-
availableDates: [{ type: Input }],
|
|
491
|
-
disabled: [{ type: Input }],
|
|
492
|
-
placeholder: [{ type: Input }],
|
|
493
|
-
required: [{ type: Input }],
|
|
494
|
-
ariaDescribedby: [{ type: Input }],
|
|
495
|
-
ariaLabel: [{ type: Input }],
|
|
496
|
-
dateDisplayFormat: [{ type: Input }],
|
|
497
|
-
timeDisplayFormat: [{ type: Input }],
|
|
498
|
-
locale: [{ type: Input }],
|
|
499
|
-
compact: [{ type: Input }],
|
|
500
|
-
nasFormGroup: [{ type: Input }],
|
|
501
|
-
nasFormControlName: [{ type: Input }],
|
|
502
|
-
times: [{ type: Input }],
|
|
503
|
-
open: [{ type: Input }],
|
|
504
|
-
selectedMonth: [{ type: Input }],
|
|
505
|
-
selectedDate: [{ type: Input }],
|
|
506
|
-
selectedTime: [{ type: Input }],
|
|
507
|
-
ariaLabelPreviousMonth: [{ type: Input }],
|
|
508
|
-
ariaLabelNextMonth: [{ type: Input }],
|
|
509
|
-
selectedDateChange: [{ type: Output }],
|
|
510
|
-
selectedMonthChange: [{ type: Output }],
|
|
511
|
-
openChange: [{ type: Output }],
|
|
512
|
-
focusOnNextChange: [{ type: Output }],
|
|
513
|
-
focusOnPreviousChange: [{ type: Output }]
|
|
514
|
-
};
|
|
515
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUVsQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBSTFFOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBZ0I7SUF1YXZELFlBQ1UsUUFBa0IsRUFDbEIsV0FBdUI7UUFDL0IsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXRhakMsU0FBSSxHQUFHLEtBQUssQ0FBQztRQW1JYjs7OztXQUlHO1FBQ00sc0JBQWlCLEdBQUcsbUJBQW1CLENBQUM7UUFFakQ7OztXQUdHO1FBQ00sc0JBQWlCLEdBQUcsT0FBTyxDQUFDO1FBRXJDOzs7O1dBSUc7UUFDTSxXQUFNLEdBQUcsT0FBTyxDQUFDO1FBdU0xQjs7O1dBR0c7UUFDTyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTNEOzs7V0FHRztRQUNPLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFNUQ7OztXQUdH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Z0JMLEtBQUs7NkJBTUwsS0FBSzt1QkFNTCxLQUFLOzBCQTRCTCxLQUFLO3VCQU1MLEtBQUs7OEJBTUwsS0FBSzt3QkFNTCxLQUFLO2dDQU9MLEtBQUs7Z0NBTUwsS0FBSztxQkFPTCxLQUFLO3NCQU1MLEtBQUs7MkJBUUwsS0FBSztpQ0FRTCxLQUFLO29CQU1MLEtBQUs7bUJBMkJMLEtBQUs7NEJBc0JMLEtBQUs7MkJBeUJMLEtBQUs7MkJBZ0RMLEtBQUs7cUNBeUNMLEtBQUs7aUNBTUwsS0FBSztpQ0FNTCxNQUFNO2tDQU1OLE1BQU07eUJBTU4sTUFBTTtnQ0FNTixNQUFNO29DQU1OLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4vY2FsZW5kYXIvbW9kZWxzL2RheS5tb2RlbCc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25Nb2RlbCB9IGZyb20gJy4vY2FsZW5kYXIvbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7IFV0Y0RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy91dGMtZGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9kYXRlL2RhdGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlTW9kZWwgfSBmcm9tICcuL2NhbGVuZGFyL2NhbGVuZGFyLWRhdGUubW9kZWwnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIERhdGUgUGlja2VyIENvbXBvbmVudCB8IEZ1bmN0aW9uYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHRpbWVPcHRpb25zOiBBcnJheTxTZWxlY3RPcHRpb25Nb2RlbD47XG4gIG1vZGVsOiBzdHJpbmc7XG4gIHNob3cgPSBmYWxzZTtcbiAgc2VsZWN0ZWRUaW1lT3B0aW9uOiBTZWxlY3RPcHRpb25Nb2RlbDtcblxuICBnZXQgc2hvd0JhY2tkcm9wKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3cgJiYgIXRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZUJhY2tkcm9wKTtcbiAgfVxuICBzZXQgc2hvd0JhY2tkcm9wKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuc2hvdyA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvdyA9IHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXInKSBjYWxlbmRhcjogQ2FsZW5kYXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXJDb250ZW50JykgZGF0ZVBpY2tlckNvbnRlbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RpbWVTZWxlY3RvcicpIHRpbWVTZWxlY3RvcjogU2VsZWN0Q29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgdG8gdGhlIGJhY2tkcm9wcy5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gdmFsdWUgd2hlbiBzZXQgd2lsbCBkaXNhYmxlIHNob3dpbmcgdGhlIGJhY2tkcm9wIG9uIHBvcHVwIG9wZW5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVCYWNrZHJvcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIExhYmVsIGZvciBubyBhdmFpbGFibGUgZmxpZ2h0cy5cbiAgICovXG4gIEBJbnB1dCgpIG5vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3IgYXZhaWxhYmxlIGZsaWdodHMuXG4gICAqL1xuICBASW5wdXQoKSBhdmFpbGFibGVGbGlnaHRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGUgcG9zc2liaWxpdHkgdG8gc2VsZWN0IGRhdGVzIGluIHRoZSBwYXN0LlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZVBhc3RTZWxlY3Rpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgbG93ZXN0IGRhdGUgYWxsb3dlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBsb3dlckxpbWl0RGF0ZSgpOiBVdGNEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5sb3dlckxpbWl0RGF0ZVZhbHVlO1xuICB9XG4gIHNldCBsb3dlckxpbWl0RGF0ZShkYXRlOiBVdGNEYXRlKSB7XG4gICAgdGhpcy5sb3dlckxpbWl0RGF0ZVZhbHVlID0gZGF0ZTtcblxuICAgIGlmICh0aGlzLmRhdGVTZXJ2aWNlLmlzTGVzc1RoYW4odGhpcy5zZWxlY3RlZERhdGUsIGRhdGUsIGZhbHNlLCB0cnVlLCB0cnVlKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgZGF0ZXBpY2tlciBpbiBhdmFpbGFiaWxpdHkgbW9kZSB3aGVyZSBhdmFpbGFibGUgZGF0ZXMgY2FuIGJlIGFkZGVkLlxuICAgKi9cbiAgQElucHV0KCkgYXZhaWxhYmlsaXR5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgd2l0aCBhbGwgdGhlIGF2YWlsYWJsZSAoc2VsZWN0YWJsZSkgZGF0ZXMgb2YgdGhlIG1vbnRoLlxuICAgKi9cbiAgQElucHV0KCkgYXZhaWxhYmxlRGF0ZXM6IEFycmF5PFV0Y0RhdGU+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogYm9vbGVhbiB2YWx1ZSB0byBkaXNhYmxlIG9yIGVuYWJsZSB0aGUgaW5wdXQgb2YgdGhlIGRhdGUgcGlja2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkVmFsdWU7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZFZhbHVlID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXAgJiYgdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250cm9sLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcGxhY2UgaG9sZGVyIHN0cmluZyBmb3IgdGhlIGlucHV0IGZvciBkYXRlIHBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiB0aGlzIHdpbGwgc2V0IHRoZSByZXF1aXJlZCBhdHRyaWJ1dGUgb24gdGhlIGlucHV0IHNvIHN1ZXIgaGFzIHRvIGRhdGUtcGlja2VyIHRoZSBkYXRlLlxuICAgKi9cbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJcyB1c2VkIHRvIGluZGljYXRlIHRoZSBJRHMgb2YgdGhlIGVsZW1lbnRzIHRoYXQgZGVzY3JpYmUgdGhlIGRhdGUgcGlja2VyIGlucHV0LlxuICAgKi9cbiAgQElucHV0KCkgYXJpYURlc2NyaWJlZGJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBcmlhIGxhYmVsIGZvciBpbnB1dCB0aGF0IGVuYWJsZXMgZGF0ZS1waWNrZXIgcG9wdXAgb25jZSBjbGlja2VkLiBGb3IgYWNjZXNzaWJpbGl0eSB3ZWIgc3RhbmRhcmRzLlxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgZGlzcGxheSBmb3JtYXQgb2YgdGhlIGRhdGUgd2hlbiB1c2VyIGhhcyBzZWxlY3RlZCB0aGUgZGF0ZSBhbmQgaXQgaXMgYmVpbmcgc2hvd24gaW4gdGhlIGlucHV0IGJveCBmb3IgdGhlIGRhdGUgcGlja2VyLlxuICAgKiBQbGVhc2UgbG9vayBhdCB0aGUgYW5ndWxhciBEYXRlIHBpcGUgZm9yIHZhbGlkIGZvcm1hdHMgYW5kIHZhcmlhdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKSBkYXRlRGlzcGxheUZvcm1hdCA9ICdFRUVFIGQsIE1NTU0geXl5eSc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdGltZSBkaXNwbGF5IGZvcm1hdC5cbiAgICovXG4gIEBJbnB1dCgpIHRpbWVEaXNwbGF5Rm9ybWF0ID0gJ0hIOm1tJztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS4gV2hlbiBub3Qgc3VwcGxpZWQsIHVzZXMgdGhlIHZhbHVlIG9mIExPQ0FMRV9JRCwgd2hpY2ggaXMgZW4tVVMgYnkgZGVmYXVsdC5cbiAgICogVGhpcyByZXF1aXJlcyB0aGF0IHJlZ2lzdGVyTG9jYWxlRGF0YSBpcyBjYWxsZWQgd2l0aCB0aGUgcmVzcGVjdGl2ZSBsb2NhbGUuXG4gICAqL1xuICBASW5wdXQoKSBsb2NhbGUgPSAnZW4tVVMnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBtb2RpZmllciB0byByZW1vdmUgdGhlIHBhZGRpbmcgYW5kIG1hcmdpbnMgYXJvdW5kIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgY29tcGFjdDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgdGhlIHBhcmVudCdzIGZvcm0gZ3JvdXAuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IGlzIHJlcXVpZXJlZCB0byBiZSBmaWxsZWQgaWYgbmFzRm9ybUNvbnRyb2xOYW1lIGFkZGVkLlxuICAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGFycmF5IG9mIHRpbWVzIHRvIGJlIGFkZGVkIGluIHRoZSB0aW1lIHNlbGVjdG9yLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHRpbWVzKCk6IEFycmF5PFV0Y0RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lc1ZhbHVlO1xuICB9XG4gIHNldCB0aW1lcyh0aW1lczogQXJyYXk8VXRjRGF0ZT4pIHtcbiAgICBpZiAoIXRpbWVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50aW1lc1ZhbHVlID0gdGltZXM7XG4gICAgdGhpcy50aW1lT3B0aW9ucyA9IHRpbWVzLm1hcCh4ID0+IHtcbiAgICAgIHgueWVhciA9IG5ldyBEYXRlKCkuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICAgIGNvbnN0IG9wdGlvbjogU2VsZWN0T3B0aW9uTW9kZWwgPSB7XG4gICAgICAgIHRpdGxlOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVTZXJ2aWNlLmRhdGUoeCksIHRoaXMudGltZURpc3BsYXlGb3JtYXQsICdVVEMnLCB0aGlzLmxvY2FsZSksXG4gICAgICAgIHZhbHVlOiB0aGlzLmRhdGVTZXJ2aWNlLmRhdGUoeCkudG9JU09TdHJpbmcoKVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9KTtcblxuICAgIHRoaXMuZGF0ZURpc3BsYXlGb3JtYXQgPSAnbWVkaXVtRGF0ZSc7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBjYWxlbmRhciBpcyBvcGVuIG9yIGNsb3NlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBvcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wZW5WYWx1ZTtcbiAgfVxuICBzZXQgb3BlbihvcGVuOiBib29sZWFuKSB7XG4gICAgaWYgKG9wZW4gPT09IHRoaXMub3BlblZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuVmFsdWUgPSBvcGVuO1xuXG4gICAgaWYgKG9wZW4pIHtcbiAgICAgIHRoaXMub3BlbkNhbGVuZGFyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2VDYWxlbmRhcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0IHNlbGVjdGVkIG1vbnRoLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkTW9udGgoKTogVXRjRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRNb250aFZhbHVlO1xuICB9XG4gIHNldCBzZWxlY3RlZE1vbnRoKG1vbnRoOiBVdGNEYXRlKSB7XG4gICAgaWYgKCFtb250aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVTZXJ2aWNlLmlzU2FtZU1vbnRoKHRoaXMuc2VsZWN0ZWRNb250aFZhbHVlLCBtb250aCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb250aFZhbHVlID0gbW9udGg7XG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGhDaGFuZ2UuZW1pdChtb250aCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgc2VsZWN0ZWQgRGF0ZSBpbiB0aGUgZGF0ZSBwaWNrZXIuIFNldHRpbmcgdGhpcyBkYXRlIHdpbGwgaGlnaGxpZ2h0IHRoZSBkYXRlIGluIHRoZSBkYXRlIHBpY2tlclxuICAgKiBhbmQgdXNlciBjYW4gY2hhbmdlIGl0IGJ5IGNsaWNraW5nIGZyb20gYW55IG90aGVyIGVuYWJsZWQgZGF0ZXNcbiAgICogb3IgYnkgbmF2aWdhdGluZyBiZXRyd2VlbiBtb250aHMgYW5kIHNlbGVjdGluZyBmcm9tIGRpZmZlcmVudCBhdmFpbGFibGUgbW9udGguXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWREYXRlKCk6IFV0Y0RhdGUge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRGF0ZVZhbHVlO1xuICB9XG4gIHNldCBzZWxlY3RlZERhdGUoZGF0ZTogVXRjRGF0ZSkge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZVZhbHVlICYmIHRoaXMuZGF0ZVNlcnZpY2UuaXNTYW1lRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZVZhbHVlLCBkYXRlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZVZhbHVlKSB7XG4gICAgICBkYXRlID0gbmV3IFV0Y0RhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoLCBkYXRlLmRhdGUsIHRoaXMuc2VsZWN0ZWRUaW1lVmFsdWUuaG91cnMsIHRoaXMuc2VsZWN0ZWRUaW1lVmFsdWUubWludXRlcyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZERhdGVWYWx1ZSA9IGRhdGU7XG5cbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXAgJiYgdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcblxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSk7XG5cbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyRGF0ZTogQ2FsZW5kYXJEYXRlTW9kZWwgPSB7XG4gICAgICAgICAgbW9kZWw6IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZGF0ZVNlcnZpY2UuZGF0ZShkYXRlKSwgdGhpcy5kYXRlRGlzcGxheUZvcm1hdCwgJ1VUQycsIHRoaXMubG9jYWxlKSxcbiAgICAgICAgICBkYXRlOiBkYXRlXG4gICAgICAgIH07XG5cbiAgICAgICAgY29udHJvbC5wYXRjaFZhbHVlKGNhbGVuZGFyRGF0ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlU2VydmljZS5kYXRlKGRhdGUpLCB0aGlzLmRhdGVEaXNwbGF5Rm9ybWF0LCAnVVRDJywgdGhpcy5sb2NhbGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcblxuICAgIGlmICh0aGlzLnNob3cpIHtcbiAgICAgIHRoaXMuY2xvc2VDYWxlbmRhcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgc2VsZWN0ZWQgdGltZSBpbiB0aGUgdGltZSBzZWxlY3Rvci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBzZWxlY3RlZFRpbWUoKTogVXRjRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUaW1lVmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkVGltZSh0aW1lOiBVdGNEYXRlKSB7XG4gICAgaWYgKCF0aW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZFRpbWVWYWx1ZSA9IHRpbWU7XG5cbiAgICBpZiAodGhpcy50aW1lT3B0aW9ucyAmJiB0aGlzLnRpbWVPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHRpbWVPcHRpb24gPSB0aGlzLnRpbWVPcHRpb25zLmZpbmQoeCA9PiB4LnZhbHVlID09PSB0aGlzLmRhdGVTZXJ2aWNlLmRhdGUodGltZSkudG9JU09TdHJpbmcoKSk7XG5cbiAgICAgIGlmICh0aW1lT3B0aW9uKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lT3B0aW9uID0gdGltZU9wdGlvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3IFV0Y0RhdGUoXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnllYXIsXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLm1vbnRoLFxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5kYXRlLFxuICAgICAgICB0aGlzLnNlbGVjdGVkVGltZVZhbHVlLmhvdXJzLFxuICAgICAgICB0aGlzLnNlbGVjdGVkVGltZVZhbHVlLm1pbnV0ZXMpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVEYXRlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG5ldyBVdGNEYXRlKFxuICAgICAgICB0aGlzLmFjdGl2ZURhdGUueWVhcixcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlLm1vbnRoLFxuICAgICAgICB0aGlzLmFjdGl2ZURhdGUuZGF0ZSxcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWVWYWx1ZS5ob3VycyxcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWVWYWx1ZS5taW51dGVzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQVJJQSBsYWJlbCBmb3IgdGhlIHByZXZpb3VzIG1vbnRoIGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxQcmV2aW91c01vbnRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBUklBIGxhYmVsIGZvciB0aGUgbmV4dCBtb250aCBidXR0b24gaW4gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsTmV4dE1vbnRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEYXRlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyIGJ5IGNsaWNraW5nIGluIGRhdGUtcGlja2VyIGRhdGUtYm94LlxuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VXRjRGF0ZT4oKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIE1vbnRoIHNlbGVjdGVkIGJ5IHRoZSB1c2VyIGJ5IGNsaWNraW5nIGluIGRyb3AgZG93biBmb3IgbW9udGggc2VsZWN0aW9uIG9yIG1vbnRoIG5hdmlnYXRpb24gYnV0dG9ucy5cbiAgICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZE1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGNhbGVuZGFyIGlzIG9wZW4gb3IgY2xvc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGVuIGEgdXNlciBoYXMgYWN0aXZlbHkgY2hhbmdlZCB0aGUgZGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoKSBmb2N1c09uTmV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGVuIGEgdXNlciBoYXMgcHJlc3NlZCBzaGlmdCArIHRhYiB0byBnbyB0byBwcmV2aW91cyBjb250cm9sLlxuICAgKi9cbiAgQE91dHB1dCgpIGZvY3VzT25QcmV2aW91c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQ+KCk7XG5cbiAgZ2V0IGFjdGl2ZURhdGUoKTogVXRjRGF0ZSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlICYmIHRoaXMuYWN0aXZlRGF0ZVZhbHVlICYmXG4gICAgICAgIHRoaXMuZGF0ZVNlcnZpY2UuaXNMZXNzVGhhbih0aGlzLmFjdGl2ZURhdGVWYWx1ZSwgdGhpcy5zZWxlY3RlZERhdGUsIGZhbHNlLCB0cnVlLCB0cnVlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlRGF0ZVZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZURhdGVWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlRGF0ZVZhbHVlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZVZhbHVlID0gdGhpcy5zZWxlY3RlZERhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICB0aGlzLmFjdGl2ZURhdGVWYWx1ZSA9IG5ldyBVdGNEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgbm93LmdldERhdGUoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGl2ZURhdGVWYWx1ZTtcbiAgfVxuICBzZXQgYWN0aXZlRGF0ZShkYXRlOiBVdGNEYXRlKSB7XG4gICAgaWYgKHRoaXMubG93ZXJMaW1pdERhdGUgJiYgdGhpcy5kYXRlU2VydmljZS5pc0xlc3NUaGFuKGRhdGUsIHRoaXMubG93ZXJMaW1pdERhdGUsIGZhbHNlLCB0cnVlLCB0cnVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlRGF0ZVZhbHVlID0gZGF0ZTtcblxuICAgIGNsZWFyVGltZW91dCh0aGlzLmFjdGl2ZURhdGVUaW1lb3V0KTtcblxuICAgIHRoaXMuYWN0aXZlRGF0ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubW9kZWwgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVTZXJ2aWNlLmRhdGUodGhpcy5zZWxlY3RlZERhdGUpLCB0aGlzLmRhdGVEaXNwbGF5Rm9ybWF0LCAnVVRDJywgdGhpcy5sb2NhbGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQ2FsZW5kYXJUaW1lb3V0OiBhbnk7XG4gIHByaXZhdGUgYWN0aXZlRGF0ZVRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBzZWxlY3RlZERhdGVWYWx1ZTogVXRjRGF0ZTtcbiAgcHJpdmF0ZSBvcGVuVmFsdWU6IGJvb2xlYW47XG4gIHByaXZhdGUgYWN0aXZlRGF0ZVZhbHVlOiBVdGNEYXRlO1xuICBwcml2YXRlIHRpbWVzVmFsdWU6IEFycmF5PFV0Y0RhdGU+O1xuICBwcml2YXRlIHNlbGVjdGVkVGltZVZhbHVlOiBVdGNEYXRlO1xuICBwcml2YXRlIHNlbGVjdGVkTW9udGhWYWx1ZTogVXRjRGF0ZTtcbiAgcHJpdmF0ZSBkaXNhYmxlZFZhbHVlOiBib29sZWFuO1xuICBwcml2YXRlIGZvcmNlTm90T3BlbkNhbGVuZGFyID0gZmFsc2U7XG4gIHByaXZhdGUgbG93ZXJMaW1pdERhdGVWYWx1ZTogVXRjRGF0ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcbiAgICBwcml2YXRlIGRhdGVTZXJ2aWNlOiBEYXRlSGVscGVyKSB7XG4gICAgc3VwZXIoJ25hcy1kYXRlcGlja2VyJyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXAgJiYgdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIHRoaXMubmFzRm9ybUdyb3VwXG4gICAgICAgIC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpXG4gICAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMubW9kZWwgPT09IHZhbHVlPy5tb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHZhbHVlPy5tb2RlbDtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlVmFsdWUgPSB2YWx1ZT8uZGF0ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEtleWRvd25TaGlmdFRhYihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VDYWxlbmRhcigpO1xuICAgIHRoaXMuZm9jdXNPblByZXZpb3VzQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25DYWxlbmRhcktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgY3VycmVudEFjdGl2ZURhdGUgPSB0aGlzLmFjdGl2ZURhdGUuZGF0ZTtcbiAgICBsZXQgZGF0ZTogVXRjRGF0ZTtcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZlRWxlbWVudE1vbnRoQnV0dG9ucygpKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRBY3RpdmVEYXRlKys7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5kYXRlU2VydmljZS51dGNEYXRlKG5ldyBEYXRlKERhdGUuVVRDKHRoaXMuYWN0aXZlRGF0ZS55ZWFyLCB0aGlzLmFjdGl2ZURhdGUubW9udGgsIGN1cnJlbnRBY3RpdmVEYXRlKSkpO1xuICAgICAgICB0aGlzLnNldEZvY3VzT25BY3RpdmVEYXRlQXN5bmMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZUVsZW1lbnRNb250aEJ1dHRvbnMoKSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50QWN0aXZlRGF0ZS0tO1xuICAgICAgICBkYXRlID0gdGhpcy5kYXRlU2VydmljZS51dGNEYXRlKG5ldyBEYXRlKERhdGUuVVRDKHRoaXMuYWN0aXZlRGF0ZS55ZWFyLCB0aGlzLmFjdGl2ZURhdGUubW9udGgsIGN1cnJlbnRBY3RpdmVEYXRlKSkpO1xuXG4gICAgICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVQYXN0U2VsZWN0aW9uKSAmJiB0aGlzLmRhdGVTZXJ2aWNlLmlzSW5UaGVQYXN0KGRhdGUpKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLnNldEZvY3VzT25BY3RpdmVEYXRlQXN5bmMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmVFbGVtZW50TW9udGhCdXR0b25zKCkpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudEFjdGl2ZURhdGUgLT0gNztcbiAgICAgICAgZGF0ZSA9IHRoaXMuZGF0ZVNlcnZpY2UudXRjRGF0ZShuZXcgRGF0ZShEYXRlLlVUQyh0aGlzLmFjdGl2ZURhdGUueWVhciwgdGhpcy5hY3RpdmVEYXRlLm1vbnRoLCBjdXJyZW50QWN0aXZlRGF0ZSkpKTtcblxuICAgICAgICBpZiAodGhpcy5leGlzdHModGhpcy5kaXNhYmxlUGFzdFNlbGVjdGlvbikgJiYgdGhpcy5kYXRlU2VydmljZS5pc0luVGhlUGFzdChkYXRlKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5zZXRGb2N1c09uQWN0aXZlRGF0ZUFzeW5jKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmVFbGVtZW50TW9udGhCdXR0b25zKCkpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudEFjdGl2ZURhdGUgKz0gNztcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlVmFsdWUgPSB0aGlzLmRhdGVTZXJ2aWNlLnV0Y0RhdGUobmV3IERhdGUoRGF0ZS5VVEModGhpcy5hY3RpdmVEYXRlLnllYXIsIHRoaXMuYWN0aXZlRGF0ZS5tb250aCwgY3VycmVudEFjdGl2ZURhdGUpKSk7XG5cbiAgICAgICAgdGhpcy5zZXRGb2N1c09uQWN0aXZlRGF0ZUFzeW5jKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5jbG9zZUNhbGVuZGFyKCk7XG5cbiAgICAgICAgdGhpcy5mb3JjZU5vdE9wZW5DYWxlbmRhciA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZlRWxlbWVudE1vbnRoQnV0dG9ucygpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRGb2N1c09uVGltZVNlbGVjdG9yT3JOZXh0KGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgb25UaW1lU2VsZWN0b3JLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICB0aGlzLm9wZW5DYWxlbmRhcigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb2N1c09uTmV4dENoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBzZXRGb2N1c09uVGltZVNlbGVjdG9yT3JOZXh0KGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVPcHRpb25zKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0RWxlbWVudCA9IHRoaXMudGltZVNlbGVjdG9yLnNlbGVjdC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoc2VsZWN0RWxlbWVudCkge1xuICAgICAgICAgIHNlbGVjdEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNPbk5leHRDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZUNhbGVuZGFyKCk7XG4gIH1cblxuICBvbk1vbnRoQ2hhbmdlKGN1cnJlbnRNb250aDogVXRjRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRNb250aCA9IGN1cnJlbnRNb250aDtcbiAgfVxuXG4gIG9uTW91c2VEb3duRGF0ZXBpY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5DYWxlbmRhcigpO1xuICB9XG5cbiAgb3BlbkNhbGVuZGFyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3cgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcmNlTm90T3BlbkNhbGVuZGFyKSB7XG4gICAgICB0aGlzLmZvcmNlTm90T3BlbkNhbGVuZGFyID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3cgPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5zZWxlY3RlZERhdGU7XG5cbiAgICBjbGVhclRpbWVvdXQodGhpcy5vcGVuQ2FsZW5kYXJUaW1lb3V0KTtcblxuICAgIHRoaXMub3BlbkNhbGVuZGFyVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5zaG93KTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgb25UaW1lU2VsZWN0ZWQob3B0aW9uOiBTZWxlY3RPcHRpb25Nb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRUaW1lID0gdGhpcy5kYXRlU2VydmljZS51dGNEYXRlKG9wdGlvbi52YWx1ZSk7XG4gICAgdGhpcy5mb2N1c09uTmV4dENoYW5nZS5lbWl0KCk7XG4gIH1cblxuICBnZXRNYWluQ2xhc3MoKTogQXJyYXk8Q2xhc3NNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmdldENvbnRhaW5lckNsYXNzKCcnLCBbKHRoaXMuZXhpc3RzKDxhbnk+dGhpcy50aW1lT3B0aW9ucykgJiYgJ2hhcy10aW1lJyksXG4gICAgKHRoaXMuZXhpc3RzKHRoaXMuY29tcGFjdCkgJiYgJ2NvbXBhY3QnKV0pO1xuICB9XG5cbiAgZ2V0TGFiZWxDbGFzcygpOiBDbGFzc01vZGVsIHtcbiAgICBpZiAodGhpcy5leGlzdHModGhpcy5kaXNhYmxlZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENsYXNzKCdkYXRlLXBpY2tlci1sYWJlbCcsIFsnZGlzYWJsZWQnXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENsYXNzKCdkYXRlLXBpY2tlci1sYWJlbCcpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlQ2FsZW5kYXIoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3cgPSBmYWxzZTtcbiAgICB9KTtcblxuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHNlbGVjdERhdGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNNb2RlbFZhbGlkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmRhdGUoKTtcblxuICAgIGlmICghdGhpcy5zb21lVmFsaWREYXlzRXF1YWxzU2VsZWN0ZWREYXkodGhpcy5hY3RpdmVEYXRlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5hY3RpdmVEYXRlO1xuICAgIHRoaXMuc2V0Rm9jdXNPblRpbWVTZWxlY3Rvck9yTmV4dChldmVudCk7XG5cbiAgICB0aGlzLmNsb3NlQ2FsZW5kYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBY3RpdmVFbGVtZW50TW9udGhCdXR0b25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmNhbGVuZGFyLm5leHRNb250aFJlZi5uYXRpdmVFbGVtZW50IHx8XG4gICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmNhbGVuZGFyLnByZXZpb3VzTW9udGhSZWYubmF0aXZlRWxlbWVudCB8fFxuICAgICAgdGhpcy5jYWxlbmRhci5tb250aFNlbGVjdFJlZiAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmNhbGVuZGFyLm1vbnRoU2VsZWN0UmVmLnNlbGVjdC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb2N1c09uQWN0aXZlRGF0ZUFzeW5jKCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZWxtZW1lbnRUb0ZvY3VzID0gdGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlQ2VsbDtcbiAgICAgIGlmIChlbG1lbWVudFRvRm9jdXMpIHtcbiAgICAgICAgZWxtZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMjAwKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNNb2RlbFZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUucGFyc2UodGhpcy5tb2RlbCk7XG4gICAgcmV0dXJuIGlzTmFOKHRpbWVzdGFtcCkgIT09IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGFsbERheXMoKTogQXJyYXk8RGF5TW9kZWw+IHtcbiAgICBjb25zdCBhbGxEYXlzID0gbmV3IEFycmF5PERheU1vZGVsPigpO1xuXG4gICAgaWYgKHRoaXMuY2FsZW5kYXIpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXIud2Vla3MuZm9yRWFjaCh4ID0+IHggJiYgeC5kYXlzLmZvckVhY2goZCA9PiBhbGxEYXlzLnB1c2goZCkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWxsRGF5cztcbiAgfVxuXG4gIHByaXZhdGUgc29tZVZhbGlkRGF5c0VxdWFsc1NlbGVjdGVkRGF5KHNlbGVjdGVkRGF5OiBVdGNEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsRGF5cygpXG4gICAgICAuc29tZSh4ID0+IHhcbiAgICAgICAgJiYgdGhpcy5kYXRlU2VydmljZS5pc1NhbWVEYXRlKHRoaXMuZGF0ZVNlcnZpY2UudXRjRGF0ZSh4LmRhdGUpLCBzZWxlY3RlZERheSlcbiAgICAgICAgJiYgKHguaXNBdmFpbGFibGUgfHwgIXguaXNEaXNhYmxlZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRlKCk6IFV0Y0RhdGUge1xuICAgIGNvbnN0IG1vZGVsRGF0ZSA9IG5ldyBEYXRlKHRoaXMubW9kZWwpO1xuICAgIGNvbnN0IG1vZGVsVXRjRGF0ZSA9IG5ldyBVdGNEYXRlKG1vZGVsRGF0ZS5nZXRGdWxsWWVhcigpLCBtb2RlbERhdGUuZ2V0TW9udGgoKSwgbW9kZWxEYXRlLmdldERhdGUoKSk7XG4gICAgcmV0dXJuIG1vZGVsVXRjRGF0ZTtcbiAgfVxufVxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { DatePipe } from '@angular/common';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
-
import { CalendarComponent } from './calendar/calendar.component';
|
|
6
|
-
import { DatepickerComponent } from './datepicker.component';
|
|
7
|
-
import { NasClassModule } from '../../core/directives/nas-class/nas-class.module';
|
|
8
|
-
import { DateHelper } from '../../core/services/date/date-helper.service';
|
|
9
|
-
import { BackdropModule } from '../backdrop/backdrop.module';
|
|
10
|
-
import { CoverModule } from '../cover/cover.module';
|
|
11
|
-
import { IconModule } from '../icon/icon.module';
|
|
12
|
-
import { SelectModule } from '../select/select.module';
|
|
13
|
-
import { SpinnerModule } from '../spinner/spinner.module';
|
|
14
|
-
export class DatepickerModule {
|
|
15
|
-
}
|
|
16
|
-
DatepickerModule.decorators = [
|
|
17
|
-
{ type: NgModule, args: [{
|
|
18
|
-
declarations: [DatepickerComponent, CalendarComponent],
|
|
19
|
-
imports: [
|
|
20
|
-
CommonModule,
|
|
21
|
-
CoverModule,
|
|
22
|
-
SelectModule,
|
|
23
|
-
IconModule,
|
|
24
|
-
NasClassModule,
|
|
25
|
-
FormsModule,
|
|
26
|
-
SpinnerModule,
|
|
27
|
-
ReactiveFormsModule,
|
|
28
|
-
BackdropModule
|
|
29
|
-
],
|
|
30
|
-
exports: [DatepickerComponent, CalendarComponent],
|
|
31
|
-
providers: [DatePipe, DateHelper]
|
|
32
|
-
},] }
|
|
33
|
-
];
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFrQjFELE1BQU0sT0FBTyxnQkFBZ0I7OztZQWhCNUIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDO2dCQUN0RCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixjQUFjO29CQUNkLFdBQVc7b0JBQ1gsYUFBYTtvQkFDYixtQkFBbUI7b0JBQ25CLGNBQWM7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ2pELFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUM7YUFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXNDbGFzc01vZHVsZSB9IGZyb20gJy4uLy4uL2NvcmUvZGlyZWN0aXZlcy9uYXMtY2xhc3MvbmFzLWNsYXNzLm1vZHVsZSc7XG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9kYXRlL2RhdGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFja2Ryb3BNb2R1bGUgfSBmcm9tICcuLi9iYWNrZHJvcC9iYWNrZHJvcC5tb2R1bGUnO1xuaW1wb3J0IHsgQ292ZXJNb2R1bGUgfSBmcm9tICcuLi9jb3Zlci9jb3Zlci5tb2R1bGUnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgU2VsZWN0TW9kdWxlIH0gZnJvbSAnLi4vc2VsZWN0L3NlbGVjdC5tb2R1bGUnO1xuaW1wb3J0IHsgU3Bpbm5lck1vZHVsZSB9IGZyb20gJy4uL3NwaW5uZXIvc3Bpbm5lci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtEYXRlcGlja2VyQ29tcG9uZW50LCBDYWxlbmRhckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ292ZXJNb2R1bGUsXG4gICAgU2VsZWN0TW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgTmFzQ2xhc3NNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgU3Bpbm5lck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEJhY2tkcm9wTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtEYXRlcGlja2VyQ29tcG9uZW50LCBDYWxlbmRhckNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0RhdGVQaXBlLCBEYXRlSGVscGVyXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyTW9kdWxlIHsgfVxuIl19
|