@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
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NasClassDirective } from './nas-class.directive';
|
|
4
|
+
import { BemHelper } from '../../services/bem-helper/bem-helper.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class NasClassModule {
|
|
7
|
+
}
|
|
8
|
+
NasClassModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NasClassModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
NasClassModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NasClassModule, declarations: [NasClassDirective], imports: [CommonModule], exports: [NasClassDirective] });
|
|
10
|
+
NasClassModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NasClassModule, providers: [BemHelper], imports: [CommonModule] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NasClassModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
imports: [
|
|
15
|
+
CommonModule
|
|
16
|
+
],
|
|
17
|
+
declarations: [NasClassDirective],
|
|
18
|
+
exports: [NasClassDirective],
|
|
19
|
+
providers: [BemHelper]
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFzLWNsYXNzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvZGlyZWN0aXZlcy9uYXMtY2xhc3MvbmFzLWNsYXNzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBVXpFLE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBSlYsaUJBQWlCLGFBRjlCLFlBQVksYUFHSixpQkFBaUI7NEdBR2hCLGNBQWMsYUFGZCxDQUFDLFNBQVMsQ0FBQyxZQUpwQixZQUFZOzJGQU1ILGNBQWM7a0JBUjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE5hc0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnLi9uYXMtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJlbUhlbHBlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2JlbS1oZWxwZXIvYmVtLWhlbHBlci5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtOYXNDbGFzc0RpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtOYXNDbGFzc0RpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW0JlbUhlbHBlcl1cbn0pXG5leHBvcnQgY2xhc3MgTmFzQ2xhc3NNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -28,4 +28,4 @@ function ReplaceWithPolyfill() {
|
|
|
28
28
|
}
|
|
29
29
|
HTMLElement.prototype.replaceWith = ReplaceWithPolyfill;
|
|
30
30
|
export {};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1lbGVtZW50LmV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvZXh0ZW5zaW9ucy9odG1sLWVsZW1lbnQuZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLFNBQVMsbUJBQW1CO0lBQ3hCLFlBQVksQ0FBQyxDQUFDLDBCQUEwQjtJQUN4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQy9CLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDekIsSUFBSSxXQUFpRSxDQUFDO0lBRXRFLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDaEIsT0FBTztLQUNQO0lBQ0csSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLDRCQUE0QjtRQUNsQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzVCO0lBQ0QsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLG1FQUFtRTtRQUM3RSxXQUFXLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFO1lBQ2pDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNoRTthQUFNLElBQUksV0FBVyxDQUFDLFVBQVUsRUFBRTtZQUMvQixXQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNuRDtRQUNELGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsc0VBQXNFO1lBQzVFLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzFDO2FBQU0sRUFBRSxpQ0FBaUM7WUFDdEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3REO0tBQ0o7QUFDTCxDQUFDO0FBRUQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyB9O1xuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJlcGxhY2VXaXRoKC4uLm5vZGVzOiAoTm9kZSB8IHN0cmluZylbXSk6IHZvaWQ7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBSZXBsYWNlV2l0aFBvbHlmaWxsKCkge1xuICAgICd1c2Utc3RyaWN0JzsgLy8gRm9yIHNhZmFyaSwgYW5kIElFID4gMTBcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7XG4gICAgbGV0IGkgPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGxldCBjdXJyZW50Tm9kZTogeyBwYXJlbnROb2RlOiB7IHJlbW92ZUNoaWxkOiAoYXJnMDogYW55KSA9PiB2b2lkIH0gfTtcblxuICAgIGlmICghcGFyZW50KSB7XG4gcmV0dXJuO1xufVxuICAgIGlmICghaSkgeyAvLyBpZiB0aGVyZSBhcmUgbm8gYXJndW1lbnRzXG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKTtcbiAgICB9XG4gICAgd2hpbGUgKGktLSkgeyAvLyBpLS0gZGVjcmVtZW50cyBpIGFuZCByZXR1cm5zIHRoZSB2YWx1ZSBvZiBpIGJlZm9yZSB0aGUgZGVjcmVtZW50XG4gICAgICAgIGN1cnJlbnROb2RlID0gYXJndW1lbnRzW2ldO1xuICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnROb2RlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgY3VycmVudE5vZGUgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3VycmVudE5vZGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnROb2RlLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIGN1cnJlbnROb2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY3VycmVudE5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRoZSB2YWx1ZSBvZiBcImlcIiBiZWxvdyBpcyBhZnRlciB0aGUgZGVjcmVtZW50XG4gICAgICAgIGlmICghaSkgeyAvLyBpZiBjdXJyZW50Tm9kZSBpcyB0aGUgZmlyc3QgYXJndW1lbnQgKGN1cnJlbnROb2RlID09PSBhcmd1bWVudHNbMF0pXG4gICAgICAgICAgICBwYXJlbnQucmVwbGFjZUNoaWxkKGN1cnJlbnROb2RlLCB0aGlzKTtcbiAgICAgICAgfSBlbHNlIHsgLy8gaWYgY3VycmVudE5vZGUgaXNuJ3QgdGhlIGZpcnN0XG4gICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGN1cnJlbnROb2RlLCB0aGlzLm5leHRTaWJsaW5nKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuSFRNTEVsZW1lbnQucHJvdG90eXBlLnJlcGxhY2VXaXRoID0gUmVwbGFjZVdpdGhQb2x5ZmlsbDtcbiJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class AbandonedBasketService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.abandonedBasketKey = 'ngStorage-abandonedBasket';
|
|
6
|
+
}
|
|
7
|
+
getAll() {
|
|
8
|
+
let abandonedBasket = [];
|
|
9
|
+
try {
|
|
10
|
+
if (!localStorage) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
abandonedBasket = JSON.parse(localStorage.getItem(this.abandonedBasketKey)) || [];
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
if (!Array.isArray(abandonedBasket) || abandonedBasket.length <= 0) {
|
|
19
|
+
this.remove();
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
abandonedBasket = abandonedBasket.filter(x => {
|
|
23
|
+
const departureDateParsed = Date.parse(x.departureDate);
|
|
24
|
+
if (isNaN(departureDateParsed)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const today = new Date();
|
|
28
|
+
today.setHours(0, 0, 0, 0);
|
|
29
|
+
const todayParsed = Date.parse(today.toString());
|
|
30
|
+
if (departureDateParsed < todayParsed) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
});
|
|
35
|
+
this.replace(abandonedBasket);
|
|
36
|
+
return abandonedBasket;
|
|
37
|
+
}
|
|
38
|
+
remove() {
|
|
39
|
+
try {
|
|
40
|
+
localStorage.removeItem(this.abandonedBasketKey);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
replace(abandonedBasket) {
|
|
46
|
+
try {
|
|
47
|
+
localStorage.setItem(this.abandonedBasketKey, JSON.stringify(abandonedBasket));
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
AbandonedBasketService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbandonedBasketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
54
|
+
AbandonedBasketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbandonedBasketService });
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbandonedBasketService, decorators: [{
|
|
56
|
+
type: Injectable
|
|
57
|
+
}] });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJhbmRvbmVkLWJhc2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9hYmFuZG9uZWQtYmFza2V0L2FiYW5kb25lZC1iYXNrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRVUsdUJBQWtCLEdBQUcsMkJBQTJCLENBQUM7S0EwRDFEO0lBeERDLE1BQU07UUFDSixJQUFJLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFFekIsSUFBSTtZQUNGLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pCLE9BQU8sRUFBRSxDQUFDO2FBQ1g7WUFFRCxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ25GO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFeEQsSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFBRTtnQkFDOUIsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDekIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUUzQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRWpELElBQUksbUJBQW1CLEdBQUcsV0FBVyxFQUFFO2dCQUNyQyxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFOUIsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJO1lBQ0YsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNsRDtRQUFDLE9BQU8sS0FBSyxFQUFFO1NBQ2Y7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUFDLGVBQWdEO1FBQzlELElBQUk7WUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7U0FFaEY7UUFBQyxPQUFPLEtBQUssRUFBRTtTQUNmO0lBQ0gsQ0FBQzs7bUhBMURVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYmFuZG9uZWRCYXNrZXRJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWJhbmRvbmVkLWJhc2tldC1pdGVtLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFiYW5kb25lZEJhc2tldFNlcnZpY2Uge1xuICBwcml2YXRlIGFiYW5kb25lZEJhc2tldEtleSA9ICduZ1N0b3JhZ2UtYWJhbmRvbmVkQmFza2V0JztcblxuICBnZXRBbGwoKTogQXJyYXk8QWJhbmRvbmVkQmFza2V0SXRlbU1vZGVsPiB7XG4gICAgbGV0IGFiYW5kb25lZEJhc2tldCA9IFtdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmICghbG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cblxuICAgICAgYWJhbmRvbmVkQmFza2V0ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmFiYW5kb25lZEJhc2tldEtleSkpIHx8IFtdO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFiYW5kb25lZEJhc2tldCkgfHwgYWJhbmRvbmVkQmFza2V0Lmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLnJlbW92ZSgpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGFiYW5kb25lZEJhc2tldCA9IGFiYW5kb25lZEJhc2tldC5maWx0ZXIoeCA9PiB7XG4gICAgICBjb25zdCBkZXBhcnR1cmVEYXRlUGFyc2VkID0gRGF0ZS5wYXJzZSh4LmRlcGFydHVyZURhdGUpO1xuXG4gICAgICBpZiAoaXNOYU4oZGVwYXJ0dXJlRGF0ZVBhcnNlZCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICB0b2RheS5zZXRIb3VycygwLCAwLCAwLCAwKTtcblxuICAgICAgY29uc3QgdG9kYXlQYXJzZWQgPSBEYXRlLnBhcnNlKHRvZGF5LnRvU3RyaW5nKCkpO1xuXG4gICAgICBpZiAoZGVwYXJ0dXJlRGF0ZVBhcnNlZCA8IHRvZGF5UGFyc2VkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlcGxhY2UoYWJhbmRvbmVkQmFza2V0KTtcblxuICAgIHJldHVybiBhYmFuZG9uZWRCYXNrZXQ7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZSgpIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5hYmFuZG9uZWRCYXNrZXRLZXkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlKGFiYW5kb25lZEJhc2tldDogQXJyYXk8QWJhbmRvbmVkQmFza2V0SXRlbU1vZGVsPikge1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmFiYW5kb25lZEJhc2tldEtleSwgSlNPTi5zdHJpbmdpZnkoYWJhbmRvbmVkQmFza2V0KSk7XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class AnimateHelper {
|
|
4
|
+
constructor() { }
|
|
5
|
+
animateFromElement(from, to, time = 800) {
|
|
6
|
+
const fromPos = from.getBoundingClientRect();
|
|
7
|
+
const fromWidth = fromPos.width;
|
|
8
|
+
const fromHeight = fromPos.height;
|
|
9
|
+
const fromTop = fromPos.top;
|
|
10
|
+
const fromLeft = fromPos.left;
|
|
11
|
+
const toPos = to.getBoundingClientRect();
|
|
12
|
+
const scaleX = ((fromWidth * 100) / toPos.width / 100).toFixed(3);
|
|
13
|
+
const scaleY = ((fromHeight * 100) / toPos.height / 100).toFixed(3);
|
|
14
|
+
const left = (fromLeft - toPos.left).toFixed(3);
|
|
15
|
+
const top = (fromTop - toPos.top).toFixed(3);
|
|
16
|
+
return `${this.makeAnimation(`
|
|
17
|
+
transform-origin: left top;
|
|
18
|
+
transform: translate(${left}px, ${top}px) scale(${scaleX}, ${scaleY});
|
|
19
|
+
opacity: 0;
|
|
20
|
+
`, 'transform-origin: left top;', time)} ${time}ms cubic-bezier(0.19, 1, 0.22, 1) both`;
|
|
21
|
+
}
|
|
22
|
+
makeAnimation(from, to, time) {
|
|
23
|
+
const animationName = `animation-${Math.random()
|
|
24
|
+
.toString(36)
|
|
25
|
+
.substr(2, 9)}`;
|
|
26
|
+
this.makeKeyframe(`
|
|
27
|
+
@keyframes ${animationName} {
|
|
28
|
+
${`from { ${from} }`}
|
|
29
|
+
${`to { ${to} }`}
|
|
30
|
+
}
|
|
31
|
+
`, time);
|
|
32
|
+
return animationName;
|
|
33
|
+
}
|
|
34
|
+
makeKeyframe(keyframes, time) {
|
|
35
|
+
const style = document.createElement('style');
|
|
36
|
+
const head = document.getElementsByTagName('head')[0];
|
|
37
|
+
style.innerHTML = keyframes;
|
|
38
|
+
head.appendChild(style);
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
head.removeChild(style);
|
|
41
|
+
}, time + 3000);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
AnimateHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AnimateHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
45
|
+
AnimateHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AnimateHelper });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AnimateHelper, decorators: [{
|
|
47
|
+
type: Injectable
|
|
48
|
+
}], ctorParameters: function () { return []; } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZS1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvc2VydmljZXMvYW5pbWF0ZS1oZWxwZXIvYW5pbWF0ZS1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sYUFBYTtJQUV4QixnQkFBZ0IsQ0FBQztJQUVqQixrQkFBa0IsQ0FBQyxJQUFpQixFQUFFLEVBQWUsRUFBRSxPQUFlLEdBQUc7UUFDdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDNUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUU5QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDOzsrQkFFRixJQUFJLE9BQU8sR0FBRyxhQUFhLE1BQU0sS0FBSyxNQUFNOztPQUVwRSxFQUNELDZCQUE2QixFQUM3QixJQUFJLENBQ0wsSUFBSSxJQUFJLHdDQUF3QyxDQUFDO0lBQ3BELENBQUM7SUFFTyxhQUFhLENBQUMsSUFBWSxFQUFFLEVBQVUsRUFBRSxJQUFZO1FBQzFELE1BQU0sYUFBYSxHQUNqQixhQUFhLElBQUksQ0FBQyxNQUFNLEVBQUU7YUFDdkIsUUFBUSxDQUFDLEVBQUUsQ0FBQzthQUNaLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsWUFBWSxDQUNmO21CQUNhLGFBQWE7VUFDdEIsVUFBVSxJQUFJLElBQUk7VUFDbEIsUUFBUSxFQUFFLElBQUk7O0tBRW5CLEVBQ0MsSUFBSSxDQUNMLENBQUM7UUFFRixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRU8sWUFBWSxDQUFDLFNBQWlCLEVBQUUsSUFBWTtRQUNsRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxLQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUMsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQzs7MEdBdkRVLGFBQWE7OEdBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW5pbWF0ZUhlbHBlciB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBhbmltYXRlRnJvbUVsZW1lbnQoZnJvbTogSFRNTEVsZW1lbnQsIHRvOiBIVE1MRWxlbWVudCwgdGltZTogbnVtYmVyID0gODAwKSB7XG4gICAgY29uc3QgZnJvbVBvcyA9IGZyb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgZnJvbVdpZHRoID0gZnJvbVBvcy53aWR0aDtcbiAgICBjb25zdCBmcm9tSGVpZ2h0ID0gZnJvbVBvcy5oZWlnaHQ7XG4gICAgY29uc3QgZnJvbVRvcCA9IGZyb21Qb3MudG9wO1xuICAgIGNvbnN0IGZyb21MZWZ0ID0gZnJvbVBvcy5sZWZ0O1xuXG4gICAgY29uc3QgdG9Qb3MgPSB0by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzY2FsZVggPSAoKGZyb21XaWR0aCAqIDEwMCkgLyB0b1Bvcy53aWR0aCAvIDEwMCkudG9GaXhlZCgzKTtcbiAgICBjb25zdCBzY2FsZVkgPSAoKGZyb21IZWlnaHQgKiAxMDApIC8gdG9Qb3MuaGVpZ2h0IC8gMTAwKS50b0ZpeGVkKDMpO1xuICAgIGNvbnN0IGxlZnQgPSAoZnJvbUxlZnQgLSB0b1Bvcy5sZWZ0KS50b0ZpeGVkKDMpO1xuICAgIGNvbnN0IHRvcCA9IChmcm9tVG9wIC0gdG9Qb3MudG9wKS50b0ZpeGVkKDMpO1xuXG4gICAgcmV0dXJuIGAke3RoaXMubWFrZUFuaW1hdGlvbihgXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke2xlZnR9cHgsICR7dG9wfXB4KSBzY2FsZSgke3NjYWxlWH0sICR7c2NhbGVZfSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBgLFxuICAgICAgJ3RyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wOycsXG4gICAgICB0aW1lLFxuICAgICl9ICR7dGltZX1tcyBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSkgYm90aGA7XG4gIH1cblxuICBwcml2YXRlIG1ha2VBbmltYXRpb24oZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nLCB0aW1lOiBudW1iZXIpIHtcbiAgICBjb25zdCBhbmltYXRpb25OYW1lID1cbiAgICAgIGBhbmltYXRpb24tJHtNYXRoLnJhbmRvbSgpXG4gICAgICAgIC50b1N0cmluZygzNilcbiAgICAgICAgLnN1YnN0cigyLCA5KX1gO1xuXG4gICAgdGhpcy5tYWtlS2V5ZnJhbWUoXG4gICAgICBgXG4gICAgICBAa2V5ZnJhbWVzICR7YW5pbWF0aW9uTmFtZX0ge1xuICAgICAgICAke2Bmcm9tIHsgJHtmcm9tfSB9YH1cbiAgICAgICAgJHtgdG8geyAke3RvfSB9YH1cbiAgICAgIH1cbiAgICBgLFxuICAgICAgdGltZSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGFuaW1hdGlvbk5hbWU7XG4gIH1cblxuICBwcml2YXRlIG1ha2VLZXlmcmFtZShrZXlmcmFtZXM6IHN0cmluZywgdGltZTogbnVtYmVyKSB7XG4gICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgIHN0eWxlLmlubmVySFRNTCA9IGtleWZyYW1lcztcbiAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaGVhZC5yZW1vdmVDaGlsZChzdHlsZSk7XG4gICAgfSwgdGltZSArIDMwMDApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BemHelper {
|
|
4
|
+
getClasses(block) {
|
|
5
|
+
const blockClass = block || '';
|
|
6
|
+
return (element, modifier, addition) => {
|
|
7
|
+
const elementClass = element ? `__${element}` : '';
|
|
8
|
+
let modifierClass = '';
|
|
9
|
+
if (Array.isArray(modifier)) {
|
|
10
|
+
// If it's an array we loop through it
|
|
11
|
+
modifierClass = ` ${modifier
|
|
12
|
+
.filter(item => item !== null && item !== undefined)
|
|
13
|
+
.map(item => `${blockClass}${elementClass}--${item.toString().toLowerCase()}`)
|
|
14
|
+
.join(' ')}`;
|
|
15
|
+
}
|
|
16
|
+
else if ((typeof modifier).toUpperCase() === 'OBJECT') {
|
|
17
|
+
// If it's an object we convert it to an array and loop through it
|
|
18
|
+
const modifierArray = Object.keys(modifier)
|
|
19
|
+
.filter(key => modifier[key] !== undefined &&
|
|
20
|
+
modifier[key] !== false &&
|
|
21
|
+
modifier[key] !== null) // Filter if the value is undefined
|
|
22
|
+
.map(key => key);
|
|
23
|
+
modifierClass = ` ${modifierArray
|
|
24
|
+
.map(item => `${blockClass}${elementClass}--${item.toString().toLowerCase()}`)
|
|
25
|
+
.join(' ')}`;
|
|
26
|
+
}
|
|
27
|
+
else if (modifier) {
|
|
28
|
+
// If it's a string we just make the classname
|
|
29
|
+
modifierClass = ` ${blockClass}${elementClass}--${modifier.toString().toLowerCase()}`;
|
|
30
|
+
}
|
|
31
|
+
const additionClass = addition ? ` ${addition}` : '';
|
|
32
|
+
return `${blockClass}${elementClass}${modifierClass}${additionClass}`;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
class(block, element, modifiers, addition) {
|
|
36
|
+
return this.getClasses(block)(element, modifiers, addition);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
BemHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BemHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
BemHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BemHelper });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BemHelper, decorators: [{
|
|
42
|
+
type: Injectable
|
|
43
|
+
}] });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVtLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9iZW0taGVscGVyL2JlbS1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sU0FBUztJQUVwQixVQUFVLENBQUMsS0FBYTtRQUN0QixNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1FBRS9CLE9BQU8sQ0FBQyxPQUFhLEVBQUUsUUFBYyxFQUFFLFFBQWMsRUFBRSxFQUFFO1lBQ3ZELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRW5ELElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUV2QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzNCLHNDQUFzQztnQkFDdEMsYUFBYSxHQUFHLElBQUksUUFBUTtxQkFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxDQUFDO3FCQUNuRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsR0FBRyxZQUFZLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7cUJBQzdFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2FBQ2hCO2lCQUFNLElBQUksQ0FBQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsRUFBRTtnQkFDdkQsa0VBQWtFO2dCQUNsRSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztxQkFDeEMsTUFBTSxDQUNMLEdBQUcsQ0FBQyxFQUFFLENBQ0osUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7b0JBQzNCLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLO29CQUN2QixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUMzQixDQUFDLG1DQUFtQztxQkFDbEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRW5CLGFBQWEsR0FBRyxJQUFJLGFBQWE7cUJBQzlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHLFlBQVksS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztxQkFDN0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDaEI7aUJBQU0sSUFBSSxRQUFRLEVBQUU7Z0JBQ25CLDhDQUE4QztnQkFDOUMsYUFBYSxHQUFHLElBQUksVUFBVSxHQUFHLFlBQVksS0FBSyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQzthQUN2RjtZQUVELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRXJELE9BQU8sR0FBRyxVQUFVLEdBQUcsWUFBWSxHQUFHLGFBQWEsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUN4RSxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWEsRUFBRSxPQUFnQixFQUFFLFNBQWUsRUFBRSxRQUFpQjtRQUN2RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RCxDQUFDOztzR0EzQ1UsU0FBUzswR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCZW1IZWxwZXIge1xuXG4gIGdldENsYXNzZXMoYmxvY2s6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgYmxvY2tDbGFzcyA9IGJsb2NrIHx8ICcnO1xuXG4gICAgcmV0dXJuIChlbGVtZW50PzogYW55LCBtb2RpZmllcj86IGFueSwgYWRkaXRpb24/OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnRDbGFzcyA9IGVsZW1lbnQgPyBgX18ke2VsZW1lbnR9YCA6ICcnO1xuXG4gICAgICBsZXQgbW9kaWZpZXJDbGFzcyA9ICcnO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShtb2RpZmllcikpIHtcbiAgICAgICAgLy8gSWYgaXQncyBhbiBhcnJheSB3ZSBsb29wIHRocm91Z2ggaXRcbiAgICAgICAgbW9kaWZpZXJDbGFzcyA9IGAgJHttb2RpZmllclxuICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBudWxsICYmIGl0ZW0gIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKGl0ZW0gPT4gYCR7YmxvY2tDbGFzc30ke2VsZW1lbnRDbGFzc30tLSR7aXRlbS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCl9YClcbiAgICAgICAgICAuam9pbignICcpfWA7XG4gICAgICB9IGVsc2UgaWYgKCh0eXBlb2YgbW9kaWZpZXIpLnRvVXBwZXJDYXNlKCkgPT09ICdPQkpFQ1QnKSB7XG4gICAgICAgIC8vIElmIGl0J3MgYW4gb2JqZWN0IHdlIGNvbnZlcnQgaXQgdG8gYW4gYXJyYXkgYW5kIGxvb3AgdGhyb3VnaCBpdFxuICAgICAgICBjb25zdCBtb2RpZmllckFycmF5ID0gT2JqZWN0LmtleXMobW9kaWZpZXIpXG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIGtleSA9PlxuICAgICAgICAgICAgICBtb2RpZmllcltrZXldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgbW9kaWZpZXJba2V5XSAhPT0gZmFsc2UgJiZcbiAgICAgICAgICAgICAgbW9kaWZpZXJba2V5XSAhPT0gbnVsbCxcbiAgICAgICAgKSAvLyBGaWx0ZXIgaWYgdGhlIHZhbHVlIGlzIHVuZGVmaW5lZFxuICAgICAgICAgIC5tYXAoa2V5ID0+IGtleSk7XG5cbiAgICAgICAgbW9kaWZpZXJDbGFzcyA9IGAgJHttb2RpZmllckFycmF5XG4gICAgICAgICAgLm1hcChpdGVtID0+IGAke2Jsb2NrQ2xhc3N9JHtlbGVtZW50Q2xhc3N9LS0ke2l0ZW0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpfWApXG4gICAgICAgICAgLmpvaW4oJyAnKX1gO1xuICAgICAgfSBlbHNlIGlmIChtb2RpZmllcikge1xuICAgICAgICAvLyBJZiBpdCdzIGEgc3RyaW5nIHdlIGp1c3QgbWFrZSB0aGUgY2xhc3NuYW1lXG4gICAgICAgIG1vZGlmaWVyQ2xhc3MgPSBgICR7YmxvY2tDbGFzc30ke2VsZW1lbnRDbGFzc30tLSR7bW9kaWZpZXIudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpfWA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFkZGl0aW9uQ2xhc3MgPSBhZGRpdGlvbiA/IGAgJHthZGRpdGlvbn1gIDogJyc7XG5cbiAgICAgIHJldHVybiBgJHtibG9ja0NsYXNzfSR7ZWxlbWVudENsYXNzfSR7bW9kaWZpZXJDbGFzc30ke2FkZGl0aW9uQ2xhc3N9YDtcbiAgICB9O1xuICB9XG5cbiAgY2xhc3MoYmxvY2s6IHN0cmluZywgZWxlbWVudD86IHN0cmluZywgbW9kaWZpZXJzPzogYW55LCBhZGRpdGlvbj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3NlcyhibG9jaykoZWxlbWVudCwgbW9kaWZpZXJzLCBhZGRpdGlvbik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DateCompare } from './date-compare.enum';
|
|
3
|
+
import { UtcDate } from '../../models';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DateHelper {
|
|
6
|
+
utcDate(input) {
|
|
7
|
+
if (!input) {
|
|
8
|
+
input = new Date();
|
|
9
|
+
}
|
|
10
|
+
let utcDate = null;
|
|
11
|
+
if (typeof input === 'string') {
|
|
12
|
+
let inputYearMonthDate = input;
|
|
13
|
+
let inputHoursMinutes = input;
|
|
14
|
+
if (input.indexOf('T') > -1) {
|
|
15
|
+
const indexOfT = input.indexOf('T');
|
|
16
|
+
inputYearMonthDate = input.slice(0, indexOfT);
|
|
17
|
+
inputHoursMinutes = input.slice(indexOfT + 1, indexOfT + 6);
|
|
18
|
+
}
|
|
19
|
+
const yearMonthDateParts = inputYearMonthDate.split('-');
|
|
20
|
+
const year = Number(yearMonthDateParts[0]);
|
|
21
|
+
const month = Number(yearMonthDateParts[1]) - 1;
|
|
22
|
+
const date = Number(yearMonthDateParts[2]) || 1;
|
|
23
|
+
const hoursMinutesParts = inputHoursMinutes.split(':');
|
|
24
|
+
const hours = Number(hoursMinutesParts[0]);
|
|
25
|
+
const minutes = Number(hoursMinutesParts[1]);
|
|
26
|
+
utcDate = new UtcDate(year, month, date, hours, minutes);
|
|
27
|
+
}
|
|
28
|
+
if (input instanceof Date) {
|
|
29
|
+
utcDate = new UtcDate(input.getUTCFullYear(), input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes());
|
|
30
|
+
return utcDate;
|
|
31
|
+
}
|
|
32
|
+
return utcDate;
|
|
33
|
+
}
|
|
34
|
+
date(utcDate) {
|
|
35
|
+
if (!utcDate) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const date = new Date(Date.UTC(utcDate.year, utcDate.month, utcDate.date, utcDate.hours, utcDate.minutes));
|
|
39
|
+
return date;
|
|
40
|
+
}
|
|
41
|
+
getWeekNumber(input) {
|
|
42
|
+
if (!input) {
|
|
43
|
+
return -1;
|
|
44
|
+
}
|
|
45
|
+
const date = new Date(input);
|
|
46
|
+
const day = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
|
|
47
|
+
const dayNumber = day.getUTCDay() || 7;
|
|
48
|
+
day.setUTCDate(day.getUTCDate() + 4 - dayNumber);
|
|
49
|
+
const yearStart = new Date(Date.UTC(day.getUTCFullYear(), 0, 1));
|
|
50
|
+
return Math.ceil((((day.getTime() - yearStart.getTime()) / 86400000) + 1) / 7);
|
|
51
|
+
}
|
|
52
|
+
toYearMonthDateString(date) {
|
|
53
|
+
return `${date.year}-${('0' + (date.month + 1)).slice(-2)}-${('0' + date.date).slice(-2)}`;
|
|
54
|
+
}
|
|
55
|
+
toYearMonthString(date) {
|
|
56
|
+
return `${date.year}-${('0' + (date.month + 1)).slice(-2)}`;
|
|
57
|
+
}
|
|
58
|
+
isEqual(date1, date2, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
|
|
59
|
+
if (!date1 || !date2) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
let isEqual = false;
|
|
63
|
+
if (!date1 || !date2) {
|
|
64
|
+
isEqual = date1 === date2;
|
|
65
|
+
return isEqual;
|
|
66
|
+
}
|
|
67
|
+
isEqual = this.compare(date1, date2, ignoreDate, ignoreHours, ignoreMinutes) === DateCompare.equal;
|
|
68
|
+
return isEqual;
|
|
69
|
+
}
|
|
70
|
+
isLessThan(date1, date2, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
|
|
71
|
+
if (!date1 || !date2) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
const isLessThan = this.compare(date1, date2, ignoreDate, ignoreHours, ignoreMinutes) === DateCompare.lessThan;
|
|
75
|
+
return isLessThan;
|
|
76
|
+
}
|
|
77
|
+
isGreaterThan(date1, date2, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
|
|
78
|
+
if (!date1 || !date2) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const isGreaterThan = this.compare(date1, date2, ignoreDate, ignoreHours, ignoreMinutes) === DateCompare.greaterThan;
|
|
82
|
+
return isGreaterThan;
|
|
83
|
+
}
|
|
84
|
+
isInThePast(date, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
|
|
85
|
+
if (!date) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
const today = this.utcDate();
|
|
89
|
+
if (date.year > today.year) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
else if (date.year < today.year) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
if (date.month > today.month) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
else if (date.month < today.month) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
if (!ignoreDate) {
|
|
102
|
+
if (date.date > today.date) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
if (!ignoreHours) {
|
|
106
|
+
if (date.hours > today.hours) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
if (!ignoreMinutes) {
|
|
110
|
+
return date.minutes < today.minutes;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return date.date !== today.date;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
isSameMonth(date1, date2) {
|
|
122
|
+
if (!date1 || !date2) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
return date1.year === date2.year && date1.month === date2.month;
|
|
126
|
+
}
|
|
127
|
+
isSameDate(date1, date2) {
|
|
128
|
+
if (!date1 || !date2) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
return this.compare(date1, date2, false, false, false) === DateCompare.equal;
|
|
132
|
+
}
|
|
133
|
+
getUtcNumberOfMonthBetween(date1, date2) {
|
|
134
|
+
return this.getNumberOfMonthBetween(this.date(date1), this.date(date2));
|
|
135
|
+
}
|
|
136
|
+
getUtcNumberOfDaysBetween(date1, date2) {
|
|
137
|
+
return this.getNumberOfDaysBetween(this.date(date1), this.date(date2));
|
|
138
|
+
}
|
|
139
|
+
getNumberOfDaysBetween(date1, date2) {
|
|
140
|
+
const timeDifference = date2.getTime() - date1.getTime();
|
|
141
|
+
const daysBetween = timeDifference / (1000 * 3600 * 24);
|
|
142
|
+
return daysBetween;
|
|
143
|
+
}
|
|
144
|
+
getNumberOfMonthBetween(date1, date2) {
|
|
145
|
+
let months;
|
|
146
|
+
months = (date2.getUTCFullYear() - date1.getUTCFullYear()) * 12;
|
|
147
|
+
months -= date1.getUTCMonth() + 1;
|
|
148
|
+
months += date2.getUTCMonth();
|
|
149
|
+
return months <= 0 ? 0 : months;
|
|
150
|
+
}
|
|
151
|
+
compare(date1, date2, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
|
|
152
|
+
if (!date1 || !date2) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
if (date1.year > date2.year) {
|
|
156
|
+
return DateCompare.greaterThan;
|
|
157
|
+
}
|
|
158
|
+
else if (date1.year < date2.year) {
|
|
159
|
+
return DateCompare.lessThan;
|
|
160
|
+
}
|
|
161
|
+
if (date1.month > date2.month) {
|
|
162
|
+
return DateCompare.greaterThan;
|
|
163
|
+
}
|
|
164
|
+
else if (date1.month < date2.month) {
|
|
165
|
+
return DateCompare.lessThan;
|
|
166
|
+
}
|
|
167
|
+
if (!ignoreDate) {
|
|
168
|
+
if (date1.date > date2.date) {
|
|
169
|
+
return DateCompare.greaterThan;
|
|
170
|
+
}
|
|
171
|
+
else if (date1.date < date2.date) {
|
|
172
|
+
return DateCompare.lessThan;
|
|
173
|
+
}
|
|
174
|
+
if (!ignoreHours) {
|
|
175
|
+
if (date1.hours > date2.hours) {
|
|
176
|
+
return DateCompare.greaterThan;
|
|
177
|
+
}
|
|
178
|
+
else if (date1.hours < date2.hours) {
|
|
179
|
+
return DateCompare.lessThan;
|
|
180
|
+
}
|
|
181
|
+
if (!ignoreMinutes) {
|
|
182
|
+
if (date1.minutes > date2.minutes) {
|
|
183
|
+
return DateCompare.greaterThan;
|
|
184
|
+
}
|
|
185
|
+
else if (date1.minutes < date2.minutes) {
|
|
186
|
+
return DateCompare.lessThan;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return DateCompare.equal;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
DateHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
195
|
+
DateHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper });
|
|
196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, decorators: [{
|
|
197
|
+
type: Injectable
|
|
198
|
+
}] });
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvc2VydmljZXMvZGF0ZS9kYXRlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBR3ZDLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLE9BQU8sQ0FBQyxLQUFxQjtRQUMzQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7U0FDcEI7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFFOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUMzQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDOUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM3RDtZQUVELE1BQU0sa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFHaEQsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0MsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMxRDtRQUVELElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUN6QixPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ25JLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFnQjtRQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzRyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNYO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEYsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBYTtRQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFD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QUNGO2FBQ0Y7U0FDRjtRQUVELE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDOzt1R0F4UFUsVUFBVTsyR0FBVixVQUFVOzJGQUFWLFVBQVU7a0JBRHRCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERhdGVDb21wYXJlIH0gZnJvbSAnLi9kYXRlLWNvbXBhcmUuZW51bSc7XG5pbXBvcnQgeyBVdGNEYXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGVIZWxwZXIge1xuICB1dGNEYXRlKGlucHV0PzogRGF0ZSB8IHN0cmluZyk6IFV0Y0RhdGUgfCBudWxsIHtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICBpbnB1dCA9IG5ldyBEYXRlKCk7XG4gICAgfVxuXG4gICAgbGV0IHV0Y0RhdGUgPSBudWxsO1xuXG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCBpbnB1dFllYXJNb250aERhdGUgPSBpbnB1dDtcbiAgICAgIGxldCBpbnB1dEhvdXJzTWludXRlcyA9IGlucHV0O1xuXG4gICAgICBpZiAoaW5wdXQuaW5kZXhPZignVCcpID4gLTEpIHtcbiAgICAgICAgY29uc3QgaW5kZXhPZlQgPSBpbnB1dC5pbmRleE9mKCdUJyk7XG4gICAgICAgIGlucHV0WWVhck1vbnRoRGF0ZSA9IGlucHV0LnNsaWNlKDAsIGluZGV4T2ZUKTtcbiAgICAgICAgaW5wdXRIb3Vyc01pbnV0ZXMgPSBpbnB1dC5zbGljZShpbmRleE9mVCArIDEsIGluZGV4T2ZUICsgNik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHllYXJNb250aERhdGVQYXJ0cyA9IGlucHV0WWVhck1vbnRoRGF0ZS5zcGxpdCgnLScpO1xuICAgICAgY29uc3QgeWVhciA9IE51bWJlcih5ZWFyTW9udGhEYXRlUGFydHNbMF0pO1xuICAgICAgY29uc3QgbW9udGggPSBOdW1iZXIoeWVhck1vbnRoRGF0ZVBhcnRzWzFdKSAtIDE7XG4gICAgICBjb25zdCBkYXRlID0gTnVtYmVyKHllYXJNb250aERhdGVQYXJ0c1syXSkgfHwgMTtcblxuXG4gICAgICBjb25zdCBob3Vyc01pbnV0ZXNQYXJ0cyA9IGlucHV0SG91cnNNaW51dGVzLnNwbGl0KCc6Jyk7XG4gICAgICBjb25zdCBob3VycyA9IE51bWJlcihob3Vyc01pbnV0ZXNQYXJ0c1swXSk7XG4gICAgICBjb25zdCBtaW51dGVzID0gTnVtYmVyKGhvdXJzTWludXRlc1BhcnRzWzFdKTtcblxuICAgICAgdXRjRGF0ZSA9IG5ldyBVdGNEYXRlKHllYXIsIG1vbnRoLCBkYXRlLCBob3VycywgbWludXRlcyk7XG4gICAgfVxuXG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgdXRjRGF0ZSA9IG5ldyBVdGNEYXRlKGlucHV0LmdldFVUQ0Z1bGxZZWFyKCksIGlucHV0LmdldFVUQ01vbnRoKCksIGlucHV0LmdldFVUQ0RhdGUoKSwgaW5wdXQuZ2V0VVRDSG91cnMoKSwgaW5wdXQuZ2V0VVRDTWludXRlcygpKTtcbiAgICAgIHJldHVybiB1dGNEYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB1dGNEYXRlO1xuICB9XG5cbiAgZGF0ZSh1dGNEYXRlOiBVdGNEYXRlKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICghdXRjRGF0ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDKHV0Y0RhdGUueWVhciwgdXRjRGF0ZS5tb250aCwgdXRjRGF0ZS5kYXRlLCB1dGNEYXRlLmhvdXJzLCB1dGNEYXRlLm1pbnV0ZXMpKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIGdldFdlZWtOdW1iZXIoaW5wdXQ6IERhdGUpOiBudW1iZXIge1xuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoaW5wdXQpO1xuXG4gICAgY29uc3QgZGF5ID0gbmV3IERhdGUoRGF0ZS5VVEMoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKSk7XG4gICAgY29uc3QgZGF5TnVtYmVyID0gZGF5LmdldFVUQ0RheSgpIHx8IDc7XG4gICAgZGF5LnNldFVUQ0RhdGUoZGF5LmdldFVUQ0RhdGUoKSArIDQgLSBkYXlOdW1iZXIpO1xuICAgIGNvbnN0IHllYXJTdGFydCA9IG5ldyBEYXRlKERhdGUuVVRDKGRheS5nZXRVVENGdWxsWWVhcigpLCAwLCAxKSk7XG4gICAgcmV0dXJuIE1hdGguY2VpbCgoKChkYXkuZ2V0VGltZSgpIC0geWVhclN0YXJ0LmdldFRpbWUoKSkgLyA4NjQwMDAwMCkgKyAxKSAvIDcpO1xuICB9XG5cbiAgdG9ZZWFyTW9udGhEYXRlU3RyaW5nKGRhdGU6IFV0Y0RhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtkYXRlLnllYXJ9LSR7KCcwJyArIChkYXRlLm1vbnRoICsgMSkpLnNsaWNlKC0yKX0tJHsoJzAnICsgZGF0ZS5kYXRlKS5zbGljZSgtMil9YDtcbiAgfVxuXG4gIHRvWWVhck1vbnRoU3RyaW5nKGRhdGU6IFV0Y0RhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtkYXRlLnllYXJ9LSR7KCcwJyArIChkYXRlLm1vbnRoICsgMSkpLnNsaWNlKC0yKX1gO1xuICB9XG5cbiAgaXNFcXVhbChcbiAgICBkYXRlMTogVXRjRGF0ZSxcbiAgICBkYXRlMjogVXRjRGF0ZSxcbiAgICBpZ25vcmVEYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlSG91cnM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpZ25vcmVNaW51dGVzOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBpZiAoIWRhdGUxIHx8ICFkYXRlMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCBpc0VxdWFsID0gZmFsc2U7XG5cbiAgICBpZiAoIWRhdGUxIHx8ICFkYXRlMikge1xuICAgICAgaXNFcXVhbCA9IGRhdGUxID09PSBkYXRlMjtcbiAgICAgIHJldHVybiBpc0VxdWFsO1xuICAgIH1cblxuICAgIGlzRXF1YWwgPSB0aGlzLmNvbXBhcmUoZGF0ZTEsIGRhdGUyLCBpZ25vcmVEYXRlLCBpZ25vcmVIb3VycywgaWdub3JlTWludXRlcykgPT09IERhdGVDb21wYXJlLmVxdWFsO1xuICAgIHJldHVybiBpc0VxdWFsO1xuICB9XG5cbiAgaXNMZXNzVGhhbihcbiAgICBkYXRlMTogVXRjRGF0ZSxcbiAgICBkYXRlMjogVXRjRGF0ZSxcbiAgICBpZ25vcmVEYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlSG91cnM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpZ25vcmVNaW51dGVzOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBpZiAoIWRhdGUxIHx8ICFkYXRlMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzTGVzc1RoYW4gPSB0aGlzLmNvbXBhcmUoZGF0ZTEsIGRhdGUyLCBpZ25vcmVEYXRlLCBpZ25vcmVIb3VycywgaWdub3JlTWludXRlcykgPT09IERhdGVDb21wYXJlLmxlc3NUaGFuO1xuICAgIHJldHVybiBpc0xlc3NUaGFuO1xuICB9XG5cbiAgaXNHcmVhdGVyVGhhbihcbiAgICBkYXRlMTogVXRjRGF0ZSxcbiAgICBkYXRlMjogVXRjRGF0ZSxcbiAgICBpZ25vcmVEYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlSG91cnM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpZ25vcmVNaW51dGVzOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBpZiAoIWRhdGUxIHx8ICFkYXRlMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzR3JlYXRlclRoYW4gPSB0aGlzLmNvbXBhcmUoZGF0ZTEsIGRhdGUyLCBpZ25vcmVEYXRlLCBpZ25vcmVIb3VycywgaWdub3JlTWludXRlcykgPT09IERhdGVDb21wYXJlLmdyZWF0ZXJUaGFuO1xuICAgIHJldHVybiBpc0dyZWF0ZXJUaGFuO1xuICB9XG5cbiAgaXNJblRoZVBhc3QoXG4gICAgZGF0ZTogVXRjRGF0ZSxcbiAgICBpZ25vcmVEYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlSG91cnM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpZ25vcmVNaW51dGVzOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHRvZGF5ID0gdGhpcy51dGNEYXRlKCk7XG5cbiAgICBpZiAoZGF0ZS55ZWFyID4gdG9kYXkueWVhcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoZGF0ZS55ZWFyIDwgdG9kYXkueWVhcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUubW9udGggPiB0b2RheS5tb250aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoZGF0ZS5tb250aCA8IHRvZGF5Lm1vbnRoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWlnbm9yZURhdGUpIHtcbiAgICAgIGlmIChkYXRlLmRhdGUgPiB0b2RheS5kYXRlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpZ25vcmVIb3Vycykge1xuICAgICAgICBpZiAoZGF0ZS5ob3VycyA+IHRvZGF5LmhvdXJzKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpZ25vcmVNaW51dGVzKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGUubWludXRlcyA8IHRvZGF5Lm1pbnV0ZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkYXRlLmRhdGUgIT09IHRvZGF5LmRhdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaXNTYW1lTW9udGgoZGF0ZTE6IFV0Y0RhdGUsIGRhdGUyOiBVdGNEYXRlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRlMS55ZWFyID09PSBkYXRlMi55ZWFyICYmIGRhdGUxLm1vbnRoID09PSBkYXRlMi5tb250aDtcbiAgfVxuXG4gIGlzU2FtZURhdGUoZGF0ZTE6IFV0Y0RhdGUsIGRhdGUyOiBVdGNEYXRlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUxLCBkYXRlMiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkgPT09IERhdGVDb21wYXJlLmVxdWFsO1xuICB9XG5cbiAgZ2V0VXRjTnVtYmVyT2ZNb250aEJldHdlZW4oZGF0ZTE6IFV0Y0RhdGUsIGRhdGUyOiBVdGNEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXROdW1iZXJPZk1vbnRoQmV0d2Vlbih0aGlzLmRhdGUoZGF0ZTEpLCB0aGlzLmRhdGUoZGF0ZTIpKTtcbiAgfVxuXG4gIGdldFV0Y051bWJlck9mRGF5c0JldHdlZW4oZGF0ZTE6IFV0Y0RhdGUsIGRhdGUyOiBVdGNEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXROdW1iZXJPZkRheXNCZXR3ZWVuKHRoaXMuZGF0ZShkYXRlMSksIHRoaXMuZGF0ZShkYXRlMikpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROdW1iZXJPZkRheXNCZXR3ZWVuKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IG51bWJlciB7XG4gICAgY29uc3QgdGltZURpZmZlcmVuY2UgPSBkYXRlMi5nZXRUaW1lKCkgLSBkYXRlMS5nZXRUaW1lKCk7XG4gICAgY29uc3QgZGF5c0JldHdlZW4gPSB0aW1lRGlmZmVyZW5jZSAvICgxMDAwICogMzYwMCAqIDI0KTtcbiAgICByZXR1cm4gZGF5c0JldHdlZW47XG4gIH1cblxuICBwcml2YXRlIGdldE51bWJlck9mTW9udGhCZXR3ZWVuKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IG51bWJlciB7XG4gICAgbGV0IG1vbnRoczogbnVtYmVyO1xuICAgIG1vbnRocyA9IChkYXRlMi5nZXRVVENGdWxsWWVhcigpIC0gZGF0ZTEuZ2V0VVRDRnVsbFllYXIoKSkgKiAxMjtcbiAgICBtb250aHMgLT0gZGF0ZTEuZ2V0VVRDTW9udGgoKSArIDE7XG4gICAgbW9udGhzICs9IGRhdGUyLmdldFVUQ01vbnRoKCk7XG4gICAgcmV0dXJuIG1vbnRocyA8PSAwID8gMCA6IG1vbnRocztcbiAgfVxuXG4gIHByaXZhdGUgY29tcGFyZShcbiAgICBkYXRlMTogVXRjRGF0ZSxcbiAgICBkYXRlMjogVXRjRGF0ZSxcbiAgICBpZ25vcmVEYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlSG91cnM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpZ25vcmVNaW51dGVzOiBib29sZWFuID0gZmFsc2UpOiBEYXRlQ29tcGFyZSB7XG4gICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChkYXRlMS55ZWFyID4gZGF0ZTIueWVhcikge1xuICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmdyZWF0ZXJUaGFuO1xuICAgIH0gZWxzZSBpZiAoZGF0ZTEueWVhciA8IGRhdGUyLnllYXIpIHtcbiAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5sZXNzVGhhbjtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZTEubW9udGggPiBkYXRlMi5tb250aCkge1xuICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmdyZWF0ZXJUaGFuO1xuICAgIH0gZWxzZSBpZiAoZGF0ZTEubW9udGggPCBkYXRlMi5tb250aCkge1xuICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmxlc3NUaGFuO1xuICAgIH1cblxuICAgIGlmICghaWdub3JlRGF0ZSkge1xuICAgICAgaWYgKGRhdGUxLmRhdGUgPiBkYXRlMi5kYXRlKSB7XG4gICAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5ncmVhdGVyVGhhbjtcbiAgICAgIH0gZWxzZSBpZiAoZGF0ZTEuZGF0ZSA8IGRhdGUyLmRhdGUpIHtcbiAgICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmxlc3NUaGFuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlnbm9yZUhvdXJzKSB7XG4gICAgICAgIGlmIChkYXRlMS5ob3VycyA+IGRhdGUyLmhvdXJzKSB7XG4gICAgICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmdyZWF0ZXJUaGFuO1xuICAgICAgICB9IGVsc2UgaWYgKGRhdGUxLmhvdXJzIDwgZGF0ZTIuaG91cnMpIHtcbiAgICAgICAgICByZXR1cm4gRGF0ZUNvbXBhcmUubGVzc1RoYW47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlnbm9yZU1pbnV0ZXMpIHtcbiAgICAgICAgICBpZiAoZGF0ZTEubWludXRlcyA+IGRhdGUyLm1pbnV0ZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5ncmVhdGVyVGhhbjtcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGUxLm1pbnV0ZXMgPCBkYXRlMi5taW51dGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gRGF0ZUNvbXBhcmUubGVzc1RoYW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIERhdGVDb21wYXJlLmVxdWFsO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DeviceHelper {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.mobileMaxWidth = 639;
|
|
6
|
+
this.tabletMaxWidth = 999;
|
|
7
|
+
}
|
|
8
|
+
isTouchScreenDevice() {
|
|
9
|
+
return 'ontouchstart' in document.documentElement;
|
|
10
|
+
}
|
|
11
|
+
isMobile() {
|
|
12
|
+
const maxWidth = 414;
|
|
13
|
+
return window.screen.width <= maxWidth && this.isTouchScreenDevice();
|
|
14
|
+
}
|
|
15
|
+
isMobileWidth() {
|
|
16
|
+
return window.innerWidth <= this.mobileMaxWidth;
|
|
17
|
+
}
|
|
18
|
+
isWidthMobile(width) {
|
|
19
|
+
return width <= this.mobileMaxWidth;
|
|
20
|
+
}
|
|
21
|
+
isTabletWidth() {
|
|
22
|
+
return !this.isMobileWidth() && window.innerWidth <= this.tabletMaxWidth;
|
|
23
|
+
}
|
|
24
|
+
isWidthTablet(width) {
|
|
25
|
+
return !this.isWidthMobile(width) && width <= this.tabletMaxWidth;
|
|
26
|
+
}
|
|
27
|
+
isWidthDesktop(width) {
|
|
28
|
+
return !this.isWidthMobile(width)
|
|
29
|
+
&& !this.isWidthTablet(width)
|
|
30
|
+
&& width > this.tabletMaxWidth;
|
|
31
|
+
}
|
|
32
|
+
isTabletWindow() {
|
|
33
|
+
const MOBILE_MAX_WIDTH = 999;
|
|
34
|
+
return MOBILE_MAX_WIDTH >= window.innerWidth || MOBILE_MAX_WIDTH >= window.innerWidth;
|
|
35
|
+
}
|
|
36
|
+
isIE() {
|
|
37
|
+
const isIEOrEdge = /msie\s|trident\/|edge\//i.test(window.navigator.userAgent);
|
|
38
|
+
return isIEOrEdge;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
DeviceHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeviceHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
+
DeviceHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeviceHelper });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeviceHelper, decorators: [{
|
|
44
|
+
type: Injectable
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9kZXZpY2UvZGV2aWNlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxZQUFZO0lBRHpCO1FBR21CLG1CQUFjLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLG1CQUFjLEdBQUcsR0FBRyxDQUFDO0tBMEN2QztJQXhDQyxtQkFBbUI7UUFDakIsT0FBTyxjQUFjLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNyQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ2xELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN6QixPQUFPLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDM0UsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7ZUFDNUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztlQUMxQixLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO1FBQzdCLE9BQU8sZ0JBQWdCLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3hGLENBQUM7SUFFRCxJQUFJO1FBQ0YsTUFBTSxVQUFVLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0UsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7eUdBNUNVLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGV2aWNlSGVscGVyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZU1heFdpZHRoID0gNjM5O1xuICBwcml2YXRlIHJlYWRvbmx5IHRhYmxldE1heFdpZHRoID0gOTk5O1xuXG4gIGlzVG91Y2hTY3JlZW5EZXZpY2UoKSB7XG4gICAgcmV0dXJuICdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgfVxuXG4gIGlzTW9iaWxlKCkge1xuICAgIGNvbnN0IG1heFdpZHRoID0gNDE0O1xuICAgIHJldHVybiB3aW5kb3cuc2NyZWVuLndpZHRoIDw9IG1heFdpZHRoICYmIHRoaXMuaXNUb3VjaFNjcmVlbkRldmljZSgpO1xuICB9XG5cbiAgaXNNb2JpbGVXaWR0aCgpIHtcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gdGhpcy5tb2JpbGVNYXhXaWR0aDtcbiAgfVxuXG4gIGlzV2lkdGhNb2JpbGUod2lkdGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB3aWR0aCA8PSB0aGlzLm1vYmlsZU1heFdpZHRoO1xuICB9XG5cbiAgaXNUYWJsZXRXaWR0aCgpIHtcbiAgICByZXR1cm4gIXRoaXMuaXNNb2JpbGVXaWR0aCgpICYmIHdpbmRvdy5pbm5lcldpZHRoIDw9IHRoaXMudGFibGV0TWF4V2lkdGg7XG4gIH1cblxuICBpc1dpZHRoVGFibGV0KHdpZHRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNXaWR0aE1vYmlsZSh3aWR0aCkgJiYgd2lkdGggPD0gdGhpcy50YWJsZXRNYXhXaWR0aDtcbiAgfVxuXG4gIGlzV2lkdGhEZXNrdG9wKHdpZHRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNXaWR0aE1vYmlsZSh3aWR0aClcbiAgICAgICYmICF0aGlzLmlzV2lkdGhUYWJsZXQod2lkdGgpXG4gICAgICAmJiB3aWR0aCA+IHRoaXMudGFibGV0TWF4V2lkdGg7XG4gIH1cblxuICBpc1RhYmxldFdpbmRvdygpIHtcbiAgICBjb25zdCBNT0JJTEVfTUFYX1dJRFRIID0gOTk5O1xuICAgIHJldHVybiBNT0JJTEVfTUFYX1dJRFRIID49IHdpbmRvdy5pbm5lcldpZHRoIHx8IE1PQklMRV9NQVhfV0lEVEggPj0gd2luZG93LmlubmVyV2lkdGg7XG4gIH1cblxuICBpc0lFKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzSUVPckVkZ2UgPSAvbXNpZVxcc3x0cmlkZW50XFwvfGVkZ2VcXC8vaS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgICByZXR1cm4gaXNJRU9yRWRnZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { GeolocationState } from './geolocation-state.enum';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class GeolocationService {
|
|
6
|
+
getCurrentPosition() {
|
|
7
|
+
return new Observable(observer => {
|
|
8
|
+
if (window.navigator && window.navigator.geolocation) {
|
|
9
|
+
window.navigator.geolocation.getCurrentPosition((position) => {
|
|
10
|
+
observer.next(position);
|
|
11
|
+
observer.complete();
|
|
12
|
+
}, (error) => observer.error(error));
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
observer.error('Unsupported browser');
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
getState() {
|
|
20
|
+
return new Observable(observer => {
|
|
21
|
+
if (window.navigator && window.navigator.geolocation) {
|
|
22
|
+
const permissions = (window.navigator.permissions);
|
|
23
|
+
if (permissions) {
|
|
24
|
+
permissions
|
|
25
|
+
.query({ name: 'geolocation' })
|
|
26
|
+
.then((result) => {
|
|
27
|
+
if (result && result.state) {
|
|
28
|
+
switch (result.state) {
|
|
29
|
+
case 'granted':
|
|
30
|
+
observer.next(GeolocationState.granted);
|
|
31
|
+
break;
|
|
32
|
+
case 'prompt':
|
|
33
|
+
observer.next(GeolocationState.prompt);
|
|
34
|
+
break;
|
|
35
|
+
case 'denied':
|
|
36
|
+
observer.next(GeolocationState.denied);
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
observer.next(GeolocationState.denied);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
observer.complete();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
observer.next(GeolocationState.unknown);
|
|
48
|
+
observer.complete();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
observer.next(GeolocationState.unknown);
|
|
53
|
+
observer.complete();
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
GeolocationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GeolocationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
|
+
GeolocationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GeolocationService });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GeolocationService, decorators: [{
|
|
61
|
+
type: Injectable
|
|
62
|
+
}] });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvc2VydmljZXMvZ2VvbG9jYXRpb24vZ2VvbG9jYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRzVELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0Isa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO2dCQUNwRCxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FDN0MsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDWCxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN4QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQzthQUN2QztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtnQkFDcEQsTUFBTSxXQUFXLEdBQUcsQ0FBRSxNQUFNLENBQUMsU0FBaUIsQ0FBQyxXQUFXLENBQUUsQ0FBQztnQkFFN0QsSUFBSSxXQUFXLEVBQUU7b0JBQ2YsV0FBVzt5QkFDUixLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7eUJBQzlCLElBQUksQ0FBQyxDQUFDLE1BQXNCLEVBQUUsRUFBRTt3QkFDL0IsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTs0QkFDMUIsUUFBUSxNQUFNLENBQUMsS0FBSyxFQUFFO2dDQUNwQixLQUFLLFNBQVM7b0NBQ1osUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQ0FDeEMsTUFBTTtnQ0FDUixLQUFLLFFBQVE7b0NBQ1gsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQ0FDdkMsTUFBTTtnQ0FDUixLQUFLLFFBQVE7b0NBQ1gsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQ0FDdkMsTUFBTTtnQ0FDUjtvQ0FDRSxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29DQUN2QyxNQUFNOzZCQUNUO3lCQUNGO3dCQUVELFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEIsQ0FBQyxDQUFDLENBQUM7aUJBQ047cUJBQU07b0JBQ0wsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDeEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNyQjthQUNGO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBdERVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHZW9sb2NhdGlvblN0YXRlIH0gZnJvbSAnLi9nZW9sb2NhdGlvbi1zdGF0ZS5lbnVtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdlb2xvY2F0aW9uU2VydmljZSB7XG5cbiAgZ2V0Q3VycmVudFBvc2l0aW9uKCk6IE9ic2VydmFibGU8R2VvbG9jYXRpb25Qb3NpdGlvbj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBpZiAod2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uKSB7XG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKFxuICAgICAgICAgIChwb3NpdGlvbikgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChwb3NpdGlvbik7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yKSA9PiBvYnNlcnZlci5lcnJvcihlcnJvcikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoJ1Vuc3VwcG9ydGVkIGJyb3dzZXInKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldFN0YXRlKCk6IE9ic2VydmFibGU8R2VvbG9jYXRpb25TdGF0ZT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBpZiAod2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uKSB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gKCh3aW5kb3cubmF2aWdhdG9yIGFzIGFueSkucGVybWlzc2lvbnMgKTtcblxuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICBwZXJtaXNzaW9uc1xuICAgICAgICAgICAgLnF1ZXJ5KHsgbmFtZTogJ2dlb2xvY2F0aW9uJyB9KVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdDogeyBzdGF0ZTogYW55IH0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuc3RhdGUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlc3VsdC5zdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSAnZ3JhbnRlZCc6XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoR2VvbG9jYXRpb25TdGF0ZS5ncmFudGVkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdwcm9tcHQnOlxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KEdlb2xvY2F0aW9uU3RhdGUucHJvbXB0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkZW5pZWQnOlxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoR2VvbG9jYXRpb25TdGF0ZS51bmtub3duKTtcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYnNlcnZlci5uZXh0KEdlb2xvY2F0aW9uU3RhdGUudW5rbm93bik7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|