@odx/angular 6.0.0 → 6.0.1
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 +7 -0
- package/animations/lib/expand.d.ts +44 -0
- package/animations/lib/fade.d.ts +70 -0
- package/animations/lib/slide.d.ts +21 -0
- package/animations/lib/wait-for-child-animations.d.ts +38 -0
- package/breakpoints/lib/breakpoints.config.d.ts +38 -0
- package/breakpoints/lib/breakpoints.service.d.ts +43 -0
- package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +36 -0
- package/breakpoints/lib/helpers/configure-breakpoint.d.ts +19 -0
- package/cdk/a11y/lib/directives/interactive.directive.d.ts +32 -0
- package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +22 -0
- package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +17 -0
- package/cdk/active-indicator/lib/active-indicator.directive.d.ts +63 -0
- package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -0
- package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -0
- package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +44 -0
- package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +10 -0
- package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +49 -0
- package/cdk/custom-form-control/lib/custom-form-control.d.ts +108 -0
- package/cdk/custom-form-control/lib/input-control.directive.d.ts +75 -0
- package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +25 -0
- package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +30 -0
- package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +22 -0
- package/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.d.ts +22 -0
- package/cdk/dynamic-view/lib/helpers/is-dynamic-view.d.ts +22 -0
- package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +39 -0
- package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +36 -0
- package/cdk/event-plugins/lib/event-plugins.config.d.ts +35 -0
- package/cdk/event-plugins/lib/models/event-plugin.d.ts +57 -0
- package/cdk/event-plugins/lib/plugins/debounce-event-plugin.d.ts +32 -0
- package/cdk/event-plugins/lib/plugins/defer-event-plugin.d.ts +24 -0
- package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +41 -0
- package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +47 -0
- package/cdk/option-control/lib/option-control.d.ts +47 -0
- package/cdk/radio-group-control/lib/radio-control.directive.d.ts +8 -0
- package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +11 -0
- package/components/accordion/lib/accordion.component.d.ts +8 -0
- package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +37 -1
- package/components/accordion/lib/directives/accordion-item-title.d.ts +3 -0
- package/components/action-group/action-group.component.d.ts +6 -0
- package/components/area-header/area-header.component.d.ts +8 -0
- package/components/area-header/directives/area-header-content.directive.d.ts +3 -0
- package/components/area-header/directives/area-header-subtitle.directive.d.ts +3 -0
- package/components/autocomplete/lib/autocomplete.component.d.ts +17 -0
- package/components/avatar/lib/avatar.component.d.ts +8 -0
- package/components/badge/lib/badge.component.d.ts +10 -0
- package/components/badge/lib/badge.directive.d.ts +15 -0
- package/components/bar/lib/bar.component.d.ts +7 -0
- package/components/bar/lib/directives/bar-button.directive.d.ts +3 -0
- package/components/bar/lib/directives/bar-label.directive.d.ts +3 -0
- package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +3 -0
- package/components/button/lib/button.component.d.ts +10 -0
- package/components/button-group/lib/button-group.component.d.ts +15 -0
- package/components/calendar/lib/calendar.component.d.ts +48 -0
- package/components/calendar/lib/calendar.config.d.ts +17 -0
- package/components/calendar/lib/calendar.service.d.ts +48 -0
- package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +24 -0
- package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +6 -0
- package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +6 -0
- package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +6 -0
- package/components/calendar/lib/daterange.service.d.ts +16 -0
- package/components/calendar/lib/directives/calendar-cell.directive.d.ts +37 -0
- package/components/calendar/lib/directives/calendar-view.directive.d.ts +41 -0
- package/components/calendar/lib/pipes/date-label.pipe.d.ts +5 -0
- package/components/calendar/lib/services/calendar-month.service.d.ts +1 -0
- package/components/calendar/lib/services/calendar-year.service.d.ts +1 -0
- package/components/calendar/lib/services/calendar-years.service.d.ts +1 -0
- package/components/calendar/lib/utils/check-cell-in-range.d.ts +1 -0
- package/components/calendar/lib/utils/check-identical-date.d.ts +1 -0
- package/components/calendar/lib/utils/get-A11y-label.d.ts +1 -0
- package/components/calendar/lib/utils/is-date-disabled.d.ts +1 -0
- package/components/calendar/lib/utils/parse-date.d.ts +1 -0
- package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
- package/components/calendar/lib/utils/validate-max-date.d.ts +1 -0
- package/components/calendar/lib/utils/validate-min-date.d.ts +1 -0
- package/components/calendar/lib/utils/validate-next-date-set.d.ts +1 -0
- package/components/calendar/lib/utils/validate-previous-date-set.d.ts +1 -0
- package/components/checkbox/lib/checkbox.component.d.ts +32 -0
- package/components/checkbox/lib/checkbox.validator.d.ts +23 -0
- package/components/chip/lib/components/chip/chip.component.d.ts +14 -0
- package/components/chip/lib/components/chip-list/chip-list.component.d.ts +3 -0
- package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +3 -0
- package/components/circular-progress/lib/circular-progress.component.d.ts +20 -0
- package/components/content-box/lib/content-box.component.d.ts +3 -0
- package/components/content-box/lib/directives/content-box-footer.directive.d.ts +3 -0
- package/components/content-box/lib/directives/content-box-header.directive.d.ts +3 -0
- package/components/datepicker/lib/datepicker.component.d.ts +47 -0
- package/components/datepicker/lib/datepicker.config.d.ts +19 -0
- package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +30 -0
- package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +2 -0
- package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +1 -0
- package/components/daterangepicker/lib/daterangepicker.component.d.ts +89 -0
- package/components/daterangepicker/lib/daterangepicker.config.d.ts +19 -0
- package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +30 -0
- package/components/daterangepicker/lib/range.validator.d.ts +15 -0
- package/components/daterangepicker/lib/required.validator.d.ts +6 -0
- package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +2 -0
- package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +1 -0
- package/components/dropdown/lib/dropdown.component.d.ts +16 -0
- package/components/dropdown/lib/dropdown.directive.d.ts +67 -0
- package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +5 -0
- package/components/error-page/lib/error-page.component.d.ts +7 -0
- package/components/error-page/lib/error-page.config.d.ts +18 -0
- package/components/footer/lib/footer.component.d.ts +9 -6
- package/components/footer/lib/footer.config.d.ts +2 -0
- package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +13 -0
- package/components/form-field/lib/components/form-group/form-group.component.d.ts +16 -0
- package/components/form-field/lib/directives/form-field-control.directive.d.ts +5 -0
- package/components/form-field/lib/directives/form-field-error.directive.d.ts +6 -0
- package/components/form-field/lib/directives/form-field-hint.directive.d.ts +3 -0
- package/components/form-field/lib/directives/form-field-label.directive.d.ts +3 -0
- package/components/form-field/lib/directives/form.directive.d.ts +13 -0
- package/components/form-field/lib/form-field.component.d.ts +20 -0
- package/components/form-field/lib/form-field.service.d.ts +42 -0
- package/components/form-field/lib/services/form-field-error.service.d.ts +24 -0
- package/components/header/lib/directives/header-avatar.directive.d.ts +4 -0
- package/components/header/lib/directives/header-title.directive.d.ts +3 -0
- package/components/header/lib/header.component.d.ts +3 -0
- package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +3 -0
- package/components/header-navigation/lib/header-navigation.component.d.ts +6 -0
- package/components/icon/lib/helpers/unpack-icon-identifier.d.ts +14 -0
- package/components/icon/lib/icon.component.d.ts +24 -0
- package/components/icon/lib/icon.config.d.ts +26 -0
- package/components/inline-message/lib/inline-message.component.d.ts +13 -0
- package/components/link/link.directive.d.ts +3 -0
- package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +6 -0
- package/components/list/lib/components/list-item/list-item.component.d.ts +17 -1
- package/components/list/lib/list.component.d.ts +5 -0
- package/components/loading-spinner/lib/loading-spinner.component.d.ts +8 -0
- package/components/loading-spinner/lib/loading-spinner.directive.d.ts +22 -0
- package/components/logo/logo.directive.d.ts +15 -0
- package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +5 -1
- package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +3 -0
- package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +16 -0
- package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +1 -0
- package/components/main-menu/lib/main-menu.component.d.ts +42 -0
- package/components/main-menu/lib/main-menu.config.d.ts +31 -0
- package/components/main-menu/lib/main-menu.service.d.ts +28 -0
- package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +4 -0
- package/components/menu/lib/directives/menu-item.directive.d.ts +6 -0
- package/components/menu/lib/menu.component.d.ts +13 -1
- package/components/menu/lib/menu.directive.d.ts +31 -0
- package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +14 -0
- package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +3 -0
- package/components/modal/lib/components/modal-header/modal-header.component.d.ts +9 -0
- package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +21 -0
- package/components/modal/lib/directives/modal-close.directive.d.ts +25 -1
- package/components/modal/lib/directives/modal-content.directive.d.ts +3 -0
- package/components/modal/lib/directives/modal-dismiss.directive.d.ts +18 -1
- package/components/modal/lib/helpers/inject-modal-ref.d.ts +21 -0
- package/components/modal/lib/helpers/provide-modal-ref.d.ts +9 -0
- package/components/modal/lib/modal.component.d.ts +25 -0
- package/components/modal/lib/modal.config.d.ts +33 -0
- package/components/modal/lib/modal.directive.d.ts +29 -0
- package/components/modal/lib/modal.service.d.ts +54 -0
- package/components/modal/lib/models/modal-ref.d.ts +34 -0
- package/components/navigation-back/lib/navigation-back.component.d.ts +3 -0
- package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -2
- package/components/notification/lib/directives/notification-center.directive.d.ts +18 -4
- package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +1 -0
- package/components/notification/lib/helpers/sort-notifications.d.ts +1 -0
- package/components/notification/lib/helpers/to-notification-collection.d.ts +1 -0
- package/components/notification/lib/models/notification-feature.d.ts +15 -0
- package/components/notification/lib/notification.config.d.ts +54 -0
- package/components/notification/lib/notification.logger.d.ts +1 -0
- package/components/notification/lib/notification.service.d.ts +55 -0
- package/components/notification/lib/notification.tokens.d.ts +3 -0
- package/components/notification/lib/services/notification-center.service.d.ts +9 -0
- package/components/paginator/lib/paginator.component.d.ts +89 -0
- package/components/paginator/lib/paginator.config.d.ts +24 -2
- package/components/progress/lib/progress.component.d.ts +15 -0
- package/components/radio-group/lib/radio-group.component.d.ts +11 -0
- package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +19 -0
- package/components/rail-navigation/lib/rail-navigation.component.d.ts +26 -0
- package/components/rich-list/lib/components/rich-list-content/rich-list-content.component.d.ts +4 -0
- package/components/rich-list/lib/components/rich-list-header/rich-list-header.component.d.ts +4 -0
- package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +9 -1
- package/components/rich-list/lib/rich-list.component.d.ts +9 -2
- package/components/select/lib/components/select-option/select-option.component.d.ts +39 -2
- package/components/select/lib/directives/select-input-control.directive.d.ts +11 -0
- package/components/select/lib/pipes/select-search-filter.pipe.d.ts +10 -0
- package/components/select/lib/select.component.d.ts +59 -0
- package/components/slider/lib/slider.directive.d.ts +19 -0
- package/components/spinbox/lib/spinbox.component.d.ts +16 -0
- package/components/switch/lib/switch.component.d.ts +10 -0
- package/components/switch/lib/switch.validator.d.ts +12 -0
- package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +28 -0
- package/components/tab-bar/lib/tab-bar.component.d.ts +69 -0
- package/components/table/lib/components/check-cell/check-cell.component.d.ts +18 -0
- package/components/table/lib/components/header-title/header-title.component.d.ts +33 -1
- package/components/table/lib/directives/table-cell.directive.d.ts +4 -0
- package/components/table/lib/directives/table-row.directive.d.ts +4 -0
- package/components/table/lib/table.component.d.ts +36 -0
- package/components/timepicker/lib/timepicker.component.d.ts +11 -2
- package/components/timepicker/lib/utils/generate-time-stamps.d.ts +2 -1
- package/components/timepicker/lib/utils/ngx-mask-helper.d.ts +2 -2
- package/components/toast/lib/toast.config.d.ts +26 -0
- package/components/toast/lib/toast.service.d.ts +35 -0
- package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +11 -0
- package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +12 -0
- package/components/tooltip/lib/tooltip.component.d.ts +20 -0
- package/components/tooltip/lib/tooltip.directive.d.ts +35 -0
- package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +34 -0
- package/components/wizard/lib/wizard.component.d.ts +20 -0
- package/esm2022/animations/lib/expand.mjs +45 -1
- package/esm2022/animations/lib/fade.mjs +71 -1
- package/esm2022/animations/lib/slide.mjs +22 -1
- package/esm2022/animations/lib/wait-for-child-animations.mjs +39 -1
- package/esm2022/breakpoints/lib/breakpoints.config.mjs +39 -1
- package/esm2022/breakpoints/lib/breakpoints.service.mjs +44 -1
- package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +37 -1
- package/esm2022/breakpoints/lib/helpers/configure-breakpoint.mjs +20 -1
- package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +33 -1
- package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +23 -1
- package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +18 -1
- package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +64 -1
- package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +39 -1
- package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +4 -1
- package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +45 -1
- package/esm2022/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +11 -1
- package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +50 -1
- package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +109 -3
- package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +76 -1
- package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +18 -1
- package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +31 -1
- package/esm2022/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +23 -1
- package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +23 -1
- package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-view.mjs +23 -1
- package/esm2022/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +40 -1
- package/esm2022/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +37 -1
- package/esm2022/cdk/event-plugins/lib/event-plugins.config.mjs +36 -1
- package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +45 -1
- package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +33 -1
- package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +25 -1
- package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +42 -1
- package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +48 -1
- package/esm2022/cdk/option-control/lib/option-control.mjs +48 -1
- package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +9 -1
- package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +12 -1
- package/esm2022/components/accordion/lib/accordion.component.mjs +9 -1
- package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +31 -1
- package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +4 -1
- package/esm2022/components/action-group/action-group.component.mjs +7 -1
- package/esm2022/components/area-header/area-header.component.mjs +9 -1
- package/esm2022/components/area-header/directives/area-header-content.directive.mjs +4 -1
- package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +4 -1
- package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +18 -1
- package/esm2022/components/avatar/lib/avatar.component.mjs +9 -1
- package/esm2022/components/badge/lib/badge.component.mjs +11 -1
- package/esm2022/components/badge/lib/badge.directive.mjs +16 -1
- package/esm2022/components/bar/lib/bar.component.mjs +8 -1
- package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +4 -1
- package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +4 -1
- package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +4 -1
- package/esm2022/components/button/lib/button.component.mjs +11 -1
- package/esm2022/components/button-group/lib/button-group.component.mjs +16 -1
- package/esm2022/components/calendar/lib/calendar.component.mjs +35 -1
- package/esm2022/components/calendar/lib/calendar.config.mjs +18 -1
- package/esm2022/components/calendar/lib/calendar.service.mjs +49 -1
- package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +19 -1
- package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +7 -1
- package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +7 -1
- package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +7 -1
- package/esm2022/components/calendar/lib/daterange.service.mjs +17 -1
- package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +26 -1
- package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +39 -1
- package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +6 -1
- package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +2 -1
- package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +2 -1
- package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/check-identical-date.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/get-A11y-label.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/is-date-disabled.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/parse-date.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-max-date.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-min-date.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-next-date-set.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-previous-date-set.mjs +2 -1
- package/esm2022/components/checkbox/lib/checkbox.component.mjs +33 -1
- package/esm2022/components/checkbox/lib/checkbox.validator.mjs +24 -1
- package/esm2022/components/chip/lib/components/chip/chip.component.mjs +15 -1
- package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +4 -1
- package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +4 -1
- package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +21 -1
- package/esm2022/components/content-box/lib/content-box.component.mjs +4 -1
- package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +4 -1
- package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +4 -1
- package/esm2022/components/datepicker/lib/datepicker.component.mjs +33 -1
- package/esm2022/components/datepicker/lib/datepicker.config.mjs +20 -1
- package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +31 -1
- package/esm2022/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +3 -1
- package/esm2022/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +2 -1
- package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +65 -1
- package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +20 -1
- package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +31 -1
- package/esm2022/components/daterangepicker/lib/range.validator.mjs +16 -1
- package/esm2022/components/daterangepicker/lib/required.validator.mjs +15 -1
- package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +3 -1
- package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +2 -1
- package/esm2022/components/dropdown/lib/dropdown.component.mjs +8 -1
- package/esm2022/components/dropdown/lib/dropdown.directive.mjs +55 -1
- package/esm2022/components/dropdown/lib/helpers/close-current-dropdown.mjs +6 -1
- package/esm2022/components/error-page/lib/error-page.component.mjs +8 -1
- package/esm2022/components/error-page/lib/error-page.config.mjs +9 -1
- package/esm2022/components/footer/lib/footer.component.mjs +10 -7
- package/esm2022/components/footer/lib/footer.config.mjs +3 -1
- package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +14 -1
- package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +13 -1
- package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +6 -1
- package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +4 -1
- package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -1
- package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +4 -1
- package/esm2022/components/form-field/lib/directives/form.directive.mjs +14 -1
- package/esm2022/components/form-field/lib/form-field.component.mjs +14 -1
- package/esm2022/components/form-field/lib/form-field.service.mjs +43 -1
- package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +25 -1
- package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +5 -1
- package/esm2022/components/header/lib/directives/header-title.directive.mjs +4 -1
- package/esm2022/components/header/lib/header.component.mjs +4 -1
- package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +4 -1
- package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +4 -1
- package/esm2022/components/icon/lib/helpers/unpack-icon-identifier.mjs +15 -1
- package/esm2022/components/icon/lib/icon.component.mjs +25 -1
- package/esm2022/components/icon/lib/icon.config.mjs +20 -1
- package/esm2022/components/inline-message/lib/inline-message.component.mjs +14 -1
- package/esm2022/components/link/link.directive.mjs +4 -1
- package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +7 -1
- package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +18 -2
- package/esm2022/components/list/lib/list.component.mjs +6 -1
- package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +10 -2
- package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +23 -1
- package/esm2022/components/logo/logo.directive.mjs +16 -1
- package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +5 -1
- package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +4 -1
- package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +17 -1
- package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +2 -1
- package/esm2022/components/main-menu/lib/main-menu.component.mjs +37 -1
- package/esm2022/components/main-menu/lib/main-menu.config.mjs +32 -1
- package/esm2022/components/main-menu/lib/main-menu.service.mjs +29 -1
- package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +5 -1
- package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +7 -1
- package/esm2022/components/menu/lib/menu.component.mjs +13 -1
- package/esm2022/components/menu/lib/menu.directive.mjs +19 -1
- package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +15 -1
- package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -1
- package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -1
- package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +12 -1
- package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +25 -1
- package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +4 -1
- package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +18 -1
- package/esm2022/components/modal/lib/helpers/inject-modal-ref.mjs +22 -1
- package/esm2022/components/modal/lib/helpers/provide-modal-ref.mjs +10 -1
- package/esm2022/components/modal/lib/modal.component.mjs +21 -2
- package/esm2022/components/modal/lib/modal.config.mjs +34 -1
- package/esm2022/components/modal/lib/modal.directive.mjs +25 -1
- package/esm2022/components/modal/lib/modal.service.mjs +39 -1
- package/esm2022/components/modal/lib/models/modal-ref.mjs +34 -1
- package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +4 -1
- package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +1 -3
- package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +19 -5
- package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +2 -1
- package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +2 -1
- package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +2 -1
- package/esm2022/components/notification/lib/models/notification-feature.mjs +16 -1
- package/esm2022/components/notification/lib/notification.config.mjs +45 -1
- package/esm2022/components/notification/lib/notification.logger.mjs +2 -1
- package/esm2022/components/notification/lib/notification.service.mjs +56 -1
- package/esm2022/components/notification/lib/notification.tokens.mjs +4 -1
- package/esm2022/components/notification/lib/services/notification-center.service.mjs +10 -1
- package/esm2022/components/paginator/lib/paginator.component.mjs +90 -1
- package/esm2022/components/paginator/lib/paginator.config.mjs +29 -1
- package/esm2022/components/progress/lib/progress.component.mjs +16 -1
- package/esm2022/components/radio-group/lib/radio-group.component.mjs +13 -2
- package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +17 -1
- package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +27 -1
- package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +5 -1
- package/esm2022/components/rich-list/lib/components/rich-list-header/rich-list-header.component.mjs +5 -1
- package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +10 -2
- package/esm2022/components/rich-list/lib/rich-list.component.mjs +10 -3
- package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +47 -6
- package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +12 -2
- package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +11 -1
- package/esm2022/components/select/lib/select.component.mjs +56 -2
- package/esm2022/components/slider/lib/slider.directive.mjs +20 -1
- package/esm2022/components/spinbox/lib/spinbox.component.mjs +17 -1
- package/esm2022/components/switch/lib/switch.component.mjs +11 -1
- package/esm2022/components/switch/lib/switch.validator.mjs +13 -1
- package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +29 -1
- package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +70 -1
- package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +19 -1
- package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +30 -2
- package/esm2022/components/table/lib/directives/table-cell.directive.mjs +5 -1
- package/esm2022/components/table/lib/directives/table-row.directive.mjs +5 -1
- package/esm2022/components/table/lib/table.component.mjs +30 -1
- package/esm2022/components/timepicker/lib/timepicker.component.mjs +15 -6
- package/esm2022/components/timepicker/lib/utils/generate-time-stamps.mjs +5 -3
- package/esm2022/components/timepicker/lib/utils/ngx-mask-helper.mjs +3 -3
- package/esm2022/components/toast/lib/toast.config.mjs +27 -1
- package/esm2022/components/toast/lib/toast.service.mjs +36 -1
- package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +12 -1
- package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +14 -2
- package/esm2022/components/tooltip/lib/tooltip.component.mjs +18 -1
- package/esm2022/components/tooltip/lib/tooltip.directive.mjs +36 -1
- package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +35 -1
- package/esm2022/components/wizard/lib/wizard.component.mjs +21 -1
- package/esm2022/internal/translate/lib/translate.config.mjs +32 -1
- package/esm2022/internal/translate/lib/translate.service.mjs +30 -1
- package/esm2022/lib/controllers/controller.mjs +26 -1
- package/esm2022/lib/controllers/disabled.controller.mjs +60 -1
- package/esm2022/lib/controllers/readonly.controller.mjs +57 -1
- package/esm2022/lib/directives/click-outside.directive.mjs +30 -1
- package/esm2022/lib/directives/delegate-focus.directive.mjs +15 -1
- package/esm2022/lib/services/window-ref.mjs +67 -1
- package/esm2022/lib/tokens/identity-matcher.mjs +25 -1
- package/esm2022/lib/tokens/string-search-handler.mjs +25 -1
- package/esm2022/lib/tokens/stringify.mjs +26 -1
- package/esm2022/localization/lib/features/with-http-language-header.mjs +54 -1
- package/esm2022/localization/lib/features/with-http-language-query-param.mjs +52 -1
- package/esm2022/localization/lib/loaders/browser-language-loader.mjs +33 -1
- package/esm2022/localization/lib/localization.config.mjs +71 -1
- package/esm2022/localization/lib/localization.service.mjs +42 -3
- package/esm2022/rxjs/index.mjs +2 -2
- package/esm2022/rxjs/lib/delay-until.mjs +23 -1
- package/esm2022/rxjs/lib/from-element-mutation.mjs +22 -1
- package/esm2022/rxjs/lib/from-element-resize.mjs +25 -1
- package/esm2022/rxjs/lib/from-events.mjs +25 -1
- package/esm2022/rxjs/lib/from-query-list.mjs +24 -0
- package/esm2022/sdk/lib/application-environment.mjs +51 -1
- package/esm2022/theming/lib/helpers/prefers-dark-theme.mjs +19 -1
- package/esm2022/theming/lib/helpers/resolve-theme.mjs +26 -1
- package/esm2022/theming/lib/helpers/theme-storage.mjs +43 -1
- package/esm2022/theming/lib/theming.config.mjs +34 -1
- package/esm2022/theming/lib/theming.service.mjs +32 -1
- package/esm2022/utils/lib/decorators/pure.mjs +52 -1
- package/esm2022/utils/lib/helpers/angular.mjs +37 -1
- package/esm2022/utils/lib/helpers/array.mjs +5 -1
- package/esm2022/utils/lib/helpers/build-url.mjs +21 -1
- package/esm2022/utils/lib/helpers/build-website-url.mjs +3 -2
- package/esm2022/utils/lib/helpers/cache-storage-client.mjs +52 -1
- package/esm2022/utils/lib/helpers/coercion.mjs +18 -1
- package/esm2022/utils/lib/helpers/debounce.mjs +28 -1
- package/esm2022/utils/lib/helpers/defer-fn.mjs +21 -1
- package/esm2022/utils/lib/helpers/dom.mjs +71 -1
- package/esm2022/utils/lib/helpers/get-axis.mjs +21 -1
- package/esm2022/utils/lib/helpers/get-language-code.mjs +18 -1
- package/esm2022/utils/lib/helpers/get-opposite-side.mjs +22 -1
- package/esm2022/utils/lib/helpers/get-side.mjs +18 -1
- package/esm2022/utils/lib/helpers/get-unique-id.mjs +34 -1
- package/esm2022/utils/lib/helpers/match-url.mjs +41 -1
- package/esm2022/utils/lib/helpers/ng-changes.mjs +30 -1
- package/esm2022/utils/lib/helpers/provide-config.mjs +57 -1
- package/esm2022/utils/lib/helpers/queue.mjs +84 -1
- package/esm2022/utils/lib/helpers/type-guards.mjs +58 -1
- package/esm2022/utils/lib/helpers/until-destroyed.mjs +39 -1
- package/fesm2022/odx-angular-animations.mjs +173 -0
- package/fesm2022/odx-angular-animations.mjs.map +1 -1
- package/fesm2022/odx-angular-breakpoints.mjs +136 -0
- package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-a11y.mjs +71 -0
- package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-active-indicator.mjs +63 -0
- package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +38 -0
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -0
- package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs +103 -0
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-custom-form-control.mjs +183 -2
- package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-dynamic-view.mjs +188 -0
- package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-event-plugins.mjs +135 -0
- package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-expandable.mjs +88 -0
- package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-option-control.mjs +47 -0
- package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-radio-group-control.mjs +19 -0
- package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
- package/fesm2022/odx-angular-components-accordion.mjs +41 -0
- package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/odx-angular-components-action-group.mjs +6 -0
- package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-area-header.mjs +14 -0
- package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
- package/fesm2022/odx-angular-components-autocomplete.mjs +17 -0
- package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/odx-angular-components-avatar.mjs +8 -0
- package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-badge.mjs +25 -0
- package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
- package/fesm2022/odx-angular-components-bar.mjs +13 -0
- package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -0
- package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/odx-angular-components-button-group.mjs +15 -0
- package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-button.mjs +10 -0
- package/fesm2022/odx-angular-components-button.mjs.map +1 -1
- package/fesm2022/odx-angular-components-calendar.mjs +232 -0
- package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-checkbox.mjs +55 -0
- package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/odx-angular-components-chip.mjs +20 -0
- package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
- package/fesm2022/odx-angular-components-circular-progress.mjs +20 -0
- package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
- package/fesm2022/odx-angular-components-content-box.mjs +9 -0
- package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
- package/fesm2022/odx-angular-components-datepicker.mjs +84 -0
- package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-daterangepicker.mjs +145 -0
- package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-dropdown.mjs +66 -0
- package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
- package/fesm2022/odx-angular-components-error-page.mjs +15 -0
- package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
- package/fesm2022/odx-angular-components-footer.mjs +11 -6
- package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
- package/fesm2022/odx-angular-components-form-field.mjs +131 -0
- package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
- package/fesm2022/odx-angular-components-header-navigation.mjs +6 -0
- package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
- package/fesm2022/odx-angular-components-header.mjs +10 -0
- package/fesm2022/odx-angular-components-header.mjs.map +1 -1
- package/fesm2022/odx-angular-components-icon.mjs +57 -0
- package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
- package/fesm2022/odx-angular-components-inline-message.mjs +13 -0
- package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
- package/fesm2022/odx-angular-components-link.mjs +3 -0
- package/fesm2022/odx-angular-components-link.mjs.map +1 -1
- package/fesm2022/odx-angular-components-list.mjs +28 -1
- package/fesm2022/odx-angular-components-list.mjs.map +1 -1
- package/fesm2022/odx-angular-components-loading-spinner.mjs +30 -0
- package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
- package/fesm2022/odx-angular-components-logo.mjs +15 -0
- package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
- package/fesm2022/odx-angular-components-main-menu.mjs +119 -0
- package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-mainfilter-group.mjs +4 -0
- package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-menu.mjs +36 -0
- package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-modal.mjs +252 -0
- package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2022/odx-angular-components-navigation-back.mjs +3 -0
- package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
- package/fesm2022/odx-angular-components-notification.mjs +148 -6
- package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
- package/fesm2022/odx-angular-components-paginator.mjs +117 -0
- package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/odx-angular-components-progress.mjs +15 -0
- package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
- package/fesm2022/odx-angular-components-radio-group.mjs +11 -0
- package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-rail-navigation.mjs +42 -0
- package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/odx-angular-components-rich-list.mjs +26 -3
- package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
- package/fesm2022/odx-angular-components-select.mjs +122 -7
- package/fesm2022/odx-angular-components-select.mjs.map +1 -1
- package/fesm2022/odx-angular-components-slider.mjs +19 -0
- package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
- package/fesm2022/odx-angular-components-spinbox.mjs +16 -0
- package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
- package/fesm2022/odx-angular-components-switch.mjs +22 -0
- package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
- package/fesm2022/odx-angular-components-tab-bar.mjs +97 -0
- package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-table.mjs +84 -1
- package/fesm2022/odx-angular-components-table.mjs.map +1 -1
- package/fesm2022/odx-angular-components-timepicker.mjs +20 -9
- package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toast.mjs +61 -0
- package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toggle-button-group.mjs +23 -0
- package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-tooltip.mjs +52 -0
- package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/odx-angular-components-wizard.mjs +54 -0
- package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
- package/fesm2022/odx-angular-internal-translate.mjs +60 -0
- package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
- package/fesm2022/odx-angular-localization.mjs +247 -2
- package/fesm2022/odx-angular-localization.mjs.map +1 -1
- package/fesm2022/odx-angular-rxjs.mjs +115 -5
- package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
- package/fesm2022/odx-angular-sdk.mjs +50 -0
- package/fesm2022/odx-angular-sdk.mjs.map +1 -1
- package/fesm2022/odx-angular-theming.mjs +149 -0
- package/fesm2022/odx-angular-theming.mjs.map +1 -1
- package/fesm2022/odx-angular-utils.mjs +709 -1
- package/fesm2022/odx-angular-utils.mjs.map +1 -1
- package/fesm2022/odx-angular.mjs +322 -0
- package/fesm2022/odx-angular.mjs.map +1 -1
- package/internal/translate/lib/translate.config.d.ts +31 -0
- package/internal/translate/lib/translate.service.d.ts +29 -0
- package/lib/controllers/controller.d.ts +25 -0
- package/lib/controllers/disabled.controller.d.ts +59 -0
- package/lib/controllers/readonly.controller.d.ts +56 -0
- package/lib/directives/click-outside.directive.d.ts +29 -0
- package/lib/directives/delegate-focus.directive.d.ts +14 -0
- package/lib/services/window-ref.d.ts +66 -0
- package/lib/tokens/identity-matcher.d.ts +41 -0
- package/lib/tokens/string-search-handler.d.ts +39 -0
- package/lib/tokens/stringify.d.ts +42 -0
- package/localization/lib/features/with-http-language-header.d.ts +63 -0
- package/localization/lib/features/with-http-language-query-param.d.ts +61 -0
- package/localization/lib/loaders/browser-language-loader.d.ts +32 -0
- package/localization/lib/localization.config.d.ts +81 -0
- package/localization/lib/localization.service.d.ts +39 -0
- package/package.json +1 -1
- package/rxjs/index.d.ts +1 -1
- package/rxjs/lib/delay-until.d.ts +22 -0
- package/rxjs/lib/from-element-mutation.d.ts +21 -0
- package/rxjs/lib/from-element-resize.d.ts +24 -0
- package/rxjs/lib/from-events.d.ts +24 -0
- package/rxjs/lib/from-query-list.d.ts +22 -0
- package/sdk/lib/application-environment.d.ts +59 -0
- package/theming/lib/helpers/prefers-dark-theme.d.ts +18 -0
- package/theming/lib/helpers/resolve-theme.d.ts +25 -0
- package/theming/lib/helpers/theme-storage.d.ts +42 -0
- package/theming/lib/theming.config.d.ts +46 -0
- package/theming/lib/theming.service.d.ts +31 -0
- package/utils/lib/decorators/pure.d.ts +51 -0
- package/utils/lib/helpers/angular.d.ts +36 -0
- package/utils/lib/helpers/array.d.ts +4 -0
- package/utils/lib/helpers/build-url.d.ts +20 -0
- package/utils/lib/helpers/build-website-url.d.ts +2 -1
- package/utils/lib/helpers/cache-storage-client.d.ts +51 -0
- package/utils/lib/helpers/coercion.d.ts +17 -0
- package/utils/lib/helpers/debounce.d.ts +27 -0
- package/utils/lib/helpers/defer-fn.d.ts +20 -0
- package/utils/lib/helpers/dom.d.ts +70 -0
- package/utils/lib/helpers/get-axis.d.ts +20 -0
- package/utils/lib/helpers/get-language-code.d.ts +17 -0
- package/utils/lib/helpers/get-opposite-side.d.ts +21 -0
- package/utils/lib/helpers/get-side.d.ts +17 -0
- package/utils/lib/helpers/get-unique-id.d.ts +33 -0
- package/utils/lib/helpers/match-url.d.ts +40 -0
- package/utils/lib/helpers/ng-changes.d.ts +52 -0
- package/utils/lib/helpers/provide-config.d.ts +56 -0
- package/utils/lib/helpers/queue.d.ts +83 -0
- package/utils/lib/helpers/type-guards.d.ts +57 -0
- package/utils/lib/helpers/until-destroyed.d.ts +38 -0
- package/esm2022/rxjs/lib/form-query-list.mjs +0 -5
- package/rxjs/lib/form-query-list.d.ts +0 -3
|
@@ -4,6 +4,13 @@ import { isNumber, isString } from './type-guards';
|
|
|
4
4
|
function isQueueItemId(value) {
|
|
5
5
|
return isString(value) || isNumber(value);
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* A class representing a queue structure with advanced functionalities including adding, removing,
|
|
9
|
+
* updating items, and observing changes through RxJS observables. It supports generic queue item types,
|
|
10
|
+
* allowing for flexible usage across different contexts.
|
|
11
|
+
*
|
|
12
|
+
* @template T - The type of items stored in the queue. Each item must extend an object containing a unique `id`.
|
|
13
|
+
*/
|
|
7
14
|
export class Queue {
|
|
8
15
|
constructor() {
|
|
9
16
|
this.queue = new Map();
|
|
@@ -11,29 +18,82 @@ export class Queue {
|
|
|
11
18
|
this.values = [];
|
|
12
19
|
this.firstItem = null;
|
|
13
20
|
this.lastItem = null;
|
|
21
|
+
/**
|
|
22
|
+
* An observable that emits when an item is added to the queue.
|
|
23
|
+
* @type {Observable<T>}
|
|
24
|
+
*/
|
|
14
25
|
this.onAdd$ = this.createEventObserver('add');
|
|
26
|
+
/**
|
|
27
|
+
* An observable that emits when an item in the queue is updated.
|
|
28
|
+
* @type {Observable<T>}
|
|
29
|
+
*/
|
|
15
30
|
this.onUpdate$ = this.createEventObserver('update');
|
|
31
|
+
/**
|
|
32
|
+
* An observable that emits when an item is removed from the queue.
|
|
33
|
+
* @type {Observable<T>}
|
|
34
|
+
*/
|
|
16
35
|
this.onRemove$ = this.createEventObserver('remove');
|
|
36
|
+
/**
|
|
37
|
+
* An observable representing the current state of the queue as an array of items.
|
|
38
|
+
* @type {Observable<QueueItem<T>[]>}
|
|
39
|
+
*/
|
|
17
40
|
this.value$ = this.events$$.pipe(startWith(() => void 0), map(() => this.values), shareReplay({ bufferSize: 1, refCount: true }));
|
|
41
|
+
/**
|
|
42
|
+
* An observable that emits the current size of the queue.
|
|
43
|
+
* @type {Observable<number>}
|
|
44
|
+
*/
|
|
18
45
|
this.size$ = this.value$.pipe(map(() => this.size), distinctUntilChanged(), shareReplay({ bufferSize: 1, refCount: true }));
|
|
19
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Gets the size of the queue.
|
|
49
|
+
* @returns The number of elements in the queue.
|
|
50
|
+
*/
|
|
20
51
|
get size() {
|
|
21
52
|
return this.queue.size;
|
|
22
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Checks if the specified item is the first item in the queue.
|
|
56
|
+
* @param {QueueItem<T>} item - The item to check.
|
|
57
|
+
* @returns {boolean} - Returns `true` if the item is the first item in the queue, `false` otherwise.
|
|
58
|
+
*/
|
|
23
59
|
isFirst({ id }) {
|
|
24
60
|
return this.firstItem?.id === id;
|
|
25
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Checks if the specified item is the last item in the queue.
|
|
64
|
+
* @param {QueueItem<T>} item - The item to check.
|
|
65
|
+
* @returns {boolean} - Returns true if the item is the last item, otherwise returns false.
|
|
66
|
+
*/
|
|
26
67
|
isLast({ id }) {
|
|
27
68
|
return this.lastItem?.id === id;
|
|
28
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Retrieves a queue item from the queue based on the provided item or item ID.
|
|
72
|
+
* @param itemOrId - The queue item or item ID to retrieve.
|
|
73
|
+
* @returns The queue item if found, or `null` if not found.
|
|
74
|
+
*/
|
|
29
75
|
get(itemOrId) {
|
|
30
76
|
const id = isQueueItemId(itemOrId) ? itemOrId.toString() : itemOrId.id.toString();
|
|
31
77
|
return this.queue.get(id) ?? null;
|
|
32
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Adds an item to the queue, optionally emitting an event.
|
|
81
|
+
*
|
|
82
|
+
* @param {QueueItem<T>} item - The item to add.
|
|
83
|
+
* @param {boolean} [emitEvent=true] - Whether to emit an event for this action.
|
|
84
|
+
* @returns {QueueItem<T>} The item added to the queue.
|
|
85
|
+
*/
|
|
33
86
|
add(item, emitEvent = true) {
|
|
34
87
|
this.remove(item, false);
|
|
35
88
|
return this.addMany([item], emitEvent)[0];
|
|
36
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Adds multiple items to the queue.
|
|
92
|
+
*
|
|
93
|
+
* @param items - An array of items to be added to the queue.
|
|
94
|
+
* @param emitEvent - (Optional) A boolean indicating whether to emit an event after adding the items. Default is true.
|
|
95
|
+
* @returns An array of added items.
|
|
96
|
+
*/
|
|
37
97
|
addMany(items, emitEvent = true) {
|
|
38
98
|
const addedItems = [];
|
|
39
99
|
const updatedItems = [];
|
|
@@ -54,9 +114,22 @@ export class Queue {
|
|
|
54
114
|
}
|
|
55
115
|
return items;
|
|
56
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Removes an item from the queue.
|
|
119
|
+
*
|
|
120
|
+
* @param itemOrId - The item or ID of the item to be removed.
|
|
121
|
+
* @param emitEvent - Whether to emit an event after removing the item. Default is `true`.
|
|
122
|
+
* @returns The removed item, or `null` if the item was not found.
|
|
123
|
+
*/
|
|
57
124
|
remove(itemOrId, emitEvent = true) {
|
|
58
125
|
return this.removeMany([itemOrId], emitEvent)[0];
|
|
59
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Removes multiple items from the queue based on the provided item or item IDs.
|
|
129
|
+
* @param itemOrIds - An array of QueueItem or QueueItemId objects representing the items to be removed.
|
|
130
|
+
* @param emitEvent - A boolean indicating whether to emit an event after removing the items. Default is true.
|
|
131
|
+
* @returns An array of removed QueueItem objects or null values.
|
|
132
|
+
*/
|
|
60
133
|
removeMany(itemOrIds, emitEvent = true) {
|
|
61
134
|
const items = itemOrIds.map((itemOrId) => this.get(itemOrId)).filter(Boolean);
|
|
62
135
|
const removedItems = [];
|
|
@@ -69,11 +142,21 @@ export class Queue {
|
|
|
69
142
|
this.notify({ type: 'remove', items: removedItems }, emitEvent);
|
|
70
143
|
return items;
|
|
71
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Clears the queue by removing all items.
|
|
147
|
+
*
|
|
148
|
+
* @param emitEvent - Whether to emit an event after clearing the queue. Default is true.
|
|
149
|
+
*/
|
|
72
150
|
clear(emitEvent = true) {
|
|
73
151
|
const items = this.toArray();
|
|
74
152
|
this.queue.clear();
|
|
75
153
|
this.notify({ type: 'remove', items }, emitEvent);
|
|
76
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Returns an array representation of the queue.
|
|
157
|
+
*
|
|
158
|
+
* @returns An array containing all the items in the queue.
|
|
159
|
+
*/
|
|
77
160
|
toArray() {
|
|
78
161
|
return this.values;
|
|
79
162
|
}
|
|
@@ -89,4 +172,4 @@ export class Queue {
|
|
|
89
172
|
return this.events$$.pipe(filter((event) => event.type === type), map(({ items }) => items), concatAll(), share());
|
|
90
173
|
}
|
|
91
174
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0csT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPbkQsU0FBUyxhQUFhLENBQUMsS0FBYztJQUNuQyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sT0FBTyxLQUFLO0lBQWxCO1FBQ21CLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztRQUN4QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFDakQsV0FBTSxHQUFtQixFQUFFLENBQUM7UUFDNUIsY0FBUyxHQUF3QixJQUFJLENBQUM7UUFDdEMsYUFBUSxHQUF3QixJQUFJLENBQUM7UUFFN0IsV0FBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxjQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLGNBQVMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsV0FBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDdkIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFD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QUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUFvQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN2QixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQ3RDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUN6QixTQUFTLEVBQUUsRUFDWCxLQUFLLEVBQUUsQ0FDUixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29uY2F0QWxsLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHNoYXJlLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNOdW1iZXIsIGlzU3RyaW5nIH0gZnJvbSAnLi90eXBlLWd1YXJkcyc7XG5cbnR5cGUgUXVldWVJdGVtSWQgPSBzdHJpbmcgfCBudW1iZXI7XG50eXBlIFF1ZXVlSXRlbTxUPiA9IFQgJiB7IGlkOiBRdWV1ZUl0ZW1JZCB9O1xudHlwZSBRdWV1ZUV2ZW50VHlwZSA9ICdyZW1vdmUnIHwgJ2FkZCcgfCAndXBkYXRlJztcbnR5cGUgUXVldWVFdmVudDxUPiA9IHsgaXRlbXM6IFF1ZXVlSXRlbTxUPltdOyB0eXBlOiBRdWV1ZUV2ZW50VHlwZSB9O1xuXG5mdW5jdGlvbiBpc1F1ZXVlSXRlbUlkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUXVldWVJdGVtSWQge1xuICByZXR1cm4gaXNTdHJpbmcodmFsdWUpIHx8IGlzTnVtYmVyKHZhbHVlKTtcbn1cblxuZXhwb3J0IGNsYXNzIFF1ZXVlPFQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBxdWV1ZSA9IG5ldyBNYXA8c3RyaW5nLCBRdWV1ZUl0ZW08VD4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRzJCQgPSBuZXcgU3ViamVjdDxRdWV1ZUV2ZW50PFQ+PigpO1xuICBwcml2YXRlIHZhbHVlczogUXVldWVJdGVtPFQ+W10gPSBbXTtcbiAgcHJpdmF0ZSBmaXJzdEl0ZW06IFF1ZXVlSXRlbTxUPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGxhc3RJdGVtOiBRdWV1ZUl0ZW08VD4gfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25BZGQkID0gdGhpcy5jcmVhdGVFdmVudE9ic2VydmVyKCdhZGQnKTtcbiAgcHVibGljIHJlYWRvbmx5IG9uVXBkYXRlJCA9IHRoaXMuY3JlYXRlRXZlbnRPYnNlcnZlcigndXBkYXRlJyk7XG4gIHB1YmxpYyByZWFkb25seSBvblJlbW92ZSQgPSB0aGlzLmNyZWF0ZUV2ZW50T2JzZXJ2ZXIoJ3JlbW92ZScpO1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWUkID0gdGhpcy5ldmVudHMkJC5waXBlKFxuICAgIHN0YXJ0V2l0aCgoKSA9PiB2b2lkIDApLFxuICAgIG1hcCgoKSA9PiB0aGlzLnZhbHVlcyksXG4gICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHNpemUkID0gdGhpcy52YWx1ZSQucGlwZShcbiAgICBtYXAoKCkgPT4gdGhpcy5zaXplKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICk7XG5cbiAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0ZpcnN0KHsgaWQgfTogUXVldWVJdGVtPFQ+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlyc3RJdGVtPy5pZCA9PT0gaWQ7XG4gIH1cblxuICBwdWJsaWMgaXNMYXN0KHsgaWQgfTogUXVldWVJdGVtPFQ+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGFzdEl0ZW0/LmlkID09PSBpZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoaXRlbU9ySWQ6IFF1ZXVlSXRlbTxUPiB8IFF1ZXVlSXRlbUlkKTogUXVldWVJdGVtPFQ+IHwgbnVsbCB7XG4gICAgY29uc3QgaWQgPSBpc1F1ZXVlSXRlbUlkKGl0ZW1PcklkKSA/IGl0ZW1PcklkLnRvU3RyaW5nKCkgOiBpdGVtT3JJZC5pZC50b1N0cmluZygpO1xuXG4gICAgcmV0dXJuIHRoaXMucXVldWUuZ2V0KGlkKSA/PyBudWxsO1xuICB9XG5cbiAgcHVibGljIGFkZChpdGVtOiBRdWV1ZUl0ZW08VD4sIGVtaXRFdmVudCA9IHRydWUpOiBRdWV1ZUl0ZW08VD4ge1xuICAgIHRoaXMucmVtb3ZlKGl0ZW0sIGZhbHNlKTtcblxuICAgIHJldHVybiB0aGlzLmFkZE1hbnkoW2l0ZW1dLCBlbWl0RXZlbnQpWzBdO1xuICB9XG5cbiAgcHVibGljIGFkZE1hbnkoaXRlbXM6IEFycmF5PFF1ZXVlSXRlbTxUPj4sIGVtaXRFdmVudCA9IHRydWUpOiBBcnJheTxRdWV1ZUl0ZW08VD4+IHtcbiAgICBjb25zdCBhZGRlZEl0ZW1zID0gW107XG4gICAgY29uc3QgdXBkYXRlZEl0ZW1zID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAodGhpcy5nZXQoaXRlbSkpIHtcbiAgICAgICAgYWRkZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgICB0aGlzLnF1ZXVlLnNldChpdGVtLmlkLnRvU3RyaW5nKCksIGl0ZW0pO1xuICAgIH1cbiAgICBpZiAoYWRkZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubm90aWZ5KHsgdHlwZTogJ2FkZCcsIGl0ZW1zOiBhZGRlZEl0ZW1zIH0sIGVtaXRFdmVudCk7XG4gICAgfVxuICAgIGlmICh1cGRhdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm5vdGlmeSh7IHR5cGU6ICd1cGRhdGUnLCBpdGVtczogdXBkYXRlZEl0ZW1zIH0sIGVtaXRFdmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShpdGVtT3JJZDogUXVldWVJdGVtPFQ+IHwgUXVldWVJdGVtSWQsIGVtaXRFdmVudCA9IHRydWUpOiBRdWV1ZUl0ZW08VD4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVNYW55KFtpdGVtT3JJZF0sIGVtaXRFdmVudClbMF07XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlTWFueShpdGVtT3JJZHM6IEFycmF5PFF1ZXVlSXRlbTxUPiB8IFF1ZXVlSXRlbUlkPiwgZW1pdEV2ZW50ID0gdHJ1ZSk6IEFycmF5PFF1ZXVlSXRlbTxUPiB8IG51bGw+IHtcbiAgICBjb25zdCBpdGVtcyA9IGl0ZW1Pcklkcy5tYXAoKGl0ZW1PcklkKSA9PiB0aGlzLmdldChpdGVtT3JJZCkpLmZpbHRlcihCb29sZWFuKSBhcyBRdWV1ZUl0ZW08VD5bXTtcbiAgICBjb25zdCByZW1vdmVkSXRlbXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGNvbnN0IGl0ZW1SZW1vdmVkID0gdGhpcy5xdWV1ZS5kZWxldGUoaXRlbS5pZC50b1N0cmluZygpKTtcbiAgICAgIGlmICghaXRlbVJlbW92ZWQpIGNvbnRpbnVlO1xuICAgICAgcmVtb3ZlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgfVxuICAgIHRoaXMubm90aWZ5KHsgdHlwZTogJ3JlbW92ZScsIGl0ZW1zOiByZW1vdmVkSXRlbXMgfSwgZW1pdEV2ZW50KTtcblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcihlbWl0RXZlbnQgPSB0cnVlKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnRvQXJyYXkoKTtcbiAgICB0aGlzLnF1ZXVlLmNsZWFyKCk7XG4gICAgdGhpcy5ub3RpZnkoeyB0eXBlOiAncmVtb3ZlJywgaXRlbXMgfSwgZW1pdEV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyB0b0FycmF5KCk6IFF1ZXVlSXRlbTxUPltdIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXM7XG4gIH1cblxuICBwcml2YXRlIG5vdGlmeShldmVudDogUXVldWVFdmVudDxUPiwgZW1pdEV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVzID0gQXJyYXkuZnJvbSh0aGlzLnF1ZXVlLCAoW18sIGl0ZW1dKSA9PiBpdGVtKS5yZXZlcnNlKCk7XG4gICAgdGhpcy5maXJzdEl0ZW0gPSB0aGlzLnZhbHVlc1swXSA/PyBudWxsO1xuICAgIHRoaXMubGFzdEl0ZW0gPSB0aGlzLnZhbHVlc1t0aGlzLnZhbHVlcy5sZW5ndGggLSAxXSA/PyBudWxsO1xuICAgIGlmICghZW1pdEV2ZW50KSByZXR1cm47XG4gICAgdGhpcy5ldmVudHMkJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRXZlbnRPYnNlcnZlcih0eXBlOiBRdWV1ZUV2ZW50VHlwZSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50cyQkLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudC50eXBlID09PSB0eXBlKSxcbiAgICAgIG1hcCgoeyBpdGVtcyB9KSA9PiBpdGVtcyksXG4gICAgICBjb25jYXRBbGwoKSxcbiAgICAgIHNoYXJlKCksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0csT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPbkQsU0FBUyxhQUFhLENBQUMsS0FBYztJQUNuQyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxLQUFLO0lBQWxCO1FBQ21CLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztRQUN4QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFDakQsV0FBTSxHQUFtQixFQUFFLENBQUM7UUFDNUIsY0FBUyxHQUF3QixJQUFJLENBQUM7UUFDdEMsYUFBUSxHQUF3QixJQUFJLENBQUM7UUFFN0M7OztXQUdHO1FBQ2EsV0FBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6RDs7O1dBR0c7UUFDYSxjQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9EOzs7V0FHRztRQUNhLGNBQVMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0Q7OztXQUdHO1FBQ2EsV0FBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN6QyxTQUFTLENB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O0lBQ0ksT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQW9CLEVBQUUsU0FBUyxHQUFHLElBQUk7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU8sbUJBQW1CLENBQUMsSUFBb0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkIsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUN0QyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFDekIsU0FBUyxFQUFFLEVBQ1gsS0FBSyxFQUFFLENBQ1IsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdEFsbCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzaGFyZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzTnVtYmVyLCBpc1N0cmluZyB9IGZyb20gJy4vdHlwZS1ndWFyZHMnO1xuXG50eXBlIFF1ZXVlSXRlbUlkID0gc3RyaW5nIHwgbnVtYmVyO1xudHlwZSBRdWV1ZUl0ZW08VD4gPSBUICYgeyBpZDogUXVldWVJdGVtSWQgfTtcbnR5cGUgUXVldWVFdmVudFR5cGUgPSAncmVtb3ZlJyB8ICdhZGQnIHwgJ3VwZGF0ZSc7XG50eXBlIFF1ZXVlRXZlbnQ8VD4gPSB7IGl0ZW1zOiBRdWV1ZUl0ZW08VD5bXTsgdHlwZTogUXVldWVFdmVudFR5cGUgfTtcblxuZnVuY3Rpb24gaXNRdWV1ZUl0ZW1JZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFF1ZXVlSXRlbUlkIHtcbiAgcmV0dXJuIGlzU3RyaW5nKHZhbHVlKSB8fCBpc051bWJlcih2YWx1ZSk7XG59XG5cbi8qKlxuICogQSBjbGFzcyByZXByZXNlbnRpbmcgYSBxdWV1ZSBzdHJ1Y3R1cmUgd2l0aCBhZHZhbmNlZCBmdW5jdGlvbmFsaXRpZXMgaW5jbHVkaW5nIGFkZGluZywgcmVtb3ZpbmcsXG4gKiB1cGRhdGluZyBpdGVtcywgYW5kIG9ic2VydmluZyBjaGFuZ2VzIHRocm91Z2ggUnhKUyBvYnNlcnZhYmxlcy4gSXQgc3VwcG9ydHMgZ2VuZXJpYyBxdWV1ZSBpdGVtIHR5cGVzLFxuICogYWxsb3dpbmcgZm9yIGZsZXhpYmxlIHVzYWdlIGFjcm9zcyBkaWZmZXJlbnQgY29udGV4dHMuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiBpdGVtcyBzdG9yZWQgaW4gdGhlIHF1ZXVlLiBFYWNoIGl0ZW0gbXVzdCBleHRlbmQgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYSB1bmlxdWUgYGlkYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXVlPFQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBxdWV1ZSA9IG5ldyBNYXA8c3RyaW5nLCBRdWV1ZUl0ZW08VD4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRzJCQgPSBuZXcgU3ViamVjdDxRdWV1ZUV2ZW50PFQ+PigpO1xuICBwcml2YXRlIHZhbHVlczogUXVldWVJdGVtPFQ+W10gPSBbXTtcbiAgcHJpdmF0ZSBmaXJzdEl0ZW06IFF1ZXVlSXRlbTxUPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGxhc3RJdGVtOiBRdWV1ZUl0ZW08VD4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gYW4gaXRlbSBpcyBhZGRlZCB0byB0aGUgcXVldWUuXG4gICAqIEB0eXBlIHtPYnNlcnZhYmxlPFQ+fVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uQWRkJCA9IHRoaXMuY3JlYXRlRXZlbnRPYnNlcnZlcignYWRkJyk7XG5cbiAgLyoqXG4gICAqIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGFuIGl0ZW0gaW4gdGhlIHF1ZXVlIGlzIHVwZGF0ZWQuXG4gICAqIEB0eXBlIHtPYnNlcnZhYmxlPFQ+fVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uVXBkYXRlJCA9IHRoaXMuY3JlYXRlRXZlbnRPYnNlcnZlcigndXBkYXRlJyk7XG5cbiAgLyoqXG4gICAqIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGFuIGl0ZW0gaXMgcmVtb3ZlZCBmcm9tIHRoZSBxdWV1ZS5cbiAgICogQHR5cGUge09ic2VydmFibGU8VD59XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25SZW1vdmUkID0gdGhpcy5jcmVhdGVFdmVudE9ic2VydmVyKCdyZW1vdmUnKTtcblxuICAvKipcbiAgICogQW4gb2JzZXJ2YWJsZSByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHF1ZXVlIGFzIGFuIGFycmF5IG9mIGl0ZW1zLlxuICAgKiBAdHlwZSB7T2JzZXJ2YWJsZTxRdWV1ZUl0ZW08VD5bXT59XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWUkID0gdGhpcy5ldmVudHMkJC5waXBlKFxuICAgIHN0YXJ0V2l0aCgoKSA9PiB2b2lkIDApLFxuICAgIG1hcCgoKSA9PiB0aGlzLnZhbHVlcyksXG4gICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgKTtcblxuICAvKipcbiAgICogQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjdXJyZW50IHNpemUgb2YgdGhlIHF1ZXVlLlxuICAgKiBAdHlwZSB7T2JzZXJ2YWJsZTxudW1iZXI+fVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNpemUkID0gdGhpcy52YWx1ZSQucGlwZShcbiAgICBtYXAoKCkgPT4gdGhpcy5zaXplKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICk7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNpemUgb2YgdGhlIHF1ZXVlLlxuICAgKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBxdWV1ZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLnNpemU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgaXRlbSBpcyB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgcXVldWUuXG4gICAqIEBwYXJhbSB7UXVldWVJdGVtPFQ+fSBpdGVtIC0gVGhlIGl0ZW0gdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgYHRydWVgIGlmIHRoZSBpdGVtIGlzIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBxdWV1ZSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgaXNGaXJzdCh7IGlkIH06IFF1ZXVlSXRlbTxUPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpcnN0SXRlbT8uaWQgPT09IGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGl0ZW0gaXMgdGhlIGxhc3QgaXRlbSBpbiB0aGUgcXVldWUuXG4gICAqIEBwYXJhbSB7UXVldWVJdGVtPFQ+fSBpdGVtIC0gVGhlIGl0ZW0gdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlbSBpcyB0aGUgbGFzdCBpdGVtLCBvdGhlcndpc2UgcmV0dXJucyBmYWxzZS5cbiAgICovXG4gIHB1YmxpYyBpc0xhc3QoeyBpZCB9OiBRdWV1ZUl0ZW08VD4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0SXRlbT8uaWQgPT09IGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIHF1ZXVlIGl0ZW0gZnJvbSB0aGUgcXVldWUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGl0ZW0gb3IgaXRlbSBJRC5cbiAgICogQHBhcmFtIGl0ZW1PcklkIC0gVGhlIHF1ZXVlIGl0ZW0gb3IgaXRlbSBJRCB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybnMgVGhlIHF1ZXVlIGl0ZW0gaWYgZm91bmQsIG9yIGBudWxsYCBpZiBub3QgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgZ2V0KGl0ZW1PcklkOiBRdWV1ZUl0ZW08VD4gfCBRdWV1ZUl0ZW1JZCk6IFF1ZXVlSXRlbTxUPiB8IG51bGwge1xuICAgIGNvbnN0IGlkID0gaXNRdWV1ZUl0ZW1JZChpdGVtT3JJZCkgPyBpdGVtT3JJZC50b1N0cmluZygpIDogaXRlbU9ySWQuaWQudG9TdHJpbmcoKTtcblxuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdldChpZCkgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGl0ZW0gdG8gdGhlIHF1ZXVlLCBvcHRpb25hbGx5IGVtaXR0aW5nIGFuIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1F1ZXVlSXRlbTxUPn0gaXRlbSAtIFRoZSBpdGVtIHRvIGFkZC5cbiAgICogQHBhcmFtIHtib29sZWFufSBbZW1pdEV2ZW50PXRydWVdIC0gV2hldGhlciB0byBlbWl0IGFuIGV2ZW50IGZvciB0aGlzIGFjdGlvbi5cbiAgICogQHJldHVybnMge1F1ZXVlSXRlbTxUPn0gVGhlIGl0ZW0gYWRkZWQgdG8gdGhlIHF1ZXVlLlxuICAgKi9cbiAgcHVibGljIGFkZChpdGVtOiBRdWV1ZUl0ZW08VD4sIGVtaXRFdmVudCA9IHRydWUpOiBRdWV1ZUl0ZW08VD4ge1xuICAgIHRoaXMucmVtb3ZlKGl0ZW0sIGZhbHNlKTtcblxuICAgIHJldHVybiB0aGlzLmFkZE1hbnkoW2l0ZW1dLCBlbWl0RXZlbnQpWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbXVsdGlwbGUgaXRlbXMgdG8gdGhlIHF1ZXVlLlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbXMgLSBBbiBhcnJheSBvZiBpdGVtcyB0byBiZSBhZGRlZCB0byB0aGUgcXVldWUuXG4gICAqIEBwYXJhbSBlbWl0RXZlbnQgLSAoT3B0aW9uYWwpIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gZW1pdCBhbiBldmVudCBhZnRlciBhZGRpbmcgdGhlIGl0ZW1zLiBEZWZhdWx0IGlzIHRydWUuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFkZGVkIGl0ZW1zLlxuICAgKi9cbiAgcHVibGljIGFkZE1hbnkoaXRlbXM6IEFycmF5PFF1ZXVlSXRlbTxUPj4sIGVtaXRFdmVudCA9IHRydWUpOiBBcnJheTxRdWV1ZUl0ZW08VD4+IHtcbiAgICBjb25zdCBhZGRlZEl0ZW1zID0gW107XG4gICAgY29uc3QgdXBkYXRlZEl0ZW1zID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAodGhpcy5nZXQoaXRlbSkpIHtcbiAgICAgICAgYWRkZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgICB0aGlzLnF1ZXVlLnNldChpdGVtLmlkLnRvU3RyaW5nKCksIGl0ZW0pO1xuICAgIH1cbiAgICBpZiAoYWRkZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubm90aWZ5KHsgdHlwZTogJ2FkZCcsIGl0ZW1zOiBhZGRlZEl0ZW1zIH0sIGVtaXRFdmVudCk7XG4gICAgfVxuICAgIGlmICh1cGRhdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm5vdGlmeSh7IHR5cGU6ICd1cGRhdGUnLCBpdGVtczogdXBkYXRlZEl0ZW1zIH0sIGVtaXRFdmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYW4gaXRlbSBmcm9tIHRoZSBxdWV1ZS5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW1PcklkIC0gVGhlIGl0ZW0gb3IgSUQgb2YgdGhlIGl0ZW0gdG8gYmUgcmVtb3ZlZC5cbiAgICogQHBhcmFtIGVtaXRFdmVudCAtIFdoZXRoZXIgdG8gZW1pdCBhbiBldmVudCBhZnRlciByZW1vdmluZyB0aGUgaXRlbS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqIEByZXR1cm5zIFRoZSByZW1vdmVkIGl0ZW0sIG9yIGBudWxsYCBpZiB0aGUgaXRlbSB3YXMgbm90IGZvdW5kLlxuICAgKi9cbiAgcHVibGljIHJlbW92ZShpdGVtT3JJZDogUXVldWVJdGVtPFQ+IHwgUXVldWVJdGVtSWQsIGVtaXRFdmVudCA9IHRydWUpOiBRdWV1ZUl0ZW08VD4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVNYW55KFtpdGVtT3JJZF0sIGVtaXRFdmVudClbMF07XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBtdWx0aXBsZSBpdGVtcyBmcm9tIHRoZSBxdWV1ZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgaXRlbSBvciBpdGVtIElEcy5cbiAgICogQHBhcmFtIGl0ZW1PcklkcyAtIEFuIGFycmF5IG9mIFF1ZXVlSXRlbSBvciBRdWV1ZUl0ZW1JZCBvYmplY3RzIHJlcHJlc2VudGluZyB0aGUgaXRlbXMgdG8gYmUgcmVtb3ZlZC5cbiAgICogQHBhcmFtIGVtaXRFdmVudCAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gZW1pdCBhbiBldmVudCBhZnRlciByZW1vdmluZyB0aGUgaXRlbXMuIERlZmF1bHQgaXMgdHJ1ZS5cbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgcmVtb3ZlZCBRdWV1ZUl0ZW0gb2JqZWN0cyBvciBudWxsIHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyByZW1vdmVNYW55KGl0ZW1PcklkczogQXJyYXk8UXVldWVJdGVtPFQ+IHwgUXVldWVJdGVtSWQ+LCBlbWl0RXZlbnQgPSB0cnVlKTogQXJyYXk8UXVldWVJdGVtPFQ+IHwgbnVsbD4ge1xuICAgIGNvbnN0IGl0ZW1zID0gaXRlbU9ySWRzLm1hcCgoaXRlbU9ySWQpID0+IHRoaXMuZ2V0KGl0ZW1PcklkKSkuZmlsdGVyKEJvb2xlYW4pIGFzIFF1ZXVlSXRlbTxUPltdO1xuICAgIGNvbnN0IHJlbW92ZWRJdGVtcyA9IFtdO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgaXRlbVJlbW92ZWQgPSB0aGlzLnF1ZXVlLmRlbGV0ZShpdGVtLmlkLnRvU3RyaW5nKCkpO1xuICAgICAgaWYgKCFpdGVtUmVtb3ZlZCkgY29udGludWU7XG4gICAgICByZW1vdmVkSXRlbXMucHVzaChpdGVtKTtcbiAgICB9XG4gICAgdGhpcy5ub3RpZnkoeyB0eXBlOiAncmVtb3ZlJywgaXRlbXM6IHJlbW92ZWRJdGVtcyB9LCBlbWl0RXZlbnQpO1xuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgcXVldWUgYnkgcmVtb3ZpbmcgYWxsIGl0ZW1zLlxuICAgKlxuICAgKiBAcGFyYW0gZW1pdEV2ZW50IC0gV2hldGhlciB0byBlbWl0IGFuIGV2ZW50IGFmdGVyIGNsZWFyaW5nIHRoZSBxdWV1ZS4gRGVmYXVsdCBpcyB0cnVlLlxuICAgKi9cbiAgcHVibGljIGNsZWFyKGVtaXRFdmVudCA9IHRydWUpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMudG9BcnJheSgpO1xuICAgIHRoaXMucXVldWUuY2xlYXIoKTtcbiAgICB0aGlzLm5vdGlmeSh7IHR5cGU6ICdyZW1vdmUnLCBpdGVtcyB9LCBlbWl0RXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgcmVwcmVzZW50YXRpb24gb2YgdGhlIHF1ZXVlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBjb250YWluaW5nIGFsbCB0aGUgaXRlbXMgaW4gdGhlIHF1ZXVlLlxuICAgKi9cbiAgcHVibGljIHRvQXJyYXkoKTogUXVldWVJdGVtPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcztcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5KGV2ZW50OiBRdWV1ZUV2ZW50PFQ+LCBlbWl0RXZlbnQgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZXMgPSBBcnJheS5mcm9tKHRoaXMucXVldWUsIChbXywgaXRlbV0pID0+IGl0ZW0pLnJldmVyc2UoKTtcbiAgICB0aGlzLmZpcnN0SXRlbSA9IHRoaXMudmFsdWVzWzBdID8/IG51bGw7XG4gICAgdGhpcy5sYXN0SXRlbSA9IHRoaXMudmFsdWVzW3RoaXMudmFsdWVzLmxlbmd0aCAtIDFdID8/IG51bGw7XG4gICAgaWYgKCFlbWl0RXZlbnQpIHJldHVybjtcbiAgICB0aGlzLmV2ZW50cyQkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFdmVudE9ic2VydmVyKHR5cGU6IFF1ZXVlRXZlbnRUeXBlKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRzJCQucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LnR5cGUgPT09IHR5cGUpLFxuICAgICAgbWFwKCh7IGl0ZW1zIH0pID0+IGl0ZW1zKSxcbiAgICAgIGNvbmNhdEFsbCgpLFxuICAgICAgc2hhcmUoKSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,29 +1,86 @@
|
|
|
1
1
|
import { TemplateRef } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if the given value is a `ViewContainerRef`.
|
|
4
|
+
*
|
|
5
|
+
* @param {unknown} value - The value to check.
|
|
6
|
+
* @returns {value is ViewContainerRef} `true` if the value is a `ViewContainerRef`, otherwise `false`.
|
|
7
|
+
*/
|
|
2
8
|
export function isViewContainer(value) {
|
|
3
9
|
return isFunction(value?.createComponent);
|
|
4
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Checks if the given value is a `TemplateRef`.
|
|
13
|
+
*
|
|
14
|
+
* @template T - The embedded view type.
|
|
15
|
+
* @param {unknown} value - The value to check.
|
|
16
|
+
* @returns {value is TemplateRef<T>} `true` if the value is a `TemplateRef`, otherwise `false`.
|
|
17
|
+
*/
|
|
5
18
|
export function isTemplateRef(value) {
|
|
6
19
|
return value instanceof TemplateRef;
|
|
7
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Checks if the given value is an Angular component class.
|
|
23
|
+
*
|
|
24
|
+
* @template T - The component class type.
|
|
25
|
+
* @param {unknown} value - The value to check.
|
|
26
|
+
* @returns {value is Type<T>} `true` if the value is a component class, otherwise `false`.
|
|
27
|
+
*/
|
|
8
28
|
export function isComponent(value) {
|
|
9
29
|
return isFunction(value);
|
|
10
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Checks if the given value is a string.
|
|
33
|
+
*
|
|
34
|
+
* @param {unknown} value - The value to check.
|
|
35
|
+
* @returns {value is string} `true` if the value is a string, otherwise `false`.
|
|
36
|
+
*/
|
|
11
37
|
export function isString(value) {
|
|
12
38
|
return typeof value === 'string';
|
|
13
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Checks if the given value is a non-empty string.
|
|
42
|
+
*
|
|
43
|
+
* @param {unknown} value - The value to check.
|
|
44
|
+
* @returns {value is string} `true` if the value is a non-empty string, otherwise `false`.
|
|
45
|
+
*/
|
|
14
46
|
export function isNonEmptyString(value) {
|
|
15
47
|
return isString(value) && value.length > 0;
|
|
16
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Checks if the given value is a boolean.
|
|
51
|
+
*
|
|
52
|
+
* @param {unknown} value - The value to check.
|
|
53
|
+
* @returns {value is boolean} `true` if the value is a boolean, otherwise `false`.
|
|
54
|
+
*/
|
|
17
55
|
export function isBoolean(value) {
|
|
18
56
|
return value === true || value === false;
|
|
19
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Checks if the given value is a function.
|
|
60
|
+
*
|
|
61
|
+
* @param {unknown} value - The value to check.
|
|
62
|
+
* @returns {value is CallableFunction} `true` if the value is a function, otherwise `false`.
|
|
63
|
+
*/
|
|
20
64
|
export function isFunction(value) {
|
|
21
65
|
return typeof value === 'function';
|
|
22
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Checks if the given value is present (not null or undefined).
|
|
69
|
+
*
|
|
70
|
+
* @template T - The value type.
|
|
71
|
+
* @param {T | null | undefined} value - The value to check.
|
|
72
|
+
* @returns {value is NonNullable<T>} `true` if the value is present, otherwise `false`.
|
|
73
|
+
*/
|
|
23
74
|
export function isPresent(value) {
|
|
24
75
|
return value !== null && value !== undefined;
|
|
25
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Checks if the given value is a number.
|
|
79
|
+
*
|
|
80
|
+
* @param {unknown} value - The value to check.
|
|
81
|
+
* @returns {value is number} `true` if the value is a number, otherwise `false`.
|
|
82
|
+
*/
|
|
26
83
|
export function isNumber(value) {
|
|
27
84
|
return typeof value === 'number';
|
|
28
85
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1ndWFyZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL3R5cGUtZ3VhcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBRXBFOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFjO0lBQzVDLE9BQU8sVUFBVSxDQUFFLEtBQTBCLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQWMsS0FBYztJQUN2RCxPQUFPLEtBQUssWUFBWSxXQUFXLENBQUM7QUFDdEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQWMsS0FBYztJQUNyRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWM7SUFDckMsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFjO0lBQ3RDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYztJQUN2QyxPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUN0RCxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWM7SUFDckMsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIGBWaWV3Q29udGFpbmVyUmVmYC5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge3ZhbHVlIGlzIFZpZXdDb250YWluZXJSZWZ9IGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSBgVmlld0NvbnRhaW5lclJlZmAsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWaWV3Q29udGFpbmVyKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgVmlld0NvbnRhaW5lclJlZiB7XG4gIHJldHVybiBpc0Z1bmN0aW9uKCh2YWx1ZSBhcyBWaWV3Q29udGFpbmVyUmVmKT8uY3JlYXRlQ29tcG9uZW50KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgYFRlbXBsYXRlUmVmYC5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSBlbWJlZGRlZCB2aWV3IHR5cGUuXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge3ZhbHVlIGlzIFRlbXBsYXRlUmVmPFQ+fSBgdHJ1ZWAgaWYgdGhlIHZhbHVlIGlzIGEgYFRlbXBsYXRlUmVmYCwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RlbXBsYXRlUmVmPFQgPSB1bmtub3duPih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPFQ+IHtcbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBBbmd1bGFyIGNvbXBvbmVudCBjbGFzcy5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSBjb21wb25lbnQgY2xhc3MgdHlwZS5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgVHlwZTxUPn0gYHRydWVgIGlmIHRoZSB2YWx1ZSBpcyBhIGNvbXBvbmVudCBjbGFzcywgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbXBvbmVudDxUID0gdW5rbm93bj4odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUeXBlPFQ+IHtcbiAgcmV0dXJuIGlzRnVuY3Rpb24odmFsdWUpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBzdHJpbmd9IGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSBzdHJpbmcsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgbm9uLWVtcHR5IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge3ZhbHVlIGlzIHN0cmluZ30gYHRydWVgIGlmIHRoZSB2YWx1ZSBpcyBhIG5vbi1lbXB0eSBzdHJpbmcsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOb25FbXB0eVN0cmluZyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIHN0cmluZyB7XG4gIHJldHVybiBpc1N0cmluZyh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgYm9vbGVhbi5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge3ZhbHVlIGlzIGJvb2xlYW59IGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSBib29sZWFuLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge3ZhbHVlIGlzIENhbGxhYmxlRnVuY3Rpb259IGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSBmdW5jdGlvbiwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQ2FsbGFibGVGdW5jdGlvbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbic7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBwcmVzZW50IChub3QgbnVsbCBvciB1bmRlZmluZWQpLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHZhbHVlIHR5cGUuXG4gKiBAcGFyYW0ge1QgfCBudWxsIHwgdW5kZWZpbmVkfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBOb25OdWxsYWJsZTxUPn0gYHRydWVgIGlmIHRoZSB2YWx1ZSBpcyBwcmVzZW50LCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlc2VudDxUPih2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiB2YWx1ZSBpcyBOb25OdWxsYWJsZTxUPiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBudW1iZXIuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBudW1iZXJ9IGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBudW1iZXIge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJztcbn1cbiJdfQ==
|
|
@@ -1,7 +1,45 @@
|
|
|
1
1
|
import { DestroyRef, inject } from '@angular/core';
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a MonoTypeOperatorFunction that automatically unsubscribes from observables when the host component or service is destroyed.
|
|
5
|
+
* It uses Angular's `DestroyRef` to detect when the component or service is destroyed and triggers the unsubscription at that point.
|
|
6
|
+
* This utility function helps in managing subscriptions and prevents memory leaks by ensuring observables are unsubscribed when no longer needed.
|
|
7
|
+
*
|
|
8
|
+
* @returns A function that returns a `MonoTypeOperatorFunction<T>`, which can be used in an RxJS pipe to automatically unsubscribe
|
|
9
|
+
* based on the component's or service's lifecycle.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // In an Angular component or service
|
|
14
|
+
* import { Component } from '@angular/core';
|
|
15
|
+
* import { Observable } from 'rxjs';
|
|
16
|
+
* import { untilDestroyed } from './path/to/untilDestroyed';
|
|
17
|
+
*
|
|
18
|
+
* @Component({
|
|
19
|
+
* selector: 'app-example',
|
|
20
|
+
* template: `<div>Example Component</div>`,
|
|
21
|
+
* })
|
|
22
|
+
* export class ExampleComponent {
|
|
23
|
+
* private readonly takeUntilDestroyed = untilDestroyed();
|
|
24
|
+
*
|
|
25
|
+
* constructor() {
|
|
26
|
+
* const exampleObservable$ = new Observable(observer => {
|
|
27
|
+
* // Observable logic here
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* exampleObservable$.pipe(
|
|
31
|
+
* this.takeUntilDestroyed(),
|
|
32
|
+
* ).subscribe(data => {
|
|
33
|
+
* // Subscription logic here
|
|
34
|
+
* });
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* // No need to manually implement ngOnDestroy to unsubscribe
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
3
41
|
export function untilDestroyed() {
|
|
4
42
|
const destroyRef = inject(DestroyRef);
|
|
5
43
|
return () => takeUntilDestroyed(destroyRef);
|
|
6
44
|
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveWVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy91bnRpbC1kZXN0cm95ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ0c7QUFDSCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIHRoYXQgYXV0b21hdGljYWxseSB1bnN1YnNjcmliZXMgZnJvbSBvYnNlcnZhYmxlcyB3aGVuIHRoZSBob3N0IGNvbXBvbmVudCBvciBzZXJ2aWNlIGlzIGRlc3Ryb3llZC5cbiAqIEl0IHVzZXMgQW5ndWxhcidzIGBEZXN0cm95UmVmYCB0byBkZXRlY3Qgd2hlbiB0aGUgY29tcG9uZW50IG9yIHNlcnZpY2UgaXMgZGVzdHJveWVkIGFuZCB0cmlnZ2VycyB0aGUgdW5zdWJzY3JpcHRpb24gYXQgdGhhdCBwb2ludC5cbiAqIFRoaXMgdXRpbGl0eSBmdW5jdGlvbiBoZWxwcyBpbiBtYW5hZ2luZyBzdWJzY3JpcHRpb25zIGFuZCBwcmV2ZW50cyBtZW1vcnkgbGVha3MgYnkgZW5zdXJpbmcgb2JzZXJ2YWJsZXMgYXJlIHVuc3Vic2NyaWJlZCB3aGVuIG5vIGxvbmdlciBuZWVkZWQuXG4gKlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+YCwgd2hpY2ggY2FuIGJlIHVzZWQgaW4gYW4gUnhKUyBwaXBlIHRvIGF1dG9tYXRpY2FsbHkgdW5zdWJzY3JpYmVcbiAqIGJhc2VkIG9uIHRoZSBjb21wb25lbnQncyBvciBzZXJ2aWNlJ3MgbGlmZWN5Y2xlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gSW4gYW4gQW5ndWxhciBjb21wb25lbnQgb3Igc2VydmljZVxuICogaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKiBpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG4gKiBpbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJy4vcGF0aC90by91bnRpbERlc3Ryb3llZCc7XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnYXBwLWV4YW1wbGUnLFxuICogICB0ZW1wbGF0ZTogYDxkaXY+RXhhbXBsZSBDb21wb25lbnQ8L2Rpdj5gLFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBFeGFtcGxlQ29tcG9uZW50IHtcbiAqICAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuICpcbiAqICAgY29uc3RydWN0b3IoKSB7XG4gKiAgICAgY29uc3QgZXhhbXBsZU9ic2VydmFibGUkID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICogICAgICAgLy8gT2JzZXJ2YWJsZSBsb2dpYyBoZXJlXG4gKiAgICAgfSk7XG4gKlxuICogICAgIGV4YW1wbGVPYnNlcnZhYmxlJC5waXBlKFxuICogICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAqICAgICApLnN1YnNjcmliZShkYXRhID0+IHtcbiAqICAgICAgIC8vIFN1YnNjcmlwdGlvbiBsb2dpYyBoZXJlXG4gKiAgICAgfSk7XG4gKiAgIH1cbiAqXG4gKiAgIC8vIE5vIG5lZWQgdG8gbWFudWFsbHkgaW1wbGVtZW50IG5nT25EZXN0cm95IHRvIHVuc3Vic2NyaWJlXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVudGlsRGVzdHJveWVkKCk6IDxUPigpID0+IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcmV0dXJuICgpID0+IHRha2VVbnRpbERlc3Ryb3llZChkZXN0cm95UmVmKTtcbn1cbiJdfQ==
|
|
@@ -8,21 +8,135 @@ const DEFAULT_ANIMATION_PARAMS = {
|
|
|
8
8
|
delay: '0ms',
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Animation for smoothly expanding an element from height 0 to its natural height.
|
|
13
|
+
* It transitions the element's height, padding, margin, and opacity from a collapsed state to an expanded state,
|
|
14
|
+
* making the element smoothly grow into view.
|
|
15
|
+
*
|
|
16
|
+
* The `expand` animation uses `DEFAULT_ANIMATION_PARAMS` for its default parameters, which can be overridden
|
|
17
|
+
* when using the animation.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* // Example usage in an Angular component
|
|
22
|
+
* import { expand, collapse } from '@odx/angular/animations';
|
|
23
|
+
*
|
|
24
|
+
* @Component({
|
|
25
|
+
* selector: 'my-expandable-component',
|
|
26
|
+
* templateUrl: './expandable-component.html',
|
|
27
|
+
* animations: [
|
|
28
|
+
* trigger('expandCollapse', [
|
|
29
|
+
* transition('collapsed => expanded', useAnimation(expand)),
|
|
30
|
+
* transition('expanded => collapsed', useAnimation(collapse)),
|
|
31
|
+
* ])
|
|
32
|
+
* ]
|
|
33
|
+
* })
|
|
34
|
+
* export class ExpandableComponent {
|
|
35
|
+
* state = 'collapsed';
|
|
36
|
+
*
|
|
37
|
+
* toggle(): void {
|
|
38
|
+
* this.state = this.state === 'collapsed' ? 'expanded' : 'collapsed';
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* The animation smoothly transitions various properties (height, padding, margin, and opacity) and is controlled
|
|
44
|
+
* through parameters defined in `DEFAULT_ANIMATION_PARAMS` or those provided during usage.
|
|
45
|
+
*/
|
|
11
46
|
const expand = animation([
|
|
12
47
|
style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0, marginTop: 0, marginBottom: 0, overflow: 'hidden' }),
|
|
13
48
|
animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: '*', paddingTop: '*', paddingBottom: '*', opacity: 1, marginTop: '*', marginBottom: '*' })),
|
|
14
49
|
], {
|
|
15
50
|
params: DEFAULT_ANIMATION_PARAMS,
|
|
16
51
|
});
|
|
52
|
+
/**
|
|
53
|
+
* Animation for smoothly collapsing an element from its natural height to height 0.
|
|
54
|
+
* It transitions the element's height, padding, margin, and opacity from an expanded state to a collapsed state,
|
|
55
|
+
* making the element smoothly shrink out of view.
|
|
56
|
+
*
|
|
57
|
+
* The `collapse` animation also uses `DEFAULT_ANIMATION_PARAMS` for its default parameters, which can be overridden
|
|
58
|
+
* when using the animation. It's designed to be used in conjunction with the `expand` animation for creating
|
|
59
|
+
* expandable/collapsible elements.
|
|
60
|
+
*/
|
|
17
61
|
const collapse = animation([
|
|
18
62
|
animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0, marginTop: 0, marginBottom: 0, overflow: 'hidden' })),
|
|
19
63
|
], {
|
|
20
64
|
params: DEFAULT_ANIMATION_PARAMS,
|
|
21
65
|
});
|
|
22
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Generates a fadeIn animation with customizable opacity target.
|
|
69
|
+
* This animation gradually changes the element's opacity from 0 to a specified value, creating a "fade in" visual effect.
|
|
70
|
+
*
|
|
71
|
+
* @param {number} to - The final opacity value of the element at the end of the animation. Defaults to 1 (fully opaque).
|
|
72
|
+
* @returns {AnimationReferenceMetadata} An Angular animation object that can be used with Angular's animation system.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* // Example usage in an Angular component with a fadeIn animation
|
|
77
|
+
* import { fadeIn } from '@odx/angular/animations';
|
|
78
|
+
* import { trigger, transition, useAnimation } from '@angular/animations';
|
|
79
|
+
*
|
|
80
|
+
* @Component({
|
|
81
|
+
* selector: 'app-fade-in-example',
|
|
82
|
+
* template: `
|
|
83
|
+
* <div @fadeInAnimation *ngIf="isVisible">Fade In Content</div>
|
|
84
|
+
* <button (click)="showContent()">Show Content</button>`,
|
|
85
|
+
* animations: [
|
|
86
|
+
* trigger('fadeInAnimation', [
|
|
87
|
+
* transition(':enter', useAnimation(fadeIn(), { params: { duration: '500ms' } }))
|
|
88
|
+
* ])
|
|
89
|
+
* ]
|
|
90
|
+
* })
|
|
91
|
+
* export class FadeInExampleComponent {
|
|
92
|
+
* isVisible = false;
|
|
93
|
+
*
|
|
94
|
+
* showContent(): void {
|
|
95
|
+
* this.isVisible = true;
|
|
96
|
+
* }
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* This example demonstrates how to apply the fadeIn animation to an element, making it smoothly appear on the screen.
|
|
101
|
+
*/
|
|
23
102
|
const fadeIn = (to = 1) => animation([style({ opacity: 0 }), animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {
|
|
24
103
|
params: DEFAULT_ANIMATION_PARAMS,
|
|
25
104
|
});
|
|
105
|
+
/**
|
|
106
|
+
* Generates a fadeOut animation with customizable opacity target.
|
|
107
|
+
* This animation gradually changes the element's opacity from its current value to a specified value, creating a "fade out" visual effect.
|
|
108
|
+
*
|
|
109
|
+
* @param {number} to - The target opacity value of the element at the end of the animation. Defaults to 0 (fully transparent).
|
|
110
|
+
* @returns {AnimationReferenceMetadata} An Angular animation object that can be used with Angular's animation system.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* // Example usage in an Angular component with a fadeOut animation
|
|
115
|
+
* import { fadeOut } from '@odx/angular/animations';
|
|
116
|
+
* import { trigger, transition, useAnimation } from '@angular/animations';
|
|
117
|
+
*
|
|
118
|
+
* @Component({
|
|
119
|
+
* selector: 'app-fade-out-example',
|
|
120
|
+
* template: `
|
|
121
|
+
* <div @fadeOutAnimation *ngIf="isVisible">Fade Out Content</div>
|
|
122
|
+
* <button (click)="hideContent()">Hide Content</button>`,
|
|
123
|
+
* animations: [
|
|
124
|
+
* trigger('fadeOutAnimation', [
|
|
125
|
+
* transition(':leave', useAnimation(fadeOut(), { params: { duration: '500ms' } }))
|
|
126
|
+
* ])
|
|
127
|
+
* ]
|
|
128
|
+
* })
|
|
129
|
+
* export class FadeOutExampleComponent {
|
|
130
|
+
* isVisible = true;
|
|
131
|
+
*
|
|
132
|
+
* hideContent(): void {
|
|
133
|
+
* this.isVisible = false;
|
|
134
|
+
* }
|
|
135
|
+
* }
|
|
136
|
+
* ```
|
|
137
|
+
*
|
|
138
|
+
* This example demonstrates how to apply the fadeOut animation to an element, making it smoothly disappear from the screen.
|
|
139
|
+
*/
|
|
26
140
|
const fadeOut = (to = 0) => animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {
|
|
27
141
|
params: DEFAULT_ANIMATION_PARAMS,
|
|
28
142
|
});
|
|
@@ -46,6 +160,27 @@ function createSlideOutAnimation(to, direction) {
|
|
|
46
160
|
},
|
|
47
161
|
});
|
|
48
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Utility functions for creating slide-in and slide-out animations in specific directions.
|
|
165
|
+
* These include slideInX, slideInY, slideInDown, slideInUp, slideInLeft, slideInRight,
|
|
166
|
+
* slideOutX, slideOutY, slideOutDown, slideOutUp, slideOutLeft, and slideOutRight.
|
|
167
|
+
* Each function is configured for a specific slide direction and distance, making it easy to apply
|
|
168
|
+
* consistent slide animations across your application.
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```ts
|
|
172
|
+
* // Using slideInLeft and slideOutRight in a component
|
|
173
|
+
* animations: [
|
|
174
|
+
* trigger('slideInOut', [
|
|
175
|
+
* transition(':enter', [useAnimation(slideInLeft)]),
|
|
176
|
+
* transition(':leave', [useAnimation(slideOutRight)])
|
|
177
|
+
* ])
|
|
178
|
+
* ]
|
|
179
|
+
* ```
|
|
180
|
+
*
|
|
181
|
+
* Note: The 'from' and 'to' parameters for slideIn and slideOut functions respectively
|
|
182
|
+
* can be customized for different slide distances.
|
|
183
|
+
*/
|
|
49
184
|
const slideInX = (from) => createSlideInAnimation(from, 'X');
|
|
50
185
|
const slideInY = (from) => createSlideInAnimation(from, 'Y');
|
|
51
186
|
const slideInDown = slideInY('-100%');
|
|
@@ -59,6 +194,44 @@ const slideOutUp = slideOutY('-100%');
|
|
|
59
194
|
const slideOutLeft = slideOutX('-100%');
|
|
60
195
|
const slideOutRight = slideOutX('100%');
|
|
61
196
|
|
|
197
|
+
/**
|
|
198
|
+
* Utility animation that waits for animations on child components to complete.
|
|
199
|
+
* This animation should be used within parent components that have child components with their
|
|
200
|
+
* own animations. It ensures that the parent's enter and leave animations are only triggered
|
|
201
|
+
* after all child animations have completed, creating a seamless animation sequence.
|
|
202
|
+
*
|
|
203
|
+
* This utility uses Angular's animation functions `query` and `animateChild` to find and animate
|
|
204
|
+
* child elements marked with Angular's animation triggers. The `{ optional: true }` parameter
|
|
205
|
+
* ensures that the animation gracefully handles cases where no child animations are defined.
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* ```ts
|
|
209
|
+
* // Using waitForChildAnimations in a parent component with children that have animations
|
|
210
|
+
* import { trigger, transition, style, animate, query, animateChild } from '@angular/animations';
|
|
211
|
+
* import { waitForChildAnimations } from '@odx/angular/animations';
|
|
212
|
+
*
|
|
213
|
+
* @Component({
|
|
214
|
+
* selector: 'app-parent',
|
|
215
|
+
* templateUrl: './parent.component.html',
|
|
216
|
+
* animations: [
|
|
217
|
+
* trigger('parentAnimation', [
|
|
218
|
+
* // Define parent animations here
|
|
219
|
+
* transition(':enter', [style({ opacity: 0 }), animate('0.5s ease-in', style({ opacity: 1 }))]),
|
|
220
|
+
* transition(':leave', [animate('0.5s ease-out', style({ opacity: 0 }))]),
|
|
221
|
+
* // Use waitForChildAnimations for coordinating with child animations
|
|
222
|
+
* waitForChildAnimations
|
|
223
|
+
* ])
|
|
224
|
+
* ]
|
|
225
|
+
* })
|
|
226
|
+
* export class ParentComponent {
|
|
227
|
+
* // Component logic here
|
|
228
|
+
* }
|
|
229
|
+
* ```
|
|
230
|
+
*
|
|
231
|
+
* Note: The `waitForChildAnimations` utility is added to the parent component's animation triggers,
|
|
232
|
+
* ensuring that any child component animations are completed before continuing with the parent's
|
|
233
|
+
* own animations.
|
|
234
|
+
*/
|
|
62
235
|
const waitForChildAnimations = transition(':enter, :leave', [query('@*', animateChild(), { optional: true })]);
|
|
63
236
|
|
|
64
237
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-animations.mjs","sources":["../../../../libs/angular/animations/src/lib/config.ts","../../../../libs/angular/animations/src/lib/expand.ts","../../../../libs/angular/animations/src/lib/fade.ts","../../../../libs/angular/animations/src/lib/slide.ts","../../../../libs/angular/animations/src/lib/wait-for-child-animations.ts","../../../../libs/angular/animations/src/odx-angular-animations.ts"],"sourcesContent":["export const DEFAULT_ANIMATION_TIMING_FN = 'ease';\nexport const DEFAULT_ANIMATION_DURATION = '250ms';\nexport const DEFAULT_ANIMATION_PARAMS = {\n timingFn: DEFAULT_ANIMATION_TIMING_FN,\n duration: DEFAULT_ANIMATION_DURATION,\n delay: '0ms',\n};\n","import { animate, animation, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nexport const expand = animation(\n [\n style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0, marginTop: 0, marginBottom: 0, overflow: 'hidden' }),\n animate(\n '{{duration}} {{ delay }} {{ timingFn }}',\n style({ height: '*', paddingTop: '*', paddingBottom: '*', opacity: 1, marginTop: '*', marginBottom: '*' })\n ),\n ],\n {\n params: DEFAULT_ANIMATION_PARAMS,\n }\n);\n\nexport const collapse = animation(\n [\n animate(\n '{{duration}} {{ delay }} {{ timingFn }}',\n style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0, marginTop: 0, marginBottom: 0, overflow: 'hidden' })\n ),\n ],\n {\n params: DEFAULT_ANIMATION_PARAMS,\n }\n);\n","import { animate, animation, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nexport const fadeIn = (to = 1) =>\n animation([style({ opacity: 0 }), animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {\n params: DEFAULT_ANIMATION_PARAMS,\n });\n\nexport const fadeOut = (to = 0) =>\n animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {\n params: DEFAULT_ANIMATION_PARAMS,\n });\n","import { animate, animation, AnimationReferenceMetadata, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nfunction createSlideInAnimation(from: string, direction: 'X' | 'Y'): AnimationReferenceMetadata {\n return animation(\n [\n style({ transform: `translate${direction}({{ from }})` }),\n animate('{{duration}} {{ delay }} {{ timingFn }}', style({ transform: `translate${direction}(0)` })),\n ],\n {\n params: {\n ...DEFAULT_ANIMATION_PARAMS,\n from,\n },\n }\n );\n}\n\nfunction createSlideOutAnimation(to: string, direction: 'X' | 'Y'): AnimationReferenceMetadata {\n return animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ transform: `translate${direction}({{ to }})` }))], {\n params: {\n ...DEFAULT_ANIMATION_PARAMS,\n to,\n },\n });\n}\n\nexport const slideInX = (from: string) => createSlideInAnimation(from, 'X');\nexport const slideInY = (from: string) => createSlideInAnimation(from, 'Y');\nexport const slideInDown = slideInY('-100%');\nexport const slideInUp = slideInY('100%');\nexport const slideInLeft = slideInX('-100%');\nexport const slideInRight = slideInX('100%');\n\nexport const slideOutX = (to: string) => createSlideOutAnimation(to, 'X');\nexport const slideOutY = (to: string) => createSlideOutAnimation(to, 'Y');\nexport const slideOutDown = slideOutY('100%');\nexport const slideOutUp = slideOutY('-100%');\nexport const slideOutLeft = slideOutX('-100%');\nexport const slideOutRight = slideOutX('100%');\n","import { animateChild, query, transition } from '@angular/animations';\n\nexport const waitForChildAnimations = transition(':enter, :leave', [query('@*', animateChild(), { optional: true })]);\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-animations.mjs","sources":["../../../../libs/angular/animations/src/lib/config.ts","../../../../libs/angular/animations/src/lib/expand.ts","../../../../libs/angular/animations/src/lib/fade.ts","../../../../libs/angular/animations/src/lib/slide.ts","../../../../libs/angular/animations/src/lib/wait-for-child-animations.ts","../../../../libs/angular/animations/src/odx-angular-animations.ts"],"sourcesContent":["export const DEFAULT_ANIMATION_TIMING_FN = 'ease';\nexport const DEFAULT_ANIMATION_DURATION = '250ms';\nexport const DEFAULT_ANIMATION_PARAMS = {\n timingFn: DEFAULT_ANIMATION_TIMING_FN,\n duration: DEFAULT_ANIMATION_DURATION,\n delay: '0ms',\n};\n","import { animate, animation, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\n/**\n * Animation for smoothly expanding an element from height 0 to its natural height.\n * It transitions the element's height, padding, margin, and opacity from a collapsed state to an expanded state,\n * making the element smoothly grow into view.\n *\n * The `expand` animation uses `DEFAULT_ANIMATION_PARAMS` for its default parameters, which can be overridden\n * when using the animation.\n *\n * @example\n * ```ts\n * // Example usage in an Angular component\n * import { expand, collapse } from '@odx/angular/animations';\n *\n * @Component({\n * selector: 'my-expandable-component',\n * templateUrl: './expandable-component.html',\n * animations: [\n * trigger('expandCollapse', [\n * transition('collapsed => expanded', useAnimation(expand)),\n * transition('expanded => collapsed', useAnimation(collapse)),\n * ])\n * ]\n * })\n * export class ExpandableComponent {\n * state = 'collapsed';\n *\n * toggle(): void {\n * this.state = this.state === 'collapsed' ? 'expanded' : 'collapsed';\n * }\n * }\n * ```\n *\n * The animation smoothly transitions various properties (height, padding, margin, and opacity) and is controlled\n * through parameters defined in `DEFAULT_ANIMATION_PARAMS` or those provided during usage.\n */\nexport const expand = animation(\n [\n style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0, marginTop: 0, marginBottom: 0, overflow: 'hidden' }),\n animate(\n '{{duration}} {{ delay }} {{ timingFn }}',\n style({ height: '*', paddingTop: '*', paddingBottom: '*', opacity: 1, marginTop: '*', marginBottom: '*' }),\n ),\n ],\n {\n params: DEFAULT_ANIMATION_PARAMS,\n },\n);\n\n/**\n * Animation for smoothly collapsing an element from its natural height to height 0.\n * It transitions the element's height, padding, margin, and opacity from an expanded state to a collapsed state,\n * making the element smoothly shrink out of view.\n *\n * The `collapse` animation also uses `DEFAULT_ANIMATION_PARAMS` for its default parameters, which can be overridden\n * when using the animation. It's designed to be used in conjunction with the `expand` animation for creating\n * expandable/collapsible elements.\n */\nexport const collapse = animation(\n [\n animate(\n '{{duration}} {{ delay }} {{ timingFn }}',\n style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0, marginTop: 0, marginBottom: 0, overflow: 'hidden' }),\n ),\n ],\n {\n params: DEFAULT_ANIMATION_PARAMS,\n },\n);\n","import { animate, animation, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\n/**\n * Generates a fadeIn animation with customizable opacity target.\n * This animation gradually changes the element's opacity from 0 to a specified value, creating a \"fade in\" visual effect.\n *\n * @param {number} to - The final opacity value of the element at the end of the animation. Defaults to 1 (fully opaque).\n * @returns {AnimationReferenceMetadata} An Angular animation object that can be used with Angular's animation system.\n *\n * @example\n * ```ts\n * // Example usage in an Angular component with a fadeIn animation\n * import { fadeIn } from '@odx/angular/animations';\n * import { trigger, transition, useAnimation } from '@angular/animations';\n *\n * @Component({\n * selector: 'app-fade-in-example',\n * template: `\n * <div @fadeInAnimation *ngIf=\"isVisible\">Fade In Content</div>\n * <button (click)=\"showContent()\">Show Content</button>`,\n * animations: [\n * trigger('fadeInAnimation', [\n * transition(':enter', useAnimation(fadeIn(), { params: { duration: '500ms' } }))\n * ])\n * ]\n * })\n * export class FadeInExampleComponent {\n * isVisible = false;\n *\n * showContent(): void {\n * this.isVisible = true;\n * }\n * }\n * ```\n *\n * This example demonstrates how to apply the fadeIn animation to an element, making it smoothly appear on the screen.\n */\nexport const fadeIn = (to = 1) =>\n animation([style({ opacity: 0 }), animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {\n params: DEFAULT_ANIMATION_PARAMS,\n });\n\n/**\n * Generates a fadeOut animation with customizable opacity target.\n * This animation gradually changes the element's opacity from its current value to a specified value, creating a \"fade out\" visual effect.\n *\n * @param {number} to - The target opacity value of the element at the end of the animation. Defaults to 0 (fully transparent).\n * @returns {AnimationReferenceMetadata} An Angular animation object that can be used with Angular's animation system.\n *\n * @example\n * ```ts\n * // Example usage in an Angular component with a fadeOut animation\n * import { fadeOut } from '@odx/angular/animations';\n * import { trigger, transition, useAnimation } from '@angular/animations';\n *\n * @Component({\n * selector: 'app-fade-out-example',\n * template: `\n * <div @fadeOutAnimation *ngIf=\"isVisible\">Fade Out Content</div>\n * <button (click)=\"hideContent()\">Hide Content</button>`,\n * animations: [\n * trigger('fadeOutAnimation', [\n * transition(':leave', useAnimation(fadeOut(), { params: { duration: '500ms' } }))\n * ])\n * ]\n * })\n * export class FadeOutExampleComponent {\n * isVisible = true;\n *\n * hideContent(): void {\n * this.isVisible = false;\n * }\n * }\n * ```\n *\n * This example demonstrates how to apply the fadeOut animation to an element, making it smoothly disappear from the screen.\n */\nexport const fadeOut = (to = 0) =>\n animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {\n params: DEFAULT_ANIMATION_PARAMS,\n });\n","import { animate, animation, AnimationReferenceMetadata, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nfunction createSlideInAnimation(from: string, direction: 'X' | 'Y'): AnimationReferenceMetadata {\n return animation(\n [\n style({ transform: `translate${direction}({{ from }})` }),\n animate('{{duration}} {{ delay }} {{ timingFn }}', style({ transform: `translate${direction}(0)` })),\n ],\n {\n params: {\n ...DEFAULT_ANIMATION_PARAMS,\n from,\n },\n },\n );\n}\n\nfunction createSlideOutAnimation(to: string, direction: 'X' | 'Y'): AnimationReferenceMetadata {\n return animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ transform: `translate${direction}({{ to }})` }))], {\n params: {\n ...DEFAULT_ANIMATION_PARAMS,\n to,\n },\n });\n}\n\n/**\n * Utility functions for creating slide-in and slide-out animations in specific directions.\n * These include slideInX, slideInY, slideInDown, slideInUp, slideInLeft, slideInRight,\n * slideOutX, slideOutY, slideOutDown, slideOutUp, slideOutLeft, and slideOutRight.\n * Each function is configured for a specific slide direction and distance, making it easy to apply\n * consistent slide animations across your application.\n *\n * @example\n * ```ts\n * // Using slideInLeft and slideOutRight in a component\n * animations: [\n * trigger('slideInOut', [\n * transition(':enter', [useAnimation(slideInLeft)]),\n * transition(':leave', [useAnimation(slideOutRight)])\n * ])\n * ]\n * ```\n *\n * Note: The 'from' and 'to' parameters for slideIn and slideOut functions respectively\n * can be customized for different slide distances.\n */\nexport const slideInX = (from: string) => createSlideInAnimation(from, 'X');\nexport const slideInY = (from: string) => createSlideInAnimation(from, 'Y');\nexport const slideInDown = slideInY('-100%');\nexport const slideInUp = slideInY('100%');\nexport const slideInLeft = slideInX('-100%');\nexport const slideInRight = slideInX('100%');\n\nexport const slideOutX = (to: string) => createSlideOutAnimation(to, 'X');\nexport const slideOutY = (to: string) => createSlideOutAnimation(to, 'Y');\nexport const slideOutDown = slideOutY('100%');\nexport const slideOutUp = slideOutY('-100%');\nexport const slideOutLeft = slideOutX('-100%');\nexport const slideOutRight = slideOutX('100%');\n","import { animateChild, query, transition } from '@angular/animations';\n\n/**\n * Utility animation that waits for animations on child components to complete.\n * This animation should be used within parent components that have child components with their\n * own animations. It ensures that the parent's enter and leave animations are only triggered\n * after all child animations have completed, creating a seamless animation sequence.\n *\n * This utility uses Angular's animation functions `query` and `animateChild` to find and animate\n * child elements marked with Angular's animation triggers. The `{ optional: true }` parameter\n * ensures that the animation gracefully handles cases where no child animations are defined.\n *\n * @example\n * ```ts\n * // Using waitForChildAnimations in a parent component with children that have animations\n * import { trigger, transition, style, animate, query, animateChild } from '@angular/animations';\n * import { waitForChildAnimations } from '@odx/angular/animations';\n *\n * @Component({\n * selector: 'app-parent',\n * templateUrl: './parent.component.html',\n * animations: [\n * trigger('parentAnimation', [\n * // Define parent animations here\n * transition(':enter', [style({ opacity: 0 }), animate('0.5s ease-in', style({ opacity: 1 }))]),\n * transition(':leave', [animate('0.5s ease-out', style({ opacity: 0 }))]),\n * // Use waitForChildAnimations for coordinating with child animations\n * waitForChildAnimations\n * ])\n * ]\n * })\n * export class ParentComponent {\n * // Component logic here\n * }\n * ```\n *\n * Note: The `waitForChildAnimations` utility is added to the parent component's animation triggers,\n * ensuring that any child component animations are completed before continuing with the parent's\n * own animations.\n */\nexport const waitForChildAnimations = transition(':enter, :leave', [query('@*', animateChild(), { optional: true })]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|