@odx/angular 12.26.1 → 13.0.0
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/CHANGELOG.md +77 -0
- package/animations/README.md +2 -0
- package/animations/index.d.ts +261 -5
- package/breakpoints/index.d.ts +216 -7
- package/cdk/a11y/index.d.ts +116 -2
- package/cdk/active-indicator/index.d.ts +104 -2
- package/cdk/autocomplete-control/index.d.ts +189 -3
- package/cdk/checkbox-control/index.d.ts +40 -1
- package/cdk/connected-overlay/index.d.ts +165 -3
- package/cdk/custom-form-control/index.d.ts +243 -3
- package/cdk/date-input/index.d.ts +86 -5
- package/cdk/dynamic-view/index.d.ts +335 -7
- package/cdk/event-plugins/index.d.ts +187 -3
- package/cdk/expandable/index.d.ts +169 -4
- package/cdk/option-control/index.d.ts +70 -1
- package/cdk/radio-group-control/index.d.ts +74 -3
- package/cdk/scrollable/index.d.ts +57 -1
- package/components/accordion/index.d.ts +91 -4
- package/components/action-group/index.d.ts +20 -1
- package/components/anchor-navigation/index.d.ts +104 -4
- package/components/area-header/index.d.ts +54 -4
- package/components/autocomplete/index.d.ts +109 -6
- package/components/avatar/index.d.ts +36 -2
- package/components/badge/index.d.ts +95 -3
- package/components/bar/index.d.ts +56 -5
- package/components/breadcrumbs/index.d.ts +12 -1
- package/components/button/index.d.ts +55 -3
- package/components/button-group/index.d.ts +44 -1
- package/components/calendar/index.d.ts +746 -9
- package/components/card/index.d.ts +118 -5
- package/components/checkbox/index.d.ts +93 -3
- package/components/chip/index.d.ts +78 -2
- package/components/circular-progress/index.d.ts +71 -2
- package/components/content-box/index.d.ts +33 -3
- package/components/data-table/index.d.ts +84 -4
- package/components/datepicker/index.d.ts +216 -6
- package/components/daterangepicker/index.d.ts +257 -6
- package/components/dropdown/index.d.ts +202 -5
- package/components/error-page/index.d.ts +56 -2
- package/components/footer/index.d.ts +80 -3
- package/components/form-field/index.d.ts +398 -7
- package/components/header/index.d.ts +44 -3
- package/components/header-navigation/index.d.ts +41 -3
- package/components/icon/index.d.ts +154 -4
- package/components/inline-message/index.d.ts +36 -2
- package/components/link/index.d.ts +13 -1
- package/components/list/index.d.ts +86 -4
- package/components/loading-spinner/index.d.ts +89 -3
- package/components/logo/index.d.ts +39 -2
- package/components/main-menu/index.d.ts +217 -4
- package/components/mainfilter-group/index.d.ts +13 -1
- package/components/menu/index.d.ts +94 -4
- package/components/modal/index.d.ts +549 -9
- package/components/navigation-back/index.d.ts +12 -1
- package/components/notification/index.d.ts +630 -7
- package/components/notification/testing/index.d.ts +9 -1
- package/components/paginator/index.d.ts +264 -5
- package/components/progress/index.d.ts +36 -1
- package/components/radio-group/index.d.ts +70 -3
- package/components/rail-navigation/index.d.ts +97 -4
- package/components/rich-list/index.d.ts +92 -3
- package/components/search-bar/index.d.ts +26 -3
- package/components/select/index.d.ts +263 -6
- package/components/slider/index.d.ts +37 -1
- package/components/spinbox/index.d.ts +54 -1
- package/components/switch/index.d.ts +44 -3
- package/components/tab-bar/index.d.ts +141 -4
- package/components/table/index.d.ts +239 -5
- package/components/timepicker/index.d.ts +324 -7
- package/components/toast/index.d.ts +267 -5
- package/components/toggle-button-group/index.d.ts +61 -3
- package/components/tooltip/index.d.ts +204 -7
- package/components/wizard/index.d.ts +159 -3
- package/fesm2022/odx-angular-animations.mjs +51 -0
- package/fesm2022/odx-angular-animations.mjs.map +1 -1
- package/fesm2022/odx-angular-breakpoints.mjs +10 -10
- package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-a11y.mjs +13 -13
- package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-active-indicator.mjs +6 -8
- package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +12 -15
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -3
- package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs +6 -6
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-custom-form-control.mjs +12 -14
- package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-dynamic-view.mjs +10 -11
- package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-event-plugins.mjs +6 -6
- package/fesm2022/odx-angular-cdk-expandable.mjs +10 -10
- package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-option-control.mjs +3 -3
- package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-radio-group-control.mjs +10 -10
- package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-scrollable.mjs +6 -6
- package/fesm2022/odx-angular-cdk-scrollable.mjs.map +1 -1
- package/fesm2022/odx-angular-components-accordion.mjs +17 -17
- package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/odx-angular-components-action-group.mjs +5 -6
- package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-anchor-navigation.mjs +33 -34
- package/fesm2022/odx-angular-components-anchor-navigation.mjs.map +1 -1
- package/fesm2022/odx-angular-components-area-header.mjs +16 -19
- package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
- package/fesm2022/odx-angular-components-autocomplete.mjs +19 -22
- package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/odx-angular-components-avatar.mjs +6 -8
- package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-badge.mjs +9 -11
- package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
- package/fesm2022/odx-angular-components-bar.mjs +15 -16
- package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -3
- package/fesm2022/odx-angular-components-button-group.mjs +8 -12
- package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-button.mjs +9 -11
- package/fesm2022/odx-angular-components-button.mjs.map +1 -1
- package/fesm2022/odx-angular-components-calendar.mjs +53 -63
- package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-card.mjs +33 -36
- package/fesm2022/odx-angular-components-card.mjs.map +1 -1
- package/fesm2022/odx-angular-components-checkbox.mjs +14 -16
- package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/odx-angular-components-chip.mjs +13 -15
- package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
- package/fesm2022/odx-angular-components-circular-progress.mjs +6 -8
- package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
- package/fesm2022/odx-angular-components-content-box.mjs +13 -13
- package/fesm2022/odx-angular-components-data-table.mjs +33 -47
- package/fesm2022/odx-angular-components-data-table.mjs.map +1 -1
- package/fesm2022/odx-angular-components-datepicker.mjs +26 -28
- package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-daterangepicker.mjs +22 -24
- package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-dropdown.mjs +10 -10
- package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
- package/fesm2022/odx-angular-components-error-page.mjs +3 -3
- package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
- package/fesm2022/odx-angular-components-footer.mjs +5 -6
- package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
- package/fesm2022/odx-angular-components-form-field.mjs +44 -44
- package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
- package/fesm2022/odx-angular-components-header-navigation.mjs +15 -16
- package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
- package/fesm2022/odx-angular-components-header.mjs +13 -13
- package/fesm2022/odx-angular-components-icon.mjs +98 -86
- package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
- package/fesm2022/odx-angular-components-inline-message.mjs +10 -11
- package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
- package/fesm2022/odx-angular-components-link.mjs +3 -3
- package/fesm2022/odx-angular-components-list.mjs +19 -35
- package/fesm2022/odx-angular-components-list.mjs.map +1 -1
- package/fesm2022/odx-angular-components-loading-spinner.mjs +12 -17
- package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
- package/fesm2022/odx-angular-components-logo.mjs +6 -8
- package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
- package/fesm2022/odx-angular-components-main-menu.mjs +20 -20
- package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-mainfilter-group.mjs +3 -3
- package/fesm2022/odx-angular-components-menu.mjs +16 -18
- package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-modal.mjs +70 -80
- package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2022/odx-angular-components-navigation-back.mjs +4 -4
- package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
- package/fesm2022/odx-angular-components-notification-testing.mjs +3 -2
- package/fesm2022/odx-angular-components-notification-testing.mjs.map +1 -1
- package/fesm2022/odx-angular-components-notification.mjs +24 -24
- package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
- package/fesm2022/odx-angular-components-paginator.mjs +8 -8
- package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/odx-angular-components-progress.mjs +5 -6
- package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
- package/fesm2022/odx-angular-components-radio-group.mjs +13 -15
- package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-rail-navigation.mjs +16 -26
- package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/odx-angular-components-rich-list.mjs +20 -21
- package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
- package/fesm2022/odx-angular-components-search-bar.mjs +11 -11
- package/fesm2022/odx-angular-components-search-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-select.mjs +32 -34
- package/fesm2022/odx-angular-components-select.mjs.map +1 -1
- package/fesm2022/odx-angular-components-slider.mjs +3 -3
- package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
- package/fesm2022/odx-angular-components-spinbox.mjs +6 -7
- package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
- package/fesm2022/odx-angular-components-switch.mjs +11 -11
- package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
- package/fesm2022/odx-angular-components-tab-bar.mjs +24 -26
- package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-table.mjs +31 -48
- package/fesm2022/odx-angular-components-table.mjs.map +1 -1
- package/fesm2022/odx-angular-components-timepicker.mjs +24 -33
- package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toast.mjs +21 -52
- package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toggle-button-group.mjs +11 -11
- package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-tooltip.mjs +13 -16
- package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/odx-angular-components-wizard.mjs +20 -27
- package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
- package/fesm2022/odx-angular-internal-translate.mjs +3 -3
- package/fesm2022/odx-angular-localization.mjs +3 -3
- package/fesm2022/odx-angular-theming.mjs +4 -5
- package/fesm2022/odx-angular-theming.mjs.map +1 -1
- package/fesm2022/odx-angular-utils.mjs +4 -26
- package/fesm2022/odx-angular-utils.mjs.map +1 -1
- package/fesm2022/odx-angular.mjs +36 -35
- package/fesm2022/odx-angular.mjs.map +1 -1
- package/index.d.ts +546 -6
- package/internal/index.d.ts +79 -3
- package/internal/translate/index.d.ts +88 -4
- package/localization/index.d.ts +343 -5
- package/package.json +40 -198
- package/rxjs/index.d.ts +125 -5
- package/sdk/index.d.ts +74 -1
- package/theming/index.d.ts +213 -4
- package/utils/index.d.ts +1020 -3
- package/animations/lib/config.d.ts +0 -7
- package/animations/lib/expand.d.ts +0 -46
- package/animations/lib/fade.d.ts +0 -76
- package/animations/lib/slide.d.ts +0 -34
- package/animations/lib/wait-for-child-animations.d.ts +0 -39
- package/breakpoints/lib/breakpoints.config.d.ts +0 -59
- package/breakpoints/lib/breakpoints.module.d.ts +0 -7
- package/breakpoints/lib/breakpoints.service.d.ts +0 -56
- package/breakpoints/lib/breakpoints.typings.d.ts +0 -8
- package/breakpoints/lib/directives/index.d.ts +0 -1
- package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +0 -52
- package/breakpoints/lib/helpers/configure-breakpoint.d.ts +0 -23
- package/breakpoints/lib/helpers/index.d.ts +0 -1
- package/breakpoints/lib/models/breakpoint.d.ts +0 -5
- package/breakpoints/lib/models/index.d.ts +0 -1
- package/cdk/a11y/lib/a11y.module.d.ts +0 -11
- package/cdk/a11y/lib/directives/index.d.ts +0 -3
- package/cdk/a11y/lib/directives/interactive.directive.d.ts +0 -43
- package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +0 -34
- package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +0 -31
- package/cdk/active-indicator/lib/active-indicator.directive.d.ts +0 -90
- package/cdk/active-indicator/lib/models/active-indicator-direction.d.ts +0 -5
- package/cdk/active-indicator/lib/models/active-indicator-position.d.ts +0 -6
- package/cdk/active-indicator/lib/models/index.d.ts +0 -2
- package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +0 -144
- package/cdk/autocomplete-control/lib/directives/highlight-search-result.directive.d.ts +0 -19
- package/cdk/autocomplete-control/lib/directives/index.d.ts +0 -1
- package/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.d.ts +0 -24
- package/cdk/autocomplete-control/lib/pipes/index.d.ts +0 -1
- package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +0 -37
- package/cdk/connected-overlay/lib/connected-overlay.component.d.ts +0 -26
- package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +0 -54
- package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +0 -13
- package/cdk/connected-overlay/lib/helpers/index.d.ts +0 -1
- package/cdk/connected-overlay/lib/models/connected-overlay-options.d.ts +0 -27
- package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +0 -62
- package/cdk/connected-overlay/lib/models/index.d.ts +0 -2
- package/cdk/custom-form-control/lib/control.directive.d.ts +0 -6
- package/cdk/custom-form-control/lib/custom-form-control.d.ts +0 -146
- package/cdk/custom-form-control/lib/input-control.directive.d.ts +0 -88
- package/cdk/date-input/lib/date.config.d.ts +0 -48
- package/cdk/date-input/lib/models/input-date-order.d.ts +0 -17
- package/cdk/date-input/lib/utils/get-date-input-pattern.d.ts +0 -5
- package/cdk/date-input/lib/utils/get-input-value-as-date.d.ts +0 -3
- package/cdk/date-input/lib/utils/ngx-mask-init.d.ts +0 -3
- package/cdk/dynamic-view/lib/dynamic-view.component.d.ts +0 -12
- package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +0 -55
- package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +0 -40
- package/cdk/dynamic-view/lib/facade/dynamic-content.d.ts +0 -8
- package/cdk/dynamic-view/lib/facade/dynamic-view-ref.d.ts +0 -10
- package/cdk/dynamic-view/lib/facade/index.d.ts +0 -2
- package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +0 -24
- package/cdk/dynamic-view/lib/helpers/index.d.ts +0 -3
- package/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.d.ts +0 -24
- package/cdk/dynamic-view/lib/helpers/is-dynamic-view.d.ts +0 -24
- package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +0 -59
- package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +0 -55
- package/cdk/dynamic-view/lib/models/dynamic-view-options.d.ts +0 -11
- package/cdk/dynamic-view/lib/models/index.d.ts +0 -3
- package/cdk/dynamic-view/lib/tokens/dynamic-view-context.d.ts +0 -9
- package/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.d.ts +0 -13
- package/cdk/dynamic-view/lib/tokens/index.d.ts +0 -2
- package/cdk/event-plugins/lib/event-plugins.config.d.ts +0 -38
- package/cdk/event-plugins/lib/models/event-plugin.d.ts +0 -73
- package/cdk/event-plugins/lib/models/index.d.ts +0 -1
- package/cdk/event-plugins/lib/plugins/debounce-event-plugin.d.ts +0 -42
- package/cdk/event-plugins/lib/plugins/defer-event-plugin.d.ts +0 -33
- package/cdk/event-plugins/lib/plugins/index.d.ts +0 -2
- package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +0 -65
- package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +0 -73
- package/cdk/expandable/lib/directives/index.d.ts +0 -2
- package/cdk/expandable/lib/expandable.module.d.ts +0 -8
- package/cdk/expandable/lib/expandable.tokens.d.ts +0 -4
- package/cdk/expandable/lib/facade/expandable-container.d.ts +0 -10
- package/cdk/expandable/lib/facade/expandable-item.d.ts +0 -10
- package/cdk/expandable/lib/facade/index.d.ts +0 -2
- package/cdk/option-control/lib/option-control.d.ts +0 -66
- package/cdk/radio-group-control/lib/radio-control.directive.d.ts +0 -39
- package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +0 -24
- package/cdk/radio-group-control/lib/radio-group-control.module.d.ts +0 -9
- package/cdk/scrollable/lib/scrollable.service.d.ts +0 -53
- package/components/accordion/lib/accordion.component.d.ts +0 -15
- package/components/accordion/lib/accordion.module.d.ts +0 -10
- package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +0 -59
- package/components/accordion/lib/components/index.d.ts +0 -1
- package/components/accordion/lib/directives/accordion-item-title.d.ts +0 -8
- package/components/accordion/lib/directives/index.d.ts +0 -1
- package/components/action-group/action-group.component.d.ts +0 -17
- package/components/anchor-navigation/anchor-navigation.component.d.ts +0 -37
- package/components/anchor-navigation/anchor-navigation.module.d.ts +0 -8
- package/components/anchor-navigation/anchor-navigation.service.d.ts +0 -50
- package/components/anchor-navigation/components/anchor-navigation-item.component.d.ts +0 -10
- package/components/anchor-navigation/components/index.d.ts +0 -1
- package/components/area-header/area-header.component.d.ts +0 -17
- package/components/area-header/area-header.module.d.ts +0 -14
- package/components/area-header/directives/area-header-content.directive.d.ts +0 -8
- package/components/area-header/directives/area-header-subtitle.directive.d.ts +0 -8
- package/components/area-header/directives/index.d.ts +0 -2
- package/components/area-header/models/area-header-size.d.ts +0 -7
- package/components/area-header/models/index.d.ts +0 -1
- package/components/autocomplete/lib/autocomplete.component.d.ts +0 -66
- package/components/autocomplete/lib/autocomplete.module.d.ts +0 -11
- package/components/autocomplete/lib/autocomplete.tokens.d.ts +0 -3
- package/components/autocomplete/lib/components/index.d.ts +0 -1
- package/components/autocomplete/lib/components/option/autocomplete-option.component.d.ts +0 -17
- package/components/autocomplete/lib/directives/autocomplete-input-control.directive.d.ts +0 -13
- package/components/autocomplete/lib/directives/index.d.ts +0 -1
- package/components/autocomplete/lib/pipes/autocomplete-search-filter.pipe.d.ts +0 -7
- package/components/autocomplete/lib/pipes/index.d.ts +0 -1
- package/components/avatar/lib/avatar.component.d.ts +0 -21
- package/components/avatar/lib/models/avatar-size.d.ts +0 -6
- package/components/avatar/lib/models/avatar-variant.d.ts +0 -5
- package/components/avatar/lib/models/index.d.ts +0 -2
- package/components/badge/lib/badge.component.d.ts +0 -33
- package/components/badge/lib/badge.directive.d.ts +0 -56
- package/components/badge/lib/models/badge-variant.d.ts +0 -6
- package/components/badge/lib/models/index.d.ts +0 -1
- package/components/bar/lib/bar.component.d.ts +0 -13
- package/components/bar/lib/bar.module.d.ts +0 -10
- package/components/bar/lib/directives/bar-button.directive.d.ts +0 -20
- package/components/bar/lib/directives/bar-label.directive.d.ts +0 -9
- package/components/bar/lib/models/bar-button-variant.d.ts +0 -5
- package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +0 -9
- package/components/button/lib/button.component.d.ts +0 -29
- package/components/button/lib/directives/index.d.ts +0 -1
- package/components/button/lib/directives/responsive-button.directive.d.ts +0 -6
- package/components/button/lib/models/button-size.d.ts +0 -6
- package/components/button/lib/models/button-variant.d.ts +0 -10
- package/components/button/lib/models/index.d.ts +0 -2
- package/components/button-group/lib/button-group.component.d.ts +0 -41
- package/components/calendar/lib/calendar.component.d.ts +0 -90
- package/components/calendar/lib/calendar.config.d.ts +0 -117
- package/components/calendar/lib/calendar.service.d.ts +0 -81
- package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +0 -61
- package/components/calendar/lib/components/calendar-header/index.d.ts +0 -1
- package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +0 -24
- package/components/calendar/lib/components/calendar-month/index.d.ts +0 -1
- package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +0 -24
- package/components/calendar/lib/components/calendar-year/index.d.ts +0 -1
- package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +0 -26
- package/components/calendar/lib/components/calendar-years/index.d.ts +0 -1
- package/components/calendar/lib/components/index.d.ts +0 -4
- package/components/calendar/lib/daterange.service.d.ts +0 -33
- package/components/calendar/lib/directives/calendar-cell.directive.d.ts +0 -90
- package/components/calendar/lib/directives/calendar-view.directive.d.ts +0 -92
- package/components/calendar/lib/directives/index.d.ts +0 -2
- package/components/calendar/lib/models/calendar-view.d.ts +0 -5
- package/components/calendar/lib/models/date-filter.d.ts +0 -1
- package/components/calendar/lib/models/date-range.d.ts +0 -18
- package/components/calendar/lib/models/date-type.d.ts +0 -1
- package/components/calendar/lib/models/date-validator.d.ts +0 -1
- package/components/calendar/lib/models/index.d.ts +0 -7
- package/components/calendar/lib/models/selected-date.d.ts +0 -9
- package/components/calendar/lib/models/selection-mode.d.ts +0 -4
- package/components/calendar/lib/pipes/date-label.pipe.d.ts +0 -22
- package/components/calendar/lib/pipes/index.d.ts +0 -1
- package/components/calendar/lib/services/calendar-month.service.d.ts +0 -13
- package/components/calendar/lib/services/calendar-year.service.d.ts +0 -10
- package/components/calendar/lib/services/calendar-years.service.d.ts +0 -9
- package/components/calendar/lib/services/index.d.ts +0 -3
- package/components/calendar/lib/utils/check-cell-in-range.d.ts +0 -8
- package/components/calendar/lib/utils/check-identical-date.d.ts +0 -3
- package/components/calendar/lib/utils/get-A11y-label.d.ts +0 -3
- package/components/calendar/lib/utils/index.d.ts +0 -9
- package/components/calendar/lib/utils/is-date-disabled.d.ts +0 -3
- package/components/calendar/lib/utils/parse-date.d.ts +0 -3
- package/components/calendar/lib/utils/validate-daterange.d.ts +0 -2
- package/components/calendar/lib/utils/validate-max-date.d.ts +0 -3
- package/components/calendar/lib/utils/validate-min-date.d.ts +0 -3
- package/components/calendar/lib/utils/validate-next-date-set.d.ts +0 -3
- package/components/calendar/lib/utils/validate-previous-date-set.d.ts +0 -3
- package/components/card/lib/card.component.d.ts +0 -54
- package/components/card/lib/card.config.d.ts +0 -49
- package/components/card/lib/card.module.d.ts +0 -12
- package/components/card/lib/components/card-footer/card-footer.component.d.ts +0 -8
- package/components/card/lib/components/card-image/card-image.component.d.ts +0 -25
- package/components/card/lib/components/index.d.ts +0 -3
- package/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.d.ts +0 -8
- package/components/card/lib/directives/card-content.directive.d.ts +0 -8
- package/components/card/lib/directives/index.d.ts +0 -1
- package/components/card/lib/models/card-variant.d.ts +0 -7
- package/components/card/lib/models/index.d.ts +0 -1
- package/components/checkbox/lib/checkbox.component.d.ts +0 -55
- package/components/checkbox/lib/checkbox.module.d.ts +0 -9
- package/components/checkbox/lib/checkbox.validator.d.ts +0 -29
- package/components/chip/lib/components/chip/chip.component.d.ts +0 -42
- package/components/chip/lib/components/chip-list/chip-list.component.d.ts +0 -9
- package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +0 -9
- package/components/chip/lib/components/index.d.ts +0 -3
- package/components/chip/lib/models/chip-size.d.ts +0 -5
- package/components/chip/lib/models/chip-variant.d.ts +0 -9
- package/components/chip/lib/models/index.d.ts +0 -2
- package/components/circular-progress/lib/circular-progress.component.d.ts +0 -61
- package/components/circular-progress/lib/models/circular-progress-size.d.ts +0 -7
- package/components/circular-progress/lib/models/index.d.ts +0 -1
- package/components/content-box/lib/content-box.component.d.ts +0 -8
- package/components/content-box/lib/content-box.module.d.ts +0 -9
- package/components/content-box/lib/directives/content-box-footer.directive.d.ts +0 -8
- package/components/content-box/lib/directives/content-box-header.directive.d.ts +0 -8
- package/components/content-box/lib/directives/index.d.ts +0 -2
- package/components/data-table/lib/data-table.component.d.ts +0 -32
- package/components/data-table/lib/data-table.module.d.ts +0 -14
- package/components/data-table/lib/directives/cell-def.directive.d.ts +0 -7
- package/components/data-table/lib/directives/cell.directive.d.ts +0 -5
- package/components/data-table/lib/directives/column-def.directive.d.ts +0 -11
- package/components/data-table/lib/directives/header-cell-def.directive.d.ts +0 -7
- package/components/data-table/lib/directives/header-cell.directive.d.ts +0 -5
- package/components/data-table/lib/directives/index.d.ts +0 -6
- package/components/data-table/lib/directives/table-empty.directive.d.ts +0 -5
- package/components/data-table/lib/models/index.d.ts +0 -15
- package/components/data-table/lib/models/table-variant.d.ts +0 -5
- package/components/datepicker/lib/datepicker.component.d.ts +0 -132
- package/components/datepicker/lib/datepicker.config.d.ts +0 -1
- package/components/datepicker/lib/datepicker.module.d.ts +0 -11
- package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +0 -49
- package/components/datepicker/lib/directives/index.d.ts +0 -1
- package/components/datepicker/lib/validators/filter.validator.d.ts +0 -15
- package/components/datepicker/lib/validators/minmax.validator.d.ts +0 -15
- package/components/daterangepicker/lib/daterangepicker.component.d.ts +0 -159
- package/components/daterangepicker/lib/daterangepicker.config.d.ts +0 -1
- package/components/daterangepicker/lib/daterangepicker.module.d.ts +0 -11
- package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +0 -45
- package/components/daterangepicker/lib/directives/index.d.ts +0 -1
- package/components/daterangepicker/lib/range.validator.d.ts +0 -25
- package/components/daterangepicker/lib/required.validator.d.ts +0 -24
- package/components/dropdown/lib/dropdown.component.d.ts +0 -33
- package/components/dropdown/lib/dropdown.directive.d.ts +0 -145
- package/components/dropdown/lib/dropdown.module.d.ts +0 -8
- package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +0 -7
- package/components/dropdown/lib/helpers/index.d.ts +0 -1
- package/components/dropdown/lib/models/close-dropdown-event.d.ts +0 -4
- package/components/dropdown/lib/models/dropdown-options.d.ts +0 -3
- package/components/dropdown/lib/models/index.d.ts +0 -2
- package/components/error-page/lib/error-page.component.d.ts +0 -16
- package/components/error-page/lib/error-page.config.d.ts +0 -34
- package/components/footer/lib/footer.component.d.ts +0 -28
- package/components/footer/lib/footer.config.d.ts +0 -32
- package/components/footer/lib/footer.i18n.d.ts +0 -3
- package/components/footer/lib/helpers/create-footer-links.d.ts +0 -11
- package/components/footer/lib/helpers/index.d.ts +0 -1
- package/components/footer/lib/models/footer-link.d.ts +0 -4
- package/components/footer/lib/models/footer-variant.d.ts +0 -5
- package/components/footer/lib/models/index.d.ts +0 -2
- package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +0 -23
- package/components/form-field/lib/components/form-group/form-group.component.d.ts +0 -34
- package/components/form-field/lib/components/index.d.ts +0 -2
- package/components/form-field/lib/directives/form-field-control.directive.d.ts +0 -25
- package/components/form-field/lib/directives/form-field-error.directive.d.ts +0 -18
- package/components/form-field/lib/directives/form-field-hint.directive.d.ts +0 -11
- package/components/form-field/lib/directives/form-field-label.directive.d.ts +0 -9
- package/components/form-field/lib/directives/form.directive.d.ts +0 -25
- package/components/form-field/lib/directives/index.d.ts +0 -5
- package/components/form-field/lib/form-field.component.d.ts +0 -61
- package/components/form-field/lib/form-field.config.d.ts +0 -16
- package/components/form-field/lib/form-field.module.d.ts +0 -14
- package/components/form-field/lib/form-field.service.d.ts +0 -92
- package/components/form-field/lib/models/form-field-error-resolver.d.ts +0 -27
- package/components/form-field/lib/models/form-field-error.d.ts +0 -8
- package/components/form-field/lib/models/form-field-variant.d.ts +0 -6
- package/components/form-field/lib/models/index.d.ts +0 -3
- package/components/form-field/lib/services/form-field-error.service.d.ts +0 -51
- package/components/form-field/lib/services/index.d.ts +0 -1
- package/components/header/lib/directives/header-avatar.directive.d.ts +0 -12
- package/components/header/lib/directives/header-title.directive.d.ts +0 -8
- package/components/header/lib/directives/index.d.ts +0 -2
- package/components/header/lib/header.component.d.ts +0 -9
- package/components/header/lib/header.module.d.ts +0 -15
- package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +0 -14
- package/components/header-navigation/lib/directives/index.d.ts +0 -1
- package/components/header-navigation/lib/header-navigation.component.d.ts +0 -17
- package/components/header-navigation/lib/header-navigation.module.d.ts +0 -9
- package/components/icon/lib/helpers/index.d.ts +0 -1
- package/components/icon/lib/helpers/unpack-icon-identifier.d.ts +0 -29
- package/components/icon/lib/icon.component.d.ts +0 -50
- package/components/icon/lib/icon.config.d.ts +0 -31
- package/components/icon/lib/models/icon-set.d.ts +0 -7
- package/components/icon/lib/models/icon-size.d.ts +0 -8
- package/components/icon/lib/models/index.d.ts +0 -2
- package/components/inline-message/lib/inline-message.component.d.ts +0 -26
- package/components/inline-message/lib/models/index.d.ts +0 -1
- package/components/inline-message/lib/models/inline-message-variant.d.ts +0 -7
- package/components/link/link.directive.d.ts +0 -10
- package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +0 -18
- package/components/list/lib/components/index.d.ts +0 -2
- package/components/list/lib/components/list-item/list-item.component.d.ts +0 -47
- package/components/list/lib/list.component.d.ts +0 -13
- package/components/list/lib/list.module.d.ts +0 -10
- package/components/list/lib/models/index.d.ts +0 -1
- package/components/list/lib/models/list-item-variant.d.ts +0 -6
- package/components/loading-spinner/lib/loading-spinner.component.d.ts +0 -26
- package/components/loading-spinner/lib/loading-spinner.directive.d.ts +0 -53
- package/components/loading-spinner/lib/loading-spinner.module.d.ts +0 -9
- package/components/logo/logo.directive.d.ts +0 -24
- package/components/logo/models/index.d.ts +0 -2
- package/components/logo/models/logo-size.d.ts +0 -6
- package/components/logo/models/logo-variant.d.ts +0 -5
- package/components/main-menu/lib/directives/index.d.ts +0 -3
- package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +0 -12
- package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +0 -10
- package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +0 -28
- package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +0 -4
- package/components/main-menu/lib/helpers/index.d.ts +0 -1
- package/components/main-menu/lib/main-menu.component.d.ts +0 -67
- package/components/main-menu/lib/main-menu.config.d.ts +0 -43
- package/components/main-menu/lib/main-menu.i18n.d.ts +0 -3
- package/components/main-menu/lib/main-menu.module.d.ts +0 -12
- package/components/main-menu/lib/main-menu.service.d.ts +0 -39
- package/components/main-menu/lib/models/index.d.ts +0 -1
- package/components/main-menu/lib/models/main-menu-link.d.ts +0 -4
- package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +0 -10
- package/components/menu/lib/directives/index.d.ts +0 -1
- package/components/menu/lib/directives/menu-item.directive.d.ts +0 -14
- package/components/menu/lib/menu.component.d.ts +0 -22
- package/components/menu/lib/menu.directive.d.ts +0 -48
- package/components/menu/lib/menu.module.d.ts +0 -11
- package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +0 -24
- package/components/modal/lib/components/index.d.ts +0 -4
- package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +0 -9
- package/components/modal/lib/components/modal-header/modal-header.component.d.ts +0 -20
- package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +0 -37
- package/components/modal/lib/directives/index.d.ts +0 -5
- package/components/modal/lib/directives/modal-close.directive.d.ts +0 -32
- package/components/modal/lib/directives/modal-content.directive.d.ts +0 -9
- package/components/modal/lib/directives/modal-dismiss.directive.d.ts +0 -24
- package/components/modal/lib/directives/prevent-form-method-dialog.directive.d.ts +0 -9
- package/components/modal/lib/directives/prevent-method-dialog.directive.d.ts +0 -9
- package/components/modal/lib/helpers/index.d.ts +0 -2
- package/components/modal/lib/helpers/inject-modal-ref.d.ts +0 -23
- package/components/modal/lib/helpers/provide-modal-ref.d.ts +0 -12
- package/components/modal/lib/modal.component.d.ts +0 -48
- package/components/modal/lib/modal.config.d.ts +0 -36
- package/components/modal/lib/modal.directive.d.ts +0 -47
- package/components/modal/lib/modal.module.d.ts +0 -20
- package/components/modal/lib/modal.service.d.ts +0 -79
- package/components/modal/lib/models/basic-modal-options.d.ts +0 -17
- package/components/modal/lib/models/index.d.ts +0 -7
- package/components/modal/lib/models/modal-hero-variant.d.ts +0 -7
- package/components/modal/lib/models/modal-options.d.ts +0 -18
- package/components/modal/lib/models/modal-ref.d.ts +0 -68
- package/components/modal/lib/models/modal-size.d.ts +0 -7
- package/components/modal/lib/models/modal-type.d.ts +0 -8
- package/components/modal/lib/models/modal-variant.d.ts +0 -5
- package/components/navigation-back/lib/navigation-back.component.d.ts +0 -9
- package/components/notification/lib/components/index.d.ts +0 -2
- package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -15
- package/components/notification/lib/components/notification-item/notification-item.component.d.ts +0 -37
- package/components/notification/lib/directives/index.d.ts +0 -1
- package/components/notification/lib/directives/notification-center.directive.d.ts +0 -86
- package/components/notification/lib/features/index.d.ts +0 -5
- package/components/notification/lib/features/with-browser-notifications.d.ts +0 -17
- package/components/notification/lib/features/with-load-notifications.d.ts +0 -19
- package/components/notification/lib/features/with-notification-transformer.d.ts +0 -26
- package/components/notification/lib/features/with-peristent-notifications.d.ts +0 -61
- package/components/notification/lib/features/with-save-notifications.d.ts +0 -11
- package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +0 -3
- package/components/notification/lib/helpers/index.d.ts +0 -3
- package/components/notification/lib/helpers/sort-notifications.d.ts +0 -4
- package/components/notification/lib/helpers/to-notification-collection.d.ts +0 -4
- package/components/notification/lib/models/index.d.ts +0 -8
- package/components/notification/lib/models/notification-action.d.ts +0 -2
- package/components/notification/lib/models/notification-collection.d.ts +0 -6
- package/components/notification/lib/models/notification-feature.d.ts +0 -20
- package/components/notification/lib/models/notification-options.d.ts +0 -7
- package/components/notification/lib/models/notification-query.d.ts +0 -2
- package/components/notification/lib/models/notification-sort-fn.d.ts +0 -2
- package/components/notification/lib/models/notification.d.ts +0 -6
- package/components/notification/lib/models/notification.ref.d.ts +0 -9
- package/components/notification/lib/notification.config.d.ts +0 -65
- package/components/notification/lib/notification.i18n.d.ts +0 -3
- package/components/notification/lib/notification.logger.d.ts +0 -4
- package/components/notification/lib/notification.service.d.ts +0 -165
- package/components/notification/lib/notification.tokens.d.ts +0 -7
- package/components/notification/lib/services/index.d.ts +0 -1
- package/components/notification/lib/services/notification-center.service.d.ts +0 -78
- package/components/notification/testing/lib/test-helpers.d.ts +0 -5
- package/components/paginator/lib/interfaces/index.d.ts +0 -1
- package/components/paginator/lib/interfaces/page-change.interface.d.ts +0 -5
- package/components/paginator/lib/models/get-range-content.model.d.ts +0 -2
- package/components/paginator/lib/models/get-summary-content.model.d.ts +0 -2
- package/components/paginator/lib/models/index.d.ts +0 -2
- package/components/paginator/lib/paginator.component.d.ts +0 -183
- package/components/paginator/lib/paginator.config.d.ts +0 -59
- package/components/paginator/lib/paginator.module.d.ts +0 -7
- package/components/progress/lib/progress.component.d.ts +0 -33
- package/components/radio-group/lib/components/index.d.ts +0 -1
- package/components/radio-group/lib/components/radio-button/radio-button.component.d.ts +0 -36
- package/components/radio-group/lib/radio-group.component.d.ts +0 -25
- package/components/radio-group/lib/radio-group.module.d.ts +0 -9
- package/components/rail-navigation/lib/components/index.d.ts +0 -1
- package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +0 -41
- package/components/rail-navigation/lib/models/index.d.ts +0 -1
- package/components/rail-navigation/lib/models/rail-navigation-variant.d.ts +0 -5
- package/components/rail-navigation/lib/rail-navigation.component.d.ts +0 -49
- package/components/rail-navigation/lib/rail-navigation.module.d.ts +0 -9
- package/components/rich-list/lib/components/index.d.ts +0 -3
- package/components/rich-list/lib/components/rich-list-content/rich-list-content.component.d.ts +0 -10
- package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +0 -40
- package/components/rich-list/lib/components/rich-list-item-header/rich-list-item-header.component.d.ts +0 -10
- package/components/rich-list/lib/rich-list.component.d.ts +0 -23
- package/components/rich-list/lib/rich-list.module.d.ts +0 -11
- package/components/search-bar/lib/search-bar-control.directive.d.ts +0 -8
- package/components/search-bar/lib/search-bar.component.d.ts +0 -8
- package/components/search-bar/lib/search-bar.module.d.ts +0 -9
- package/components/select/lib/components/index.d.ts +0 -1
- package/components/select/lib/components/select-option/select-option.component.d.ts +0 -56
- package/components/select/lib/directives/index.d.ts +0 -2
- package/components/select/lib/directives/select-all.directive.d.ts +0 -13
- package/components/select/lib/directives/select-input-control.directive.d.ts +0 -31
- package/components/select/lib/pipes/index.d.ts +0 -1
- package/components/select/lib/pipes/select-search-filter.pipe.d.ts +0 -17
- package/components/select/lib/select.component.d.ts +0 -140
- package/components/select/lib/select.module.d.ts +0 -11
- package/components/select/lib/select.tokens.d.ts +0 -3
- package/components/slider/lib/slider.directive.d.ts +0 -34
- package/components/spinbox/lib/spinbox.component.d.ts +0 -51
- package/components/switch/lib/switch.component.d.ts +0 -17
- package/components/switch/lib/switch.module.d.ts +0 -9
- package/components/switch/lib/switch.validator.d.ts +0 -18
- package/components/tab-bar/lib/components/index.d.ts +0 -1
- package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +0 -52
- package/components/tab-bar/lib/models/index.d.ts +0 -1
- package/components/tab-bar/lib/models/tab-change-event.d.ts +0 -5
- package/components/tab-bar/lib/tab-bar.component.d.ts +0 -77
- package/components/tab-bar/lib/tab-bar.config.d.ts +0 -3
- package/components/tab-bar/lib/tab-bar.module.d.ts +0 -9
- package/components/table/lib/components/check-cell/check-cell.component.d.ts +0 -33
- package/components/table/lib/components/header-title/header-title.component.d.ts +0 -71
- package/components/table/lib/components/index.d.ts +0 -2
- package/components/table/lib/directives/index.d.ts +0 -2
- package/components/table/lib/directives/table-cell.directive.d.ts +0 -10
- package/components/table/lib/directives/table-row.directive.d.ts +0 -10
- package/components/table/lib/models/header-cell.d.ts +0 -8
- package/components/table/lib/models/index.d.ts +0 -5
- package/components/table/lib/models/sort-status.d.ts +0 -5
- package/components/table/lib/models/sort-variant.d.ts +0 -21
- package/components/table/lib/models/table-body-cell.d.ts +0 -3
- package/components/table/lib/models/table-variant.d.ts +0 -5
- package/components/table/lib/table.component.d.ts +0 -85
- package/components/table/lib/table.config.d.ts +0 -4
- package/components/table/lib/table.module.d.ts +0 -11
- package/components/timepicker/lib/components/timepicker-option.component.d.ts +0 -52
- package/components/timepicker/lib/directives/timepicker-input-control.directive.d.ts +0 -43
- package/components/timepicker/lib/timepicker.component.d.ts +0 -120
- package/components/timepicker/lib/timepicker.module.d.ts +0 -10
- package/components/timepicker/lib/timepicker.service.d.ts +0 -59
- package/components/timepicker/lib/timepicker.token.d.ts +0 -9
- package/components/timepicker/lib/utils/generate-time-stamps.d.ts +0 -19
- package/components/timepicker/lib/utils/index.d.ts +0 -2
- package/components/timepicker/lib/utils/ngx-mask-helper.d.ts +0 -22
- package/components/toast/lib/components/index.d.ts +0 -2
- package/components/toast/lib/components/toast-container/toast-container.component.d.ts +0 -42
- package/components/toast/lib/components/toast-item/toast-item.component.d.ts +0 -77
- package/components/toast/lib/models/index.d.ts +0 -5
- package/components/toast/lib/models/toast-action.d.ts +0 -7
- package/components/toast/lib/models/toast-ref.d.ts +0 -7
- package/components/toast/lib/models/toast-variant.d.ts +0 -9
- package/components/toast/lib/models/toast.d.ts +0 -12
- package/components/toast/lib/models/toast.options.d.ts +0 -4
- package/components/toast/lib/toast.config.d.ts +0 -29
- package/components/toast/lib/toast.module.d.ts +0 -9
- package/components/toast/lib/toast.service.d.ts +0 -91
- package/components/toggle-button-group/lib/components/index.d.ts +0 -1
- package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +0 -24
- package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +0 -30
- package/components/toggle-button-group/lib/toggle-button-group.module.d.ts +0 -9
- package/components/tooltip/lib/directives/index.d.ts +0 -2
- package/components/tooltip/lib/directives/tooltip-disabled-focusable.directive.d.ts +0 -20
- package/components/tooltip/lib/helpers/index.d.ts +0 -1
- package/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.d.ts +0 -9
- package/components/tooltip/lib/models/index.d.ts +0 -3
- package/components/tooltip/lib/models/tooltip-options.d.ts +0 -10
- package/components/tooltip/lib/models/tooltip-size.d.ts +0 -7
- package/components/tooltip/lib/models/tooltip-trigger.d.ts +0 -1
- package/components/tooltip/lib/tooltip.component.d.ts +0 -40
- package/components/tooltip/lib/tooltip.config.d.ts +0 -29
- package/components/tooltip/lib/tooltip.directive.d.ts +0 -84
- package/components/wizard/lib/components/index.d.ts +0 -1
- package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +0 -68
- package/components/wizard/lib/wizard.component.d.ts +0 -83
- package/components/wizard/lib/wizard.module.d.ts +0 -9
- package/esm2022/animations/index.mjs +0 -6
- package/esm2022/animations/lib/config.mjs +0 -8
- package/esm2022/animations/lib/expand.mjs +0 -58
- package/esm2022/animations/lib/fade.mjs +0 -83
- package/esm2022/animations/lib/slide.mjs +0 -55
- package/esm2022/animations/lib/wait-for-child-animations.mjs +0 -41
- package/esm2022/animations/odx-angular-animations.mjs +0 -5
- package/esm2022/breakpoints/index.mjs +0 -8
- package/esm2022/breakpoints/lib/breakpoints.config.mjs +0 -51
- package/esm2022/breakpoints/lib/breakpoints.module.mjs +0 -17
- package/esm2022/breakpoints/lib/breakpoints.service.mjs +0 -77
- package/esm2022/breakpoints/lib/breakpoints.typings.mjs +0 -2
- package/esm2022/breakpoints/lib/directives/index.mjs +0 -2
- package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +0 -84
- package/esm2022/breakpoints/lib/helpers/configure-breakpoint.mjs +0 -27
- package/esm2022/breakpoints/lib/helpers/index.mjs +0 -2
- package/esm2022/breakpoints/lib/models/breakpoint.mjs +0 -2
- package/esm2022/breakpoints/lib/models/index.mjs +0 -2
- package/esm2022/breakpoints/odx-angular-breakpoints.mjs +0 -5
- package/esm2022/cdk/a11y/index.mjs +0 -3
- package/esm2022/cdk/a11y/lib/a11y.module.mjs +0 -19
- package/esm2022/cdk/a11y/lib/directives/index.mjs +0 -4
- package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +0 -81
- package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +0 -50
- package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +0 -59
- package/esm2022/cdk/a11y/odx-angular-cdk-a11y.mjs +0 -5
- package/esm2022/cdk/active-indicator/index.mjs +0 -3
- package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +0 -193
- package/esm2022/cdk/active-indicator/lib/models/active-indicator-direction.mjs +0 -5
- package/esm2022/cdk/active-indicator/lib/models/active-indicator-position.mjs +0 -6
- package/esm2022/cdk/active-indicator/lib/models/index.mjs +0 -3
- package/esm2022/cdk/active-indicator/odx-angular-cdk-active-indicator.mjs +0 -5
- package/esm2022/cdk/autocomplete-control/index.mjs +0 -4
- package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +0 -198
- package/esm2022/cdk/autocomplete-control/lib/directives/highlight-search-result.directive.mjs +0 -43
- package/esm2022/cdk/autocomplete-control/lib/directives/index.mjs +0 -2
- package/esm2022/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.mjs +0 -47
- package/esm2022/cdk/autocomplete-control/lib/pipes/index.mjs +0 -2
- package/esm2022/cdk/autocomplete-control/odx-angular-cdk-autocomplete-control.mjs +0 -5
- package/esm2022/cdk/checkbox-control/index.mjs +0 -2
- package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +0 -67
- package/esm2022/cdk/checkbox-control/odx-angular-cdk-checkbox-control.mjs +0 -5
- package/esm2022/cdk/connected-overlay/index.mjs +0 -4
- package/esm2022/cdk/connected-overlay/lib/connected-overlay.component.mjs +0 -83
- package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +0 -69
- package/esm2022/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +0 -59
- package/esm2022/cdk/connected-overlay/lib/helpers/index.mjs +0 -2
- package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-options.mjs +0 -12
- package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +0 -69
- package/esm2022/cdk/connected-overlay/lib/models/index.mjs +0 -3
- package/esm2022/cdk/connected-overlay/odx-angular-cdk-connected-overlay.mjs +0 -5
- package/esm2022/cdk/custom-form-control/index.mjs +0 -4
- package/esm2022/cdk/custom-form-control/lib/control.directive.mjs +0 -19
- package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +0 -224
- package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +0 -110
- package/esm2022/cdk/custom-form-control/odx-angular-cdk-custom-form-control.mjs +0 -5
- package/esm2022/cdk/date-input/index.mjs +0 -6
- package/esm2022/cdk/date-input/lib/date.config.mjs +0 -26
- package/esm2022/cdk/date-input/lib/models/input-date-order.mjs +0 -16
- package/esm2022/cdk/date-input/lib/utils/get-date-input-pattern.mjs +0 -18
- package/esm2022/cdk/date-input/lib/utils/get-input-value-as-date.mjs +0 -38
- package/esm2022/cdk/date-input/lib/utils/ngx-mask-init.mjs +0 -22
- package/esm2022/cdk/date-input/odx-angular-cdk-date-input.mjs +0 -5
- package/esm2022/cdk/dynamic-view/index.mjs +0 -8
- package/esm2022/cdk/dynamic-view/lib/dynamic-view.component.mjs +0 -43
- package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +0 -113
- package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +0 -75
- package/esm2022/cdk/dynamic-view/lib/facade/dynamic-content.mjs +0 -2
- package/esm2022/cdk/dynamic-view/lib/facade/dynamic-view-ref.mjs +0 -2
- package/esm2022/cdk/dynamic-view/lib/facade/index.mjs +0 -3
- package/esm2022/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +0 -31
- package/esm2022/cdk/dynamic-view/lib/helpers/index.mjs +0 -4
- package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +0 -28
- package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-view.mjs +0 -27
- package/esm2022/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +0 -108
- package/esm2022/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +0 -87
- package/esm2022/cdk/dynamic-view/lib/models/dynamic-view-options.mjs +0 -2
- package/esm2022/cdk/dynamic-view/lib/models/index.mjs +0 -4
- package/esm2022/cdk/dynamic-view/lib/tokens/dynamic-view-context.mjs +0 -7
- package/esm2022/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.mjs +0 -20
- package/esm2022/cdk/dynamic-view/lib/tokens/index.mjs +0 -3
- package/esm2022/cdk/dynamic-view/odx-angular-cdk-dynamic-view.mjs +0 -5
- package/esm2022/cdk/event-plugins/index.mjs +0 -4
- package/esm2022/cdk/event-plugins/lib/event-plugins.config.mjs +0 -48
- package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +0 -60
- package/esm2022/cdk/event-plugins/lib/models/index.mjs +0 -2
- package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +0 -67
- package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +0 -51
- package/esm2022/cdk/event-plugins/lib/plugins/index.mjs +0 -3
- package/esm2022/cdk/event-plugins/odx-angular-cdk-event-plugins.mjs +0 -5
- package/esm2022/cdk/expandable/index.mjs +0 -5
- package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +0 -104
- package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +0 -119
- package/esm2022/cdk/expandable/lib/directives/index.mjs +0 -3
- package/esm2022/cdk/expandable/lib/expandable.module.mjs +0 -17
- package/esm2022/cdk/expandable/lib/expandable.tokens.mjs +0 -4
- package/esm2022/cdk/expandable/lib/facade/expandable-container.mjs +0 -2
- package/esm2022/cdk/expandable/lib/facade/expandable-item.mjs +0 -2
- package/esm2022/cdk/expandable/lib/facade/index.mjs +0 -3
- package/esm2022/cdk/expandable/odx-angular-cdk-expandable.mjs +0 -5
- package/esm2022/cdk/option-control/index.mjs +0 -2
- package/esm2022/cdk/option-control/lib/option-control.mjs +0 -91
- package/esm2022/cdk/option-control/odx-angular-cdk-option-control.mjs +0 -5
- package/esm2022/cdk/radio-group-control/index.mjs +0 -4
- package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +0 -65
- package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +0 -60
- package/esm2022/cdk/radio-group-control/lib/radio-group-control.module.mjs +0 -19
- package/esm2022/cdk/radio-group-control/odx-angular-cdk-radio-group-control.mjs +0 -5
- package/esm2022/cdk/scrollable/index.mjs +0 -2
- package/esm2022/cdk/scrollable/lib/scrollable.service.mjs +0 -129
- package/esm2022/cdk/scrollable/odx-angular-cdk-scrollable.mjs +0 -5
- package/esm2022/components/accordion/index.mjs +0 -5
- package/esm2022/components/accordion/lib/accordion.component.mjs +0 -31
- package/esm2022/components/accordion/lib/accordion.module.mjs +0 -20
- package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +0 -94
- package/esm2022/components/accordion/lib/components/index.mjs +0 -2
- package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +0 -17
- package/esm2022/components/accordion/lib/directives/index.mjs +0 -2
- package/esm2022/components/accordion/odx-angular-components-accordion.mjs +0 -5
- package/esm2022/components/action-group/action-group.component.mjs +0 -38
- package/esm2022/components/action-group/index.mjs +0 -2
- package/esm2022/components/action-group/odx-angular-components-action-group.mjs +0 -5
- package/esm2022/components/anchor-navigation/anchor-navigation.component.mjs +0 -69
- package/esm2022/components/anchor-navigation/anchor-navigation.module.mjs +0 -18
- package/esm2022/components/anchor-navigation/anchor-navigation.service.mjs +0 -130
- package/esm2022/components/anchor-navigation/components/anchor-navigation-item.component.mjs +0 -32
- package/esm2022/components/anchor-navigation/components/index.mjs +0 -2
- package/esm2022/components/anchor-navigation/index.mjs +0 -5
- package/esm2022/components/anchor-navigation/odx-angular-components-anchor-navigation.mjs +0 -5
- package/esm2022/components/area-header/area-header.component.mjs +0 -39
- package/esm2022/components/area-header/area-header.module.mjs +0 -47
- package/esm2022/components/area-header/directives/area-header-content.directive.mjs +0 -20
- package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +0 -20
- package/esm2022/components/area-header/directives/index.mjs +0 -3
- package/esm2022/components/area-header/index.mjs +0 -5
- package/esm2022/components/area-header/models/area-header-size.mjs +0 -7
- package/esm2022/components/area-header/models/index.mjs +0 -2
- package/esm2022/components/area-header/odx-angular-components-area-header.mjs +0 -5
- package/esm2022/components/autocomplete/index.mjs +0 -7
- package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +0 -212
- package/esm2022/components/autocomplete/lib/autocomplete.module.mjs +0 -21
- package/esm2022/components/autocomplete/lib/autocomplete.tokens.mjs +0 -3
- package/esm2022/components/autocomplete/lib/components/index.mjs +0 -2
- package/esm2022/components/autocomplete/lib/components/option/autocomplete-option.component.mjs +0 -45
- package/esm2022/components/autocomplete/lib/directives/autocomplete-input-control.directive.mjs +0 -36
- package/esm2022/components/autocomplete/lib/directives/index.mjs +0 -2
- package/esm2022/components/autocomplete/lib/pipes/autocomplete-search-filter.pipe.mjs +0 -16
- package/esm2022/components/autocomplete/lib/pipes/index.mjs +0 -2
- package/esm2022/components/autocomplete/odx-angular-components-autocomplete.mjs +0 -5
- package/esm2022/components/avatar/index.mjs +0 -3
- package/esm2022/components/avatar/lib/avatar.component.mjs +0 -48
- package/esm2022/components/avatar/lib/models/avatar-size.mjs +0 -6
- package/esm2022/components/avatar/lib/models/avatar-variant.mjs +0 -5
- package/esm2022/components/avatar/lib/models/index.mjs +0 -3
- package/esm2022/components/avatar/odx-angular-components-avatar.mjs +0 -5
- package/esm2022/components/badge/index.mjs +0 -4
- package/esm2022/components/badge/lib/badge.component.mjs +0 -62
- package/esm2022/components/badge/lib/badge.directive.mjs +0 -116
- package/esm2022/components/badge/lib/models/badge-variant.mjs +0 -6
- package/esm2022/components/badge/lib/models/index.mjs +0 -2
- package/esm2022/components/badge/odx-angular-components-badge.mjs +0 -5
- package/esm2022/components/bar/index.mjs +0 -6
- package/esm2022/components/bar/lib/bar.component.mjs +0 -28
- package/esm2022/components/bar/lib/bar.module.mjs +0 -20
- package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +0 -45
- package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +0 -27
- package/esm2022/components/bar/lib/models/bar-button-variant.mjs +0 -5
- package/esm2022/components/bar/odx-angular-components-bar.mjs +0 -5
- package/esm2022/components/breadcrumbs/index.mjs +0 -2
- package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +0 -24
- package/esm2022/components/breadcrumbs/odx-angular-components-breadcrumbs.mjs +0 -5
- package/esm2022/components/button/index.mjs +0 -4
- package/esm2022/components/button/lib/button.component.mjs +0 -59
- package/esm2022/components/button/lib/directives/index.mjs +0 -2
- package/esm2022/components/button/lib/directives/responsive-button.directive.mjs +0 -24
- package/esm2022/components/button/lib/models/button-size.mjs +0 -6
- package/esm2022/components/button/lib/models/button-variant.mjs +0 -10
- package/esm2022/components/button/lib/models/index.mjs +0 -3
- package/esm2022/components/button/odx-angular-components-button.mjs +0 -5
- package/esm2022/components/button-group/index.mjs +0 -2
- package/esm2022/components/button-group/lib/button-group.component.mjs +0 -80
- package/esm2022/components/button-group/odx-angular-components-button-group.mjs +0 -5
- package/esm2022/components/calendar/index.mjs +0 -10
- package/esm2022/components/calendar/lib/calendar.component.mjs +0 -116
- package/esm2022/components/calendar/lib/calendar.config.mjs +0 -31
- package/esm2022/components/calendar/lib/calendar.service.mjs +0 -111
- package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +0 -95
- package/esm2022/components/calendar/lib/components/calendar-header/index.mjs +0 -2
- package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +0 -61
- package/esm2022/components/calendar/lib/components/calendar-month/index.mjs +0 -2
- package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +0 -63
- package/esm2022/components/calendar/lib/components/calendar-year/index.mjs +0 -2
- package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +0 -71
- package/esm2022/components/calendar/lib/components/calendar-years/index.mjs +0 -2
- package/esm2022/components/calendar/lib/components/index.mjs +0 -5
- package/esm2022/components/calendar/lib/daterange.service.mjs +0 -76
- package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +0 -202
- package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +0 -108
- package/esm2022/components/calendar/lib/directives/index.mjs +0 -3
- package/esm2022/components/calendar/lib/models/calendar-view.mjs +0 -7
- package/esm2022/components/calendar/lib/models/date-filter.mjs +0 -2
- package/esm2022/components/calendar/lib/models/date-range.mjs +0 -7
- package/esm2022/components/calendar/lib/models/date-type.mjs +0 -2
- package/esm2022/components/calendar/lib/models/date-validator.mjs +0 -2
- package/esm2022/components/calendar/lib/models/index.mjs +0 -8
- package/esm2022/components/calendar/lib/models/selected-date.mjs +0 -5
- package/esm2022/components/calendar/lib/models/selection-mode.mjs +0 -6
- package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +0 -47
- package/esm2022/components/calendar/lib/pipes/index.mjs +0 -2
- package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +0 -38
- package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +0 -34
- package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +0 -37
- package/esm2022/components/calendar/lib/services/index.mjs +0 -4
- package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +0 -29
- package/esm2022/components/calendar/lib/utils/check-identical-date.mjs +0 -12
- package/esm2022/components/calendar/lib/utils/get-A11y-label.mjs +0 -13
- package/esm2022/components/calendar/lib/utils/index.mjs +0 -10
- package/esm2022/components/calendar/lib/utils/is-date-disabled.mjs +0 -11
- package/esm2022/components/calendar/lib/utils/parse-date.mjs +0 -16
- package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +0 -6
- package/esm2022/components/calendar/lib/utils/validate-max-date.mjs +0 -12
- package/esm2022/components/calendar/lib/utils/validate-min-date.mjs +0 -12
- package/esm2022/components/calendar/lib/utils/validate-next-date-set.mjs +0 -12
- package/esm2022/components/calendar/lib/utils/validate-previous-date-set.mjs +0 -12
- package/esm2022/components/calendar/odx-angular-components-calendar.mjs +0 -5
- package/esm2022/components/card/index.mjs +0 -6
- package/esm2022/components/card/lib/card.component.mjs +0 -101
- package/esm2022/components/card/lib/card.config.mjs +0 -25
- package/esm2022/components/card/lib/card.module.mjs +0 -20
- package/esm2022/components/card/lib/components/card-footer/card-footer.component.mjs +0 -16
- package/esm2022/components/card/lib/components/card-image/card-image.component.mjs +0 -83
- package/esm2022/components/card/lib/components/index.mjs +0 -4
- package/esm2022/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.mjs +0 -16
- package/esm2022/components/card/lib/directives/card-content.directive.mjs +0 -20
- package/esm2022/components/card/lib/directives/index.mjs +0 -2
- package/esm2022/components/card/lib/models/card-variant.mjs +0 -7
- package/esm2022/components/card/lib/models/index.mjs +0 -2
- package/esm2022/components/card/odx-angular-components-card.mjs +0 -5
- package/esm2022/components/checkbox/index.mjs +0 -4
- package/esm2022/components/checkbox/lib/checkbox.component.mjs +0 -99
- package/esm2022/components/checkbox/lib/checkbox.module.mjs +0 -19
- package/esm2022/components/checkbox/lib/checkbox.validator.mjs +0 -51
- package/esm2022/components/checkbox/odx-angular-components-checkbox.mjs +0 -5
- package/esm2022/components/chip/index.mjs +0 -3
- package/esm2022/components/chip/lib/components/chip/chip.component.mjs +0 -78
- package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +0 -24
- package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +0 -24
- package/esm2022/components/chip/lib/components/index.mjs +0 -4
- package/esm2022/components/chip/lib/models/chip-size.mjs +0 -5
- package/esm2022/components/chip/lib/models/chip-variant.mjs +0 -9
- package/esm2022/components/chip/lib/models/index.mjs +0 -3
- package/esm2022/components/chip/odx-angular-components-chip.mjs +0 -5
- package/esm2022/components/circular-progress/index.mjs +0 -3
- package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +0 -124
- package/esm2022/components/circular-progress/lib/models/circular-progress-size.mjs +0 -7
- package/esm2022/components/circular-progress/lib/models/index.mjs +0 -2
- package/esm2022/components/circular-progress/odx-angular-components-circular-progress.mjs +0 -5
- package/esm2022/components/content-box/index.mjs +0 -4
- package/esm2022/components/content-box/lib/content-box.component.mjs +0 -16
- package/esm2022/components/content-box/lib/content-box.module.mjs +0 -19
- package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +0 -20
- package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +0 -20
- package/esm2022/components/content-box/lib/directives/index.mjs +0 -3
- package/esm2022/components/content-box/odx-angular-components-content-box.mjs +0 -5
- package/esm2022/components/data-table/index.mjs +0 -5
- package/esm2022/components/data-table/lib/data-table.component.mjs +0 -51
- package/esm2022/components/data-table/lib/data-table.module.mjs +0 -19
- package/esm2022/components/data-table/lib/directives/cell-def.directive.mjs +0 -17
- package/esm2022/components/data-table/lib/directives/cell.directive.mjs +0 -18
- package/esm2022/components/data-table/lib/directives/column-def.directive.mjs +0 -27
- package/esm2022/components/data-table/lib/directives/header-cell-def.directive.mjs +0 -17
- package/esm2022/components/data-table/lib/directives/header-cell.directive.mjs +0 -18
- package/esm2022/components/data-table/lib/directives/index.mjs +0 -7
- package/esm2022/components/data-table/lib/directives/table-empty.directive.mjs +0 -11
- package/esm2022/components/data-table/lib/models/index.mjs +0 -15
- package/esm2022/components/data-table/lib/models/table-variant.mjs +0 -5
- package/esm2022/components/data-table/odx-angular-components-data-table.mjs +0 -5
- package/esm2022/components/datepicker/index.mjs +0 -7
- package/esm2022/components/datepicker/lib/datepicker.component.mjs +0 -208
- package/esm2022/components/datepicker/lib/datepicker.config.mjs +0 -52
- package/esm2022/components/datepicker/lib/datepicker.module.mjs +0 -21
- package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +0 -86
- package/esm2022/components/datepicker/lib/directives/index.mjs +0 -2
- package/esm2022/components/datepicker/lib/validators/filter.validator.mjs +0 -49
- package/esm2022/components/datepicker/lib/validators/minmax.validator.mjs +0 -60
- package/esm2022/components/datepicker/odx-angular-components-datepicker.mjs +0 -5
- package/esm2022/components/daterangepicker/index.mjs +0 -7
- package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +0 -277
- package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +0 -52
- package/esm2022/components/daterangepicker/lib/daterangepicker.module.mjs +0 -21
- package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +0 -82
- package/esm2022/components/daterangepicker/lib/directives/index.mjs +0 -2
- package/esm2022/components/daterangepicker/lib/range.validator.mjs +0 -52
- package/esm2022/components/daterangepicker/lib/required.validator.mjs +0 -48
- package/esm2022/components/daterangepicker/odx-angular-components-daterangepicker.mjs +0 -5
- package/esm2022/components/dropdown/index.mjs +0 -6
- package/esm2022/components/dropdown/lib/dropdown.component.mjs +0 -47
- package/esm2022/components/dropdown/lib/dropdown.directive.mjs +0 -238
- package/esm2022/components/dropdown/lib/dropdown.module.mjs +0 -18
- package/esm2022/components/dropdown/lib/helpers/close-current-dropdown.mjs +0 -11
- package/esm2022/components/dropdown/lib/helpers/index.mjs +0 -2
- package/esm2022/components/dropdown/lib/models/close-dropdown-event.mjs +0 -7
- package/esm2022/components/dropdown/lib/models/dropdown-options.mjs +0 -9
- package/esm2022/components/dropdown/lib/models/index.mjs +0 -3
- package/esm2022/components/dropdown/odx-angular-components-dropdown.mjs +0 -5
- package/esm2022/components/error-page/index.mjs +0 -3
- package/esm2022/components/error-page/lib/error-page.component.mjs +0 -37
- package/esm2022/components/error-page/lib/error-page.config.mjs +0 -18
- package/esm2022/components/error-page/odx-angular-components-error-page.mjs +0 -5
- package/esm2022/components/footer/index.mjs +0 -4
- package/esm2022/components/footer/lib/footer.component.mjs +0 -58
- package/esm2022/components/footer/lib/footer.config.mjs +0 -31
- package/esm2022/components/footer/lib/footer.i18n.mjs +0 -19
- package/esm2022/components/footer/lib/helpers/create-footer-links.mjs +0 -24
- package/esm2022/components/footer/lib/helpers/index.mjs +0 -2
- package/esm2022/components/footer/lib/models/footer-link.mjs +0 -2
- package/esm2022/components/footer/lib/models/footer-variant.mjs +0 -5
- package/esm2022/components/footer/lib/models/index.mjs +0 -3
- package/esm2022/components/footer/odx-angular-components-footer.mjs +0 -5
- package/esm2022/components/form-field/index.mjs +0 -8
- package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +0 -37
- package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +0 -49
- package/esm2022/components/form-field/lib/components/index.mjs +0 -3
- package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +0 -80
- package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +0 -28
- package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +0 -26
- package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +0 -27
- package/esm2022/components/form-field/lib/directives/form.directive.mjs +0 -46
- package/esm2022/components/form-field/lib/directives/index.mjs +0 -6
- package/esm2022/components/form-field/lib/form-field.component.mjs +0 -93
- package/esm2022/components/form-field/lib/form-field.config.mjs +0 -7
- package/esm2022/components/form-field/lib/form-field.module.mjs +0 -41
- package/esm2022/components/form-field/lib/form-field.service.mjs +0 -117
- package/esm2022/components/form-field/lib/models/form-field-error-resolver.mjs +0 -2
- package/esm2022/components/form-field/lib/models/form-field-error.mjs +0 -2
- package/esm2022/components/form-field/lib/models/form-field-variant.mjs +0 -6
- package/esm2022/components/form-field/lib/models/index.mjs +0 -4
- package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +0 -88
- package/esm2022/components/form-field/lib/services/index.mjs +0 -2
- package/esm2022/components/form-field/odx-angular-components-form-field.mjs +0 -5
- package/esm2022/components/header/index.mjs +0 -4
- package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +0 -28
- package/esm2022/components/header/lib/directives/header-title.directive.mjs +0 -20
- package/esm2022/components/header/lib/directives/index.mjs +0 -3
- package/esm2022/components/header/lib/header.component.mjs +0 -25
- package/esm2022/components/header/lib/header.module.mjs +0 -51
- package/esm2022/components/header/odx-angular-components-header.mjs +0 -5
- package/esm2022/components/header-navigation/index.mjs +0 -4
- package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +0 -40
- package/esm2022/components/header-navigation/lib/directives/index.mjs +0 -2
- package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +0 -32
- package/esm2022/components/header-navigation/lib/header-navigation.module.mjs +0 -19
- package/esm2022/components/header-navigation/odx-angular-components-header-navigation.mjs +0 -5
- package/esm2022/components/icon/index.mjs +0 -5
- package/esm2022/components/icon/lib/helpers/index.mjs +0 -2
- package/esm2022/components/icon/lib/helpers/unpack-icon-identifier.mjs +0 -38
- package/esm2022/components/icon/lib/icon.component.mjs +0 -101
- package/esm2022/components/icon/lib/icon.config.mjs +0 -25
- package/esm2022/components/icon/lib/models/icon-set.mjs +0 -7
- package/esm2022/components/icon/lib/models/icon-size.mjs +0 -8
- package/esm2022/components/icon/lib/models/index.mjs +0 -3
- package/esm2022/components/icon/odx-angular-components-icon.mjs +0 -5
- package/esm2022/components/inline-message/index.mjs +0 -3
- package/esm2022/components/inline-message/lib/inline-message.component.mjs +0 -59
- package/esm2022/components/inline-message/lib/models/index.mjs +0 -2
- package/esm2022/components/inline-message/lib/models/inline-message-variant.mjs +0 -7
- package/esm2022/components/inline-message/odx-angular-components-inline-message.mjs +0 -5
- package/esm2022/components/link/index.mjs +0 -2
- package/esm2022/components/link/link.directive.mjs +0 -30
- package/esm2022/components/link/odx-angular-components-link.mjs +0 -5
- package/esm2022/components/list/index.mjs +0 -5
- package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +0 -47
- package/esm2022/components/list/lib/components/index.mjs +0 -3
- package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +0 -88
- package/esm2022/components/list/lib/list.component.mjs +0 -29
- package/esm2022/components/list/lib/list.module.mjs +0 -19
- package/esm2022/components/list/lib/models/index.mjs +0 -2
- package/esm2022/components/list/lib/models/list-item-variant.mjs +0 -6
- package/esm2022/components/list/odx-angular-components-list.mjs +0 -5
- package/esm2022/components/loading-spinner/index.mjs +0 -4
- package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +0 -69
- package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +0 -116
- package/esm2022/components/loading-spinner/lib/loading-spinner.module.mjs +0 -19
- package/esm2022/components/loading-spinner/odx-angular-components-loading-spinner.mjs +0 -5
- package/esm2022/components/logo/index.mjs +0 -3
- package/esm2022/components/logo/logo.directive.mjs +0 -61
- package/esm2022/components/logo/models/index.mjs +0 -3
- package/esm2022/components/logo/models/logo-size.mjs +0 -6
- package/esm2022/components/logo/models/logo-variant.mjs +0 -5
- package/esm2022/components/logo/odx-angular-components-logo.mjs +0 -5
- package/esm2022/components/main-menu/index.mjs +0 -5
- package/esm2022/components/main-menu/lib/directives/index.mjs +0 -4
- package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +0 -36
- package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +0 -27
- package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +0 -55
- package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +0 -17
- package/esm2022/components/main-menu/lib/helpers/index.mjs +0 -2
- package/esm2022/components/main-menu/lib/main-menu.component.mjs +0 -125
- package/esm2022/components/main-menu/lib/main-menu.config.mjs +0 -37
- package/esm2022/components/main-menu/lib/main-menu.i18n.mjs +0 -19
- package/esm2022/components/main-menu/lib/main-menu.module.mjs +0 -20
- package/esm2022/components/main-menu/lib/main-menu.service.mjs +0 -56
- package/esm2022/components/main-menu/lib/models/index.mjs +0 -2
- package/esm2022/components/main-menu/lib/models/main-menu-link.mjs +0 -2
- package/esm2022/components/main-menu/odx-angular-components-main-menu.mjs +0 -5
- package/esm2022/components/mainfilter-group/index.mjs +0 -2
- package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +0 -25
- package/esm2022/components/mainfilter-group/odx-angular-components-mainfilter-group.mjs +0 -5
- package/esm2022/components/menu/index.mjs +0 -5
- package/esm2022/components/menu/lib/directives/index.mjs +0 -2
- package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +0 -43
- package/esm2022/components/menu/lib/menu.component.mjs +0 -56
- package/esm2022/components/menu/lib/menu.directive.mjs +0 -76
- package/esm2022/components/menu/lib/menu.module.mjs +0 -21
- package/esm2022/components/menu/odx-angular-components-menu.mjs +0 -5
- package/esm2022/components/modal/index.mjs +0 -10
- package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +0 -51
- package/esm2022/components/modal/lib/components/index.mjs +0 -5
- package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +0 -24
- package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +0 -42
- package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +0 -55
- package/esm2022/components/modal/lib/directives/index.mjs +0 -6
- package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +0 -58
- package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +0 -27
- package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +0 -41
- package/esm2022/components/modal/lib/directives/prevent-form-method-dialog.directive.mjs +0 -23
- package/esm2022/components/modal/lib/directives/prevent-method-dialog.directive.mjs +0 -23
- package/esm2022/components/modal/lib/helpers/index.mjs +0 -3
- package/esm2022/components/modal/lib/helpers/inject-modal-ref.mjs +0 -27
- package/esm2022/components/modal/lib/helpers/provide-modal-ref.mjs +0 -14
- package/esm2022/components/modal/lib/modal.component.mjs +0 -98
- package/esm2022/components/modal/lib/modal.config.mjs +0 -44
- package/esm2022/components/modal/lib/modal.directive.mjs +0 -75
- package/esm2022/components/modal/lib/modal.module.mjs +0 -55
- package/esm2022/components/modal/lib/modal.service.mjs +0 -123
- package/esm2022/components/modal/lib/models/basic-modal-options.mjs +0 -2
- package/esm2022/components/modal/lib/models/index.mjs +0 -8
- package/esm2022/components/modal/lib/models/modal-hero-variant.mjs +0 -7
- package/esm2022/components/modal/lib/models/modal-options.mjs +0 -2
- package/esm2022/components/modal/lib/models/modal-ref.mjs +0 -99
- package/esm2022/components/modal/lib/models/modal-size.mjs +0 -7
- package/esm2022/components/modal/lib/models/modal-type.mjs +0 -2
- package/esm2022/components/modal/lib/models/modal-variant.mjs +0 -5
- package/esm2022/components/modal/odx-angular-components-modal.mjs +0 -5
- package/esm2022/components/navigation-back/index.mjs +0 -2
- package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +0 -25
- package/esm2022/components/navigation-back/odx-angular-components-navigation-back.mjs +0 -5
- package/esm2022/components/notification/index.mjs +0 -8
- package/esm2022/components/notification/lib/components/index.mjs +0 -3
- package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +0 -61
- package/esm2022/components/notification/lib/components/notification-item/notification-item.component.mjs +0 -66
- package/esm2022/components/notification/lib/directives/index.mjs +0 -2
- package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +0 -159
- package/esm2022/components/notification/lib/features/index.mjs +0 -6
- package/esm2022/components/notification/lib/features/with-browser-notifications.mjs +0 -73
- package/esm2022/components/notification/lib/features/with-load-notifications.mjs +0 -45
- package/esm2022/components/notification/lib/features/with-notification-transformer.mjs +0 -34
- package/esm2022/components/notification/lib/features/with-peristent-notifications.mjs +0 -92
- package/esm2022/components/notification/lib/features/with-save-notifications.mjs +0 -44
- package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +0 -8
- package/esm2022/components/notification/lib/helpers/index.mjs +0 -4
- package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +0 -11
- package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +0 -10
- package/esm2022/components/notification/lib/models/index.mjs +0 -9
- package/esm2022/components/notification/lib/models/notification-action.mjs +0 -2
- package/esm2022/components/notification/lib/models/notification-collection.mjs +0 -2
- package/esm2022/components/notification/lib/models/notification-feature.mjs +0 -19
- package/esm2022/components/notification/lib/models/notification-options.mjs +0 -2
- package/esm2022/components/notification/lib/models/notification-query.mjs +0 -2
- package/esm2022/components/notification/lib/models/notification-sort-fn.mjs +0 -2
- package/esm2022/components/notification/lib/models/notification.mjs +0 -2
- package/esm2022/components/notification/lib/models/notification.ref.mjs +0 -2
- package/esm2022/components/notification/lib/notification.config.mjs +0 -55
- package/esm2022/components/notification/lib/notification.i18n.mjs +0 -11
- package/esm2022/components/notification/lib/notification.logger.mjs +0 -4
- package/esm2022/components/notification/lib/notification.service.mjs +0 -223
- package/esm2022/components/notification/lib/notification.tokens.mjs +0 -10
- package/esm2022/components/notification/lib/services/index.mjs +0 -2
- package/esm2022/components/notification/lib/services/notification-center.service.mjs +0 -105
- package/esm2022/components/notification/odx-angular-components-notification.mjs +0 -5
- package/esm2022/components/notification/testing/index.mjs +0 -2
- package/esm2022/components/notification/testing/lib/test-helpers.mjs +0 -33
- package/esm2022/components/notification/testing/odx-angular-components-notification-testing.mjs +0 -5
- package/esm2022/components/paginator/index.mjs +0 -6
- package/esm2022/components/paginator/lib/interfaces/index.mjs +0 -2
- package/esm2022/components/paginator/lib/interfaces/page-change.interface.mjs +0 -2
- package/esm2022/components/paginator/lib/models/get-range-content.model.mjs +0 -2
- package/esm2022/components/paginator/lib/models/get-summary-content.model.mjs +0 -2
- package/esm2022/components/paginator/lib/models/index.mjs +0 -3
- package/esm2022/components/paginator/lib/paginator.component.mjs +0 -277
- package/esm2022/components/paginator/lib/paginator.config.mjs +0 -48
- package/esm2022/components/paginator/lib/paginator.module.mjs +0 -17
- package/esm2022/components/paginator/odx-angular-components-paginator.mjs +0 -5
- package/esm2022/components/progress/index.mjs +0 -2
- package/esm2022/components/progress/lib/progress.component.mjs +0 -70
- package/esm2022/components/progress/odx-angular-components-progress.mjs +0 -5
- package/esm2022/components/radio-group/index.mjs +0 -4
- package/esm2022/components/radio-group/lib/components/index.mjs +0 -2
- package/esm2022/components/radio-group/lib/components/radio-button/radio-button.component.mjs +0 -59
- package/esm2022/components/radio-group/lib/radio-group.component.mjs +0 -64
- package/esm2022/components/radio-group/lib/radio-group.module.mjs +0 -19
- package/esm2022/components/radio-group/odx-angular-components-radio-group.mjs +0 -5
- package/esm2022/components/rail-navigation/index.mjs +0 -5
- package/esm2022/components/rail-navigation/lib/components/index.mjs +0 -2
- package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +0 -60
- package/esm2022/components/rail-navigation/lib/models/index.mjs +0 -2
- package/esm2022/components/rail-navigation/lib/models/rail-navigation-variant.mjs +0 -5
- package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +0 -85
- package/esm2022/components/rail-navigation/lib/rail-navigation.module.mjs +0 -19
- package/esm2022/components/rail-navigation/odx-angular-components-rail-navigation.mjs +0 -5
- package/esm2022/components/rich-list/index.mjs +0 -4
- package/esm2022/components/rich-list/lib/components/index.mjs +0 -4
- package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +0 -31
- package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +0 -83
- package/esm2022/components/rich-list/lib/components/rich-list-item-header/rich-list-item-header.component.mjs +0 -27
- package/esm2022/components/rich-list/lib/rich-list.component.mjs +0 -45
- package/esm2022/components/rich-list/lib/rich-list.module.mjs +0 -20
- package/esm2022/components/rich-list/odx-angular-components-rich-list.mjs +0 -5
- package/esm2022/components/search-bar/index.mjs +0 -4
- package/esm2022/components/search-bar/lib/search-bar-control.directive.mjs +0 -21
- package/esm2022/components/search-bar/lib/search-bar.component.mjs +0 -17
- package/esm2022/components/search-bar/lib/search-bar.module.mjs +0 -19
- package/esm2022/components/search-bar/odx-angular-components-search-bar.mjs +0 -5
- package/esm2022/components/select/index.mjs +0 -7
- package/esm2022/components/select/lib/components/index.mjs +0 -2
- package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +0 -114
- package/esm2022/components/select/lib/directives/index.mjs +0 -3
- package/esm2022/components/select/lib/directives/select-all.directive.mjs +0 -33
- package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +0 -61
- package/esm2022/components/select/lib/pipes/index.mjs +0 -2
- package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +0 -26
- package/esm2022/components/select/lib/select.component.mjs +0 -344
- package/esm2022/components/select/lib/select.module.mjs +0 -21
- package/esm2022/components/select/lib/select.tokens.mjs +0 -3
- package/esm2022/components/select/odx-angular-components-select.mjs +0 -5
- package/esm2022/components/slider/index.mjs +0 -2
- package/esm2022/components/slider/lib/slider.directive.mjs +0 -64
- package/esm2022/components/slider/odx-angular-components-slider.mjs +0 -5
- package/esm2022/components/spinbox/index.mjs +0 -2
- package/esm2022/components/spinbox/lib/spinbox.component.mjs +0 -143
- package/esm2022/components/spinbox/odx-angular-components-spinbox.mjs +0 -5
- package/esm2022/components/switch/index.mjs +0 -4
- package/esm2022/components/switch/lib/switch.component.mjs +0 -34
- package/esm2022/components/switch/lib/switch.module.mjs +0 -19
- package/esm2022/components/switch/lib/switch.validator.mjs +0 -40
- package/esm2022/components/switch/odx-angular-components-switch.mjs +0 -5
- package/esm2022/components/tab-bar/index.mjs +0 -5
- package/esm2022/components/tab-bar/lib/components/index.mjs +0 -2
- package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +0 -98
- package/esm2022/components/tab-bar/lib/models/index.mjs +0 -2
- package/esm2022/components/tab-bar/lib/models/tab-change-event.mjs +0 -2
- package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +0 -145
- package/esm2022/components/tab-bar/lib/tab-bar.config.mjs +0 -3
- package/esm2022/components/tab-bar/lib/tab-bar.module.mjs +0 -19
- package/esm2022/components/tab-bar/odx-angular-components-tab-bar.mjs +0 -5
- package/esm2022/components/table/index.mjs +0 -6
- package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +0 -52
- package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +0 -127
- package/esm2022/components/table/lib/components/index.mjs +0 -3
- package/esm2022/components/table/lib/directives/index.mjs +0 -3
- package/esm2022/components/table/lib/directives/table-cell.directive.mjs +0 -31
- package/esm2022/components/table/lib/directives/table-row.directive.mjs +0 -32
- package/esm2022/components/table/lib/models/header-cell.mjs +0 -2
- package/esm2022/components/table/lib/models/index.mjs +0 -6
- package/esm2022/components/table/lib/models/sort-status.mjs +0 -2
- package/esm2022/components/table/lib/models/sort-variant.mjs +0 -16
- package/esm2022/components/table/lib/models/table-body-cell.mjs +0 -2
- package/esm2022/components/table/lib/models/table-variant.mjs +0 -5
- package/esm2022/components/table/lib/table.component.mjs +0 -119
- package/esm2022/components/table/lib/table.config.mjs +0 -3
- package/esm2022/components/table/lib/table.module.mjs +0 -21
- package/esm2022/components/table/odx-angular-components-table.mjs +0 -5
- package/esm2022/components/timepicker/index.mjs +0 -8
- package/esm2022/components/timepicker/lib/components/timepicker-option.component.mjs +0 -86
- package/esm2022/components/timepicker/lib/directives/timepicker-input-control.directive.mjs +0 -87
- package/esm2022/components/timepicker/lib/timepicker.component.mjs +0 -270
- package/esm2022/components/timepicker/lib/timepicker.module.mjs +0 -20
- package/esm2022/components/timepicker/lib/timepicker.service.mjs +0 -134
- package/esm2022/components/timepicker/lib/timepicker.token.mjs +0 -9
- package/esm2022/components/timepicker/lib/utils/generate-time-stamps.mjs +0 -54
- package/esm2022/components/timepicker/lib/utils/index.mjs +0 -3
- package/esm2022/components/timepicker/lib/utils/ngx-mask-helper.mjs +0 -34
- package/esm2022/components/timepicker/odx-angular-components-timepicker.mjs +0 -5
- package/esm2022/components/toast/index.mjs +0 -6
- package/esm2022/components/toast/lib/components/index.mjs +0 -3
- package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +0 -111
- package/esm2022/components/toast/lib/components/toast-item/toast-item.component.mjs +0 -99
- package/esm2022/components/toast/lib/models/index.mjs +0 -6
- package/esm2022/components/toast/lib/models/toast-action.mjs +0 -2
- package/esm2022/components/toast/lib/models/toast-ref.mjs +0 -2
- package/esm2022/components/toast/lib/models/toast-variant.mjs +0 -9
- package/esm2022/components/toast/lib/models/toast.mjs +0 -2
- package/esm2022/components/toast/lib/models/toast.options.mjs +0 -2
- package/esm2022/components/toast/lib/toast.config.mjs +0 -32
- package/esm2022/components/toast/lib/toast.module.mjs +0 -18
- package/esm2022/components/toast/lib/toast.service.mjs +0 -115
- package/esm2022/components/toast/odx-angular-components-toast.mjs +0 -5
- package/esm2022/components/toggle-button-group/index.mjs +0 -4
- package/esm2022/components/toggle-button-group/lib/components/index.mjs +0 -2
- package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +0 -46
- package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +0 -74
- package/esm2022/components/toggle-button-group/lib/toggle-button-group.module.mjs +0 -19
- package/esm2022/components/toggle-button-group/odx-angular-components-toggle-button-group.mjs +0 -5
- package/esm2022/components/tooltip/index.mjs +0 -8
- package/esm2022/components/tooltip/lib/directives/index.mjs +0 -3
- package/esm2022/components/tooltip/lib/directives/tooltip-disabled-focusable.directive.mjs +0 -47
- package/esm2022/components/tooltip/lib/helpers/index.mjs +0 -2
- package/esm2022/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.mjs +0 -16
- package/esm2022/components/tooltip/lib/models/index.mjs +0 -4
- package/esm2022/components/tooltip/lib/models/tooltip-options.mjs +0 -10
- package/esm2022/components/tooltip/lib/models/tooltip-size.mjs +0 -7
- package/esm2022/components/tooltip/lib/models/tooltip-trigger.mjs +0 -2
- package/esm2022/components/tooltip/lib/tooltip.component.mjs +0 -62
- package/esm2022/components/tooltip/lib/tooltip.config.mjs +0 -32
- package/esm2022/components/tooltip/lib/tooltip.directive.mjs +0 -189
- package/esm2022/components/tooltip/odx-angular-components-tooltip.mjs +0 -5
- package/esm2022/components/wizard/index.mjs +0 -4
- package/esm2022/components/wizard/lib/components/index.mjs +0 -2
- package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +0 -124
- package/esm2022/components/wizard/lib/wizard.component.mjs +0 -224
- package/esm2022/components/wizard/lib/wizard.module.mjs +0 -19
- package/esm2022/components/wizard/odx-angular-components-wizard.mjs +0 -5
- package/esm2022/index.mjs +0 -7
- package/esm2022/internal/index.mjs +0 -4
- package/esm2022/internal/lib/decorators/css-component.mjs +0 -19
- package/esm2022/internal/lib/decorators/css-modifier.mjs +0 -49
- package/esm2022/internal/lib/decorators/index.mjs +0 -3
- package/esm2022/internal/lib/helpers/camel-to-kebab-case.mjs +0 -12
- package/esm2022/internal/lib/helpers/decorator-property-name.mjs +0 -12
- package/esm2022/internal/lib/helpers/deepmerge.mjs +0 -6
- package/esm2022/internal/lib/helpers/fast-equals.mjs +0 -3
- package/esm2022/internal/lib/helpers/get-css-variables.mjs +0 -22
- package/esm2022/internal/lib/helpers/get-enum-values.mjs +0 -6
- package/esm2022/internal/lib/helpers/index.mjs +0 -8
- package/esm2022/internal/lib/helpers/toggle-form-disabled-state.mjs +0 -6
- package/esm2022/internal/lib/logger.mjs +0 -42
- package/esm2022/internal/odx-angular-internal.mjs +0 -5
- package/esm2022/internal/translate/index.mjs +0 -5
- package/esm2022/internal/translate/lib/models/index.mjs +0 -2
- package/esm2022/internal/translate/lib/models/translation-object.mjs +0 -2
- package/esm2022/internal/translate/lib/pipes/index.mjs +0 -2
- package/esm2022/internal/translate/lib/pipes/translate.pipe.mjs +0 -22
- package/esm2022/internal/translate/lib/translate.config.mjs +0 -39
- package/esm2022/internal/translate/lib/translate.service.mjs +0 -56
- package/esm2022/internal/translate/odx-angular-internal-translate.mjs +0 -5
- package/esm2022/lib/controllers/controller.mjs +0 -64
- package/esm2022/lib/controllers/disabled.controller.mjs +0 -134
- package/esm2022/lib/controllers/index.mjs +0 -4
- package/esm2022/lib/controllers/readonly.controller.mjs +0 -135
- package/esm2022/lib/core.module.mjs +0 -19
- package/esm2022/lib/directives/click-outside.directive.mjs +0 -102
- package/esm2022/lib/directives/delegate-focus.directive.mjs +0 -54
- package/esm2022/lib/directives/index.mjs +0 -5
- package/esm2022/lib/directives/with-disabled-state.directive.mjs +0 -41
- package/esm2022/lib/directives/with-tabindex.directive.mjs +0 -24
- package/esm2022/lib/models/environment.mjs +0 -6
- package/esm2022/lib/models/index.mjs +0 -2
- package/esm2022/lib/services/index.mjs +0 -2
- package/esm2022/lib/services/window-ref.mjs +0 -157
- package/esm2022/lib/tokens/identity-matcher.mjs +0 -31
- package/esm2022/lib/tokens/index.mjs +0 -4
- package/esm2022/lib/tokens/string-search-handler.mjs +0 -33
- package/esm2022/lib/tokens/stringify.mjs +0 -33
- package/esm2022/localization/index.mjs +0 -6
- package/esm2022/localization/lib/features/index.mjs +0 -3
- package/esm2022/localization/lib/features/with-http-language-header.mjs +0 -76
- package/esm2022/localization/lib/features/with-http-language-query-param.mjs +0 -74
- package/esm2022/localization/lib/loaders/browser-language-loader.mjs +0 -38
- package/esm2022/localization/lib/loaders/index.mjs +0 -2
- package/esm2022/localization/lib/localization.config.mjs +0 -90
- package/esm2022/localization/lib/localization.logger.mjs +0 -3
- package/esm2022/localization/lib/localization.service.mjs +0 -101
- package/esm2022/localization/lib/models/index.mjs +0 -3
- package/esm2022/localization/lib/models/language-loader-fn.mjs +0 -2
- package/esm2022/localization/lib/models/localization-feature.mjs +0 -11
- package/esm2022/localization/odx-angular-localization.mjs +0 -5
- package/esm2022/odx-angular.mjs +0 -5
- package/esm2022/rxjs/index.mjs +0 -6
- package/esm2022/rxjs/lib/delay-until.mjs +0 -27
- package/esm2022/rxjs/lib/from-element-mutation.mjs +0 -31
- package/esm2022/rxjs/lib/from-element-resize.mjs +0 -38
- package/esm2022/rxjs/lib/from-events.mjs +0 -29
- package/esm2022/rxjs/lib/from-query-list.mjs +0 -24
- package/esm2022/rxjs/odx-angular-rxjs.mjs +0 -5
- package/esm2022/sdk/index.mjs +0 -2
- package/esm2022/sdk/lib/application-environment.mjs +0 -85
- package/esm2022/sdk/odx-angular-sdk.mjs +0 -5
- package/esm2022/theming/index.mjs +0 -5
- package/esm2022/theming/lib/helpers/index.mjs +0 -4
- package/esm2022/theming/lib/helpers/prefers-dark-theme.mjs +0 -22
- package/esm2022/theming/lib/helpers/resolve-theme.mjs +0 -30
- package/esm2022/theming/lib/helpers/theme-storage.mjs +0 -61
- package/esm2022/theming/lib/models/index.mjs +0 -2
- package/esm2022/theming/lib/models/theme.mjs +0 -6
- package/esm2022/theming/lib/theming.config.mjs +0 -54
- package/esm2022/theming/lib/theming.service.mjs +0 -90
- package/esm2022/theming/odx-angular-theming.mjs +0 -5
- package/esm2022/utils/index.mjs +0 -4
- package/esm2022/utils/lib/decorators/index.mjs +0 -2
- package/esm2022/utils/lib/decorators/pure.mjs +0 -88
- package/esm2022/utils/lib/helpers/angular.mjs +0 -74
- package/esm2022/utils/lib/helpers/animations-handler.mjs +0 -20
- package/esm2022/utils/lib/helpers/array.mjs +0 -51
- package/esm2022/utils/lib/helpers/build-url.mjs +0 -24
- package/esm2022/utils/lib/helpers/build-website-url.mjs +0 -30
- package/esm2022/utils/lib/helpers/cache-storage-client.mjs +0 -104
- package/esm2022/utils/lib/helpers/coercion.mjs +0 -23
- package/esm2022/utils/lib/helpers/debounce.mjs +0 -48
- package/esm2022/utils/lib/helpers/defer-fn.mjs +0 -24
- package/esm2022/utils/lib/helpers/dom.mjs +0 -135
- package/esm2022/utils/lib/helpers/event-manager.mjs +0 -49
- package/esm2022/utils/lib/helpers/get-axis.mjs +0 -34
- package/esm2022/utils/lib/helpers/get-language-code.mjs +0 -22
- package/esm2022/utils/lib/helpers/get-opposite-side.mjs +0 -36
- package/esm2022/utils/lib/helpers/get-side.mjs +0 -21
- package/esm2022/utils/lib/helpers/get-unique-id.mjs +0 -42
- package/esm2022/utils/lib/helpers/index.mjs +0 -24
- package/esm2022/utils/lib/helpers/match-url.mjs +0 -48
- package/esm2022/utils/lib/helpers/ng-changes.mjs +0 -43
- package/esm2022/utils/lib/helpers/provide-config.mjs +0 -93
- package/esm2022/utils/lib/helpers/queue.mjs +0 -185
- package/esm2022/utils/lib/helpers/sorter.mjs +0 -91
- package/esm2022/utils/lib/helpers/type-guards.mjs +0 -86
- package/esm2022/utils/lib/helpers/until-destroyed.mjs +0 -45
- package/esm2022/utils/lib/types/axis.mjs +0 -5
- package/esm2022/utils/lib/types/get-properties.mjs +0 -2
- package/esm2022/utils/lib/types/index.mjs +0 -5
- package/esm2022/utils/lib/types/position.mjs +0 -15
- package/esm2022/utils/lib/types/side.mjs +0 -7
- package/esm2022/utils/odx-angular-utils.mjs +0 -5
- package/internal/lib/decorators/css-component.d.ts +0 -8
- package/internal/lib/decorators/css-modifier.d.ts +0 -9
- package/internal/lib/decorators/index.d.ts +0 -2
- package/internal/lib/helpers/camel-to-kebab-case.d.ts +0 -2
- package/internal/lib/helpers/decorator-property-name.d.ts +0 -9
- package/internal/lib/helpers/deepmerge.d.ts +0 -11
- package/internal/lib/helpers/fast-equals.d.ts +0 -1
- package/internal/lib/helpers/get-css-variables.d.ts +0 -7
- package/internal/lib/helpers/get-enum-values.d.ts +0 -4
- package/internal/lib/helpers/index.d.ts +0 -7
- package/internal/lib/helpers/toggle-form-disabled-state.d.ts +0 -3
- package/internal/lib/logger.d.ts +0 -15
- package/internal/translate/lib/models/index.d.ts +0 -1
- package/internal/translate/lib/models/translation-object.d.ts +0 -1
- package/internal/translate/lib/pipes/index.d.ts +0 -1
- package/internal/translate/lib/pipes/translate.pipe.d.ts +0 -9
- package/internal/translate/lib/translate.config.d.ts +0 -37
- package/internal/translate/lib/translate.service.d.ts +0 -38
- package/lib/controllers/controller.d.ts +0 -39
- package/lib/controllers/disabled.controller.d.ts +0 -85
- package/lib/controllers/index.d.ts +0 -3
- package/lib/controllers/readonly.controller.d.ts +0 -78
- package/lib/core.module.d.ts +0 -10
- package/lib/directives/click-outside.directive.d.ts +0 -50
- package/lib/directives/delegate-focus.directive.d.ts +0 -25
- package/lib/directives/index.d.ts +0 -4
- package/lib/directives/with-disabled-state.directive.d.ts +0 -13
- package/lib/directives/with-tabindex.directive.d.ts +0 -10
- package/lib/models/environment.d.ts +0 -6
- package/lib/models/index.d.ts +0 -1
- package/lib/services/index.d.ts +0 -1
- package/lib/services/window-ref.d.ts +0 -105
- package/lib/tokens/identity-matcher.d.ts +0 -44
- package/lib/tokens/index.d.ts +0 -3
- package/lib/tokens/string-search-handler.d.ts +0 -42
- package/lib/tokens/stringify.d.ts +0 -45
- package/localization/lib/features/index.d.ts +0 -2
- package/localization/lib/features/with-http-language-header.d.ts +0 -72
- package/localization/lib/features/with-http-language-query-param.d.ts +0 -70
- package/localization/lib/loaders/browser-language-loader.d.ts +0 -34
- package/localization/lib/loaders/index.d.ts +0 -1
- package/localization/lib/localization.config.d.ts +0 -90
- package/localization/lib/localization.logger.d.ts +0 -3
- package/localization/lib/localization.service.d.ts +0 -56
- package/localization/lib/models/index.d.ts +0 -2
- package/localization/lib/models/language-loader-fn.d.ts +0 -2
- package/localization/lib/models/localization-feature.d.ts +0 -12
- package/rxjs/lib/delay-until.d.ts +0 -24
- package/rxjs/lib/from-element-mutation.d.ts +0 -23
- package/rxjs/lib/from-element-resize.d.ts +0 -26
- package/rxjs/lib/from-events.d.ts +0 -27
- package/rxjs/lib/from-query-list.d.ts +0 -22
- package/sdk/lib/application-environment.d.ts +0 -68
- package/theming/lib/helpers/index.d.ts +0 -3
- package/theming/lib/helpers/prefers-dark-theme.d.ts +0 -19
- package/theming/lib/helpers/resolve-theme.d.ts +0 -27
- package/theming/lib/helpers/theme-storage.d.ts +0 -46
- package/theming/lib/models/index.d.ts +0 -1
- package/theming/lib/models/theme.d.ts +0 -6
- package/theming/lib/theming.config.d.ts +0 -56
- package/theming/lib/theming.service.d.ts +0 -52
- package/utils/lib/decorators/index.d.ts +0 -1
- package/utils/lib/decorators/pure.d.ts +0 -52
- package/utils/lib/helpers/angular.d.ts +0 -47
- package/utils/lib/helpers/animations-handler.d.ts +0 -14
- package/utils/lib/helpers/array.d.ts +0 -30
- package/utils/lib/helpers/build-url.d.ts +0 -21
- package/utils/lib/helpers/build-website-url.d.ts +0 -26
- package/utils/lib/helpers/cache-storage-client.d.ts +0 -65
- package/utils/lib/helpers/coercion.d.ts +0 -19
- package/utils/lib/helpers/debounce.d.ts +0 -28
- package/utils/lib/helpers/defer-fn.d.ts +0 -21
- package/utils/lib/helpers/dom.d.ts +0 -82
- package/utils/lib/helpers/event-manager.d.ts +0 -14
- package/utils/lib/helpers/get-axis.d.ts +0 -22
- package/utils/lib/helpers/get-language-code.d.ts +0 -18
- package/utils/lib/helpers/get-opposite-side.d.ts +0 -23
- package/utils/lib/helpers/get-side.d.ts +0 -19
- package/utils/lib/helpers/get-unique-id.d.ts +0 -35
- package/utils/lib/helpers/index.d.ts +0 -23
- package/utils/lib/helpers/match-url.d.ts +0 -42
- package/utils/lib/helpers/ng-changes.d.ts +0 -62
- package/utils/lib/helpers/provide-config.d.ts +0 -69
- package/utils/lib/helpers/queue.d.ts +0 -123
- package/utils/lib/helpers/sorter.d.ts +0 -51
- package/utils/lib/helpers/type-guards.d.ts +0 -67
- package/utils/lib/helpers/until-destroyed.d.ts +0 -40
- package/utils/lib/types/axis.d.ts +0 -5
- package/utils/lib/types/get-properties.d.ts +0 -5
- package/utils/lib/types/index.d.ts +0 -4
- package/utils/lib/types/position.d.ts +0 -15
- package/utils/lib/types/side.d.ts +0 -7
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Injectable, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { inject, DOCUMENT, Injectable, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER } from '@angular/core';
|
|
3
3
|
import { createConfigTokens } from '@odx/angular/utils';
|
|
4
|
-
import { DOCUMENT } from '@angular/common';
|
|
5
4
|
import { WindowRef } from '@odx/angular';
|
|
6
5
|
import { BehaviorSubject, distinctUntilChanged, shareReplay } from 'rxjs';
|
|
7
6
|
|
|
@@ -196,10 +195,10 @@ class ThemingService {
|
|
|
196
195
|
}
|
|
197
196
|
return selectedTheme ?? this.config.defaultTheme;
|
|
198
197
|
}
|
|
199
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
200
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
198
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThemingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
199
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThemingService, providedIn: 'root' }); }
|
|
201
200
|
}
|
|
202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThemingService, decorators: [{
|
|
203
202
|
type: Injectable,
|
|
204
203
|
args: [{ providedIn: 'root' }]
|
|
205
204
|
}], ctorParameters: () => [] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-theming.mjs","sources":["../../../../libs/angular/theming/src/lib/helpers/prefers-dark-theme.ts","../../../../libs/angular/theming/src/lib/models/theme.ts","../../../../libs/angular/theming/src/lib/helpers/resolve-theme.ts","../../../../libs/angular/theming/src/lib/helpers/theme-storage.ts","../../../../libs/angular/theming/src/lib/theming.service.ts","../../../../libs/angular/theming/src/lib/theming.config.ts","../../../../libs/angular/theming/src/odx-angular-theming.ts"],"sourcesContent":["/**\n * Determines whether the user's system preferences indicate a preference for dark themes.\n * This is achieved by querying the '(prefers-color-scheme: dark)' media feature, which reflects\n * the user's preference for a light or dark color scheme in their operating system's UI.\n *\n * @param {Window} view - The window object, typically `window`, from which to access the matchMedia method.\n * @returns {boolean} `true` if the user prefers a dark theme, otherwise `false`.\n *\n * @example\n * Example usage in a web application to toggle themes:\n * ```ts\n * if (prefersDarkTheme(window)) {\n * document.body.classList.add('dark-theme');\n * } else {\n * document.body.classList.remove('dark-theme');\n * }\n * ```\n */\nexport function prefersDarkTheme(view: Window): boolean {\n return !!view.matchMedia?.('(prefers-color-scheme: dark)')?.matches;\n}\n","export type Theme = (typeof Theme)[keyof typeof Theme];\nexport const Theme = {\n DARK: 'dark',\n LIGHT: 'light',\n} as const;\n\nexport const availableThemes = Object.values(Theme);\n","import { availableThemes, Theme } from '../models';\n\n/**\n * Resolves the specified theme by checking if it exists in the predefined list of available themes.\n * This function ensures that only valid themes are used in the application, providing a safeguard\n * against invalid theme names and facilitating the dynamic application of themes.\n *\n * @param {string | null} [theme] - The name of the theme to resolve. It's optional and can be `null`.\n * @returns {Theme | null} - Returns the resolved `Theme` object if the theme is found within the list of `availableThemes`;\n * otherwise, returns `null` to indicate the theme is not recognized or available.\n *\n * @example\n * ```ts\n * // Assuming 'dark' and 'light' are in the availableThemes array\n * console.log(resolveTheme('dark')); // Outputs the 'dark' Theme object\n * console.log(resolveTheme('unknown')); // Outputs null\n *\n * // Using resolveTheme to apply a user-selected theme\n * const userSelectedTheme = getUserSelectedTheme(); // This function gets the user's theme choice\n * const themeToApply = resolveTheme(userSelectedTheme);\n * if (themeToApply) {\n * applyTheme(themeToApply); // This function applies the resolved theme to the application\n * } else {\n * console.warn('Selected theme is not available.');\n * }\n * ```\n */\nexport function resolveTheme(theme?: string | null): Theme | null {\n return availableThemes.find((t) => t === theme) ?? null;\n}\n","import { Theme } from '../models';\nimport { resolveTheme } from './resolve-theme';\n\n/**\n * The key used to store the selected theme in `Storage`.\n * This constant ensures consistent access to the theme setting across the application.\n */\nexport const THEME_STORAGE_NAME = '@odx/angular/theming:SelectedTheme';\n\n/**\n * Saves the specified theme to storage. This function abstracts the storage interaction,\n * providing a fail-safe mechanism to avoid exceptions if the storage is not available.\n *\n * @param {Storage | null | undefined} storage - The storage mechanism to use, typically `localStorage` or `sessionStorage`.\n * @param {Theme} theme - The theme to save. Should be a value that is recognized by the application's theming system.\n * @throws Will silently catch and ignore any exceptions caused by storage limitations or permissions.\n *\n * @example\n * ```ts\n * // Example usage with localStorage\n * saveTheme(localStorage, 'dark');\n *\n * // Using sessionStorage instead\n * saveTheme(sessionStorage, 'light');\n * ```\n */\nexport function saveTheme(storage: Storage | null | undefined, theme: Theme): void {\n try {\n storage?.setItem(THEME_STORAGE_NAME, theme);\n } catch {\n //\n }\n}\n\n/**\n * Reads the theme from storage, attempting to resolve it to a valid application theme.\n * If the theme cannot be found or is invalid, `null` is returned. This function also provides\n * error handling for any storage access issues, ensuring the application can gracefully handle\n * scenarios where storage is not available or accessible.\n *\n * @param {Storage | null} [storage] - The storage mechanism to use, typically `localStorage` or `sessionStorage`.\n * @returns {Theme | null} - The resolved theme if found and valid; otherwise, `null`.\n * @throws Will silently catch and ignore any exceptions caused by storage access, returning `null`.\n *\n * @example\n * ```ts\n * // Reading theme from localStorage\n * const theme = readTheme(localStorage);\n * if (theme) {\n * applyTheme(theme); // Assuming applyTheme is a function to apply the theme\n * } else {\n * console.warn('No saved theme found or theme is invalid.');\n * }\n * ```\n */\nexport function readTheme(storage?: Storage | null): Theme | null {\n try {\n return resolveTheme(storage?.getItem(THEME_STORAGE_NAME)) ?? null;\n } catch {\n return null;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { BehaviorSubject, distinctUntilChanged, shareReplay } from 'rxjs';\nimport { prefersDarkTheme, readTheme, saveTheme } from './helpers';\nimport { Theme } from './models';\nimport { injectThemingConfig } from './theming.config';\n\nexport const THEME_ATTRIBUTE_NAME = 'odxTheme';\n\n/**\n * Manages theming for the application. It allows for dynamic theme selection, automatically saves theme preferences,\n * and applies the user's preferred theme or the default theme based on configuration settings.\n *\n * The service leverages the BehaviorSubject pattern to reactively handle theme changes across the application,\n * ensuring that subscribers are notified whenever the theme changes. It also interacts with the DOM directly\n * to apply the current theme and with the provided storage mechanism to persist theme preferences.\n */\n@Injectable({ providedIn: 'root' })\nexport class ThemingService {\n private readonly config = injectThemingConfig();\n private readonly document = inject(DOCUMENT);\n private readonly windowRef = inject(WindowRef);\n private readonly theme$$ = new BehaviorSubject<Theme>(this.getInitialTheme());\n\n /**\n * An observable stream of the current theme, emitting values whenever the theme changes.\n * Subscribers to this observable can react to theme changes in real-time.\n *\n * @emits {Theme} The currently selected theme.\n */\n public readonly theme$ = this.theme$$.pipe(distinctUntilChanged(), shareReplay({ bufferSize: 1, refCount: true }));\n\n constructor() {\n this.theme$.subscribe((theme) => {\n this.document.body.setAttribute(THEME_ATTRIBUTE_NAME, theme);\n saveTheme(this.config.storage, theme);\n });\n }\n\n /**\n * Selects and applies a given theme by updating the BehaviorSubject and persisting the preference.\n *\n * @param {Theme} theme - The theme to apply.\n */\n public selectTheme(theme: Theme): void {\n this.theme$$.next(theme);\n }\n\n /**\n * Retrieves the currently selected theme.\n *\n * @returns {Theme} The currently selected theme.\n */\n public getSelectedTheme(): Theme {\n return this.theme$$.getValue();\n }\n\n /**\n * Toggles between dark and light themes, depending on the current theme.\n */\n public toggleDarkMode(): void {\n const currentTheme = this.getSelectedTheme();\n if (currentTheme === Theme.DARK) {\n this.enableLightMode();\n } else {\n this.enableDarkMode();\n }\n }\n\n /**\n * Enables the dark mode theme.\n */\n public enableDarkMode(): void {\n this.selectTheme(Theme.DARK);\n }\n\n /**\n * Enables the light mode theme.\n */\n public enableLightMode(): void {\n this.selectTheme(Theme.LIGHT);\n }\n\n private getInitialTheme(): Theme {\n let selectedTheme = readTheme(this.config.storage);\n\n if (!selectedTheme && this.config.autoDetect && prefersDarkTheme(this.windowRef.nativeWindow)) {\n selectedTheme = Theme.DARK;\n }\n\n return selectedTheme ?? this.config.defaultTheme;\n }\n}\n","import { ENVIRONMENT_INITIALIZER, EnvironmentProviders, inject, makeEnvironmentProviders } from '@angular/core';\nimport { ConfigDependencies, ConfigProvider, createConfigTokens } from '@odx/angular/utils';\nimport { Theme } from './models';\nimport { ThemingService } from './theming.service';\n\n/**\n * Defines the structure for theming configuration options in the application.\n */\nexport interface ThemingConfig {\n /**\n * Determines whether the theme should be auto-detected based on system preferences.\n */\n autoDetect: boolean;\n\n /**\n * Specifies the default theme to be used if auto-detection is not enabled or fails.\n */\n defaultTheme: Theme;\n\n /**\n * The storage mechanism (like `localStorage` or `sessionStorage`) to persist theme settings,\n * or `null` to disable persistence.\n */\n storage?: Storage | null;\n}\n\n/**\n * Utility created by `createConfigTokens` for managing theming configuration tokens and functions.\n * Provides easy access to theming configuration, default values, and dependency injection utilities.\n */\nexport const { ThemingConfig, injectThemingConfig, provideThemingConfig } = createConfigTokens('Theming', '@odx/angular/theme', {\n autoDetect: false,\n defaultTheme: Theme.LIGHT,\n storage: null,\n} as ThemingConfig);\n\n/**\n * Provides the theming configuration to the application and initializes the `ThemingService`\n * based on the provided configuration. This function simplifies the setup of a dynamic theming\n * system, integrating with Angular's environment initializers to ensure proper initialization.\n *\n * @template D - The dependencies required by the theming configuration, if any.\n * @param {ConfigProvider<Partial<ThemingConfig>, D>} config - The theming configuration or a configuration factory provider.\n * @returns {EnvironmentProviders} An array of providers for setting up theming in the application.\n *\n * @example\n * ```ts\n * // Providing a simple theming configuration\n * provideTheming({\n * autoDetect: true,\n * defaultTheme: Theme.DARK,\n * storage: localStorage,\n * });\n *\n * // Providing a theming configuration with dependencies\n * provideTheming({\n * useFactory: (deps: Dependencies) => ({\n * autoDetect: deps.setting,\n * defaultTheme: Theme.DARK,\n * storage: localStorage,\n * }),\n * deps: [SomeDependency],\n * });\n * ```\n */\nexport function provideTheming<D extends ConfigDependencies = ConfigDependencies<ThemingConfig>>(\n config: ConfigProvider<Partial<ThemingConfig>, D>,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideThemingConfig(config),\n {\n provide: ENVIRONMENT_INITIALIZER,\n useFactory: () => () => inject(ThemingService),\n deps: [ThemingConfig],\n multi: true,\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-theming.mjs","sources":["../../../../libs/angular/theming/src/lib/helpers/prefers-dark-theme.ts","../../../../libs/angular/theming/src/lib/models/theme.ts","../../../../libs/angular/theming/src/lib/helpers/resolve-theme.ts","../../../../libs/angular/theming/src/lib/helpers/theme-storage.ts","../../../../libs/angular/theming/src/lib/theming.service.ts","../../../../libs/angular/theming/src/lib/theming.config.ts","../../../../libs/angular/theming/src/odx-angular-theming.ts"],"sourcesContent":["/**\n * Determines whether the user's system preferences indicate a preference for dark themes.\n * This is achieved by querying the '(prefers-color-scheme: dark)' media feature, which reflects\n * the user's preference for a light or dark color scheme in their operating system's UI.\n *\n * @param {Window} view - The window object, typically `window`, from which to access the matchMedia method.\n * @returns {boolean} `true` if the user prefers a dark theme, otherwise `false`.\n *\n * @example\n * Example usage in a web application to toggle themes:\n * ```ts\n * if (prefersDarkTheme(window)) {\n * document.body.classList.add('dark-theme');\n * } else {\n * document.body.classList.remove('dark-theme');\n * }\n * ```\n */\nexport function prefersDarkTheme(view: Window): boolean {\n return !!view.matchMedia?.('(prefers-color-scheme: dark)')?.matches;\n}\n","export type Theme = (typeof Theme)[keyof typeof Theme];\nexport const Theme = {\n DARK: 'dark',\n LIGHT: 'light',\n} as const;\n\nexport const availableThemes = Object.values(Theme);\n","import { availableThemes, Theme } from '../models';\n\n/**\n * Resolves the specified theme by checking if it exists in the predefined list of available themes.\n * This function ensures that only valid themes are used in the application, providing a safeguard\n * against invalid theme names and facilitating the dynamic application of themes.\n *\n * @param {string | null} [theme] - The name of the theme to resolve. It's optional and can be `null`.\n * @returns {Theme | null} - Returns the resolved `Theme` object if the theme is found within the list of `availableThemes`;\n * otherwise, returns `null` to indicate the theme is not recognized or available.\n *\n * @example\n * ```ts\n * // Assuming 'dark' and 'light' are in the availableThemes array\n * console.log(resolveTheme('dark')); // Outputs the 'dark' Theme object\n * console.log(resolveTheme('unknown')); // Outputs null\n *\n * // Using resolveTheme to apply a user-selected theme\n * const userSelectedTheme = getUserSelectedTheme(); // This function gets the user's theme choice\n * const themeToApply = resolveTheme(userSelectedTheme);\n * if (themeToApply) {\n * applyTheme(themeToApply); // This function applies the resolved theme to the application\n * } else {\n * console.warn('Selected theme is not available.');\n * }\n * ```\n */\nexport function resolveTheme(theme?: string | null): Theme | null {\n return availableThemes.find((t) => t === theme) ?? null;\n}\n","import { Theme } from '../models';\nimport { resolveTheme } from './resolve-theme';\n\n/**\n * The key used to store the selected theme in `Storage`.\n * This constant ensures consistent access to the theme setting across the application.\n */\nexport const THEME_STORAGE_NAME = '@odx/angular/theming:SelectedTheme';\n\n/**\n * Saves the specified theme to storage. This function abstracts the storage interaction,\n * providing a fail-safe mechanism to avoid exceptions if the storage is not available.\n *\n * @param {Storage | null | undefined} storage - The storage mechanism to use, typically `localStorage` or `sessionStorage`.\n * @param {Theme} theme - The theme to save. Should be a value that is recognized by the application's theming system.\n * @throws Will silently catch and ignore any exceptions caused by storage limitations or permissions.\n *\n * @example\n * ```ts\n * // Example usage with localStorage\n * saveTheme(localStorage, 'dark');\n *\n * // Using sessionStorage instead\n * saveTheme(sessionStorage, 'light');\n * ```\n */\nexport function saveTheme(storage: Storage | null | undefined, theme: Theme): void {\n try {\n storage?.setItem(THEME_STORAGE_NAME, theme);\n } catch {\n //\n }\n}\n\n/**\n * Reads the theme from storage, attempting to resolve it to a valid application theme.\n * If the theme cannot be found or is invalid, `null` is returned. This function also provides\n * error handling for any storage access issues, ensuring the application can gracefully handle\n * scenarios where storage is not available or accessible.\n *\n * @param {Storage | null} [storage] - The storage mechanism to use, typically `localStorage` or `sessionStorage`.\n * @returns {Theme | null} - The resolved theme if found and valid; otherwise, `null`.\n * @throws Will silently catch and ignore any exceptions caused by storage access, returning `null`.\n *\n * @example\n * ```ts\n * // Reading theme from localStorage\n * const theme = readTheme(localStorage);\n * if (theme) {\n * applyTheme(theme); // Assuming applyTheme is a function to apply the theme\n * } else {\n * console.warn('No saved theme found or theme is invalid.');\n * }\n * ```\n */\nexport function readTheme(storage?: Storage | null): Theme | null {\n try {\n return resolveTheme(storage?.getItem(THEME_STORAGE_NAME)) ?? null;\n } catch {\n return null;\n }\n}\n","\nimport { inject, Injectable, DOCUMENT } from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { BehaviorSubject, distinctUntilChanged, shareReplay } from 'rxjs';\nimport { prefersDarkTheme, readTheme, saveTheme } from './helpers';\nimport { Theme } from './models';\nimport { injectThemingConfig } from './theming.config';\n\nexport const THEME_ATTRIBUTE_NAME = 'odxTheme';\n\n/**\n * Manages theming for the application. It allows for dynamic theme selection, automatically saves theme preferences,\n * and applies the user's preferred theme or the default theme based on configuration settings.\n *\n * The service leverages the BehaviorSubject pattern to reactively handle theme changes across the application,\n * ensuring that subscribers are notified whenever the theme changes. It also interacts with the DOM directly\n * to apply the current theme and with the provided storage mechanism to persist theme preferences.\n */\n@Injectable({ providedIn: 'root' })\nexport class ThemingService {\n private readonly config = injectThemingConfig();\n private readonly document = inject(DOCUMENT);\n private readonly windowRef = inject(WindowRef);\n private readonly theme$$ = new BehaviorSubject<Theme>(this.getInitialTheme());\n\n /**\n * An observable stream of the current theme, emitting values whenever the theme changes.\n * Subscribers to this observable can react to theme changes in real-time.\n *\n * @emits {Theme} The currently selected theme.\n */\n public readonly theme$ = this.theme$$.pipe(distinctUntilChanged(), shareReplay({ bufferSize: 1, refCount: true }));\n\n constructor() {\n this.theme$.subscribe((theme) => {\n this.document.body.setAttribute(THEME_ATTRIBUTE_NAME, theme);\n saveTheme(this.config.storage, theme);\n });\n }\n\n /**\n * Selects and applies a given theme by updating the BehaviorSubject and persisting the preference.\n *\n * @param {Theme} theme - The theme to apply.\n */\n public selectTheme(theme: Theme): void {\n this.theme$$.next(theme);\n }\n\n /**\n * Retrieves the currently selected theme.\n *\n * @returns {Theme} The currently selected theme.\n */\n public getSelectedTheme(): Theme {\n return this.theme$$.getValue();\n }\n\n /**\n * Toggles between dark and light themes, depending on the current theme.\n */\n public toggleDarkMode(): void {\n const currentTheme = this.getSelectedTheme();\n if (currentTheme === Theme.DARK) {\n this.enableLightMode();\n } else {\n this.enableDarkMode();\n }\n }\n\n /**\n * Enables the dark mode theme.\n */\n public enableDarkMode(): void {\n this.selectTheme(Theme.DARK);\n }\n\n /**\n * Enables the light mode theme.\n */\n public enableLightMode(): void {\n this.selectTheme(Theme.LIGHT);\n }\n\n private getInitialTheme(): Theme {\n let selectedTheme = readTheme(this.config.storage);\n\n if (!selectedTheme && this.config.autoDetect && prefersDarkTheme(this.windowRef.nativeWindow)) {\n selectedTheme = Theme.DARK;\n }\n\n return selectedTheme ?? this.config.defaultTheme;\n }\n}\n","import { ENVIRONMENT_INITIALIZER, EnvironmentProviders, inject, makeEnvironmentProviders } from '@angular/core';\nimport { ConfigDependencies, ConfigProvider, createConfigTokens } from '@odx/angular/utils';\nimport { Theme } from './models';\nimport { ThemingService } from './theming.service';\n\n/**\n * Defines the structure for theming configuration options in the application.\n */\nexport interface ThemingConfig {\n /**\n * Determines whether the theme should be auto-detected based on system preferences.\n */\n autoDetect: boolean;\n\n /**\n * Specifies the default theme to be used if auto-detection is not enabled or fails.\n */\n defaultTheme: Theme;\n\n /**\n * The storage mechanism (like `localStorage` or `sessionStorage`) to persist theme settings,\n * or `null` to disable persistence.\n */\n storage?: Storage | null;\n}\n\n/**\n * Utility created by `createConfigTokens` for managing theming configuration tokens and functions.\n * Provides easy access to theming configuration, default values, and dependency injection utilities.\n */\nexport const { ThemingConfig, injectThemingConfig, provideThemingConfig } = createConfigTokens('Theming', '@odx/angular/theme', {\n autoDetect: false,\n defaultTheme: Theme.LIGHT,\n storage: null,\n} as ThemingConfig);\n\n/**\n * Provides the theming configuration to the application and initializes the `ThemingService`\n * based on the provided configuration. This function simplifies the setup of a dynamic theming\n * system, integrating with Angular's environment initializers to ensure proper initialization.\n *\n * @template D - The dependencies required by the theming configuration, if any.\n * @param {ConfigProvider<Partial<ThemingConfig>, D>} config - The theming configuration or a configuration factory provider.\n * @returns {EnvironmentProviders} An array of providers for setting up theming in the application.\n *\n * @example\n * ```ts\n * // Providing a simple theming configuration\n * provideTheming({\n * autoDetect: true,\n * defaultTheme: Theme.DARK,\n * storage: localStorage,\n * });\n *\n * // Providing a theming configuration with dependencies\n * provideTheming({\n * useFactory: (deps: Dependencies) => ({\n * autoDetect: deps.setting,\n * defaultTheme: Theme.DARK,\n * storage: localStorage,\n * }),\n * deps: [SomeDependency],\n * });\n * ```\n */\nexport function provideTheming<D extends ConfigDependencies = ConfigDependencies<ThemingConfig>>(\n config: ConfigProvider<Partial<ThemingConfig>, D>,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideThemingConfig(config),\n {\n provide: ENVIRONMENT_INITIALIZER,\n useFactory: () => () => inject(ThemingService),\n deps: [ThemingConfig],\n multi: true,\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -404,28 +404,6 @@ function reactiveAttributeBinding(source$, ...attributes) {
|
|
|
404
404
|
function injectElement() {
|
|
405
405
|
return inject(ElementRef);
|
|
406
406
|
}
|
|
407
|
-
/**
|
|
408
|
-
* Tracking function for use with `*ngFor` that tracks items by their index.
|
|
409
|
-
* @deprecated Use hew control flow syntax `@for(item of items; track $index)` with `track $index` instead.
|
|
410
|
-
*
|
|
411
|
-
* @param {number} index The index of the item in the iterable.
|
|
412
|
-
* @returns {number} The index, used as the trackBy identity.
|
|
413
|
-
*/
|
|
414
|
-
function trackByIndex(index) {
|
|
415
|
-
return index;
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Tracking function for use with `*ngFor` that tracks items by their unique ID.
|
|
419
|
-
* @deprecated Use hew control flow syntax `@for(item of items; track item.id)` with `track item[unique-prop]` instead.
|
|
420
|
-
*
|
|
421
|
-
* @template T The type of the items in the iterable, must have an 'id' property.
|
|
422
|
-
* @param {number} _ The index of the item in the iterable, not used.
|
|
423
|
-
* @param {T} item The item in the iterable.
|
|
424
|
-
* @returns {T['id']} The item's ID, used as the trackBy identity.
|
|
425
|
-
*/
|
|
426
|
-
function trackById(_, { id }) {
|
|
427
|
-
return id;
|
|
428
|
-
}
|
|
429
407
|
|
|
430
408
|
/**
|
|
431
409
|
* Waits for all animations on the given element (and optionally its descendants) to finish.
|
|
@@ -826,10 +804,10 @@ class EventManager {
|
|
|
826
804
|
getActiveListenersNames() {
|
|
827
805
|
return Array.from(this.listeners.keys());
|
|
828
806
|
}
|
|
829
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
830
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
807
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EventManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
808
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EventManager }); }
|
|
831
809
|
}
|
|
832
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
810
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EventManager, decorators: [{
|
|
833
811
|
type: Injectable
|
|
834
812
|
}] });
|
|
835
813
|
|
|
@@ -1427,5 +1405,5 @@ function createSorter(options) {
|
|
|
1427
1405
|
* Generated bundle index. Do not edit.
|
|
1428
1406
|
*/
|
|
1429
1407
|
|
|
1430
|
-
export { Axis, CacheStorageClient, DRAEGER_WEBSITE_URL, EventManager, HTTP_CACHE_CONTROL_HEADER, HTTP_ETAG_HEADER, HTTP_IF_NONE_MATCH_HEADER, Position, Pure, Queue, Side, SortDirection, applyStyles, arrayAttribute, booleanToAttributeString, booleanToOptionalAttributeString, buildUrl, buildWebsiteUrl, clearUniqueIdCache, containsElement, createConfigTokens, createMutationObserver, createResizeObserver, createSorter, cssTranslate, debounce, deferFn, disableCSSTransitions, forceLayoutReflow, getAxis, getLanguageCode, getOppositeSide, getSide, getUniqueId, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isUrlMatcher, isViewContainer, matchUrl, orderBy, pluckFromArray, provideConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute,
|
|
1408
|
+
export { Axis, CacheStorageClient, DRAEGER_WEBSITE_URL, EventManager, HTTP_CACHE_CONTROL_HEADER, HTTP_ETAG_HEADER, HTTP_IF_NONE_MATCH_HEADER, Position, Pure, Queue, Side, SortDirection, applyStyles, arrayAttribute, booleanToAttributeString, booleanToOptionalAttributeString, buildUrl, buildWebsiteUrl, clearUniqueIdCache, containsElement, createConfigTokens, createMutationObserver, createResizeObserver, createSorter, cssTranslate, debounce, deferFn, disableCSSTransitions, forceLayoutReflow, getAxis, getLanguageCode, getOppositeSide, getSide, getUniqueId, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isUrlMatcher, isViewContainer, matchUrl, orderBy, pluckFromArray, provideConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute, untilDestroyed, waitForAnimations };
|
|
1431
1409
|
//# sourceMappingURL=odx-angular-utils.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-utils.mjs","sources":["../../../../libs/angular/utils/src/lib/decorators/pure.ts","../../../../libs/angular/utils/src/lib/helpers/type-guards.ts","../../../../libs/angular/utils/src/lib/helpers/dom.ts","../../../../libs/angular/utils/src/lib/helpers/until-destroyed.ts","../../../../libs/angular/utils/src/lib/helpers/angular.ts","../../../../libs/angular/utils/src/lib/helpers/animations-handler.ts","../../../../libs/angular/utils/src/lib/helpers/array.ts","../../../../libs/angular/utils/src/lib/helpers/build-url.ts","../../../../libs/angular/utils/src/lib/helpers/build-website-url.ts","../../../../libs/angular/utils/src/lib/helpers/cache-storage-client.ts","../../../../libs/angular/utils/src/lib/helpers/coercion.ts","../../../../libs/angular/utils/src/lib/helpers/debounce.ts","../../../../libs/angular/utils/src/lib/helpers/defer-fn.ts","../../../../libs/angular/utils/src/lib/helpers/get-unique-id.ts","../../../../libs/angular/utils/src/lib/helpers/event-manager.ts","../../../../libs/angular/utils/src/lib/types/axis.ts","../../../../libs/angular/utils/src/lib/types/position.ts","../../../../libs/angular/utils/src/lib/types/side.ts","../../../../libs/angular/utils/src/lib/helpers/get-side.ts","../../../../libs/angular/utils/src/lib/helpers/get-axis.ts","../../../../libs/angular/utils/src/lib/helpers/get-language-code.ts","../../../../libs/angular/utils/src/lib/helpers/get-opposite-side.ts","../../../../libs/angular/utils/src/lib/helpers/match-url.ts","../../../../libs/angular/utils/src/lib/helpers/ng-changes.ts","../../../../libs/angular/utils/src/lib/helpers/provide-config.ts","../../../../libs/angular/utils/src/lib/helpers/queue.ts","../../../../libs/angular/utils/src/lib/helpers/sorter.ts","../../../../libs/angular/utils/src/odx-angular-utils.ts"],"sourcesContent":["/**\n * A decorator that transforms a class method or getter into a pure function. For methods, it caches the result\n * of the first invocation with a given set of arguments and returns the cached result on subsequent invocations\n * with the same arguments. For getters, it caches the result of the first access and returns the cached value\n * on subsequent accesses.\n *\n * This decorator is intended to improve performance by avoiding unnecessary recalculations or processing\n * when the inputs have not changed.\n *\n * @template T The type of the property being decorated.\n * @param {object} _target The prototype of the class.\n * @param {string} propertyKey The name of the method or getter.\n * @param {TypedPropertyDescriptor<T>} descriptor The property descriptor for the method or getter.\n * @throws {Error} Throws an error if applied to non-function properties.\n * @returns {TypedPropertyDescriptor<T>} A new descriptor with the getter or method patched for pure behavior.\n *\n * @example\n * Usage with a getter:\n * ```ts\n * class ExampleClass {\n * private _value: number = Math.random();\n *\n * @Pure\n * get value(): number {\n * console.log('Getter called');\n * return this._value;\n * }\n * }\n *\n * const example = new ExampleClass();\n * console.log(example.value); // Logs 'Getter called' and the value\n * console.log(example.value); // Logs only the value, without calling the getter again\n * ```\n *\n * Usage with a method:\n * ```ts\n * class Counter {\n * private count = 0;\n *\n * @Pure\n * increment(step: number) {\n * console.log('Increment called');\n * return (this.count += step);\n * }\n * }\n *\n * const counter = new Counter();\n * console.log(counter.increment(1)); // Logs 'Increment called' and 1\n * console.log(counter.increment(1)); // Logs 1 without calling increment again\n * ```\n */\nexport function Pure<T>(_target: object, propertyKey: string, { get, enumerable, value }: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> {\n if (get) {\n return {\n enumerable,\n get(): T {\n const value = get.call(this);\n\n Object.defineProperty(this, propertyKey, { enumerable, value });\n\n return value;\n },\n };\n }\n\n if (typeof value !== 'function') {\n throw new Error('@Pure decorator can only be applied to functions or getters!');\n }\n\n const originalValue = value;\n\n return {\n enumerable,\n get(): T {\n let previousArgs: readonly unknown[] = [];\n let wasCalled = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure = wasCalled && previousArgs.length === args.length && args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalValue.apply(this, args);\n wasCalled = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, { value: patched });\n\n return patched as unknown as T;\n },\n };\n}\n","import { TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\n/**\n * Checks if the given value is a `ViewContainerRef`.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is ViewContainerRef} `true` if the value is a `ViewContainerRef`, otherwise `false`.\n */\nexport function isViewContainer(value: unknown): value is ViewContainerRef {\n return isFunction((value as ViewContainerRef)?.createComponent);\n}\n\n/**\n * Checks if the given value is a `TemplateRef`.\n *\n * @template T - The embedded view type.\n * @param {unknown} value - The value to check.\n * @returns {value is TemplateRef<T>} `true` if the value is a `TemplateRef`, otherwise `false`.\n */\nexport function isTemplateRef<T = unknown>(value: unknown): value is TemplateRef<T> {\n return value instanceof TemplateRef;\n}\n\n/**\n * Checks if the given value is an Angular component class.\n *\n * @template T - The component class type.\n * @param {unknown} value - The value to check.\n * @returns {value is Type<T>} `true` if the value is a component class, otherwise `false`.\n */\nexport function isComponent<T = unknown>(value: unknown): value is Type<T> {\n return isFunction(value);\n}\n\n/**\n * Checks if the given value is a string.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is string} `true` if the value is a string, otherwise `false`.\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\n/**\n * Checks if the given value is a non-empty string.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is string} `true` if the value is a non-empty string, otherwise `false`.\n */\nexport function isNonEmptyString(value: unknown): value is string {\n return isString(value) && value.length > 0;\n}\n\n/**\n * Checks if the given value is a boolean.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is boolean} `true` if the value is a boolean, otherwise `false`.\n */\nexport function isBoolean(value: unknown): value is boolean {\n return value === true || value === false;\n}\n\n/**\n * Checks if the given value is a function.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is CallableFunction} `true` if the value is a function, otherwise `false`.\n */\nexport function isFunction(value: unknown): value is CallableFunction {\n return typeof value === 'function';\n}\n\n/**\n * Checks if the given value is present (not null or undefined).\n *\n * @template T - The value type.\n * @param {T | null | undefined} value - The value to check.\n * @returns {value is NonNullable<T>} `true` if the value is present, otherwise `false`.\n */\nexport function isPresent<T>(value: T | null | undefined): value is NonNullable<T> {\n return value !== null && value !== undefined;\n}\n\n/**\n * Checks if the given value is a number.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is number} `true` if the value is a number, otherwise `false`.\n */\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import { Subscriber } from 'rxjs';\nimport { isNumber, isString } from './type-guards';\n\n/**\n * Applies a set of CSS styles to an HTML element.\n *\n * @param {HTMLElement} element - The element to apply styles to.\n * @param {Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>} styles - An object containing CSS properties and values to apply.\n */\nexport function applyStyles(element: HTMLElement, styles: Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>): void {\n Object.assign(element.style, styles);\n}\n\n/**\n * Converts a boolean value to a corresponding attribute string.\n *\n * @param {boolean} state - The boolean state to convert.\n * @returns {string} 'true' if the state is true; otherwise, 'false'.\n */\nexport function booleanToAttributeString(state: boolean): string {\n return booleanToOptionalAttributeString(state) ?? 'false';\n}\n\n/**\n * Converts a boolean value to 'true' or null, useful for setting attributes based on boolean conditions.\n *\n * @param {boolean} state - The boolean state to convert.\n * @returns {string | null} 'true' if the state is true; otherwise, null.\n */\nexport function booleanToOptionalAttributeString(state: boolean): string | null {\n return state ? 'true' : null;\n}\n\n/**\n * Converts a numeric value to a pixel string, appending 'px' to the number.\n *\n * @param {unknown} value - The value to convert to pixels.\n * @returns {`${number}px`} The value in pixels, or '0px' if the input is not a number.\n */\nexport function px(value: unknown): `${number}px` {\n return isNumber(value) ? `${value}px` : '0px';\n}\n\n/**\n * Generates a CSS translate3d string for given x and y values.\n *\n * @param {string | 0} x - The translation value along the x-axis.\n * @param {string | 0} y - The translation value along the y-axis.\n * @returns {`translate3d(${string | 0}, ${string | 0}, 0)`} The CSS translate3d value.\n */\nexport function cssTranslate(x: string | 0, y: string | 0): `translate3d(${string | 0}, ${string | 0}, 0)` {\n return `translate3d(${x}, ${y}, 0)`;\n}\n\n/**\n * Disables or re-enables CSS transitions on an element.\n *\n * @param {HTMLElement} element - The element to modify.\n * @param {boolean} disabled - Whether to disable CSS transitions.\n */\nexport function disableCSSTransitions(element: HTMLElement, disabled: boolean): void {\n if (disabled) {\n applyStyles(element, { transition: 'none' });\n } else {\n forceLayoutReflow(element);\n applyStyles(element, { transition: null });\n }\n}\n\n/**\n * Forces the browser to reflow the layout, useful for triggering CSS transitions or animations.\n *\n * @param {HTMLElement} element - The element to force a reflow on.\n */\nexport function forceLayoutReflow(element: HTMLElement): number {\n return element.offsetHeight;\n}\n\n/**\n * Sets an attribute on an HTML element, converting the value to a string if necessary.\n *\n * @param {HTMLElement} element - The element to set the attribute on.\n * @param {string} attribute - The name of the attribute to set.\n * @param {unknown} value - The value of the attribute; will be converted to a string if it's not null or undefined.\n */\nexport function setAttribute(element: HTMLElement, attribute: string, value?: unknown) {\n if (isString(value) || isNumber(value)) {\n element.setAttribute(attribute, value.toString());\n } else {\n element.toggleAttribute(attribute, !!value);\n }\n}\n\n/**\n * Creates a ResizeObserver instance safely, falling back to a dummy if the API is not supported.\n *\n * @param {ResizeObserverCallback} callback - The callback to execute when an observed element's size changes.\n * @returns {ResizeObserver} A ResizeObserver instance or a dummy object with no-op methods if unsupported.\n */\nexport function createResizeObserver(callback: ResizeObserverCallback): ResizeObserver {\n try {\n return new ResizeObserver(callback);\n } catch {\n return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };\n }\n}\n\n/**\n * Creates a MutationObserver instance safely, falling back to a dummy if the API is not supported.\n *\n * @param {Subscriber<MutationRecord>} observer - The RxJS Subscriber to emit next values to.\n * @param {(mutations: MutationRecord[]) => boolean} callback - The callback that determines whether to notify the observer based on mutations.\n * @returns {MutationObserver} A MutationObserver instance or a dummy object with no-op methods if unsupported.\n */\nexport function createMutationObserver(observer: Subscriber<MutationRecord>, callback: (mutations: MutationRecord[]) => boolean): MutationObserver {\n try {\n return new MutationObserver((mutations) => {\n if (callback(mutations)) {\n observer.next(mutations[0]);\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n return { disconnect: () => void 0, observe: () => void 0, takeRecords: () => [] };\n }\n}\n\n/**\n * Checks whether one element contains another in the DOM tree.\n *\n * @param {Element | null} parent - The parent element.\n * @param {Element | null} other - The element to check for containment.\n * @param {boolean} [inclusive=true] - Whether to consider an element as containing itself.\n * @returns {boolean} True if the parent contains the other element; false otherwise.\n */\nexport function containsElement(parent?: Element | null, other?: Element | null, inclusive = true): boolean {\n if (!parent || !other) return false;\n if (!inclusive && parent === other) return false;\n return parent.contains(other);\n}\n","import { DestroyRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MonoTypeOperatorFunction } from 'rxjs';\n\n/**\n * Creates a MonoTypeOperatorFunction that automatically unsubscribes from observables when the host component or service is destroyed.\n * It uses Angular's `DestroyRef` to detect when the component or service is destroyed and triggers the unsubscription at that point.\n * This utility function helps in managing subscriptions and prevents memory leaks by ensuring observables are unsubscribed when no longer needed.\n *\n * @returns A function that returns a `MonoTypeOperatorFunction<T>`, which can be used in an RxJS pipe to automatically unsubscribe\n * based on the component's or service's lifecycle.\n *\n * @example\n * ```ts\n * // In an Angular component or service\n * import { Component } from '@angular/core';\n * import { Observable } from 'rxjs';\n * import { untilDestroyed } from './path/to/untilDestroyed';\n *\n * @Component({\n * selector: 'app-example',\n * template: `<div>Example Component</div>`,\n * })\n * export class ExampleComponent {\n * private readonly takeUntilDestroyed = untilDestroyed();\n *\n * constructor() {\n * const exampleObservable$ = new Observable(observer => {\n * // Observable logic here\n * });\n *\n * exampleObservable$.pipe(\n * this.takeUntilDestroyed(),\n * ).subscribe(data => {\n * // Subscription logic here\n * });\n * }\n *\n * // No need to manually implement ngOnDestroy to unsubscribe\n * }\n * ```\n */\nexport function untilDestroyed(): <T>() => MonoTypeOperatorFunction<T> {\n const destroyRef = inject(DestroyRef);\n\n return () => takeUntilDestroyed(destroyRef);\n}\n","import { ElementRef, inject } from '@angular/core';\nimport { MonoTypeOperatorFunction, Observable, tap } from 'rxjs';\nimport { setAttribute } from './dom';\nimport { untilDestroyed } from './until-destroyed';\n\nfunction reactiveBinding<T>(updateFn: (state: unknown) => void): MonoTypeOperatorFunction<T> {\n const takeUntilDestroyed = untilDestroyed();\n\n return (source$: Observable<T>) =>\n source$.pipe(\n tap((state) => updateFn(state)),\n takeUntilDestroyed(),\n );\n}\n\n/**\n * Binds an observable to toggle a CSS class on the host element based on the truthiness of the emitted values.\n * The subscription automatically ends when the component is destroyed.\n *\n * @template T The type of items emitted by the source observable.\n * @param {Observable<T> | null | undefined} source$ The observable source emitting truthy or falsy values.\n * @param {string} cssClass The CSS class to toggle based on the emitted values.\n */\nexport function reactiveClassBinding<T>(source$: Observable<T> | null | undefined, cssClass: string): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$.pipe(reactiveBinding((state) => nativeElement.classList.toggle(cssClass, !!state))).subscribe();\n }\n}\n\n/**\n * Binds an observable to update attributes on the host element with the emitted values.\n * The subscription automatically ends when the component is destroyed.\n *\n * @template T The type of items emitted by the source observable.\n * @param {Observable<T> | null | undefined} source$ The observable source.\n * @param {...string[]} attributes The attributes to set on the host element based on the emitted values.\n */\nexport function reactiveAttributeBinding<T>(source$: Observable<T> | null | undefined, ...attributes: string[]): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$\n .pipe(\n reactiveBinding((value) => {\n for (const attribute of attributes) {\n setAttribute(nativeElement, attribute, value);\n }\n }),\n )\n .subscribe();\n }\n}\n\n/**\n * Injects the ElementRef of the host element in an Angular component or directive.\n *\n * @template T The expected type of the native element.\n * @returns {ElementRef<T>} The injected ElementRef instance.\n */\nexport function injectElement<T = HTMLElement>(): ElementRef<T> {\n return inject<ElementRef<T>>(ElementRef);\n}\n\n/**\n * Tracking function for use with `*ngFor` that tracks items by their index.\n * @deprecated Use hew control flow syntax `@for(item of items; track $index)` with `track $index` instead.\n *\n * @param {number} index The index of the item in the iterable.\n * @returns {number} The index, used as the trackBy identity.\n */\nexport function trackByIndex(index: number): number {\n return index;\n}\n\n/**\n * Tracking function for use with `*ngFor` that tracks items by their unique ID.\n * @deprecated Use hew control flow syntax `@for(item of items; track item.id)` with `track item[unique-prop]` instead.\n *\n * @template T The type of the items in the iterable, must have an 'id' property.\n * @param {number} _ The index of the item in the iterable, not used.\n * @param {T} item The item in the iterable.\n * @returns {T['id']} The item's ID, used as the trackBy identity.\n */\nexport function trackById<T extends { id: string | number | symbol }>(_: number, { id }: T): T['id'] {\n return id;\n}\n","/**\n * Waits for all animations on the given element (and optionally its descendants) to finish.\n *\n * @param {Element|null} [element] - The DOM element to check for animations. If not provided or invalid, the function resolves to an empty array.\n * @param {boolean} [subtree=false] - Whether to include animations from child elements (subtree) of the given element.\n * @returns {Promise<Animation[]>} A promise that resolves with an array of finished animations or an empty array if no animations are found.\n *\n * @example\n * // Wait for animations on a specific element and its subtree to complete\n * waitForAnimations(document.querySelector('.my-element'), true).then(() => {\n * console.log('All animations are finished');\n * });\n */\nexport async function waitForAnimations(element?: Element | null, subtree = false): Promise<Animation[]> {\n if (!element || typeof element.getAnimations !== 'function') {\n return [];\n }\n\n return Promise.all(element.getAnimations({ subtree }).map((animation) => animation.finished)).catch(() => []);\n}\n","import { isNumber, isString } from './type-guards';\n\n/**\n * Extracts the values of a specified key from each object in an array.\n *\n * @template T - The type of the objects in the array.\n * @template K - The type of the keys of `T`.\n * @param {T[]} arr - The array of objects to pluck values from.\n * @param {K} key - The key whose values are to be plucked from each object in the array.\n * @returns {Array<T[K]>} An array of values corresponding to the specified key from each object.\n * @example\n * ```ts\n * const users = [{ name: 'Alice' }, { name: 'Bob' }];\n * const names = pluckFromArray(users, 'name'); // ['Alice', 'Bob']\n * ```\n */\nexport function pluckFromArray<T, K extends keyof T>(arr: T[], key: K): Array<T[K]> {\n return arr.map((value) => value[key]);\n}\n\nexport type OrderByDirection = 'ASC' | 'DESC';\n\n/**\n * Creates a compare function for sorting an array of objects based on a specified key and direction.\n *\n * @template T - The type of the objects in the array.\n * @param {keyof T} key - The key to sort by.\n * @param {OrderByDirection} [direction='ASC'] - The direction to sort ('ASC' for ascending, 'DESC' for descending).\n * @returns {(a: T, b: T) => number} A compare function that can be used in the array sort method.\n * @example\n * ```ts\n * const items = [{ value: 10 }, { value: 5 }, { value: 7 }];\n * const sortedItems = items.sort(orderBy('value', 'ASC')); // Sorted by value in ascending order\n * ```\n */\nexport function orderBy<T>(key: keyof T, direction: OrderByDirection = 'ASC'): (a: T, b: T) => number {\n return (a, b) => {\n const leftValue = direction === 'ASC' ? a[key] : b[key];\n const rightValue = direction === 'ASC' ? b[key] : a[key];\n if (leftValue === undefined) {\n return -1;\n }\n if (rightValue === undefined) {\n return -1;\n }\n if (isNumber(leftValue) && isNumber(rightValue)) {\n return leftValue - rightValue;\n }\n if (isString(leftValue) && isString(rightValue)) {\n return leftValue.toLowerCase().localeCompare(rightValue.toLowerCase());\n }\n return 0;\n };\n}\n","/**\n * Constructs a URL string from provided segments, ensuring proper slash separation without duplications.\n * It gracefully handles `null`, `undefined`, and symbol values by omitting them from the final URL.\n * Additionally, the function preserves the protocol part of the URL, if specified.\n *\n * @param {...Array<string | number | symbol | null | undefined>} args - The segments to concatenate into a URL.\n * Can be a mix of strings, numbers, symbols (converted to strings), or `null`/`undefined` (which are omitted).\n * @returns {string} The constructed URL string with correctly formatted slashes.\n *\n * @example\n * ```ts\n * // Basic usage\n * console.log(buildUrl('http://example.com', 'path', 'to', 'resource'));\n * // Outputs: \"http://example.com/path/to/resource\"\n *\n * // Removing duplicate slashes\n * console.log(buildUrl('http://example.com/', '/path/', '//to', '/resource/'));\n * // Outputs: \"http://example.com/path/to/resource/\"\n * ```\n */\nexport function buildUrl(...args: Array<string | number | symbol | null | undefined>): string {\n return args.join('/').replace(/(^.*)(https?:\\/\\/)|(\\/)+/g, '$2$3');\n}\n","import { buildUrl } from './build-url';\n\n/**\n * A constant representing the base URL for the Draeger website.\n * @constant\n * @type {string}\n * @default 'https://www.draeger.com'\n */\nexport const DRAEGER_WEBSITE_URL = 'https://www.draeger.com';\n\n/**\n * Constructs a full URL for the Draeger website by appending the provided path segments to the base URL.\n * This function is a utility for creating fully qualified URLs to various resources or pages within the Draeger website.\n *\n * @function buildWebsiteUrl\n * @param {...(string | number | symbol | null | undefined)} segments - The path segments to append to the base URL.\n * These can include strings, numbers, symbols, or null/undefined values (the latter two are ignored).\n * @returns {string} The fully constructed URL, including the base URL and all provided path segments.\n *\n * @example\n * ```ts\n * // Returns 'https://www.draeger.com/about-us'\n * const url = buildWebsiteUrl('about-us');\n *\n * // Can also handle multiple segments, returning 'https://www.draeger.com/products/search/123'\n * const productUrl = buildWebsiteUrl('products', 'search', 123);\n * ```\n */\nexport function buildWebsiteUrl(...segments: Array<string | number | symbol | null | undefined>): string {\n return buildUrl(DRAEGER_WEBSITE_URL, ...segments);\n}\n","/**\n * The HTTP 'Etag' header, used for web cache validation.\n */\nexport const HTTP_ETAG_HEADER = 'Etag';\n\n/**\n * The HTTP 'If-None-Match' header, used in conditional requests to compare against the ETag.\n */\nexport const HTTP_IF_NONE_MATCH_HEADER = 'If-None-Match';\n\n/**\n * The HTTP 'Cache-Control' header, used to specify directives for caching mechanisms in requests and responses.\n */\nexport const HTTP_CACHE_CONTROL_HEADER = 'Cache-Control';\n\n/**\n * A client for managing cache storage for web applications. It simplifies interactions with the Cache Storage API,\n * allowing for the caching, retrieval, and deletion of request responses. This class uses HTTP caching headers to\n * optimize network requests and cache management.\n *\n * @example\n * ```ts\n * // Creating an instance of CacheStorageClient\n * const cacheClient = new CacheStorageClient('my-cache');\n *\n * // Requesting and caching data\n * cacheClient.request('https://api.example.com/data').then(data => {\n * console.log(data);\n * });\n *\n * // Deleting a specific cache entry\n * cacheClient.delete('https://api.example.com/data');\n *\n * // Clearing all cache entries\n * cacheClient.deleteAll();\n * ```\n */\nexport class CacheStorageClient {\n constructor(\n private readonly cacheKey: string,\n private readonly cacheStorage = window.caches,\n ) {}\n\n /**\n * Deletes a specific cache entry.\n *\n * @param {RequestInfo | URL} request - The request or URL to delete from the cache.\n * @returns {Promise<boolean>} A promise that resolves to a boolean indicating whether the deletion was successful.\n */\n public async delete(request: RequestInfo | URL): Promise<boolean> {\n const cache = await this.getCache();\n\n return cache.delete(request);\n }\n\n /**\n * Deletes all entries from the cache.\n *\n * @returns {Promise<void>} A promise that resolves when all entries have been deleted.\n */\n public async deleteAll(): Promise<void> {\n const cache = await this.getCache();\n for (const key of await cache.keys()) {\n await cache.delete(key);\n }\n }\n\n /**\n * Performs a request, caching the response if applicable. If a response is cached for the request and still valid,\n * it returns the cached response instead of making a new network request.\n *\n * @template T - The expected response data type.\n * @param {RequestInfo | URL} requestInfo - The request information or URL to fetch and cache.\n * @param {(response: Response) => boolean} [shouldDelete=({ status }) => status >= 400 && status < 500] - An optional function to determine if the cache entry should be deleted based on the response.\n * @returns {Promise<T | null>} A promise that resolves to the response data, or null if the request fails.\n */\n public async request<T>(requestInfo: RequestInfo | URL, shouldDelete = ({ status }: Response) => status >= 400 && status < 500): Promise<T | null> {\n const cache = await this.getCache();\n const request = await this.prepareRequest(cache, requestInfo);\n const response = await this.sendRequest(cache, request);\n if (response && shouldDelete?.(response)) {\n await cache.delete(request);\n }\n return response?.json() ?? null;\n }\n\n protected async getCache(): Promise<Cache> {\n return this.cacheStorage.open(this.cacheKey);\n }\n\n protected async prepareRequest(cache: Cache, requestInfo: RequestInfo | URL): Promise<Request> {\n const cachedResponse = await cache.match(requestInfo);\n const etag = cachedResponse?.headers?.get(HTTP_ETAG_HEADER) ?? null;\n const request = new Request(requestInfo);\n if (etag) {\n request.headers.set(HTTP_IF_NONE_MATCH_HEADER, etag);\n }\n\n return request;\n }\n\n protected async sendRequest(cache: Cache, request: Request): Promise<Response | null> {\n const response = await fetch(request).catch(() => null);\n const cacheControl = response?.headers?.get(HTTP_CACHE_CONTROL_HEADER);\n if (cacheControl === 'no-cache') {\n await cache.delete(request);\n\n return response;\n }\n if (response?.ok) {\n await cache.put(request, response).catch(() => null);\n }\n\n return cache.match(request).then((res) => res ?? null);\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\n\n/**\n * Coerces a value to an array. If the value is already an array, it is returned directly.\n * If the value is not an array, it is wrapped in an array. This utility is useful for\n * handling values that can be either single values or arrays, ensuring consistent array handling.\n *\n * @param {string | string[]} value - The value to coerce to an array. Can be a single string or an array of strings.\n * @returns {string[]} The coerced value as an array of strings.\n *\n * @example\n * ```ts\n * // Coercing a single string to an array\n * console.log(arrayAttribute('singleValue')); // Outputs: ['singleValue']\n *\n * // Returning an array directly\n * console.log(arrayAttribute(['value1', 'value2'])); // Outputs: ['value1', 'value2']\n * ```\n */\nexport function arrayAttribute(value: string | string[]): string[] {\n return coerceArray<string>(value);\n}\n\nexport { coerceArray, coerceCssPixelValue, coerceElement, coerceStringArray } from '@angular/cdk/coercion';\n","/**\n * Creates a debounced function that delays invoking the provided function until after `delay` milliseconds\n * have elapsed since the last time the debounced function was invoked. Optionally, the function can be\n * triggered immediately on the first call, then debounced for subsequent calls.\n *\n * @template Args - A tuple representing the types of arguments the `func` accepts.\n * @param {(...args: Args) => void} func - The function to debounce.\n * @param {number} delay - The number of milliseconds to delay.\n * @param {boolean} [immediate=false] - Whether to trigger the function immediately on the first call,\n * and then debounce subsequent calls.\n * @returns {(...args: Args) => void} A new, debounced function.\n *\n * @example\n * ```ts\n * // Example usage with a window resize event\n * const handleResize = debounce(() => {\n * console.log('Window resized');\n * }, 250);\n * window.addEventListener('resize', handleResize);\n *\n * // Example using immediate invocation\n * const processKeyPress = debounce((event) => {\n * console.log('Key pressed:', event.key);\n * }, 200, true);\n * document.addEventListener('keypress', processKeyPress);\n * ```\n */\nexport function debounce<Args extends unknown[]>(func: (...args: Args) => void, delay: number, immediate = false): (...args: Args) => void {\n let timeout: number | null = null;\n\n return function (this: unknown, ...args: Args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n const callImmediately = immediate && timeout === null;\n if (timeout !== null) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(function () {\n timeout = null;\n if (!callImmediately) {\n func.apply(context, args);\n }\n }, delay) as unknown as number;\n if (callImmediately) {\n func.apply(context, args);\n }\n };\n}\n","/**\n * Defers the execution of a function until the current call stack is clear.\n * This is achieved by using `setTimeout` with a delay of `0`, effectively placing the function\n * at the end of the event queue and allowing the browser to complete any pending tasks before execution.\n *\n * @param {() => void} fn - The function to be deferred.\n *\n * @example\n * ```ts\n * // Deferring a simple function\n * deferFn(() => console.log('This will be logged after the current execution context completes.'));\n *\n * // Using deferFn to update the UI after a synchronous operation\n * function updateUI() {\n * // UI update logic here\n * }\n * // Assume we're inside a synchronous block of code that updates data\n * deferFn(updateUI); // Ensures UI is updated after data changes are fully applied\n * ```\n */\nexport function deferFn(fn: () => void): void {\n setTimeout(fn, 0);\n}\n","let uniqueIdCache: { [key: string]: number } = {};\n\n/**\n * Generates a unique identifier for a given key. If the key has previously been used,\n * the function increments a counter associated with that key to ensure uniqueness.\n * The generated ID is in the format of `${key}-${counter}`.\n *\n * @param {string} key - The key for which to generate a unique identifier.\n * @returns {string} A unique identifier string based on the provided key.\n *\n * @example\n * ```ts\n * const id1 = getUniqueId('component');\n * console.log(id1); // Outputs: \"component-1\"\n *\n * const id2 = getUniqueId('component');\n * console.log(id2); // Outputs: \"component-2\"\n * ```\n */\nexport function getUniqueId(key: string): string {\n uniqueIdCache[key] = (uniqueIdCache[key] ?? 0) + 1;\n\n return `${key}-${uniqueIdCache[key]}`;\n}\n\n/**\n * Clears the cache used by `getUniqueId` to generate unique identifiers. This function\n * resets all counters associated with each key, effectively restarting the generation\n * of unique IDs from their initial state.\n *\n * This can be useful in scenarios such as testing or when starting a new session that\n * requires resetting the state of unique ID generation.\n *\n * @example\n * ```ts\n * getUniqueId('component'); // Returns \"component-1\"\n * getUniqueId('component'); // Returns \"component-2\"\n * clearUniqueIdCache();\n * getUniqueId('component'); // Returns \"component-1\" after cache reset\n * ```\n */\nexport function clearUniqueIdCache(): void {\n uniqueIdCache = {};\n}\n","import { inject, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { injectElement } from './angular';\nimport { getUniqueId } from './get-unique-id';\nimport { isPresent } from './type-guards';\n\n@Injectable()\nexport class EventManager implements OnDestroy {\n private readonly element = injectElement();\n private readonly renderer = inject(Renderer2);\n private readonly listeners: Map<string, () => void> = new Map<string, () => void>();\n\n public destroyListeners(): void {\n this.listeners.forEach((listener: () => void) => {\n if (listener) {\n listener();\n }\n });\n this.listeners.clear();\n }\n\n public destroyListener(listenerReferenceKey: string): void {\n if (this.listeners.has(listenerReferenceKey)) {\n const listenerFn = this.listeners.get(listenerReferenceKey);\n if (listenerFn) {\n listenerFn();\n }\n this.listeners.delete(listenerReferenceKey);\n }\n }\n\n public register<T extends Event = Event>(\n eventNames: Array<string | null>,\n callback: (event?: T) => void,\n target?: 'document' | 'window' | EventTarget | null,\n ): Array<string> {\n return eventNames.filter(isPresent).map((eventName: string) => {\n const listenerFn = this.renderer.listen(target ?? this.element.nativeElement, eventName, (event) => callback(event));\n const id = getUniqueId('registeredEvent');\n this.listeners.set(id, listenerFn);\n return id;\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyListeners();\n }\n\n public getActiveListenersNames(): string[] {\n return Array.from(this.listeners.keys());\n }\n}\n","export type Axis = (typeof Axis)[keyof typeof Axis];\n\nexport const Axis = {\n X: 'x',\n Y: 'y',\n} as const;\n","export type Position = (typeof Position)[keyof typeof Position];\n\nexport const Position = {\n TOP: 'top',\n TOP_START: 'top-start',\n TOP_END: 'top-end',\n\n RIGHT: 'right',\n RIGHT_START: 'right-start',\n RIGHT_END: 'right-end',\n\n BOTTOM: 'bottom',\n BOTTOM_START: 'bottom-start',\n BOTTOM_END: 'bottom-end',\n\n LEFT: 'left',\n LEFT_START: 'left-start',\n LEFT_END: 'left-end',\n} as const;\n","export type Side = (typeof Side)[keyof typeof Side];\n\nexport const Side = {\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n} as const;\n","import { Position, Side } from '../types';\n\n/**\n * Extracts the side part from a position string. The position format generally combines\n * a side (e.g., \"top\", \"bottom\", \"left\", \"right\") with an optional alignment\n * (e.g., \"left\", \"center\", \"right\" for vertical positions or \"top\", \"middle\", \"bottom\" for horizontal positions).\n *\n * @param {Position} position - The position string from which to extract the side.\n * @returns {Side} The side part of the position, indicating the general placement direction.\n *\n * @example\n * ```ts\n * // Extracting the side from a position with alignment\n * console.log(getSide('top-left')); // Outputs: 'top'\n *\n * // Extracting the side from a simple position\n * console.log(getSide('bottom')); // Outputs: 'bottom'\n * ```\n */\nexport function getSide(position: Position): Side {\n return position.split('-')[0] as Side;\n}\n","import { Axis, Position, Side } from '../types';\nimport { getSide } from './get-side';\n\n/**\n * Determines the axis associated with a given position. The function first extracts the side from the position,\n * then evaluates whether that side corresponds to the X-axis (left or right) or the Y-axis (top or bottom).\n *\n * @param {Position} position - The position string, which includes a side (top, bottom, left, right) and possibly an alignment.\n * @returns {Axis} The axis (X or Y) associated with the given position's side.\n *\n * @example\n * ```ts\n * // Determining the axis for different positions\n * console.log(getAxis('top-left')); // Outputs: 'Y'\n * console.log(getAxis('right')); // Outputs: 'X'\n *\n * // Using getAxis in UI element positioning logic\n * const elementPosition = 'bottom';\n * const axis = getAxis(elementPosition);\n * // Assuming a function that adjusts UI elements based on the axis\n * adjustElementAlongAxis(axis);\n * ```\n */\nexport function getAxis(position: Position): Axis {\n const side = getSide(position);\n\n switch (side) {\n case Side.TOP:\n case Side.BOTTOM:\n return Axis.Y;\n case Side.LEFT:\n case Side.RIGHT:\n return Axis.X;\n }\n}\n","/**\n * Extracts the language code from a language string that may include both a language and a region code.\n * The function supports language strings formatted with either a hyphen (`-`) or an underscore (`_`) as the separator.\n *\n * @param {string} language - The complete language string, potentially including both language and region codes.\n * @returns {string} The extracted language code, converted to lower case.\n *\n * @example\n * ```ts\n * // Extracting language code from a language-region string\n * console.log(getLanguageCode('en-US')); // Outputs: 'en'\n * console.log(getLanguageCode('zh_CN')); // Outputs: 'zh'\n *\n * // Handling language codes without region codes\n * console.log(getLanguageCode('fr')); // Outputs: 'fr'\n * ```\n */\nexport function getLanguageCode(language: string): string {\n const [languageCode] = language.split(/-|_/);\n\n return languageCode?.toLowerCase();\n}\n","import { Position, Side } from '../types';\nimport { getSide } from './get-side';\n\n/**\n * Determines the opposite side for a given position. This function is useful for scenarios\n * where you need to dynamically calculate the positioning or alignment opposite to the current one,\n * such as inverting tooltips, popovers, or any UI elements that adjust based on available viewport space.\n *\n * @param {Position} position - The position string, which includes a side and possibly an alignment.\n * @returns {Side} The opposite side relative to the provided position's side.\n *\n * @example\n * ```ts\n * // Getting the opposite side of a given position\n * console.log(getOppositeSide('top-left')); // Outputs: 'bottom'\n * console.log(getOppositeSide('right')); // Outputs: 'left'\n *\n * // Using getOppositeSide to adjust UI elements\n * const currentSide = 'left';\n * const newPosition = getOppositeSide(currentSide);\n * // Assuming an element's position or orientation needs to be dynamically updated\n * updateElementPosition(newPosition);\n * ```\n */\nexport function getOppositeSide(position: Position): Side {\n switch (getSide(position)) {\n case Side.TOP:\n return Side.BOTTOM;\n case Side.RIGHT:\n return Side.LEFT;\n case Side.BOTTOM:\n return Side.TOP;\n case Side.LEFT:\n return Side.RIGHT;\n }\n}\n","import { isString } from './type-guards';\n\n/**\n * Checks if a given value is a valid URL matcher, which can be either a string or a regular expression.\n * This function serves as a type guard to facilitate URL matching operations by verifying the type of the filter.\n *\n * @param {unknown} value - The value to check for being a valid URL matcher.\n * @returns {value is string | RegExp} `true` if the value is a string or RegExp, indicating it can be used for URL matching; otherwise, `false`.\n *\n * @example\n * ```ts\n * // Checking a string URL matcher\n * console.log(isUrlMatcher('https://example.com')); // true\n *\n * // Checking a RegExp URL matcher\n * console.log(isUrlMatcher(/https:\\/\\/example\\.com/)); // true\n *\n * // Checking a non-matcher value\n * console.log(isUrlMatcher(123)); // false\n * ```\n */\nexport function isUrlMatcher(value: unknown): value is string | RegExp {\n return isString(value) || value instanceof RegExp;\n}\n\n/**\n * Determines if a given URL matches a specified filter, which can be either a string or a regular expression.\n * For string filters, the function checks if the URL starts with the filter value. For RegExp filters,\n * it checks if the URL matches the regular expression pattern.\n *\n * @param {string} url - The URL to be checked against the filter.\n * @param {string | RegExp} filter - The filter used to match the URL, which can be a prefix string or a RegExp pattern.\n * @returns {boolean} `true` if the URL matches the filter; otherwise, `false`.\n *\n * @example\n * ```ts\n * // Matching a URL with a string filter\n * console.log(matchUrl('https://example.com/page', 'https://example.com')); // true\n *\n * // Matching a URL with a RegExp filter\n * console.log(matchUrl('https://example.com/page', /example\\.com\\/page/)); // true\n *\n * // A non-matching example\n * console.log(matchUrl('https://example.com/page', 'https://another.com')); // false\n * ```\n */\nexport function matchUrl(url: string, filter: string | RegExp): boolean {\n return isString(filter) ? url.startsWith(filter) : !!url.match(filter);\n}\n","import { GetProperties } from '../types';\n\n/**\n * Represents a typed version of Angular's `SimpleChanges` object, describing the changes to each\n * property of a component or directive. This utility enhances type safety when working with Angular's\n * change detection mechanism by providing specific property types.\n *\n * @template C - The component or directive class.\n * @template Properties - The properties of the component or directive, inferred from `C` by default.\n * @type {Object} - A mapping from property names to change information for each property.\n *\n * @example\n * ```ts\n * interface MyComponent {\n * name: string;\n * age: number;\n * }\n *\n * function ngOnChanges(changes: NgChanges<MyComponent>) {\n * if (changes.name) {\n * console.log('Name changed from', changes.name.previousValue, 'to', changes.name.currentValue);\n * }\n * }\n * ```\n */\nexport type NgChanges<C, Properties = GetProperties<C>> = {\n [Key in keyof Properties]: {\n previousValue: Properties[Key];\n currentValue: Properties[Key];\n firstChange: boolean;\n isFirstChange(): boolean;\n };\n};\n\n/**\n * Checks if the specified property or properties have changed in the current change detection cycle.\n * Optionally ignores changes that occur during the first change detection cycle (e.g., initialization).\n *\n * @template U - The component or directive class.\n * @template T - The type representing the changes, typically `NgChanges<U>`.\n * @template K - The key or keys representing the properties to check for changes.\n * @param {T} changes - The `NgChanges` object containing information about all changes.\n * @param {K | K[]} keyOrKeys - The property name(s) to check for changes.\n * @param {boolean} [ignoreFirstChange=true] - Whether to ignore changes that occur during the first change detection cycle.\n * @returns {boolean} `true` if the specified property or properties have changed, otherwise `false`.\n *\n * @example\n * ```ts\n * // Example usage within an Angular component's `ngOnChanges` method\n * ngOnChanges(changes: NgChanges<MyComponent>): void {\n * if (hasChanged(changes, 'name')) {\n * console.log('Name has changed');\n * }\n * }\n *\n * // Checking multiple properties for changes\n * ngOnChanges(changes: NgChanges<MyComponent>): void {\n * if (hasChanged(changes, ['name', 'age'], false)) {\n * console.log('Name or age has changed (including first change)');\n * }\n * }\n * ```\n */\nexport function hasChanged<U extends Record<string, unknown>, T extends NgChanges<U>, K extends keyof T>(\n changes: T,\n keyOrKeys: K | K[],\n ignoreFirstChange = true,\n): boolean {\n if (Array.isArray(keyOrKeys)) {\n for (const key of keyOrKeys) {\n if (hasChanged(changes, key, ignoreFirstChange)) {\n return true;\n }\n }\n return false;\n } else {\n return keyOrKeys in changes && (!ignoreFirstChange || !changes[keyOrKeys]?.isFirstChange());\n }\n}\n","import { FactoryProvider, inject, InjectionToken, Type, ValueProvider } from '@angular/core';\n\nimport { deepmerge } from '@odx/angular/internal';\n\ninterface ConfigFactoryProvider<T, D extends ConfigDependencies> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: { [I in keyof D]: D[I] extends Type<unknown> ? InstanceType<D[I]> : D[I] extends InjectionToken<unknown> ? any : never }) => T;\n deps?: [...D];\n}\n\nexport type ConfigDependencies<T = unknown> = ReadonlyArray<Type<T> | InjectionToken<T>>;\nexport type ConfigProvider<T = unknown, D extends ConfigDependencies = []> = ConfigFactoryProvider<T, D> | T;\nexport type ConfigTransformFn<T = unknown> = (config: Partial<T>) => Partial<T>;\n\n/**\n * Provides a configuration object or a factory for creating the configuration object, optionally applying a transformation function.\n * This utility simplifies the process of defining and injecting configuration objects throughout an Angular application.\n *\n * @template T - The type of the configuration object.\n * @template D - The dependencies required by the configuration factory, if any.\n * @param {InjectionToken<T> | string} token - The injection token or string token associated with the configuration.\n * @param {ConfigProvider<T, D>} config - The configuration object or a factory provider that produces the configuration.\n * @param {ConfigTransformFn<T>} [transform=() => ({}))] - An optional transformation function to apply to the configuration object.\n * @returns {FactoryProvider | ValueProvider} - An Angular provider object for the given configuration.\n *\n * @example\n * ```ts\n * // Define a simple configuration object\n * const appConfig = { apiEndpoint: 'https://api.example.com' };\n *\n * // Provide the configuration with an optional transformation function\n * provideConfig(appConfigToken, appConfig, (config) => ({\n * ...config,\n * apiEndpoint: `${config.apiEndpoint}/v2`,\n * }));\n *\n * // Using a factory provider for dynamic configuration\n * provideConfig(appConfigToken, {\n * useFactory: (envService) => ({ apiEndpoint: envService.getApiEndpoint() }),\n * deps: [EnvironmentService],\n * });\n * ```\n */\nexport function provideConfig<T extends object, D extends ConfigDependencies = ConfigDependencies>(\n token: InjectionToken<T> | string,\n config: ConfigProvider<T, D>,\n transform: ConfigTransformFn<T> = () => ({}),\n): FactoryProvider | ValueProvider {\n const prepareConfig = (value: Partial<T>) => deepmerge(value, transform(value));\n if ('useFactory' in config) {\n return {\n provide: token,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: unknown[]) => prepareConfig(config.useFactory(...(args as any))),\n deps: config.deps,\n };\n }\n\n return {\n provide: token,\n useFactory: () => prepareConfig(config),\n };\n}\n\nfunction mergeConfig<T>(token: InjectionToken<Partial<T>>, defaultValue: T): Partial<T> {\n const config = inject(token);\n const parentConfig = inject(token, { skipSelf: true, optional: true }) ?? {};\n\n return deepmerge(defaultValue, parentConfig, config) as T;\n}\n\n/**\n * Generates a set of configuration-related tokens and utility functions for managing configuration in an Angular application.\n * This function creates a standardized way to define, provide, and inject configurations, including defaults and transformations.\n *\n * @template T - The type of the configuration object.\n * @template N - The name of the configuration, used to generate token names and utility functions.\n * @param {N} name - The name of the configuration.\n * @param {string} prefix - A prefix for the injection token to ensure uniqueness across the application.\n * @param {T} defaultValue - The default value for the configuration.\n * @param {ConfigTransformFn<T>} [transform] - An optional transformation function to be applied to the configuration.\n * @returns An object containing the generated injection token, default configuration, and utility functions for the configuration.\n *\n * @example\n * ```ts\n * // Create configuration tokens and utilities for \"appConfig\" with a default value and optional transform function\n * const { appConfigConfig, provideAppConfigConfig } = createConfigTokens('appConfig', 'myPrefix', { debug: false }, (config) => ({\n * ...config,\n * debug: true, // Enable debug mode by default\n * }));\n *\n * // Later, in a module or component, provide the customized configuration\n * @NgModule({\n * providers: [provideAppConfigConfig({ apiEndpoint: 'https://api.example.com' })]\n * })\n * class AppModule {}\n * ```\n */\nexport function createConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T, transform?: ConfigTransformFn<T>) {\n type ConfigProviderFn = <D extends ConfigDependencies = ConfigDependencies<Partial<T>>>(\n config: ConfigProvider<Partial<T>, D>,\n ) => FactoryProvider | ValueProvider;\n const configName = `${name}Config` as const;\n const defaultConfigName = `${name}DefaultConfig` as const;\n const injectConfigName = `inject${name}Config` as const;\n const provideConfigName = `provide${name}Config` as const;\n const tokenName = `${prefix}::${configName}`;\n const token = new InjectionToken<Partial<T>>(tokenName, { providedIn: 'root', factory: () => defaultValue });\n\n return {\n [configName]: token,\n [defaultConfigName]: defaultValue,\n [injectConfigName]: () => mergeConfig(token, defaultValue),\n [provideConfigName]: ((config) => provideConfig(token, config, transform)) as ConfigProviderFn,\n } as Record<typeof configName, InjectionToken<Partial<T>>> &\n Record<typeof defaultConfigName, T> &\n Record<typeof injectConfigName, () => T> &\n Record<typeof provideConfigName, ConfigProviderFn>;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { concatAll, distinctUntilChanged, filter, map, share, shareReplay, startWith } from 'rxjs/operators';\nimport { isNumber, isString } from './type-guards';\n\ntype QueueItemId = string | number;\ntype QueueItem<T> = T & { id: QueueItemId };\ntype QueueEventType = 'remove' | 'add' | 'update';\ntype QueueEvent<T> = { items: QueueItem<T>[]; type: QueueEventType };\n\nfunction isQueueItemId(value: unknown): value is QueueItemId {\n return isString(value) || isNumber(value);\n}\n\n/**\n * A class representing a queue structure with advanced functionalities including adding, removing,\n * updating items, and observing changes through RxJS observables. It supports generic queue item types,\n * allowing for flexible usage across different contexts.\n *\n * @template T - The type of items stored in the queue. Each item must extend an object containing a unique `id`.\n */\nexport class Queue<T> {\n private readonly queue = new Map<string, QueueItem<T>>();\n private readonly events$$ = new Subject<QueueEvent<T>>();\n private values: QueueItem<T>[] = [];\n private firstItem: QueueItem<T> | null = null;\n private lastItem: QueueItem<T> | null = null;\n\n /**\n * An observable that emits when an item is added to the queue.\n *\n * @type {Observable<T>}\n */\n public readonly onAdd$ = this.createEventObserver('add');\n\n /**\n * An observable that emits when an item in the queue is updated.\n *\n * @type {Observable<T>}\n */\n public readonly onUpdate$ = this.createEventObserver('update');\n\n /**\n * An observable that emits when an item is removed from the queue.\n *\n * @type {Observable<T>}\n */\n public readonly onRemove$ = this.createEventObserver('remove');\n\n /**\n * An observable representing the current state of the queue as an array of items.\n *\n * @type {Observable<QueueItem<T>[]>}\n */\n public readonly value$ = this.events$$.pipe(\n startWith(() => void 0),\n map(() => this.values),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n /**\n * An observable that emits the current size of the queue.\n *\n * @type {Observable<number>}\n */\n public readonly size$ = this.value$.pipe(\n map(() => this.size),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n /**\n * Gets the size of the queue.\n *\n * @returns {number} - The number of elements in the queue.\n */\n public get size(): number {\n return this.queue.size;\n }\n\n /**\n * Checks if the specified item is the first item in the queue.\n *\n * @param {QueueItem<T>} item - The item to check.\n * @returns {boolean} - Returns `true` if the item is the first item in the queue, `false` otherwise.\n */\n public isFirst({ id }: QueueItem<T>): boolean {\n return this.firstItem?.id === id;\n }\n\n /**\n * Checks if the specified item is the last item in the queue.\n *\n * @param {QueueItem<T>} item - The item to check.\n * @returns {boolean} - Returns true if the item is the last item, otherwise returns false.\n */\n public isLast({ id }: QueueItem<T>): boolean {\n return this.lastItem?.id === id;\n }\n\n /**\n * Retrieves a queue item from the queue based on the provided item or item ID.\n *\n * @param {QueueItem<T> | QueueItemId} itemOrId - The queue item or item ID to retrieve.\n * @returns {QueueItem<T> | null} - The queue item if found, or `null` if not found.\n */\n public get(itemOrId: QueueItem<T> | QueueItemId): QueueItem<T> | null {\n const id = isQueueItemId(itemOrId) ? itemOrId.toString() : itemOrId.id.toString();\n\n return this.queue.get(id) ?? null;\n }\n\n /**\n * Adds an item to the queue, optionally emitting an event.\n *\n * @param {QueueItem<T>} item - The item to add.\n * @param {boolean} [emitEvent=true] - Whether to emit an event for this action.\n * @returns {QueueItem<T>} The item added to the queue.\n */\n public add(item: QueueItem<T>, emitEvent = true): QueueItem<T> {\n this.remove(item, false);\n\n return this.addMany([item], emitEvent)[0];\n }\n\n /**\n * Adds multiple items to the queue.\n *\n * @param {Array<QueueItem<T>>} items - An array of items to be added to the queue.\n * @param {boolean} emitEvent - (Optional) A boolean indicating whether to emit an event after adding the items. Default is true.\n * @returns {Array<QueueItem<T>>} An array of added items.\n */\n public addMany(items: Array<QueueItem<T>>, emitEvent = true): Array<QueueItem<T>> {\n const addedItems = [];\n const updatedItems = [];\n for (const item of items) {\n if (!this.get(item)) {\n addedItems.push(item);\n } else {\n updatedItems.push(item);\n }\n this.queue.set(item.id.toString(), item);\n }\n if (addedItems.length) {\n this.notify({ type: 'add', items: addedItems }, emitEvent);\n }\n if (updatedItems.length) {\n this.notify({ type: 'update', items: updatedItems }, emitEvent);\n }\n\n return items;\n }\n\n /**\n * Removes an item from the queue.\n *\n * @param {Array<QueueItem<T> | QueueItemId>} itemOrId - The item or ID of the item to be removed.\n * @param {boolean} emitEvent - Whether to emit an event after removing the item. Default is `true`.\n * @returns The removed item, or `null` if the item was not found.\n */\n public remove(itemOrId: QueueItem<T> | QueueItemId, emitEvent = true): QueueItem<T> | null {\n return this.removeMany([itemOrId], emitEvent)[0];\n }\n\n /**\n * Removes multiple items from the queue based on the provided item or item IDs.\n *\n * @param {Array<QueueItem<T> | QueueItemId>} itemOrIds - An array of QueueItem or QueueItemId objects representing the items to be removed.\n * @param {boolean} emitEvent - A boolean indicating whether to emit an event after removing the items. Default is true.\n * @returns {Array<QueueItem<T> | null>} An array of removed QueueItem objects or null values.\n */\n public removeMany(itemOrIds: Array<QueueItem<T> | QueueItemId>, emitEvent = true): Array<QueueItem<T> | null> {\n const items = itemOrIds.map((itemOrId) => this.get(itemOrId)).filter(Boolean) as QueueItem<T>[];\n const removedItems = [];\n for (const item of items) {\n const itemRemoved = this.queue.delete(item.id.toString());\n if (!itemRemoved) continue;\n removedItems.push(item);\n }\n this.notify({ type: 'remove', items: removedItems }, emitEvent);\n\n return items;\n }\n\n /**\n * Clears the queue by removing all items.\n *\n * @param {boolean} emitEvent - Whether to emit an event after clearing the queue. Default is true.\n */\n public clear(emitEvent = true): void {\n const items = this.toArray();\n this.queue.clear();\n this.notify({ type: 'remove', items }, emitEvent);\n }\n\n /**\n * Returns an array representation of the queue.\n *\n * @returns {QueueItem<T>[]} An array containing all the items in the queue.\n */\n public toArray(): QueueItem<T>[] {\n return this.values;\n }\n\n private notify(event: QueueEvent<T>, emitEvent = true): void {\n this.values = Array.from(this.queue, ([_, item]) => item).reverse();\n this.firstItem = this.values[0] ?? null;\n this.lastItem = this.values[this.values.length - 1] ?? null;\n if (!emitEvent) return;\n this.events$$.next(event);\n }\n\n private createEventObserver(type: QueueEventType): Observable<T> {\n return this.events$$.pipe(\n filter((event) => event.type === type),\n map(({ items }) => items),\n concatAll(),\n share(),\n );\n }\n}\n","/**\n * Options for creating a sorter function. Can be used for arrays of objects (with `keyFn`)\n * or arrays of primitives (if `keyFn` is omitted).\n * @template T The type of items to be sorted.\n */\nexport interface SorterOptions<T> {\n sortDirection?: SortDirection;\n locale?: string;\n collatorOptions?: Intl.CollatorOptions;\n /**\n * Optional function to extract the sortable value from an item.\n * If not provided, the item itself is used for comparison (suitable for arrays of primitives).\n * The extracted value should be a string, number, boolean, null, or undefined.\n * @default (item: T) => item\n */\n keyFn?: (item: T) => string | number | boolean | null | undefined;\n}\n\n/**\n * Defines the possible directions for sorting.\n * It is used to specify how elements should be ordered.\n *\n * - `ASC`: Represents \"ascending\" order (e.g., A to Z, 1 to 10).\n * - `DESC`: Represents \"descending\" order (e.g., Z to A, 10 to 1).\n */\nexport type SortDirection = (typeof SortDirection)[keyof typeof SortDirection];\n\n/**\n * Constant object representing the available sort directions.\n * @property {string} ASC - Sort in ascending order.\n * @property {string} DESC - Sort in descending order.\n * @readonly\n */\nexport const SortDirection = {\n ASC: 'asc',\n DESC: 'desc',\n} as const;\n\n/**\n * Handles comparison for null values, assuming undefined has already been handled.\n * - `null` is considered less than any defined (non-null, non-undefined) value.\n * @param valA First value.\n * @param valB Second value.\n * @returns Comparison result (-1, 0, 1) or null if both values are non-null.\n */\nfunction handleNullValues<V>(valA: V, valB: V): number | null {\n const aIsNull = valA === null;\n const bIsNull = valB === null;\n\n if (aIsNull && bIsNull) return 0;\n if (aIsNull) return -1; // valA is null, valB is not -> valA is \"lesser\"\n if (bIsNull) return 1; // valB is null, valA is not -> valA is \"greater\"\n\n return null; // Both are non-null (and non-undefined at this stage of the main sorter)\n}\n\nfunction compareNonNullValues<V>(valA: NonNullable<V>, valB: NonNullable<V>, collator: Intl.Collator): number {\n if (typeof valA === 'string' && typeof valB === 'string') {\n return collator.compare(valA, valB);\n } else if (typeof valA === 'number' && typeof valB === 'number') {\n return valA - valB;\n } else if (typeof valA === 'boolean' && typeof valB === 'boolean') {\n return Number(valA) - Number(valB);\n }\n return collator.compare(String(valA), String(valB));\n}\n\n/**\n * Creates a comparison function suitable for Array.prototype.sort(),\n * based on the provided sort parameters.\n * Uses Intl.Collator for string comparison.\n * Can sort arrays of objects by an extracted value (via `keyFn`) or arrays of primitives directly.\n *\n * Behavior for `null` and `undefined` values (either direct or returned by `keyFn`):\n * - `undefined` values are **always** sorted to the end of the array, regardless of the sort direction.\n * - `null` values are sorted to the beginning of the array for ASC sort.\n * - For DESC sort, `null` values are sorted to the end of the array, but before any `undefined` values.\n *\n * @template T The type of items in the array.\n * @param options Optional sorting options. If `keyFn` is not provided, items are compared directly.\n * @returns A comparison function `(a: T, b: T) => number`.\n */\nexport function createSorter<T>(options?: SorterOptions<T>): (a: T, b: T) => number {\n const { keyFn: userProvidedKeyFn, sortDirection, locale, collatorOptions } = options || {};\n\n if (!sortDirection || !Object.values(SortDirection).includes(sortDirection)) return () => 0;\n\n if (userProvidedKeyFn !== undefined && typeof userProvidedKeyFn !== 'function') {\n console.warn('createSorter: provided keyFn is not a function. Returning a no-op sorter.');\n return () => 0;\n }\n\n // Default keyFn extracts the item itself, suitable for primitives or if T is the sortable value.\n const keyFn = userProvidedKeyFn ?? ((item: T) => item as unknown as string | number | boolean | null | undefined);\n const collator = new Intl.Collator(locale, collatorOptions);\n\n return (itemA: T, itemB: T): number => {\n const valA = keyFn(itemA);\n const valB = keyFn(itemB);\n\n const aIsUndefined = valA === undefined;\n const bIsUndefined = valB === undefined;\n\n if (aIsUndefined && bIsUndefined) return 0;\n if (aIsUndefined) return 1;\n if (bIsUndefined) return -1;\n\n let comparison = 0;\n const nullComparison = handleNullValues(valA, valB);\n\n if (nullComparison !== null) {\n comparison = nullComparison;\n } else {\n comparison = compareNonNullValues(\n valA as NonNullable<string | number | boolean>, // valA is known to be not null/undefined here\n valB as NonNullable<string | number | boolean>, // valB is known to be not null/undefined here\n collator,\n );\n }\n\n return sortDirection === SortDirection.DESC ? comparison * -1 : comparison;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDG;AACG,SAAU,IAAI,CAAI,OAAe,EAAE,WAAmB,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAA8B,EAAA;IAClH,IAAI,GAAG,EAAE;QACP,OAAO;YACL,UAAU;YACV,GAAG,GAAA;gBACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAE5B,gBAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAE/D,gBAAA,OAAO,KAAK;YACd,CAAC;SACF;IACH;AAEA,IAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AAC/B,QAAA,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC;IACjF;IAEA,MAAM,aAAa,GAAG,KAAK;IAE3B,OAAO;QACL,UAAU;QACV,GAAG,GAAA;YACD,IAAI,YAAY,GAAuB,EAAE;YACzC,IAAI,SAAS,GAAG,KAAK;AACrB,YAAA,IAAI,SAAkB;AAEtB,YAAA,MAAM,OAAO,GAAG,CAAC,GAAG,IAAe,KAAa;AAC9C,gBAAA,MAAM,MAAM,GAAG,SAAS,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;gBAE1H,IAAI,MAAM,EAAE;AACV,oBAAA,OAAO,SAAS;gBAClB;gBAEA,YAAY,GAAG,IAAI;gBACnB,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC3C,SAAS,GAAG,IAAI;AAEhB,gBAAA,OAAO,SAAS;AAClB,YAAA,CAAC;AAED,YAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAE5D,YAAA,OAAO,OAAuB;QAChC,CAAC;KACF;AACH;;AC/FA;;;;;AAKG;AACG,SAAU,eAAe,CAAC,KAAc,EAAA;AAC5C,IAAA,OAAO,UAAU,CAAE,KAA0B,EAAE,eAAe,CAAC;AACjE;AAEA;;;;;;AAMG;AACG,SAAU,aAAa,CAAc,KAAc,EAAA;IACvD,OAAO,KAAK,YAAY,WAAW;AACrC;AAEA;;;;;;AAMG;AACG,SAAU,WAAW,CAAc,KAAc,EAAA;AACrD,IAAA,OAAO,UAAU,CAAC,KAAK,CAAC;AAC1B;AAEA;;;;;AAKG;AACG,SAAU,QAAQ,CAAC,KAAc,EAAA;AACrC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ;AAClC;AAEA;;;;;AAKG;AACG,SAAU,gBAAgB,CAAC,KAAc,EAAA;IAC7C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAC5C;AAEA;;;;;AAKG;AACG,SAAU,SAAS,CAAC,KAAc,EAAA;AACtC,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;AAC1C;AAEA;;;;;AAKG;AACG,SAAU,UAAU,CAAC,KAAc,EAAA;AACvC,IAAA,OAAO,OAAO,KAAK,KAAK,UAAU;AACpC;AAEA;;;;;;AAMG;AACG,SAAU,SAAS,CAAI,KAA2B,EAAA;AACtD,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AAC9C;AAEA;;;;;AAKG;AACG,SAAU,QAAQ,CAAC,KAAc,EAAA;AACrC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ;AAClC;;AC1FA;;;;;AAKG;AACG,SAAU,WAAW,CAAC,OAAoB,EAAE,MAAuF,EAAA;IACvI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;AACtC;AAEA;;;;;AAKG;AACG,SAAU,wBAAwB,CAAC,KAAc,EAAA;AACrD,IAAA,OAAO,gCAAgC,CAAC,KAAK,CAAC,IAAI,OAAO;AAC3D;AAEA;;;;;AAKG;AACG,SAAU,gCAAgC,CAAC,KAAc,EAAA;IAC7D,OAAO,KAAK,GAAG,MAAM,GAAG,IAAI;AAC9B;AAEA;;;;;AAKG;AACG,SAAU,EAAE,CAAC,KAAc,EAAA;AAC/B,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI,GAAG,KAAK;AAC/C;AAEA;;;;;;AAMG;AACG,SAAU,YAAY,CAAC,CAAa,EAAE,CAAa,EAAA;AACvD,IAAA,OAAO,CAAA,YAAA,EAAe,CAAC,CAAA,EAAA,EAAK,CAAC,MAAM;AACrC;AAEA;;;;;AAKG;AACG,SAAU,qBAAqB,CAAC,OAAoB,EAAE,QAAiB,EAAA;IAC3E,IAAI,QAAQ,EAAE;QACZ,WAAW,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9C;SAAO;QACL,iBAAiB,CAAC,OAAO,CAAC;QAC1B,WAAW,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5C;AACF;AAEA;;;;AAIG;AACG,SAAU,iBAAiB,CAAC,OAAoB,EAAA;IACpD,OAAO,OAAO,CAAC,YAAY;AAC7B;AAEA;;;;;;AAMG;SACa,YAAY,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAAe,EAAA;IACnF,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QACtC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnD;SAAO;QACL,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC;IAC7C;AACF;AAEA;;;;;AAKG;AACG,SAAU,oBAAoB,CAAC,QAAgC,EAAA;AACnE,IAAA,IAAI;AACF,QAAA,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC;IACrC;AAAE,IAAA,MAAM;QACN,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC,EAAE;IACrF;AACF;AAEA;;;;;;AAMG;AACG,SAAU,sBAAsB,CAAC,QAAoC,EAAE,QAAkD,EAAA;AAC7H,IAAA,IAAI;AACF,QAAA,OAAO,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AACxC,YAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACvB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B;AACF,QAAA,CAAC,CAAC;;IAEJ;IAAE,OAAO,KAAK,EAAE;QACd,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;IACnF;AACF;AAEA;;;;;;;AAOG;AACG,SAAU,eAAe,CAAC,MAAuB,EAAE,KAAsB,EAAE,SAAS,GAAG,IAAI,EAAA;AAC/F,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,KAAK;AACnC,IAAA,IAAI,CAAC,SAAS,IAAI,MAAM,KAAK,KAAK;AAAE,QAAA,OAAO,KAAK;AAChD,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/B;;ACvIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCG;SACa,cAAc,GAAA;AAC5B,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAErC,IAAA,OAAO,MAAM,kBAAkB,CAAC,UAAU,CAAC;AAC7C;;ACzCA,SAAS,eAAe,CAAI,QAAkC,EAAA;AAC5D,IAAA,MAAM,kBAAkB,GAAG,cAAc,EAAE;IAE3C,OAAO,CAAC,OAAsB,KAC5B,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAC/B,kBAAkB,EAAE,CACrB;AACL;AAEA;;;;;;;AAOG;AACG,SAAU,oBAAoB,CAAI,OAAyC,EAAE,QAAgB,EAAA;AACjG,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;IAEzC,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;IACzG;AACF;AAEA;;;;;;;AAOG;SACa,wBAAwB,CAAI,OAAyC,EAAE,GAAG,UAAoB,EAAA;AAC5G,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;IAEzC,IAAI,OAAO,EAAE;QACX;AACG,aAAA,IAAI,CACH,eAAe,CAAC,CAAC,KAAK,KAAI;AACxB,YAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAClC,gBAAA,YAAY,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC;YAC/C;AACF,QAAA,CAAC,CAAC;AAEH,aAAA,SAAS,EAAE;IAChB;AACF;AAEA;;;;;AAKG;SACa,aAAa,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAgB,UAAU,CAAC;AAC1C;AAEA;;;;;;AAMG;AACG,SAAU,YAAY,CAAC,KAAa,EAAA;AACxC,IAAA,OAAO,KAAK;AACd;AAEA;;;;;;;;AAQG;SACa,SAAS,CAA6C,CAAS,EAAE,EAAE,EAAE,EAAK,EAAA;AACxF,IAAA,OAAO,EAAE;AACX;;ACvFA;;;;;;;;;;;;AAYG;AACI,eAAe,iBAAiB,CAAC,OAAwB,EAAE,OAAO,GAAG,KAAK,EAAA;IAC/E,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE;AAC3D,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;AAC/G;;ACjBA;;;;;;;;;;;;;AAaG;AACG,SAAU,cAAc,CAAuB,GAAQ,EAAE,GAAM,EAAA;AACnE,IAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC;AAIA;;;;;;;;;;;;AAYG;SACa,OAAO,CAAI,GAAY,EAAE,YAA8B,KAAK,EAAA;AAC1E,IAAA,OAAO,CAAC,CAAC,EAAE,CAAC,KAAI;AACd,QAAA,MAAM,SAAS,GAAG,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACvD,QAAA,MAAM,UAAU,GAAG,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACxD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,OAAO,CAAC,CAAC;QACX;AACA,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,OAAO,CAAC,CAAC;QACX;QACA,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC/C,OAAO,SAAS,GAAG,UAAU;QAC/B;QACA,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC/C,YAAA,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACxE;AACA,QAAA,OAAO,CAAC;AACV,IAAA,CAAC;AACH;;ACrDA;;;;;;;;;;;;;;;;;;;AAmBG;AACG,SAAU,QAAQ,CAAC,GAAG,IAAwD,EAAA;AAClF,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC;AACpE;;ACpBA;;;;;AAKG;AACI,MAAM,mBAAmB,GAAG;AAEnC;;;;;;;;;;;;;;;;;AAiBG;AACG,SAAU,eAAe,CAAC,GAAG,QAA4D,EAAA;AAC7F,IAAA,OAAO,QAAQ,CAAC,mBAAmB,EAAE,GAAG,QAAQ,CAAC;AACnD;;AC9BA;;AAEG;AACI,MAAM,gBAAgB,GAAG;AAEhC;;AAEG;AACI,MAAM,yBAAyB,GAAG;AAEzC;;AAEG;AACI,MAAM,yBAAyB,GAAG;AAEzC;;;;;;;;;;;;;;;;;;;;;AAqBG;MACU,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CACmB,QAAgB,EAChB,YAAA,GAAe,MAAM,CAAC,MAAM,EAAA;QAD5B,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,YAAY,GAAZ,YAAY;IAC5B;AAEH;;;;;AAKG;IACI,MAAM,MAAM,CAAC,OAA0B,EAAA;AAC5C,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;AAEnC,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IAC9B;AAEA;;;;AAIG;AACI,IAAA,MAAM,SAAS,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;QACnC,KAAK,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE;AACpC,YAAA,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QACzB;IACF;AAEA;;;;;;;;AAQG;AACI,IAAA,MAAM,OAAO,CAAI,WAA8B,EAAE,YAAA,GAAe,CAAC,EAAE,MAAM,EAAY,KAAK,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAA;AAC5H,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;QACvD,IAAI,QAAQ,IAAI,YAAY,GAAG,QAAQ,CAAC,EAAE;AACxC,YAAA,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7B;AACA,QAAA,OAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI;IACjC;AAEU,IAAA,MAAM,QAAQ,GAAA;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9C;AAEU,IAAA,MAAM,cAAc,CAAC,KAAY,EAAE,WAA8B,EAAA;QACzE,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;AACrD,QAAA,MAAM,IAAI,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI;AACnE,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,IAAI,EAAE;YACR,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC;QACtD;AAEA,QAAA,OAAO,OAAO;IAChB;AAEU,IAAA,MAAM,WAAW,CAAC,KAAY,EAAE,OAAgB,EAAA;AACxD,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;QACvD,MAAM,YAAY,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,yBAAyB,CAAC;AACtE,QAAA,IAAI,YAAY,KAAK,UAAU,EAAE;AAC/B,YAAA,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;AAE3B,YAAA,OAAO,QAAQ;QACjB;AACA,QAAA,IAAI,QAAQ,EAAE,EAAE,EAAE;AAChB,YAAA,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;QACtD;AAEA,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC;IACxD;AACD;;ACjHD;;;;;;;;;;;;;;;;AAgBG;AACG,SAAU,cAAc,CAAC,KAAwB,EAAA;AACrD,IAAA,OAAO,WAAW,CAAS,KAAK,CAAC;AACnC;;ACrBA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;AACG,SAAU,QAAQ,CAAyB,IAA6B,EAAE,KAAa,EAAE,SAAS,GAAG,KAAK,EAAA;IAC9G,IAAI,OAAO,GAAkB,IAAI;IAEjC,OAAO,UAAyB,GAAG,IAAU,EAAA;;QAE3C,MAAM,OAAO,GAAG,IAAI;AACpB,QAAA,MAAM,eAAe,GAAG,SAAS,IAAI,OAAO,KAAK,IAAI;AACrD,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,YAAY,CAAC,OAAO,CAAC;QACvB;QACA,OAAO,GAAG,UAAU,CAAC,YAAA;YACnB,OAAO,GAAG,IAAI;YACd,IAAI,CAAC,eAAe,EAAE;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B;QACF,CAAC,EAAE,KAAK,CAAsB;QAC9B,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;QAC3B;AACF,IAAA,CAAC;AACH;;AC/CA;;;;;;;;;;;;;;;;;;;AAmBG;AACG,SAAU,OAAO,CAAC,EAAc,EAAA;AACpC,IAAA,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;AACnB;;ACtBA,IAAI,aAAa,GAA8B,EAAE;AAEjD;;;;;;;;;;;;;;;;AAgBG;AACG,SAAU,WAAW,CAAC,GAAW,EAAA;AACrC,IAAA,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAElD,OAAO,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,aAAa,CAAC,GAAG,CAAC,EAAE;AACvC;AAEA;;;;;;;;;;;;;;;AAeG;SACa,kBAAkB,GAAA;IAChC,aAAa,GAAG,EAAE;AACpB;;MCrCa,YAAY,CAAA;AADzB,IAAA,WAAA,GAAA;QAEmB,IAAA,CAAA,OAAO,GAAG,aAAa,EAAE;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,SAAS,GAA4B,IAAI,GAAG,EAAsB;AAyCpF,IAAA;IAvCQ,gBAAgB,GAAA;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAoB,KAAI;YAC9C,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAQ,EAAE;YACZ;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IACxB;AAEO,IAAA,eAAe,CAAC,oBAA4B,EAAA;QACjD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAC3D,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,EAAE;YACd;AACA,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC;QAC7C;IACF;AAEO,IAAA,QAAQ,CACb,UAAgC,EAChC,QAA6B,EAC7B,MAAmD,EAAA;AAEnD,QAAA,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,SAAiB,KAAI;AAC5D,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpH,YAAA,MAAM,EAAE,GAAG,WAAW,CAAC,iBAAiB,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC;AAClC,YAAA,OAAO,EAAE;AACX,QAAA,CAAC,CAAC;IACJ;IAEO,WAAW,GAAA;QAChB,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEO,uBAAuB,GAAA;QAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1C;+GA3CW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAZ,YAAY,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;ACHM,MAAM,IAAI,GAAG;AAClB,IAAA,CAAC,EAAE,GAAG;AACN,IAAA,CAAC,EAAE,GAAG;;;ACFD,MAAM,QAAQ,GAAG;AACtB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,OAAO,EAAE,SAAS;AAElB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,SAAS,EAAE,WAAW;AAEtB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,UAAU,EAAE,YAAY;AAExB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,QAAQ,EAAE,UAAU;;;ACff,MAAM,IAAI,GAAG;AAClB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,IAAI,EAAE,MAAM;;;ACJd;;;;;;;;;;;;;;;;AAgBG;AACG,SAAU,OAAO,CAAC,QAAkB,EAAA;IACxC,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAS;AACvC;;AClBA;;;;;;;;;;;;;;;;;;;AAmBG;AACG,SAAU,OAAO,CAAC,QAAkB,EAAA;AACxC,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE9B,QAAQ,IAAI;QACV,KAAK,IAAI,CAAC,GAAG;QACb,KAAK,IAAI,CAAC,MAAM;YACd,OAAO,IAAI,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,IAAI;QACd,KAAK,IAAI,CAAC,KAAK;YACb,OAAO,IAAI,CAAC,CAAC;;AAEnB;;AClCA;;;;;;;;;;;;;;;;AAgBG;AACG,SAAU,eAAe,CAAC,QAAgB,EAAA;IAC9C,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AAE5C,IAAA,OAAO,YAAY,EAAE,WAAW,EAAE;AACpC;;AClBA;;;;;;;;;;;;;;;;;;;;AAoBG;AACG,SAAU,eAAe,CAAC,QAAkB,EAAA;AAChD,IAAA,QAAQ,OAAO,CAAC,QAAQ,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG;YACX,OAAO,IAAI,CAAC,MAAM;QACpB,KAAK,IAAI,CAAC,KAAK;YACb,OAAO,IAAI,CAAC,IAAI;QAClB,KAAK,IAAI,CAAC,MAAM;YACd,OAAO,IAAI,CAAC,GAAG;QACjB,KAAK,IAAI,CAAC,IAAI;YACZ,OAAO,IAAI,CAAC,KAAK;;AAEvB;;ACjCA;;;;;;;;;;;;;;;;;;AAkBG;AACG,SAAU,YAAY,CAAC,KAAc,EAAA;IACzC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,MAAM;AACnD;AAEA;;;;;;;;;;;;;;;;;;;;AAoBG;AACG,SAAU,QAAQ,CAAC,GAAW,EAAE,MAAuB,EAAA;IAC3D,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACxE;;ACdA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BG;AACG,SAAU,UAAU,CACxB,OAAU,EACV,SAAkB,EAClB,iBAAiB,GAAG,IAAI,EAAA;AAExB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC5B,QAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YAC3B,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE;AAC/C,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;SAAO;AACL,QAAA,OAAO,SAAS,IAAI,OAAO,KAAK,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7F;AACF;;AChEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BG;AACG,SAAU,aAAa,CAC3B,KAAiC,EACjC,MAA4B,EAC5B,SAAA,GAAkC,OAAO,EAAE,CAAC,EAAA;AAE5C,IAAA,MAAM,aAAa,GAAG,CAAC,KAAiB,KAAK,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/E,IAAA,IAAI,YAAY,IAAI,MAAM,EAAE;QAC1B,OAAO;AACL,YAAA,OAAO,EAAE,KAAK;;AAEd,YAAA,UAAU,EAAE,CAAC,GAAG,IAAe,KAAK,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,GAAI,IAAY,CAAC,CAAC;YACtF,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB;IACH;IAEA,OAAO;AACL,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,UAAU,EAAE,MAAM,aAAa,CAAC,MAAM,CAAC;KACxC;AACH;AAEA,SAAS,WAAW,CAAI,KAAiC,EAAE,YAAe,EAAA;AACxE,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5B,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;IAE5E,OAAO,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAM;AAC3D;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;AACG,SAAU,kBAAkB,CAAsB,IAAO,EAAE,MAAc,EAAE,YAAe,EAAE,SAAgC,EAAA;AAIhI,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,IAAI,QAAiB;AAC3C,IAAA,MAAM,iBAAiB,GAAG,CAAA,EAAG,IAAI,eAAwB;AACzD,IAAA,MAAM,gBAAgB,GAAG,CAAA,MAAA,EAAS,IAAI,QAAiB;AACvD,IAAA,MAAM,iBAAiB,GAAG,CAAA,OAAA,EAAU,IAAI,QAAiB;AACzD,IAAA,MAAM,SAAS,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,EAAK,UAAU,EAAE;IAC5C,MAAM,KAAK,GAAG,IAAI,cAAc,CAAa,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,EAAE,CAAC;IAE5G,OAAO;QACL,CAAC,UAAU,GAAG,KAAK;QACnB,CAAC,iBAAiB,GAAG,YAAY;QACjC,CAAC,gBAAgB,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;AAC1D,QAAA,CAAC,iBAAiB,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAqB;KAI5C;AACtD;;AC7GA,SAAS,aAAa,CAAC,KAAc,EAAA;IACnC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;AAC3C;AAEA;;;;;;AAMG;MACU,KAAK,CAAA;AAAlB,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,EAAwB;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAiB;QAChD,IAAA,CAAA,MAAM,GAAmB,EAAE;QAC3B,IAAA,CAAA,SAAS,GAAwB,IAAI;QACrC,IAAA,CAAA,QAAQ,GAAwB,IAAI;AAE5C;;;;AAIG;AACa,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAExD;;;;AAIG;AACa,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;AAE9D;;;;AAIG;AACa,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;AAE9D;;;;AAIG;AACa,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACzC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,EACvB,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EACtB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C;AAED;;;;AAIG;AACa,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACtC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EACpB,oBAAoB,EAAE,EACtB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C;IAuJH;AArJE;;;;AAIG;AACH,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;IACxB;AAEA;;;;;AAKG;IACI,OAAO,CAAC,EAAE,EAAE,EAAgB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE;IAClC;AAEA;;;;;AAKG;IACI,MAAM,CAAC,EAAE,EAAE,EAAgB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE;IACjC;AAEA;;;;;AAKG;AACI,IAAA,GAAG,CAAC,QAAoC,EAAA;QAC7C,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;QAEjF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI;IACnC;AAEA;;;;;;AAMG;AACI,IAAA,GAAG,CAAC,IAAkB,EAAE,SAAS,GAAG,IAAI,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AAExB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3C;AAEA;;;;;;AAMG;AACI,IAAA,OAAO,CAAC,KAA0B,EAAE,SAAS,GAAG,IAAI,EAAA;QACzD,MAAM,UAAU,GAAG,EAAE;QACrB,MAAM,YAAY,GAAG,EAAE;AACvB,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACnB,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB;iBAAO;AACL,gBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC;QAC1C;AACA,QAAA,IAAI,UAAU,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,CAAC;QAC5D;AACA,QAAA,IAAI,YAAY,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,SAAS,CAAC;QACjE;AAEA,QAAA,OAAO,KAAK;IACd;AAEA;;;;;;AAMG;AACI,IAAA,MAAM,CAAC,QAAoC,EAAE,SAAS,GAAG,IAAI,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAClD;AAEA;;;;;;AAMG;AACI,IAAA,UAAU,CAAC,SAA4C,EAAE,SAAS,GAAG,IAAI,EAAA;QAC9E,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAmB;QAC/F,MAAM,YAAY,GAAG,EAAE;AACvB,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;AACzD,YAAA,IAAI,CAAC,WAAW;gBAAE;AAClB,YAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,SAAS,CAAC;AAE/D,QAAA,OAAO,KAAK;IACd;AAEA;;;;AAIG;IACI,KAAK,CAAC,SAAS,GAAG,IAAI,EAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC;IACnD;AAEA;;;;AAIG;IACI,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACpB;AAEQ,IAAA,MAAM,CAAC,KAAoB,EAAE,SAAS,GAAG,IAAI,EAAA;QACnD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE;QACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI;AAC3D,QAAA,IAAI,CAAC,SAAS;YAAE;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AAEQ,IAAA,mBAAmB,CAAC,IAAoB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EACtC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,EACzB,SAAS,EAAE,EACX,KAAK,EAAE,CACR;IACH;AACD;;AChMD;;;;;AAKG;AACI,MAAM,aAAa,GAAG;AAC3B,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE,MAAM;;AAGd;;;;;;AAMG;AACH,SAAS,gBAAgB,CAAI,IAAO,EAAE,IAAO,EAAA;AAC3C,IAAA,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI;AAC7B,IAAA,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI;IAE7B,IAAI,OAAO,IAAI,OAAO;AAAE,QAAA,OAAO,CAAC;AAChC,IAAA,IAAI,OAAO;AAAE,QAAA,OAAO,CAAC,CAAC,CAAC;AACvB,IAAA,IAAI,OAAO;QAAE,OAAO,CAAC,CAAC;IAEtB,OAAO,IAAI,CAAC;AACd;AAEA,SAAS,oBAAoB,CAAI,IAAoB,EAAE,IAAoB,EAAE,QAAuB,EAAA;IAClG,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IACrC;SAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC/D,OAAO,IAAI,GAAG,IAAI;IACpB;SAAO,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;QACjE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IACpC;AACA,IAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACrD;AAEA;;;;;;;;;;;;;;AAcG;AACG,SAAU,YAAY,CAAI,OAA0B,EAAA;AACxD,IAAA,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,IAAI,EAAE;AAE1F,IAAA,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;AAAE,QAAA,OAAO,MAAM,CAAC;IAE3F,IAAI,iBAAiB,KAAK,SAAS,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE;AAC9E,QAAA,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC;AACzF,QAAA,OAAO,MAAM,CAAC;IAChB;;AAGA,IAAA,MAAM,KAAK,GAAG,iBAAiB,KAAK,CAAC,IAAO,KAAK,IAA+D,CAAC;IACjH,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;AAE3D,IAAA,OAAO,CAAC,KAAQ,EAAE,KAAQ,KAAY;AACpC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;AAEzB,QAAA,MAAM,YAAY,GAAG,IAAI,KAAK,SAAS;AACvC,QAAA,MAAM,YAAY,GAAG,IAAI,KAAK,SAAS;QAEvC,IAAI,YAAY,IAAI,YAAY;AAAE,YAAA,OAAO,CAAC;AAC1C,QAAA,IAAI,YAAY;AAAE,YAAA,OAAO,CAAC;AAC1B,QAAA,IAAI,YAAY;YAAE,OAAO,CAAC,CAAC;QAE3B,IAAI,UAAU,GAAG,CAAC;QAClB,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC;AAEnD,QAAA,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,UAAU,GAAG,cAAc;QAC7B;aAAO;AACL,YAAA,UAAU,GAAG,oBAAoB,CAC/B,IAA8C;AAC9C,YAAA,IAA8C;AAC9C,YAAA,QAAQ,CACT;QACH;AAEA,QAAA,OAAO,aAAa,KAAK,aAAa,CAAC,IAAI,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,UAAU;AAC5E,IAAA,CAAC;AACH;;AC1HA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"odx-angular-utils.mjs","sources":["../../../../libs/angular/utils/src/lib/decorators/pure.ts","../../../../libs/angular/utils/src/lib/helpers/type-guards.ts","../../../../libs/angular/utils/src/lib/helpers/dom.ts","../../../../libs/angular/utils/src/lib/helpers/until-destroyed.ts","../../../../libs/angular/utils/src/lib/helpers/angular.ts","../../../../libs/angular/utils/src/lib/helpers/animations-handler.ts","../../../../libs/angular/utils/src/lib/helpers/array.ts","../../../../libs/angular/utils/src/lib/helpers/build-url.ts","../../../../libs/angular/utils/src/lib/helpers/build-website-url.ts","../../../../libs/angular/utils/src/lib/helpers/cache-storage-client.ts","../../../../libs/angular/utils/src/lib/helpers/coercion.ts","../../../../libs/angular/utils/src/lib/helpers/debounce.ts","../../../../libs/angular/utils/src/lib/helpers/defer-fn.ts","../../../../libs/angular/utils/src/lib/helpers/get-unique-id.ts","../../../../libs/angular/utils/src/lib/helpers/event-manager.ts","../../../../libs/angular/utils/src/lib/types/axis.ts","../../../../libs/angular/utils/src/lib/types/position.ts","../../../../libs/angular/utils/src/lib/types/side.ts","../../../../libs/angular/utils/src/lib/helpers/get-side.ts","../../../../libs/angular/utils/src/lib/helpers/get-axis.ts","../../../../libs/angular/utils/src/lib/helpers/get-language-code.ts","../../../../libs/angular/utils/src/lib/helpers/get-opposite-side.ts","../../../../libs/angular/utils/src/lib/helpers/match-url.ts","../../../../libs/angular/utils/src/lib/helpers/ng-changes.ts","../../../../libs/angular/utils/src/lib/helpers/provide-config.ts","../../../../libs/angular/utils/src/lib/helpers/queue.ts","../../../../libs/angular/utils/src/lib/helpers/sorter.ts","../../../../libs/angular/utils/src/odx-angular-utils.ts"],"sourcesContent":["/**\n * A decorator that transforms a class method or getter into a pure function. For methods, it caches the result\n * of the first invocation with a given set of arguments and returns the cached result on subsequent invocations\n * with the same arguments. For getters, it caches the result of the first access and returns the cached value\n * on subsequent accesses.\n *\n * This decorator is intended to improve performance by avoiding unnecessary recalculations or processing\n * when the inputs have not changed.\n *\n * @template T The type of the property being decorated.\n * @param {object} _target The prototype of the class.\n * @param {string} propertyKey The name of the method or getter.\n * @param {TypedPropertyDescriptor<T>} descriptor The property descriptor for the method or getter.\n * @throws {Error} Throws an error if applied to non-function properties.\n * @returns {TypedPropertyDescriptor<T>} A new descriptor with the getter or method patched for pure behavior.\n *\n * @example\n * Usage with a getter:\n * ```ts\n * class ExampleClass {\n * private _value: number = Math.random();\n *\n * @Pure\n * get value(): number {\n * console.log('Getter called');\n * return this._value;\n * }\n * }\n *\n * const example = new ExampleClass();\n * console.log(example.value); // Logs 'Getter called' and the value\n * console.log(example.value); // Logs only the value, without calling the getter again\n * ```\n *\n * Usage with a method:\n * ```ts\n * class Counter {\n * private count = 0;\n *\n * @Pure\n * increment(step: number) {\n * console.log('Increment called');\n * return (this.count += step);\n * }\n * }\n *\n * const counter = new Counter();\n * console.log(counter.increment(1)); // Logs 'Increment called' and 1\n * console.log(counter.increment(1)); // Logs 1 without calling increment again\n * ```\n */\nexport function Pure<T>(_target: object, propertyKey: string, { get, enumerable, value }: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> {\n if (get) {\n return {\n enumerable,\n get(): T {\n const value = get.call(this);\n\n Object.defineProperty(this, propertyKey, { enumerable, value });\n\n return value;\n },\n };\n }\n\n if (typeof value !== 'function') {\n throw new Error('@Pure decorator can only be applied to functions or getters!');\n }\n\n const originalValue = value;\n\n return {\n enumerable,\n get(): T {\n let previousArgs: readonly unknown[] = [];\n let wasCalled = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure = wasCalled && previousArgs.length === args.length && args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalValue.apply(this, args);\n wasCalled = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, { value: patched });\n\n return patched as unknown as T;\n },\n };\n}\n","import { TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\n/**\n * Checks if the given value is a `ViewContainerRef`.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is ViewContainerRef} `true` if the value is a `ViewContainerRef`, otherwise `false`.\n */\nexport function isViewContainer(value: unknown): value is ViewContainerRef {\n return isFunction((value as ViewContainerRef)?.createComponent);\n}\n\n/**\n * Checks if the given value is a `TemplateRef`.\n *\n * @template T - The embedded view type.\n * @param {unknown} value - The value to check.\n * @returns {value is TemplateRef<T>} `true` if the value is a `TemplateRef`, otherwise `false`.\n */\nexport function isTemplateRef<T = unknown>(value: unknown): value is TemplateRef<T> {\n return value instanceof TemplateRef;\n}\n\n/**\n * Checks if the given value is an Angular component class.\n *\n * @template T - The component class type.\n * @param {unknown} value - The value to check.\n * @returns {value is Type<T>} `true` if the value is a component class, otherwise `false`.\n */\nexport function isComponent<T = unknown>(value: unknown): value is Type<T> {\n return isFunction(value);\n}\n\n/**\n * Checks if the given value is a string.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is string} `true` if the value is a string, otherwise `false`.\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\n/**\n * Checks if the given value is a non-empty string.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is string} `true` if the value is a non-empty string, otherwise `false`.\n */\nexport function isNonEmptyString(value: unknown): value is string {\n return isString(value) && value.length > 0;\n}\n\n/**\n * Checks if the given value is a boolean.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is boolean} `true` if the value is a boolean, otherwise `false`.\n */\nexport function isBoolean(value: unknown): value is boolean {\n return value === true || value === false;\n}\n\n/**\n * Checks if the given value is a function.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is CallableFunction} `true` if the value is a function, otherwise `false`.\n */\nexport function isFunction(value: unknown): value is CallableFunction {\n return typeof value === 'function';\n}\n\n/**\n * Checks if the given value is present (not null or undefined).\n *\n * @template T - The value type.\n * @param {T | null | undefined} value - The value to check.\n * @returns {value is NonNullable<T>} `true` if the value is present, otherwise `false`.\n */\nexport function isPresent<T>(value: T | null | undefined): value is NonNullable<T> {\n return value !== null && value !== undefined;\n}\n\n/**\n * Checks if the given value is a number.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is number} `true` if the value is a number, otherwise `false`.\n */\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import { Subscriber } from 'rxjs';\nimport { isNumber, isString } from './type-guards';\n\n/**\n * Applies a set of CSS styles to an HTML element.\n *\n * @param {HTMLElement} element - The element to apply styles to.\n * @param {Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>} styles - An object containing CSS properties and values to apply.\n */\nexport function applyStyles(element: HTMLElement, styles: Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>): void {\n Object.assign(element.style, styles);\n}\n\n/**\n * Converts a boolean value to a corresponding attribute string.\n *\n * @param {boolean} state - The boolean state to convert.\n * @returns {string} 'true' if the state is true; otherwise, 'false'.\n */\nexport function booleanToAttributeString(state: boolean): string {\n return booleanToOptionalAttributeString(state) ?? 'false';\n}\n\n/**\n * Converts a boolean value to 'true' or null, useful for setting attributes based on boolean conditions.\n *\n * @param {boolean} state - The boolean state to convert.\n * @returns {string | null} 'true' if the state is true; otherwise, null.\n */\nexport function booleanToOptionalAttributeString(state: boolean): string | null {\n return state ? 'true' : null;\n}\n\n/**\n * Converts a numeric value to a pixel string, appending 'px' to the number.\n *\n * @param {unknown} value - The value to convert to pixels.\n * @returns {`${number}px`} The value in pixels, or '0px' if the input is not a number.\n */\nexport function px(value: unknown): `${number}px` {\n return isNumber(value) ? `${value}px` : '0px';\n}\n\n/**\n * Generates a CSS translate3d string for given x and y values.\n *\n * @param {string | 0} x - The translation value along the x-axis.\n * @param {string | 0} y - The translation value along the y-axis.\n * @returns {`translate3d(${string | 0}, ${string | 0}, 0)`} The CSS translate3d value.\n */\nexport function cssTranslate(x: string | 0, y: string | 0): `translate3d(${string | 0}, ${string | 0}, 0)` {\n return `translate3d(${x}, ${y}, 0)`;\n}\n\n/**\n * Disables or re-enables CSS transitions on an element.\n *\n * @param {HTMLElement} element - The element to modify.\n * @param {boolean} disabled - Whether to disable CSS transitions.\n */\nexport function disableCSSTransitions(element: HTMLElement, disabled: boolean): void {\n if (disabled) {\n applyStyles(element, { transition: 'none' });\n } else {\n forceLayoutReflow(element);\n applyStyles(element, { transition: null });\n }\n}\n\n/**\n * Forces the browser to reflow the layout, useful for triggering CSS transitions or animations.\n *\n * @param {HTMLElement} element - The element to force a reflow on.\n */\nexport function forceLayoutReflow(element: HTMLElement): number {\n return element.offsetHeight;\n}\n\n/**\n * Sets an attribute on an HTML element, converting the value to a string if necessary.\n *\n * @param {HTMLElement} element - The element to set the attribute on.\n * @param {string} attribute - The name of the attribute to set.\n * @param {unknown} value - The value of the attribute; will be converted to a string if it's not null or undefined.\n */\nexport function setAttribute(element: HTMLElement, attribute: string, value?: unknown) {\n if (isString(value) || isNumber(value)) {\n element.setAttribute(attribute, value.toString());\n } else {\n element.toggleAttribute(attribute, !!value);\n }\n}\n\n/**\n * Creates a ResizeObserver instance safely, falling back to a dummy if the API is not supported.\n *\n * @param {ResizeObserverCallback} callback - The callback to execute when an observed element's size changes.\n * @returns {ResizeObserver} A ResizeObserver instance or a dummy object with no-op methods if unsupported.\n */\nexport function createResizeObserver(callback: ResizeObserverCallback): ResizeObserver {\n try {\n return new ResizeObserver(callback);\n } catch {\n return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };\n }\n}\n\n/**\n * Creates a MutationObserver instance safely, falling back to a dummy if the API is not supported.\n *\n * @param {Subscriber<MutationRecord>} observer - The RxJS Subscriber to emit next values to.\n * @param {(mutations: MutationRecord[]) => boolean} callback - The callback that determines whether to notify the observer based on mutations.\n * @returns {MutationObserver} A MutationObserver instance or a dummy object with no-op methods if unsupported.\n */\nexport function createMutationObserver(observer: Subscriber<MutationRecord>, callback: (mutations: MutationRecord[]) => boolean): MutationObserver {\n try {\n return new MutationObserver((mutations) => {\n if (callback(mutations)) {\n observer.next(mutations[0]);\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n return { disconnect: () => void 0, observe: () => void 0, takeRecords: () => [] };\n }\n}\n\n/**\n * Checks whether one element contains another in the DOM tree.\n *\n * @param {Element | null} parent - The parent element.\n * @param {Element | null} other - The element to check for containment.\n * @param {boolean} [inclusive=true] - Whether to consider an element as containing itself.\n * @returns {boolean} True if the parent contains the other element; false otherwise.\n */\nexport function containsElement(parent?: Element | null, other?: Element | null, inclusive = true): boolean {\n if (!parent || !other) return false;\n if (!inclusive && parent === other) return false;\n return parent.contains(other);\n}\n","import { DestroyRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MonoTypeOperatorFunction } from 'rxjs';\n\n/**\n * Creates a MonoTypeOperatorFunction that automatically unsubscribes from observables when the host component or service is destroyed.\n * It uses Angular's `DestroyRef` to detect when the component or service is destroyed and triggers the unsubscription at that point.\n * This utility function helps in managing subscriptions and prevents memory leaks by ensuring observables are unsubscribed when no longer needed.\n *\n * @returns A function that returns a `MonoTypeOperatorFunction<T>`, which can be used in an RxJS pipe to automatically unsubscribe\n * based on the component's or service's lifecycle.\n *\n * @example\n * ```ts\n * // In an Angular component or service\n * import { Component } from '@angular/core';\n * import { Observable } from 'rxjs';\n * import { untilDestroyed } from './path/to/untilDestroyed';\n *\n * @Component({\n * selector: 'app-example',\n * template: `<div>Example Component</div>`,\n * })\n * export class ExampleComponent {\n * private readonly takeUntilDestroyed = untilDestroyed();\n *\n * constructor() {\n * const exampleObservable$ = new Observable(observer => {\n * // Observable logic here\n * });\n *\n * exampleObservable$.pipe(\n * this.takeUntilDestroyed(),\n * ).subscribe(data => {\n * // Subscription logic here\n * });\n * }\n *\n * // No need to manually implement ngOnDestroy to unsubscribe\n * }\n * ```\n */\nexport function untilDestroyed(): <T>() => MonoTypeOperatorFunction<T> {\n const destroyRef = inject(DestroyRef);\n\n return () => takeUntilDestroyed(destroyRef);\n}\n","import { ElementRef, inject } from '@angular/core';\nimport { MonoTypeOperatorFunction, Observable, tap } from 'rxjs';\nimport { setAttribute } from './dom';\nimport { untilDestroyed } from './until-destroyed';\n\nfunction reactiveBinding<T>(updateFn: (state: unknown) => void): MonoTypeOperatorFunction<T> {\n const takeUntilDestroyed = untilDestroyed();\n\n return (source$: Observable<T>) =>\n source$.pipe(\n tap((state) => updateFn(state)),\n takeUntilDestroyed(),\n );\n}\n\n/**\n * Binds an observable to toggle a CSS class on the host element based on the truthiness of the emitted values.\n * The subscription automatically ends when the component is destroyed.\n *\n * @template T The type of items emitted by the source observable.\n * @param {Observable<T> | null | undefined} source$ The observable source emitting truthy or falsy values.\n * @param {string} cssClass The CSS class to toggle based on the emitted values.\n */\nexport function reactiveClassBinding<T>(source$: Observable<T> | null | undefined, cssClass: string): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$.pipe(reactiveBinding((state) => nativeElement.classList.toggle(cssClass, !!state))).subscribe();\n }\n}\n\n/**\n * Binds an observable to update attributes on the host element with the emitted values.\n * The subscription automatically ends when the component is destroyed.\n *\n * @template T The type of items emitted by the source observable.\n * @param {Observable<T> | null | undefined} source$ The observable source.\n * @param {...string[]} attributes The attributes to set on the host element based on the emitted values.\n */\nexport function reactiveAttributeBinding<T>(source$: Observable<T> | null | undefined, ...attributes: string[]): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$\n .pipe(\n reactiveBinding((value) => {\n for (const attribute of attributes) {\n setAttribute(nativeElement, attribute, value);\n }\n }),\n )\n .subscribe();\n }\n}\n\n/**\n * Injects the ElementRef of the host element in an Angular component or directive.\n *\n * @template T The expected type of the native element.\n * @returns {ElementRef<T>} The injected ElementRef instance.\n */\nexport function injectElement<T = HTMLElement>(): ElementRef<T> {\n return inject<ElementRef<T>>(ElementRef);\n}\n","/**\n * Waits for all animations on the given element (and optionally its descendants) to finish.\n *\n * @param {Element|null} [element] - The DOM element to check for animations. If not provided or invalid, the function resolves to an empty array.\n * @param {boolean} [subtree=false] - Whether to include animations from child elements (subtree) of the given element.\n * @returns {Promise<Animation[]>} A promise that resolves with an array of finished animations or an empty array if no animations are found.\n *\n * @example\n * // Wait for animations on a specific element and its subtree to complete\n * waitForAnimations(document.querySelector('.my-element'), true).then(() => {\n * console.log('All animations are finished');\n * });\n */\nexport async function waitForAnimations(element?: Element | null, subtree = false): Promise<Animation[]> {\n if (!element || typeof element.getAnimations !== 'function') {\n return [];\n }\n\n return Promise.all(element.getAnimations({ subtree }).map((animation) => animation.finished)).catch(() => []);\n}\n","import { isNumber, isString } from './type-guards';\n\n/**\n * Extracts the values of a specified key from each object in an array.\n *\n * @template T - The type of the objects in the array.\n * @template K - The type of the keys of `T`.\n * @param {T[]} arr - The array of objects to pluck values from.\n * @param {K} key - The key whose values are to be plucked from each object in the array.\n * @returns {Array<T[K]>} An array of values corresponding to the specified key from each object.\n * @example\n * ```ts\n * const users = [{ name: 'Alice' }, { name: 'Bob' }];\n * const names = pluckFromArray(users, 'name'); // ['Alice', 'Bob']\n * ```\n */\nexport function pluckFromArray<T, K extends keyof T>(arr: T[], key: K): Array<T[K]> {\n return arr.map((value) => value[key]);\n}\n\nexport type OrderByDirection = 'ASC' | 'DESC';\n\n/**\n * Creates a compare function for sorting an array of objects based on a specified key and direction.\n *\n * @template T - The type of the objects in the array.\n * @param {keyof T} key - The key to sort by.\n * @param {OrderByDirection} [direction='ASC'] - The direction to sort ('ASC' for ascending, 'DESC' for descending).\n * @returns {(a: T, b: T) => number} A compare function that can be used in the array sort method.\n * @example\n * ```ts\n * const items = [{ value: 10 }, { value: 5 }, { value: 7 }];\n * const sortedItems = items.sort(orderBy('value', 'ASC')); // Sorted by value in ascending order\n * ```\n */\nexport function orderBy<T>(key: keyof T, direction: OrderByDirection = 'ASC'): (a: T, b: T) => number {\n return (a, b) => {\n const leftValue = direction === 'ASC' ? a[key] : b[key];\n const rightValue = direction === 'ASC' ? b[key] : a[key];\n if (leftValue === undefined) {\n return -1;\n }\n if (rightValue === undefined) {\n return -1;\n }\n if (isNumber(leftValue) && isNumber(rightValue)) {\n return leftValue - rightValue;\n }\n if (isString(leftValue) && isString(rightValue)) {\n return leftValue.toLowerCase().localeCompare(rightValue.toLowerCase());\n }\n return 0;\n };\n}\n","/**\n * Constructs a URL string from provided segments, ensuring proper slash separation without duplications.\n * It gracefully handles `null`, `undefined`, and symbol values by omitting them from the final URL.\n * Additionally, the function preserves the protocol part of the URL, if specified.\n *\n * @param {...Array<string | number | symbol | null | undefined>} args - The segments to concatenate into a URL.\n * Can be a mix of strings, numbers, symbols (converted to strings), or `null`/`undefined` (which are omitted).\n * @returns {string} The constructed URL string with correctly formatted slashes.\n *\n * @example\n * ```ts\n * // Basic usage\n * console.log(buildUrl('http://example.com', 'path', 'to', 'resource'));\n * // Outputs: \"http://example.com/path/to/resource\"\n *\n * // Removing duplicate slashes\n * console.log(buildUrl('http://example.com/', '/path/', '//to', '/resource/'));\n * // Outputs: \"http://example.com/path/to/resource/\"\n * ```\n */\nexport function buildUrl(...args: Array<string | number | symbol | null | undefined>): string {\n return args.join('/').replace(/(^.*)(https?:\\/\\/)|(\\/)+/g, '$2$3');\n}\n","import { buildUrl } from './build-url';\n\n/**\n * A constant representing the base URL for the Draeger website.\n * @constant\n * @type {string}\n * @default 'https://www.draeger.com'\n */\nexport const DRAEGER_WEBSITE_URL = 'https://www.draeger.com';\n\n/**\n * Constructs a full URL for the Draeger website by appending the provided path segments to the base URL.\n * This function is a utility for creating fully qualified URLs to various resources or pages within the Draeger website.\n *\n * @function buildWebsiteUrl\n * @param {...(string | number | symbol | null | undefined)} segments - The path segments to append to the base URL.\n * These can include strings, numbers, symbols, or null/undefined values (the latter two are ignored).\n * @returns {string} The fully constructed URL, including the base URL and all provided path segments.\n *\n * @example\n * ```ts\n * // Returns 'https://www.draeger.com/about-us'\n * const url = buildWebsiteUrl('about-us');\n *\n * // Can also handle multiple segments, returning 'https://www.draeger.com/products/search/123'\n * const productUrl = buildWebsiteUrl('products', 'search', 123);\n * ```\n */\nexport function buildWebsiteUrl(...segments: Array<string | number | symbol | null | undefined>): string {\n return buildUrl(DRAEGER_WEBSITE_URL, ...segments);\n}\n","/**\n * The HTTP 'Etag' header, used for web cache validation.\n */\nexport const HTTP_ETAG_HEADER = 'Etag';\n\n/**\n * The HTTP 'If-None-Match' header, used in conditional requests to compare against the ETag.\n */\nexport const HTTP_IF_NONE_MATCH_HEADER = 'If-None-Match';\n\n/**\n * The HTTP 'Cache-Control' header, used to specify directives for caching mechanisms in requests and responses.\n */\nexport const HTTP_CACHE_CONTROL_HEADER = 'Cache-Control';\n\n/**\n * A client for managing cache storage for web applications. It simplifies interactions with the Cache Storage API,\n * allowing for the caching, retrieval, and deletion of request responses. This class uses HTTP caching headers to\n * optimize network requests and cache management.\n *\n * @example\n * ```ts\n * // Creating an instance of CacheStorageClient\n * const cacheClient = new CacheStorageClient('my-cache');\n *\n * // Requesting and caching data\n * cacheClient.request('https://api.example.com/data').then(data => {\n * console.log(data);\n * });\n *\n * // Deleting a specific cache entry\n * cacheClient.delete('https://api.example.com/data');\n *\n * // Clearing all cache entries\n * cacheClient.deleteAll();\n * ```\n */\nexport class CacheStorageClient {\n constructor(\n private readonly cacheKey: string,\n private readonly cacheStorage = window.caches,\n ) {}\n\n /**\n * Deletes a specific cache entry.\n *\n * @param {RequestInfo | URL} request - The request or URL to delete from the cache.\n * @returns {Promise<boolean>} A promise that resolves to a boolean indicating whether the deletion was successful.\n */\n public async delete(request: RequestInfo | URL): Promise<boolean> {\n const cache = await this.getCache();\n\n return cache.delete(request);\n }\n\n /**\n * Deletes all entries from the cache.\n *\n * @returns {Promise<void>} A promise that resolves when all entries have been deleted.\n */\n public async deleteAll(): Promise<void> {\n const cache = await this.getCache();\n for (const key of await cache.keys()) {\n await cache.delete(key);\n }\n }\n\n /**\n * Performs a request, caching the response if applicable. If a response is cached for the request and still valid,\n * it returns the cached response instead of making a new network request.\n *\n * @template T - The expected response data type.\n * @param {RequestInfo | URL} requestInfo - The request information or URL to fetch and cache.\n * @param {(response: Response) => boolean} [shouldDelete=({ status }) => status >= 400 && status < 500] - An optional function to determine if the cache entry should be deleted based on the response.\n * @returns {Promise<T | null>} A promise that resolves to the response data, or null if the request fails.\n */\n public async request<T>(requestInfo: RequestInfo | URL, shouldDelete = ({ status }: Response) => status >= 400 && status < 500): Promise<T | null> {\n const cache = await this.getCache();\n const request = await this.prepareRequest(cache, requestInfo);\n const response = await this.sendRequest(cache, request);\n if (response && shouldDelete?.(response)) {\n await cache.delete(request);\n }\n return response?.json() ?? null;\n }\n\n protected async getCache(): Promise<Cache> {\n return this.cacheStorage.open(this.cacheKey);\n }\n\n protected async prepareRequest(cache: Cache, requestInfo: RequestInfo | URL): Promise<Request> {\n const cachedResponse = await cache.match(requestInfo);\n const etag = cachedResponse?.headers?.get(HTTP_ETAG_HEADER) ?? null;\n const request = new Request(requestInfo);\n if (etag) {\n request.headers.set(HTTP_IF_NONE_MATCH_HEADER, etag);\n }\n\n return request;\n }\n\n protected async sendRequest(cache: Cache, request: Request): Promise<Response | null> {\n const response = await fetch(request).catch(() => null);\n const cacheControl = response?.headers?.get(HTTP_CACHE_CONTROL_HEADER);\n if (cacheControl === 'no-cache') {\n await cache.delete(request);\n\n return response;\n }\n if (response?.ok) {\n await cache.put(request, response).catch(() => null);\n }\n\n return cache.match(request).then((res) => res ?? null);\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\n\n/**\n * Coerces a value to an array. If the value is already an array, it is returned directly.\n * If the value is not an array, it is wrapped in an array. This utility is useful for\n * handling values that can be either single values or arrays, ensuring consistent array handling.\n *\n * @param {string | string[]} value - The value to coerce to an array. Can be a single string or an array of strings.\n * @returns {string[]} The coerced value as an array of strings.\n *\n * @example\n * ```ts\n * // Coercing a single string to an array\n * console.log(arrayAttribute('singleValue')); // Outputs: ['singleValue']\n *\n * // Returning an array directly\n * console.log(arrayAttribute(['value1', 'value2'])); // Outputs: ['value1', 'value2']\n * ```\n */\nexport function arrayAttribute(value: string | string[]): string[] {\n return coerceArray<string>(value);\n}\n\nexport { coerceArray, coerceCssPixelValue, coerceElement, coerceStringArray } from '@angular/cdk/coercion';\n","/**\n * Creates a debounced function that delays invoking the provided function until after `delay` milliseconds\n * have elapsed since the last time the debounced function was invoked. Optionally, the function can be\n * triggered immediately on the first call, then debounced for subsequent calls.\n *\n * @template Args - A tuple representing the types of arguments the `func` accepts.\n * @param {(...args: Args) => void} func - The function to debounce.\n * @param {number} delay - The number of milliseconds to delay.\n * @param {boolean} [immediate=false] - Whether to trigger the function immediately on the first call,\n * and then debounce subsequent calls.\n * @returns {(...args: Args) => void} A new, debounced function.\n *\n * @example\n * ```ts\n * // Example usage with a window resize event\n * const handleResize = debounce(() => {\n * console.log('Window resized');\n * }, 250);\n * window.addEventListener('resize', handleResize);\n *\n * // Example using immediate invocation\n * const processKeyPress = debounce((event) => {\n * console.log('Key pressed:', event.key);\n * }, 200, true);\n * document.addEventListener('keypress', processKeyPress);\n * ```\n */\nexport function debounce<Args extends unknown[]>(func: (...args: Args) => void, delay: number, immediate = false): (...args: Args) => void {\n let timeout: number | null = null;\n\n return function (this: unknown, ...args: Args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n const callImmediately = immediate && timeout === null;\n if (timeout !== null) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(function () {\n timeout = null;\n if (!callImmediately) {\n func.apply(context, args);\n }\n }, delay) as unknown as number;\n if (callImmediately) {\n func.apply(context, args);\n }\n };\n}\n","/**\n * Defers the execution of a function until the current call stack is clear.\n * This is achieved by using `setTimeout` with a delay of `0`, effectively placing the function\n * at the end of the event queue and allowing the browser to complete any pending tasks before execution.\n *\n * @param {() => void} fn - The function to be deferred.\n *\n * @example\n * ```ts\n * // Deferring a simple function\n * deferFn(() => console.log('This will be logged after the current execution context completes.'));\n *\n * // Using deferFn to update the UI after a synchronous operation\n * function updateUI() {\n * // UI update logic here\n * }\n * // Assume we're inside a synchronous block of code that updates data\n * deferFn(updateUI); // Ensures UI is updated after data changes are fully applied\n * ```\n */\nexport function deferFn(fn: () => void): void {\n setTimeout(fn, 0);\n}\n","let uniqueIdCache: { [key: string]: number } = {};\n\n/**\n * Generates a unique identifier for a given key. If the key has previously been used,\n * the function increments a counter associated with that key to ensure uniqueness.\n * The generated ID is in the format of `${key}-${counter}`.\n *\n * @param {string} key - The key for which to generate a unique identifier.\n * @returns {string} A unique identifier string based on the provided key.\n *\n * @example\n * ```ts\n * const id1 = getUniqueId('component');\n * console.log(id1); // Outputs: \"component-1\"\n *\n * const id2 = getUniqueId('component');\n * console.log(id2); // Outputs: \"component-2\"\n * ```\n */\nexport function getUniqueId(key: string): string {\n uniqueIdCache[key] = (uniqueIdCache[key] ?? 0) + 1;\n\n return `${key}-${uniqueIdCache[key]}`;\n}\n\n/**\n * Clears the cache used by `getUniqueId` to generate unique identifiers. This function\n * resets all counters associated with each key, effectively restarting the generation\n * of unique IDs from their initial state.\n *\n * This can be useful in scenarios such as testing or when starting a new session that\n * requires resetting the state of unique ID generation.\n *\n * @example\n * ```ts\n * getUniqueId('component'); // Returns \"component-1\"\n * getUniqueId('component'); // Returns \"component-2\"\n * clearUniqueIdCache();\n * getUniqueId('component'); // Returns \"component-1\" after cache reset\n * ```\n */\nexport function clearUniqueIdCache(): void {\n uniqueIdCache = {};\n}\n","import { inject, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { injectElement } from './angular';\nimport { getUniqueId } from './get-unique-id';\nimport { isPresent } from './type-guards';\n\n@Injectable()\nexport class EventManager implements OnDestroy {\n private readonly element = injectElement();\n private readonly renderer = inject(Renderer2);\n private readonly listeners: Map<string, () => void> = new Map<string, () => void>();\n\n public destroyListeners(): void {\n this.listeners.forEach((listener: () => void) => {\n if (listener) {\n listener();\n }\n });\n this.listeners.clear();\n }\n\n public destroyListener(listenerReferenceKey: string): void {\n if (this.listeners.has(listenerReferenceKey)) {\n const listenerFn = this.listeners.get(listenerReferenceKey);\n if (listenerFn) {\n listenerFn();\n }\n this.listeners.delete(listenerReferenceKey);\n }\n }\n\n public register<T extends Event = Event>(\n eventNames: Array<string | null>,\n callback: (event?: T) => void,\n target?: 'document' | 'window' | EventTarget | null,\n ): Array<string> {\n return eventNames.filter(isPresent).map((eventName: string) => {\n const listenerFn = this.renderer.listen(target ?? this.element.nativeElement, eventName, (event) => callback(event));\n const id = getUniqueId('registeredEvent');\n this.listeners.set(id, listenerFn);\n return id;\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyListeners();\n }\n\n public getActiveListenersNames(): string[] {\n return Array.from(this.listeners.keys());\n }\n}\n","export type Axis = (typeof Axis)[keyof typeof Axis];\n\nexport const Axis = {\n X: 'x',\n Y: 'y',\n} as const;\n","export type Position = (typeof Position)[keyof typeof Position];\n\nexport const Position = {\n TOP: 'top',\n TOP_START: 'top-start',\n TOP_END: 'top-end',\n\n RIGHT: 'right',\n RIGHT_START: 'right-start',\n RIGHT_END: 'right-end',\n\n BOTTOM: 'bottom',\n BOTTOM_START: 'bottom-start',\n BOTTOM_END: 'bottom-end',\n\n LEFT: 'left',\n LEFT_START: 'left-start',\n LEFT_END: 'left-end',\n} as const;\n","export type Side = (typeof Side)[keyof typeof Side];\n\nexport const Side = {\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n} as const;\n","import { Position, Side } from '../types';\n\n/**\n * Extracts the side part from a position string. The position format generally combines\n * a side (e.g., \"top\", \"bottom\", \"left\", \"right\") with an optional alignment\n * (e.g., \"left\", \"center\", \"right\" for vertical positions or \"top\", \"middle\", \"bottom\" for horizontal positions).\n *\n * @param {Position} position - The position string from which to extract the side.\n * @returns {Side} The side part of the position, indicating the general placement direction.\n *\n * @example\n * ```ts\n * // Extracting the side from a position with alignment\n * console.log(getSide('top-left')); // Outputs: 'top'\n *\n * // Extracting the side from a simple position\n * console.log(getSide('bottom')); // Outputs: 'bottom'\n * ```\n */\nexport function getSide(position: Position): Side {\n return position.split('-')[0] as Side;\n}\n","import { Axis, Position, Side } from '../types';\nimport { getSide } from './get-side';\n\n/**\n * Determines the axis associated with a given position. The function first extracts the side from the position,\n * then evaluates whether that side corresponds to the X-axis (left or right) or the Y-axis (top or bottom).\n *\n * @param {Position} position - The position string, which includes a side (top, bottom, left, right) and possibly an alignment.\n * @returns {Axis} The axis (X or Y) associated with the given position's side.\n *\n * @example\n * ```ts\n * // Determining the axis for different positions\n * console.log(getAxis('top-left')); // Outputs: 'Y'\n * console.log(getAxis('right')); // Outputs: 'X'\n *\n * // Using getAxis in UI element positioning logic\n * const elementPosition = 'bottom';\n * const axis = getAxis(elementPosition);\n * // Assuming a function that adjusts UI elements based on the axis\n * adjustElementAlongAxis(axis);\n * ```\n */\nexport function getAxis(position: Position): Axis {\n const side = getSide(position);\n\n switch (side) {\n case Side.TOP:\n case Side.BOTTOM:\n return Axis.Y;\n case Side.LEFT:\n case Side.RIGHT:\n return Axis.X;\n }\n}\n","/**\n * Extracts the language code from a language string that may include both a language and a region code.\n * The function supports language strings formatted with either a hyphen (`-`) or an underscore (`_`) as the separator.\n *\n * @param {string} language - The complete language string, potentially including both language and region codes.\n * @returns {string} The extracted language code, converted to lower case.\n *\n * @example\n * ```ts\n * // Extracting language code from a language-region string\n * console.log(getLanguageCode('en-US')); // Outputs: 'en'\n * console.log(getLanguageCode('zh_CN')); // Outputs: 'zh'\n *\n * // Handling language codes without region codes\n * console.log(getLanguageCode('fr')); // Outputs: 'fr'\n * ```\n */\nexport function getLanguageCode(language: string): string {\n const [languageCode] = language.split(/-|_/);\n\n return languageCode?.toLowerCase();\n}\n","import { Position, Side } from '../types';\nimport { getSide } from './get-side';\n\n/**\n * Determines the opposite side for a given position. This function is useful for scenarios\n * where you need to dynamically calculate the positioning or alignment opposite to the current one,\n * such as inverting tooltips, popovers, or any UI elements that adjust based on available viewport space.\n *\n * @param {Position} position - The position string, which includes a side and possibly an alignment.\n * @returns {Side} The opposite side relative to the provided position's side.\n *\n * @example\n * ```ts\n * // Getting the opposite side of a given position\n * console.log(getOppositeSide('top-left')); // Outputs: 'bottom'\n * console.log(getOppositeSide('right')); // Outputs: 'left'\n *\n * // Using getOppositeSide to adjust UI elements\n * const currentSide = 'left';\n * const newPosition = getOppositeSide(currentSide);\n * // Assuming an element's position or orientation needs to be dynamically updated\n * updateElementPosition(newPosition);\n * ```\n */\nexport function getOppositeSide(position: Position): Side {\n switch (getSide(position)) {\n case Side.TOP:\n return Side.BOTTOM;\n case Side.RIGHT:\n return Side.LEFT;\n case Side.BOTTOM:\n return Side.TOP;\n case Side.LEFT:\n return Side.RIGHT;\n }\n}\n","import { isString } from './type-guards';\n\n/**\n * Checks if a given value is a valid URL matcher, which can be either a string or a regular expression.\n * This function serves as a type guard to facilitate URL matching operations by verifying the type of the filter.\n *\n * @param {unknown} value - The value to check for being a valid URL matcher.\n * @returns {value is string | RegExp} `true` if the value is a string or RegExp, indicating it can be used for URL matching; otherwise, `false`.\n *\n * @example\n * ```ts\n * // Checking a string URL matcher\n * console.log(isUrlMatcher('https://example.com')); // true\n *\n * // Checking a RegExp URL matcher\n * console.log(isUrlMatcher(/https:\\/\\/example\\.com/)); // true\n *\n * // Checking a non-matcher value\n * console.log(isUrlMatcher(123)); // false\n * ```\n */\nexport function isUrlMatcher(value: unknown): value is string | RegExp {\n return isString(value) || value instanceof RegExp;\n}\n\n/**\n * Determines if a given URL matches a specified filter, which can be either a string or a regular expression.\n * For string filters, the function checks if the URL starts with the filter value. For RegExp filters,\n * it checks if the URL matches the regular expression pattern.\n *\n * @param {string} url - The URL to be checked against the filter.\n * @param {string | RegExp} filter - The filter used to match the URL, which can be a prefix string or a RegExp pattern.\n * @returns {boolean} `true` if the URL matches the filter; otherwise, `false`.\n *\n * @example\n * ```ts\n * // Matching a URL with a string filter\n * console.log(matchUrl('https://example.com/page', 'https://example.com')); // true\n *\n * // Matching a URL with a RegExp filter\n * console.log(matchUrl('https://example.com/page', /example\\.com\\/page/)); // true\n *\n * // A non-matching example\n * console.log(matchUrl('https://example.com/page', 'https://another.com')); // false\n * ```\n */\nexport function matchUrl(url: string, filter: string | RegExp): boolean {\n return isString(filter) ? url.startsWith(filter) : !!url.match(filter);\n}\n","import { GetProperties } from '../types';\n\n/**\n * Represents a typed version of Angular's `SimpleChanges` object, describing the changes to each\n * property of a component or directive. This utility enhances type safety when working with Angular's\n * change detection mechanism by providing specific property types.\n *\n * @template C - The component or directive class.\n * @template Properties - The properties of the component or directive, inferred from `C` by default.\n * @type {Object} - A mapping from property names to change information for each property.\n *\n * @example\n * ```ts\n * interface MyComponent {\n * name: string;\n * age: number;\n * }\n *\n * function ngOnChanges(changes: NgChanges<MyComponent>) {\n * if (changes.name) {\n * console.log('Name changed from', changes.name.previousValue, 'to', changes.name.currentValue);\n * }\n * }\n * ```\n */\nexport type NgChanges<C, Properties = GetProperties<C>> = {\n [Key in keyof Properties]: {\n previousValue: Properties[Key];\n currentValue: Properties[Key];\n firstChange: boolean;\n isFirstChange(): boolean;\n };\n};\n\n/**\n * Checks if the specified property or properties have changed in the current change detection cycle.\n * Optionally ignores changes that occur during the first change detection cycle (e.g., initialization).\n *\n * @template U - The component or directive class.\n * @template T - The type representing the changes, typically `NgChanges<U>`.\n * @template K - The key or keys representing the properties to check for changes.\n * @param {T} changes - The `NgChanges` object containing information about all changes.\n * @param {K | K[]} keyOrKeys - The property name(s) to check for changes.\n * @param {boolean} [ignoreFirstChange=true] - Whether to ignore changes that occur during the first change detection cycle.\n * @returns {boolean} `true` if the specified property or properties have changed, otherwise `false`.\n *\n * @example\n * ```ts\n * // Example usage within an Angular component's `ngOnChanges` method\n * ngOnChanges(changes: NgChanges<MyComponent>): void {\n * if (hasChanged(changes, 'name')) {\n * console.log('Name has changed');\n * }\n * }\n *\n * // Checking multiple properties for changes\n * ngOnChanges(changes: NgChanges<MyComponent>): void {\n * if (hasChanged(changes, ['name', 'age'], false)) {\n * console.log('Name or age has changed (including first change)');\n * }\n * }\n * ```\n */\nexport function hasChanged<U extends Record<string, unknown>, T extends NgChanges<U>, K extends keyof T>(\n changes: T,\n keyOrKeys: K | K[],\n ignoreFirstChange = true,\n): boolean {\n if (Array.isArray(keyOrKeys)) {\n for (const key of keyOrKeys) {\n if (hasChanged(changes, key, ignoreFirstChange)) {\n return true;\n }\n }\n return false;\n } else {\n return keyOrKeys in changes && (!ignoreFirstChange || !changes[keyOrKeys]?.isFirstChange());\n }\n}\n","import { FactoryProvider, inject, InjectionToken, Type, ValueProvider } from '@angular/core';\n\nimport { deepmerge } from '@odx/angular/internal';\n\ninterface ConfigFactoryProvider<T, D extends ConfigDependencies> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: { [I in keyof D]: D[I] extends Type<unknown> ? InstanceType<D[I]> : D[I] extends InjectionToken<unknown> ? any : never }) => T;\n deps?: [...D];\n}\n\nexport type ConfigDependencies<T = unknown> = ReadonlyArray<Type<T> | InjectionToken<T>>;\nexport type ConfigProvider<T = unknown, D extends ConfigDependencies = []> = ConfigFactoryProvider<T, D> | T;\nexport type ConfigTransformFn<T = unknown> = (config: Partial<T>) => Partial<T>;\n\n/**\n * Provides a configuration object or a factory for creating the configuration object, optionally applying a transformation function.\n * This utility simplifies the process of defining and injecting configuration objects throughout an Angular application.\n *\n * @template T - The type of the configuration object.\n * @template D - The dependencies required by the configuration factory, if any.\n * @param {InjectionToken<T> | string} token - The injection token or string token associated with the configuration.\n * @param {ConfigProvider<T, D>} config - The configuration object or a factory provider that produces the configuration.\n * @param {ConfigTransformFn<T>} [transform=() => ({}))] - An optional transformation function to apply to the configuration object.\n * @returns {FactoryProvider | ValueProvider} - An Angular provider object for the given configuration.\n *\n * @example\n * ```ts\n * // Define a simple configuration object\n * const appConfig = { apiEndpoint: 'https://api.example.com' };\n *\n * // Provide the configuration with an optional transformation function\n * provideConfig(appConfigToken, appConfig, (config) => ({\n * ...config,\n * apiEndpoint: `${config.apiEndpoint}/v2`,\n * }));\n *\n * // Using a factory provider for dynamic configuration\n * provideConfig(appConfigToken, {\n * useFactory: (envService) => ({ apiEndpoint: envService.getApiEndpoint() }),\n * deps: [EnvironmentService],\n * });\n * ```\n */\nexport function provideConfig<T extends object, D extends ConfigDependencies = ConfigDependencies>(\n token: InjectionToken<T> | string,\n config: ConfigProvider<T, D>,\n transform: ConfigTransformFn<T> = () => ({}),\n): FactoryProvider | ValueProvider {\n const prepareConfig = (value: Partial<T>) => deepmerge(value, transform(value));\n if ('useFactory' in config) {\n return {\n provide: token,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: unknown[]) => prepareConfig(config.useFactory(...(args as any))),\n deps: config.deps,\n };\n }\n\n return {\n provide: token,\n useFactory: () => prepareConfig(config),\n };\n}\n\nfunction mergeConfig<T>(token: InjectionToken<Partial<T>>, defaultValue: T): Partial<T> {\n const config = inject(token);\n const parentConfig = inject(token, { skipSelf: true, optional: true }) ?? {};\n\n return deepmerge(defaultValue, parentConfig, config) as T;\n}\n\n/**\n * Generates a set of configuration-related tokens and utility functions for managing configuration in an Angular application.\n * This function creates a standardized way to define, provide, and inject configurations, including defaults and transformations.\n *\n * @template T - The type of the configuration object.\n * @template N - The name of the configuration, used to generate token names and utility functions.\n * @param {N} name - The name of the configuration.\n * @param {string} prefix - A prefix for the injection token to ensure uniqueness across the application.\n * @param {T} defaultValue - The default value for the configuration.\n * @param {ConfigTransformFn<T>} [transform] - An optional transformation function to be applied to the configuration.\n * @returns An object containing the generated injection token, default configuration, and utility functions for the configuration.\n *\n * @example\n * ```ts\n * // Create configuration tokens and utilities for \"appConfig\" with a default value and optional transform function\n * const { appConfigConfig, provideAppConfigConfig } = createConfigTokens('appConfig', 'myPrefix', { debug: false }, (config) => ({\n * ...config,\n * debug: true, // Enable debug mode by default\n * }));\n *\n * // Later, in a module or component, provide the customized configuration\n * @NgModule({\n * providers: [provideAppConfigConfig({ apiEndpoint: 'https://api.example.com' })]\n * })\n * class AppModule {}\n * ```\n */\nexport function createConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T, transform?: ConfigTransformFn<T>) {\n type ConfigProviderFn = <D extends ConfigDependencies = ConfigDependencies<Partial<T>>>(\n config: ConfigProvider<Partial<T>, D>,\n ) => FactoryProvider | ValueProvider;\n const configName = `${name}Config` as const;\n const defaultConfigName = `${name}DefaultConfig` as const;\n const injectConfigName = `inject${name}Config` as const;\n const provideConfigName = `provide${name}Config` as const;\n const tokenName = `${prefix}::${configName}`;\n const token = new InjectionToken<Partial<T>>(tokenName, { providedIn: 'root', factory: () => defaultValue });\n\n return {\n [configName]: token,\n [defaultConfigName]: defaultValue,\n [injectConfigName]: () => mergeConfig(token, defaultValue),\n [provideConfigName]: ((config) => provideConfig(token, config, transform)) as ConfigProviderFn,\n } as Record<typeof configName, InjectionToken<Partial<T>>> &\n Record<typeof defaultConfigName, T> &\n Record<typeof injectConfigName, () => T> &\n Record<typeof provideConfigName, ConfigProviderFn>;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { concatAll, distinctUntilChanged, filter, map, share, shareReplay, startWith } from 'rxjs/operators';\nimport { isNumber, isString } from './type-guards';\n\ntype QueueItemId = string | number;\ntype QueueItem<T> = T & { id: QueueItemId };\ntype QueueEventType = 'remove' | 'add' | 'update';\ntype QueueEvent<T> = { items: QueueItem<T>[]; type: QueueEventType };\n\nfunction isQueueItemId(value: unknown): value is QueueItemId {\n return isString(value) || isNumber(value);\n}\n\n/**\n * A class representing a queue structure with advanced functionalities including adding, removing,\n * updating items, and observing changes through RxJS observables. It supports generic queue item types,\n * allowing for flexible usage across different contexts.\n *\n * @template T - The type of items stored in the queue. Each item must extend an object containing a unique `id`.\n */\nexport class Queue<T> {\n private readonly queue = new Map<string, QueueItem<T>>();\n private readonly events$$ = new Subject<QueueEvent<T>>();\n private values: QueueItem<T>[] = [];\n private firstItem: QueueItem<T> | null = null;\n private lastItem: QueueItem<T> | null = null;\n\n /**\n * An observable that emits when an item is added to the queue.\n *\n * @type {Observable<T>}\n */\n public readonly onAdd$ = this.createEventObserver('add');\n\n /**\n * An observable that emits when an item in the queue is updated.\n *\n * @type {Observable<T>}\n */\n public readonly onUpdate$ = this.createEventObserver('update');\n\n /**\n * An observable that emits when an item is removed from the queue.\n *\n * @type {Observable<T>}\n */\n public readonly onRemove$ = this.createEventObserver('remove');\n\n /**\n * An observable representing the current state of the queue as an array of items.\n *\n * @type {Observable<QueueItem<T>[]>}\n */\n public readonly value$ = this.events$$.pipe(\n startWith(() => void 0),\n map(() => this.values),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n /**\n * An observable that emits the current size of the queue.\n *\n * @type {Observable<number>}\n */\n public readonly size$ = this.value$.pipe(\n map(() => this.size),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n /**\n * Gets the size of the queue.\n *\n * @returns {number} - The number of elements in the queue.\n */\n public get size(): number {\n return this.queue.size;\n }\n\n /**\n * Checks if the specified item is the first item in the queue.\n *\n * @param {QueueItem<T>} item - The item to check.\n * @returns {boolean} - Returns `true` if the item is the first item in the queue, `false` otherwise.\n */\n public isFirst({ id }: QueueItem<T>): boolean {\n return this.firstItem?.id === id;\n }\n\n /**\n * Checks if the specified item is the last item in the queue.\n *\n * @param {QueueItem<T>} item - The item to check.\n * @returns {boolean} - Returns true if the item is the last item, otherwise returns false.\n */\n public isLast({ id }: QueueItem<T>): boolean {\n return this.lastItem?.id === id;\n }\n\n /**\n * Retrieves a queue item from the queue based on the provided item or item ID.\n *\n * @param {QueueItem<T> | QueueItemId} itemOrId - The queue item or item ID to retrieve.\n * @returns {QueueItem<T> | null} - The queue item if found, or `null` if not found.\n */\n public get(itemOrId: QueueItem<T> | QueueItemId): QueueItem<T> | null {\n const id = isQueueItemId(itemOrId) ? itemOrId.toString() : itemOrId.id.toString();\n\n return this.queue.get(id) ?? null;\n }\n\n /**\n * Adds an item to the queue, optionally emitting an event.\n *\n * @param {QueueItem<T>} item - The item to add.\n * @param {boolean} [emitEvent=true] - Whether to emit an event for this action.\n * @returns {QueueItem<T>} The item added to the queue.\n */\n public add(item: QueueItem<T>, emitEvent = true): QueueItem<T> {\n this.remove(item, false);\n\n return this.addMany([item], emitEvent)[0];\n }\n\n /**\n * Adds multiple items to the queue.\n *\n * @param {Array<QueueItem<T>>} items - An array of items to be added to the queue.\n * @param {boolean} emitEvent - (Optional) A boolean indicating whether to emit an event after adding the items. Default is true.\n * @returns {Array<QueueItem<T>>} An array of added items.\n */\n public addMany(items: Array<QueueItem<T>>, emitEvent = true): Array<QueueItem<T>> {\n const addedItems = [];\n const updatedItems = [];\n for (const item of items) {\n if (!this.get(item)) {\n addedItems.push(item);\n } else {\n updatedItems.push(item);\n }\n this.queue.set(item.id.toString(), item);\n }\n if (addedItems.length) {\n this.notify({ type: 'add', items: addedItems }, emitEvent);\n }\n if (updatedItems.length) {\n this.notify({ type: 'update', items: updatedItems }, emitEvent);\n }\n\n return items;\n }\n\n /**\n * Removes an item from the queue.\n *\n * @param {Array<QueueItem<T> | QueueItemId>} itemOrId - The item or ID of the item to be removed.\n * @param {boolean} emitEvent - Whether to emit an event after removing the item. Default is `true`.\n * @returns The removed item, or `null` if the item was not found.\n */\n public remove(itemOrId: QueueItem<T> | QueueItemId, emitEvent = true): QueueItem<T> | null {\n return this.removeMany([itemOrId], emitEvent)[0];\n }\n\n /**\n * Removes multiple items from the queue based on the provided item or item IDs.\n *\n * @param {Array<QueueItem<T> | QueueItemId>} itemOrIds - An array of QueueItem or QueueItemId objects representing the items to be removed.\n * @param {boolean} emitEvent - A boolean indicating whether to emit an event after removing the items. Default is true.\n * @returns {Array<QueueItem<T> | null>} An array of removed QueueItem objects or null values.\n */\n public removeMany(itemOrIds: Array<QueueItem<T> | QueueItemId>, emitEvent = true): Array<QueueItem<T> | null> {\n const items = itemOrIds.map((itemOrId) => this.get(itemOrId)).filter(Boolean) as QueueItem<T>[];\n const removedItems = [];\n for (const item of items) {\n const itemRemoved = this.queue.delete(item.id.toString());\n if (!itemRemoved) continue;\n removedItems.push(item);\n }\n this.notify({ type: 'remove', items: removedItems }, emitEvent);\n\n return items;\n }\n\n /**\n * Clears the queue by removing all items.\n *\n * @param {boolean} emitEvent - Whether to emit an event after clearing the queue. Default is true.\n */\n public clear(emitEvent = true): void {\n const items = this.toArray();\n this.queue.clear();\n this.notify({ type: 'remove', items }, emitEvent);\n }\n\n /**\n * Returns an array representation of the queue.\n *\n * @returns {QueueItem<T>[]} An array containing all the items in the queue.\n */\n public toArray(): QueueItem<T>[] {\n return this.values;\n }\n\n private notify(event: QueueEvent<T>, emitEvent = true): void {\n this.values = Array.from(this.queue, ([_, item]) => item).reverse();\n this.firstItem = this.values[0] ?? null;\n this.lastItem = this.values[this.values.length - 1] ?? null;\n if (!emitEvent) return;\n this.events$$.next(event);\n }\n\n private createEventObserver(type: QueueEventType): Observable<T> {\n return this.events$$.pipe(\n filter((event) => event.type === type),\n map(({ items }) => items),\n concatAll(),\n share(),\n );\n }\n}\n","/**\n * Options for creating a sorter function. Can be used for arrays of objects (with `keyFn`)\n * or arrays of primitives (if `keyFn` is omitted).\n * @template T The type of items to be sorted.\n */\nexport interface SorterOptions<T> {\n sortDirection?: SortDirection;\n locale?: string;\n collatorOptions?: Intl.CollatorOptions;\n /**\n * Optional function to extract the sortable value from an item.\n * If not provided, the item itself is used for comparison (suitable for arrays of primitives).\n * The extracted value should be a string, number, boolean, null, or undefined.\n * @default (item: T) => item\n */\n keyFn?: (item: T) => string | number | boolean | null | undefined;\n}\n\n/**\n * Defines the possible directions for sorting.\n * It is used to specify how elements should be ordered.\n *\n * - `ASC`: Represents \"ascending\" order (e.g., A to Z, 1 to 10).\n * - `DESC`: Represents \"descending\" order (e.g., Z to A, 10 to 1).\n */\nexport type SortDirection = (typeof SortDirection)[keyof typeof SortDirection];\n\n/**\n * Constant object representing the available sort directions.\n * @property {string} ASC - Sort in ascending order.\n * @property {string} DESC - Sort in descending order.\n * @readonly\n */\nexport const SortDirection = {\n ASC: 'asc',\n DESC: 'desc',\n} as const;\n\n/**\n * Handles comparison for null values, assuming undefined has already been handled.\n * - `null` is considered less than any defined (non-null, non-undefined) value.\n * @param valA First value.\n * @param valB Second value.\n * @returns Comparison result (-1, 0, 1) or null if both values are non-null.\n */\nfunction handleNullValues<V>(valA: V, valB: V): number | null {\n const aIsNull = valA === null;\n const bIsNull = valB === null;\n\n if (aIsNull && bIsNull) return 0;\n if (aIsNull) return -1; // valA is null, valB is not -> valA is \"lesser\"\n if (bIsNull) return 1; // valB is null, valA is not -> valA is \"greater\"\n\n return null; // Both are non-null (and non-undefined at this stage of the main sorter)\n}\n\nfunction compareNonNullValues<V>(valA: NonNullable<V>, valB: NonNullable<V>, collator: Intl.Collator): number {\n if (typeof valA === 'string' && typeof valB === 'string') {\n return collator.compare(valA, valB);\n } else if (typeof valA === 'number' && typeof valB === 'number') {\n return valA - valB;\n } else if (typeof valA === 'boolean' && typeof valB === 'boolean') {\n return Number(valA) - Number(valB);\n }\n return collator.compare(String(valA), String(valB));\n}\n\n/**\n * Creates a comparison function suitable for Array.prototype.sort(),\n * based on the provided sort parameters.\n * Uses Intl.Collator for string comparison.\n * Can sort arrays of objects by an extracted value (via `keyFn`) or arrays of primitives directly.\n *\n * Behavior for `null` and `undefined` values (either direct or returned by `keyFn`):\n * - `undefined` values are **always** sorted to the end of the array, regardless of the sort direction.\n * - `null` values are sorted to the beginning of the array for ASC sort.\n * - For DESC sort, `null` values are sorted to the end of the array, but before any `undefined` values.\n *\n * @template T The type of items in the array.\n * @param options Optional sorting options. If `keyFn` is not provided, items are compared directly.\n * @returns A comparison function `(a: T, b: T) => number`.\n */\nexport function createSorter<T>(options?: SorterOptions<T>): (a: T, b: T) => number {\n const { keyFn: userProvidedKeyFn, sortDirection, locale, collatorOptions } = options || {};\n\n if (!sortDirection || !Object.values(SortDirection).includes(sortDirection)) return () => 0;\n\n if (userProvidedKeyFn !== undefined && typeof userProvidedKeyFn !== 'function') {\n console.warn('createSorter: provided keyFn is not a function. Returning a no-op sorter.');\n return () => 0;\n }\n\n // Default keyFn extracts the item itself, suitable for primitives or if T is the sortable value.\n const keyFn = userProvidedKeyFn ?? ((item: T) => item as unknown as string | number | boolean | null | undefined);\n const collator = new Intl.Collator(locale, collatorOptions);\n\n return (itemA: T, itemB: T): number => {\n const valA = keyFn(itemA);\n const valB = keyFn(itemB);\n\n const aIsUndefined = valA === undefined;\n const bIsUndefined = valB === undefined;\n\n if (aIsUndefined && bIsUndefined) return 0;\n if (aIsUndefined) return 1;\n if (bIsUndefined) return -1;\n\n let comparison = 0;\n const nullComparison = handleNullValues(valA, valB);\n\n if (nullComparison !== null) {\n comparison = nullComparison;\n } else {\n comparison = compareNonNullValues(\n valA as NonNullable<string | number | boolean>, // valA is known to be not null/undefined here\n valB as NonNullable<string | number | boolean>, // valB is known to be not null/undefined here\n collator,\n );\n }\n\n return sortDirection === SortDirection.DESC ? comparison * -1 : comparison;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|