@odx/angular 5.7.4 → 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 +17 -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 +41 -93
- 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 -9
- package/components/calendar/lib/directives/calendar-view.directive.d.ts +41 -9
- package/components/calendar/lib/pipes/date-label.pipe.d.ts +12 -21
- 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 +2 -2
- 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 -12
- 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 +9 -3
- package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +9 -3
- package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +9 -3
- package/esm2022/components/calendar/lib/daterange.service.mjs +17 -1
- package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +27 -2
- package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +39 -1
- package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +27 -9
- 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 +11 -8
- 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/lib/helpers/fast-equals.mjs +3 -0
- package/esm2022/internal/lib/helpers/index.mjs +2 -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 +73 -5
- package/esm2022/localization/lib/localization.logger.mjs +3 -0
- package/esm2022/localization/lib/localization.service.mjs +59 -29
- 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 +270 -33
- 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-internal.mjs +4 -1
- package/fesm2022/odx-angular-internal.mjs.map +1 -1
- package/fesm2022/odx-angular-localization.mjs +269 -32
- 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/lib/helpers/fast-equals.d.ts +1 -0
- package/internal/lib/helpers/index.d.ts +1 -0
- 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 -2
- package/localization/lib/localization.logger.d.ts +3 -0
- package/localization/lib/localization.service.d.ts +42 -7
- package/package.json +8 -7
- 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
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
import { isString } from '@odx/angular/utils';
|
|
2
2
|
import { isObservable } from 'rxjs';
|
|
3
|
+
/**
|
|
4
|
+
* Type guard function to check if a given value is considered dynamic text content.
|
|
5
|
+
* Dynamic text content can either be a plain string or an Observable. This function
|
|
6
|
+
* facilitates type-safe handling of dynamic text content by checking the type of the value.
|
|
7
|
+
*
|
|
8
|
+
* @param {unknown} value - The value to be checked.
|
|
9
|
+
* @returns {value is DynamicTextContent} Returns `true` if the value is a string or an Observable,
|
|
10
|
+
* indicating it can be used as dynamic text content; otherwise, returns `false`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* // Example usage of the isDynamicTextContent function
|
|
15
|
+
* const textValue: unknown = getTextValue(); // This function may return either string or Observable
|
|
16
|
+
*
|
|
17
|
+
* if (isDynamicTextContent(textValue)) {
|
|
18
|
+
* // The type of textValue is now narrowed to DynamicTextContent (string | Observable)
|
|
19
|
+
* console.log('The value can be used as dynamic text content.');
|
|
20
|
+
* } else {
|
|
21
|
+
* console.log('The value is not suitable as dynamic text content.');
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
3
25
|
export function isDynamicTextContent(value) {
|
|
4
26
|
return isString(value) || isObservable(value);
|
|
5
27
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZHluYW1pYy10ZXh0LWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL2hlbHBlcnMvaXMtZHluYW1pYy10ZXh0LWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFjO0lBQ2pELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEeW5hbWljVGV4dENvbnRlbnQgfSBmcm9tICcuLi9mYWNhZGUnO1xuXG4vKipcbiAqIFR5cGUgZ3VhcmQgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYSBnaXZlbiB2YWx1ZSBpcyBjb25zaWRlcmVkIGR5bmFtaWMgdGV4dCBjb250ZW50LlxuICogRHluYW1pYyB0ZXh0IGNvbnRlbnQgY2FuIGVpdGhlciBiZSBhIHBsYWluIHN0cmluZyBvciBhbiBPYnNlcnZhYmxlLiBUaGlzIGZ1bmN0aW9uXG4gKiBmYWNpbGl0YXRlcyB0eXBlLXNhZmUgaGFuZGxpbmcgb2YgZHluYW1pYyB0ZXh0IGNvbnRlbnQgYnkgY2hlY2tpbmcgdGhlIHR5cGUgb2YgdGhlIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBEeW5hbWljVGV4dENvbnRlbnR9IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZSBpcyBhIHN0cmluZyBvciBhbiBPYnNlcnZhYmxlLFxuICogaW5kaWNhdGluZyBpdCBjYW4gYmUgdXNlZCBhcyBkeW5hbWljIHRleHQgY29udGVudDsgb3RoZXJ3aXNlLCByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBFeGFtcGxlIHVzYWdlIG9mIHRoZSBpc0R5bmFtaWNUZXh0Q29udGVudCBmdW5jdGlvblxuICogY29uc3QgdGV4dFZhbHVlOiB1bmtub3duID0gZ2V0VGV4dFZhbHVlKCk7IC8vIFRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiBlaXRoZXIgc3RyaW5nIG9yIE9ic2VydmFibGVcbiAqXG4gKiBpZiAoaXNEeW5hbWljVGV4dENvbnRlbnQodGV4dFZhbHVlKSkge1xuICogICAvLyBUaGUgdHlwZSBvZiB0ZXh0VmFsdWUgaXMgbm93IG5hcnJvd2VkIHRvIER5bmFtaWNUZXh0Q29udGVudCAoc3RyaW5nIHwgT2JzZXJ2YWJsZSlcbiAqICAgY29uc29sZS5sb2coJ1RoZSB2YWx1ZSBjYW4gYmUgdXNlZCBhcyBkeW5hbWljIHRleHQgY29udGVudC4nKTtcbiAqIH0gZWxzZSB7XG4gKiAgIGNvbnNvbGUubG9nKCdUaGUgdmFsdWUgaXMgbm90IHN1aXRhYmxlIGFzIGR5bmFtaWMgdGV4dCBjb250ZW50LicpO1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNUZXh0Q29udGVudCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIER5bmFtaWNUZXh0Q29udGVudCB7XG4gIHJldHVybiBpc1N0cmluZyh2YWx1ZSkgfHwgaXNPYnNlcnZhYmxlKHZhbHVlKTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
import { DynamicComponentRef, DynamicTemplateRef } from '../models';
|
|
2
|
+
/**
|
|
3
|
+
* Type guard function to check if a given value is a reference to a dynamically created view.
|
|
4
|
+
* This helps in distinguishing between dynamic view references (`DynamicComponentRef` or `DynamicTemplateRef`)
|
|
5
|
+
* and other types of values, facilitating type-safe operations on dynamic views.
|
|
6
|
+
*
|
|
7
|
+
* @param {unknown} value - The value to check.
|
|
8
|
+
* @returns {value is DynamicViewRef<DynamicContent>} `true` if the value is an instance of `DynamicComponentRef`
|
|
9
|
+
* or `DynamicTemplateRef`, indicating it is a dynamic view reference; otherwise, `false`.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Given a value that could be a dynamic view reference or something else
|
|
14
|
+
* const value: unknown = getSomeValue();
|
|
15
|
+
*
|
|
16
|
+
* if (isDynamicView(value)) {
|
|
17
|
+
* // TypeScript now knows `value` is a dynamic view reference, so you can access its methods safely
|
|
18
|
+
* value.detectChanges();
|
|
19
|
+
* } else {
|
|
20
|
+
* console.log('Value is not a dynamic view reference');
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
2
24
|
export function isDynamicView(value) {
|
|
3
25
|
return value instanceof DynamicComponentRef || value instanceof DynamicTemplateRef;
|
|
4
26
|
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZHluYW1pYy12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcvc3JjL2xpYi9oZWxwZXJzL2lzLWR5bmFtaWMtdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBYztJQUMxQyxPQUFPLEtBQUssWUFBWSxtQkFBbUIsSUFBSSxLQUFLLFlBQVksa0JBQWtCLENBQUM7QUFDckYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNDb250ZW50LCBEeW5hbWljVmlld1JlZiB9IGZyb20gJy4uL2ZhY2FkZSc7XG5pbXBvcnQgeyBEeW5hbWljQ29tcG9uZW50UmVmLCBEeW5hbWljVGVtcGxhdGVSZWYgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG4vKipcbiAqIFR5cGUgZ3VhcmQgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYSBnaXZlbiB2YWx1ZSBpcyBhIHJlZmVyZW5jZSB0byBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgdmlldy5cbiAqIFRoaXMgaGVscHMgaW4gZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiBkeW5hbWljIHZpZXcgcmVmZXJlbmNlcyAoYER5bmFtaWNDb21wb25lbnRSZWZgIG9yIGBEeW5hbWljVGVtcGxhdGVSZWZgKVxuICogYW5kIG90aGVyIHR5cGVzIG9mIHZhbHVlcywgZmFjaWxpdGF0aW5nIHR5cGUtc2FmZSBvcGVyYXRpb25zIG9uIGR5bmFtaWMgdmlld3MuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBEeW5hbWljVmlld1JlZjxEeW5hbWljQ29udGVudD59IGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgYER5bmFtaWNDb21wb25lbnRSZWZgXG4gKiBvciBgRHluYW1pY1RlbXBsYXRlUmVmYCwgaW5kaWNhdGluZyBpdCBpcyBhIGR5bmFtaWMgdmlldyByZWZlcmVuY2U7IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEdpdmVuIGEgdmFsdWUgdGhhdCBjb3VsZCBiZSBhIGR5bmFtaWMgdmlldyByZWZlcmVuY2Ugb3Igc29tZXRoaW5nIGVsc2VcbiAqIGNvbnN0IHZhbHVlOiB1bmtub3duID0gZ2V0U29tZVZhbHVlKCk7XG4gKlxuICogaWYgKGlzRHluYW1pY1ZpZXcodmFsdWUpKSB7XG4gKiAgIC8vIFR5cGVTY3JpcHQgbm93IGtub3dzIGB2YWx1ZWAgaXMgYSBkeW5hbWljIHZpZXcgcmVmZXJlbmNlLCBzbyB5b3UgY2FuIGFjY2VzcyBpdHMgbWV0aG9kcyBzYWZlbHlcbiAqICAgdmFsdWUuZGV0ZWN0Q2hhbmdlcygpO1xuICogfSBlbHNlIHtcbiAqICAgY29uc29sZS5sb2coJ1ZhbHVlIGlzIG5vdCBhIGR5bmFtaWMgdmlldyByZWZlcmVuY2UnKTtcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEeW5hbWljVmlldyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIER5bmFtaWNWaWV3UmVmPER5bmFtaWNDb250ZW50PiB7XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIER5bmFtaWNDb21wb25lbnRSZWYgfHwgdmFsdWUgaW5zdGFuY2VvZiBEeW5hbWljVGVtcGxhdGVSZWY7XG59XG4iXX0=
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { ApplicationRef, createComponent, EnvironmentInjector, reflectComponentType } from '@angular/core';
|
|
2
2
|
import { deepmerge } from '@odx/angular/internal';
|
|
3
3
|
import { isViewContainer } from '@odx/angular/utils';
|
|
4
|
+
/**
|
|
5
|
+
* The DynamicComponentRef class is a powerful utility for dynamically creating and managing
|
|
6
|
+
* Angular components at runtime. It encapsulates the logic for component creation, input handling,
|
|
7
|
+
* and lifecycle management, making it easier to work with dynamic components in complex applications.
|
|
8
|
+
*
|
|
9
|
+
* A reference to a dynamically created component, providing methods to manage its lifecycle,
|
|
10
|
+
* detect changes, and update its inputs based on a context.
|
|
11
|
+
*
|
|
12
|
+
* @template T - The type of the component being managed.
|
|
13
|
+
* @template C - The type of the context used to update the component's inputs.
|
|
14
|
+
*/
|
|
4
15
|
export class DynamicComponentRef {
|
|
5
16
|
constructor(options) {
|
|
6
17
|
this.options = options;
|
|
@@ -31,9 +42,16 @@ export class DynamicComponentRef {
|
|
|
31
42
|
this.update(context);
|
|
32
43
|
}
|
|
33
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Triggers change detection for the dynamically created component, ensuring that any updates to inputs
|
|
47
|
+
* or internal state are reflected in the view.
|
|
48
|
+
*/
|
|
34
49
|
detectChanges() {
|
|
35
50
|
this.componentRef?.changeDetectorRef.detectChanges();
|
|
36
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Destroys the dynamically created component, cleaning up resources and detaching it from the application view.
|
|
54
|
+
*/
|
|
37
55
|
destroy() {
|
|
38
56
|
if (this.componentRef?.hostView.destroyed) {
|
|
39
57
|
this.componentRef = null;
|
|
@@ -46,9 +64,20 @@ export class DynamicComponentRef {
|
|
|
46
64
|
this.componentRef = null;
|
|
47
65
|
this.componentInputs = null;
|
|
48
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Retrieves the native element associated with the dynamically created component's host view.
|
|
69
|
+
*
|
|
70
|
+
* @returns {Element} The native DOM element of the component.
|
|
71
|
+
*/
|
|
49
72
|
getElement() {
|
|
50
73
|
return this.componentRef?.location.nativeElement ?? null;
|
|
51
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Updates the component's inputs based on the provided context. Merges the new context with the existing
|
|
77
|
+
* context and applies the combined context as inputs to the component.
|
|
78
|
+
*
|
|
79
|
+
* @param {C} context - The context containing new values for the component's inputs.
|
|
80
|
+
*/
|
|
52
81
|
update(context) {
|
|
53
82
|
this.options.context = deepmerge({}, this.options.context, context);
|
|
54
83
|
if (!this.componentRef)
|
|
@@ -59,11 +88,21 @@ export class DynamicComponentRef {
|
|
|
59
88
|
}
|
|
60
89
|
}
|
|
61
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Retrieves the current context used for the component's inputs.
|
|
93
|
+
*
|
|
94
|
+
* @returns {GetDynamicViewContext<T>} The current context object.
|
|
95
|
+
*/
|
|
62
96
|
getContext() {
|
|
63
97
|
return this.options.context ?? {};
|
|
64
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Retrieves the view reference associated with the dynamically created component.
|
|
101
|
+
*
|
|
102
|
+
* @returns {ViewRef | null} The view reference, or null if the component has not been created or has been destroyed.
|
|
103
|
+
*/
|
|
65
104
|
getView() {
|
|
66
105
|
return this.componentRef?.hostView ?? null;
|
|
67
106
|
}
|
|
68
107
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcvc3JjL2xpYi9tb2RlbHMvZHluYW1pYy1jb21wb25lbnQtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWdCLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVNyRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUE2QixPQUFtQztRQUFuQyxZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUovQyxnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRSxpQkFBWSxHQUEyQixJQUFJLENBQUM7UUFDNUMsb0JBQWUsR0FBZ0MsSUFBSSxDQUFDO1FBRzFELE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFekUsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsU0FBb0IsRUFBRTtZQUN4RCxtQkFBbUIsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1lBQ3RELGVBQWUsRUFBRSxRQUFRO1lBQ3pCLGdCQUFnQjtTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZTtZQUNsQixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQ2xFLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtnQkFDcEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDckIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQ0QsRUFBMEIsQ0FDM0IsSUFBSSxJQUFJLENBQUM7UUFFWixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEQsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzthQUNyQztTQUNGO1FBQ0QsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQVksQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1osSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxPQUFVO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFNLENBQUM7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMvQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1RDtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUM7SUFDN0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudFJlZiwgY3JlYXRlQ29tcG9uZW50LCBFbnZpcm9ubWVudEluamVjdG9yLCByZWZsZWN0Q29tcG9uZW50VHlwZSwgVHlwZSwgVmlld1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVlcG1lcmdlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGlzVmlld0NvbnRhaW5lciB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBHZXREeW5hbWljVmlld0NvbnRleHQgfSBmcm9tICcuLi9mYWNhZGUnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdSZWYgfSBmcm9tICcuLi9mYWNhZGUvZHluYW1pYy12aWV3LXJlZic7XG5pbXBvcnQgeyBEeW5hbWljVmlld09wdGlvbnMgfSBmcm9tICcuL2R5bmFtaWMtdmlldy1vcHRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljQ29tcG9uZW50T3B0aW9uczxUIGV4dGVuZHMgVHlwZTx1bmtub3duPj4gZXh0ZW5kcyBEeW5hbWljVmlld09wdGlvbnM8VD4ge1xuICBjb21wb25lbnQ6IFQ7XG59XG5cbi8qKlxuICogVGhlIER5bmFtaWNDb21wb25lbnRSZWYgY2xhc3MgaXMgYSBwb3dlcmZ1bCB1dGlsaXR5IGZvciBkeW5hbWljYWxseSBjcmVhdGluZyBhbmQgbWFuYWdpbmdcbiAqIEFuZ3VsYXIgY29tcG9uZW50cyBhdCBydW50aW1lLiBJdCBlbmNhcHN1bGF0ZXMgdGhlIGxvZ2ljIGZvciBjb21wb25lbnQgY3JlYXRpb24sIGlucHV0IGhhbmRsaW5nLFxuICogYW5kIGxpZmVjeWNsZSBtYW5hZ2VtZW50LCBtYWtpbmcgaXQgZWFzaWVyIHRvIHdvcmsgd2l0aCBkeW5hbWljIGNvbXBvbmVudHMgaW4gY29tcGxleCBhcHBsaWNhdGlvbnMuXG4gKlxuICogQSByZWZlcmVuY2UgdG8gYSBkeW5hbWljYWxseSBjcmVhdGVkIGNvbXBvbmVudCwgcHJvdmlkaW5nIG1ldGhvZHMgdG8gbWFuYWdlIGl0cyBsaWZlY3ljbGUsXG4gKiBkZXRlY3QgY2hhbmdlcywgYW5kIHVwZGF0ZSBpdHMgaW5wdXRzIGJhc2VkIG9uIGEgY29udGV4dC5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBjb21wb25lbnQgYmVpbmcgbWFuYWdlZC5cbiAqIEB0ZW1wbGF0ZSBDIC0gVGhlIHR5cGUgb2YgdGhlIGNvbnRleHQgdXNlZCB0byB1cGRhdGUgdGhlIGNvbXBvbmVudCdzIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnRSZWY8VCBleHRlbmRzIFR5cGU8dW5rbm93bj4sIEMgZXh0ZW5kcyBHZXREeW5hbWljVmlld0NvbnRleHQ8VD4+IGltcGxlbWVudHMgRHluYW1pY1ZpZXdSZWY8VD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uID0gdGhpcy5vcHRpb25zLmluamVjdG9yLmdldChBcHBsaWNhdGlvblJlZik7XG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb21wb25lbnRJbnB1dHM6IFJlY29yZDxzdHJpbmcsIHRydWU+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBEeW5hbWljQ29tcG9uZW50T3B0aW9uczxUPikge1xuICAgIGNvbnN0IHsgY29tcG9uZW50LCBjb250ZXh0LCBpbmplY3RvciwgcHJvamVjdGFibGVOb2RlcywgaG9zdCB9ID0gb3B0aW9ucztcblxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCBhcyBUeXBlPFQ+LCB7XG4gICAgICBlbnZpcm9ubWVudEluamVjdG9yOiBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRJbmplY3RvciksXG4gICAgICBlbGVtZW50SW5qZWN0b3I6IGluamVjdG9yLFxuICAgICAgcHJvamVjdGFibGVOb2RlcyxcbiAgICB9KTtcbiAgICB0aGlzLmNvbXBvbmVudElucHV0cyA9XG4gICAgICByZWZsZWN0Q29tcG9uZW50VHlwZSh0aGlzLmNvbXBvbmVudFJlZi5jb21wb25lbnRUeXBlKT8uaW5wdXRzLnJlZHVjZShcbiAgICAgICAgKGFjYywgeyBwcm9wTmFtZSB9KSA9PiB7XG4gICAgICAgICAgYWNjW3Byb3BOYW1lXSA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgdHJ1ZT4sXG4gICAgICApID8/IG51bGw7XG5cbiAgICBpZiAoaXNWaWV3Q29udGFpbmVyKGhvc3QpKSB7XG4gICAgICBob3N0Lmluc2VydCh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb24uYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICBpZiAoaG9zdCkge1xuICAgICAgICBob3N0LmFwcGVuZENoaWxkKHRoaXMuZ2V0RWxlbWVudCgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbnRleHQpIHtcbiAgICAgIHRoaXMudXBkYXRlKGNvbnRleHQgYXMgQyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJzIGNoYW5nZSBkZXRlY3Rpb24gZm9yIHRoZSBkeW5hbWljYWxseSBjcmVhdGVkIGNvbXBvbmVudCwgZW5zdXJpbmcgdGhhdCBhbnkgdXBkYXRlcyB0byBpbnB1dHNcbiAgICogb3IgaW50ZXJuYWwgc3RhdGUgYXJlIHJlZmxlY3RlZCBpbiB0aGUgdmlldy5cbiAgICovXG4gIHB1YmxpYyBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50UmVmPy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50LCBjbGVhbmluZyB1cCByZXNvdXJjZXMgYW5kIGRldGFjaGluZyBpdCBmcm9tIHRoZSBhcHBsaWNhdGlvbiB2aWV3LlxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmPy5ob3N0Vmlldy5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICYmICFpc1ZpZXdDb250YWluZXIodGhpcy5vcHRpb25zLmhvc3QpKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICB0aGlzLmNvbXBvbmVudElucHV0cyA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBuYXRpdmUgZWxlbWVudCBhc3NvY2lhdGVkIHdpdGggdGhlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50J3MgaG9zdCB2aWV3LlxuICAgKlxuICAgKiBAcmV0dXJucyB7RWxlbWVudH0gVGhlIG5hdGl2ZSBET00gZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldEVsZW1lbnQoKTogRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50ID8/IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY29tcG9uZW50J3MgaW5wdXRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb250ZXh0LiBNZXJnZXMgdGhlIG5ldyBjb250ZXh0IHdpdGggdGhlIGV4aXN0aW5nXG4gICAqIGNvbnRleHQgYW5kIGFwcGxpZXMgdGhlIGNvbWJpbmVkIGNvbnRleHQgYXMgaW5wdXRzIHRvIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7Q30gY29udGV4dCAtIFRoZSBjb250ZXh0IGNvbnRhaW5pbmcgbmV3IHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudCdzIGlucHV0cy5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGUoY29udGV4dDogQyk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucy5jb250ZXh0ID0gZGVlcG1lcmdlKHt9LCB0aGlzLm9wdGlvbnMuY29udGV4dCwgY29udGV4dCkgYXMgQztcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSByZXR1cm47XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5vcHRpb25zLmNvbnRleHQpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudElucHV0cz8uW2tleV0pIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCB0aGlzLm9wdGlvbnMuY29udGV4dFtrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGNvbnRleHQgdXNlZCBmb3IgdGhlIGNvbXBvbmVudCdzIGlucHV0cy5cbiAgICpcbiAgICogQHJldHVybnMge0dldER5bmFtaWNWaWV3Q29udGV4dDxUPn0gVGhlIGN1cnJlbnQgY29udGV4dCBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29udGV4dCgpOiBHZXREeW5hbWljVmlld0NvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY29udGV4dCA/PyB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHZpZXcgcmVmZXJlbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZHluYW1pY2FsbHkgY3JlYXRlZCBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtWaWV3UmVmIHwgbnVsbH0gVGhlIHZpZXcgcmVmZXJlbmNlLCBvciBudWxsIGlmIHRoZSBjb21wb25lbnQgaGFzIG5vdCBiZWVuIGNyZWF0ZWQgb3IgaGFzIGJlZW4gZGVzdHJveWVkLlxuICAgKi9cbiAgcHVibGljIGdldFZpZXcoKTogVmlld1JlZiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZj8uaG9zdFZpZXcgPz8gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { ApplicationRef } from '@angular/core';
|
|
2
2
|
import { deepmerge } from '@odx/angular/internal';
|
|
3
3
|
import { isViewContainer } from '@odx/angular/utils';
|
|
4
|
+
/**
|
|
5
|
+
* A reference to a dynamically created template, offering methods to manage its lifecycle,
|
|
6
|
+
* detect changes, and update its context. It encapsulates the logic for creating and manipulating
|
|
7
|
+
* an `EmbeddedViewRef` from a given `TemplateRef`.
|
|
8
|
+
*
|
|
9
|
+
* @template T - The type of the `NgTemplateRef` being managed.
|
|
10
|
+
*/
|
|
4
11
|
export class DynamicTemplateRef {
|
|
5
12
|
constructor(options) {
|
|
6
13
|
this.options = options;
|
|
@@ -8,9 +15,17 @@ export class DynamicTemplateRef {
|
|
|
8
15
|
this.embeddedViewRef = null;
|
|
9
16
|
this.create(options);
|
|
10
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Triggers change detection on the embedded view created from the template, ensuring that any updates
|
|
20
|
+
* to the context or internal state are reflected in the view.
|
|
21
|
+
*/
|
|
11
22
|
detectChanges() {
|
|
12
23
|
this.embeddedViewRef?.detectChanges();
|
|
13
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Destroys the embedded view associated with the template, cleaning up resources and detaching it from the
|
|
27
|
+
* application view if necessary.
|
|
28
|
+
*/
|
|
14
29
|
destroy() {
|
|
15
30
|
if (this.embeddedViewRef?.destroyed) {
|
|
16
31
|
this.embeddedViewRef = null;
|
|
@@ -22,9 +37,20 @@ export class DynamicTemplateRef {
|
|
|
22
37
|
this.embeddedViewRef?.destroy();
|
|
23
38
|
this.embeddedViewRef = null;
|
|
24
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Retrieves the native element associated with the template's embedded view's root node.
|
|
42
|
+
*
|
|
43
|
+
* @returns {Element} The native DOM element of the embedded view's root node, if available.
|
|
44
|
+
*/
|
|
25
45
|
getElement() {
|
|
26
46
|
return this.embeddedViewRef?.rootNodes?.[0] ?? null;
|
|
27
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Updates the context of the embedded view based on the provided context object. Merges the new context
|
|
50
|
+
* with the existing one and applies the combined context to the embedded view.
|
|
51
|
+
*
|
|
52
|
+
* @param {GetDynamicViewContext<T>} context - The context containing new values for the template's view.
|
|
53
|
+
*/
|
|
28
54
|
update(context) {
|
|
29
55
|
this.options.context = deepmerge({}, this.options.context, context);
|
|
30
56
|
if (this.embeddedViewRef) {
|
|
@@ -32,9 +58,19 @@ export class DynamicTemplateRef {
|
|
|
32
58
|
this.detectChanges();
|
|
33
59
|
}
|
|
34
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Retrieves the current context used for the template's view.
|
|
63
|
+
*
|
|
64
|
+
* @returns {GetDynamicViewContext<T>} The current context object.
|
|
65
|
+
*/
|
|
35
66
|
getContext() {
|
|
36
67
|
return this.options.context ?? {};
|
|
37
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Retrieves the view reference (`ViewRef`) associated with the dynamically created template's embedded view.
|
|
71
|
+
*
|
|
72
|
+
* @returns {ViewRef | null} The view reference, or null if the template has not been instantiated or has been destroyed.
|
|
73
|
+
*/
|
|
38
74
|
getView() {
|
|
39
75
|
return this.embeddedViewRef;
|
|
40
76
|
}
|
|
@@ -48,4 +84,4 @@ export class DynamicTemplateRef {
|
|
|
48
84
|
}
|
|
49
85
|
}
|
|
50
86
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZW1wbGF0ZS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL21vZGVscy9keW5hbWljLXRlbXBsYXRlLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUEwRCxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBUXJEOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFBNkIsT0FBa0M7UUFBbEMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFIOUMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakUsb0JBQWUsR0FBb0MsSUFBSSxDQUFDO1FBRzlELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxPQUFpQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBNkIsQ0FBQztRQUNoRyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFTyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBNkI7UUFDbkUsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDeEc7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgRW1iZWRkZWRWaWV3UmVmLCBUZW1wbGF0ZVJlZiBhcyBOZ1RlbXBsYXRlUmVmLCBWaWV3UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWVwbWVyZ2UgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgaXNWaWV3Q29udGFpbmVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IER5bmFtaWNWaWV3UmVmLCBHZXREeW5hbWljVmlld0NvbnRleHQgfSBmcm9tICcuLi9mYWNhZGUnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdPcHRpb25zIH0gZnJvbSAnLi9keW5hbWljLXZpZXctb3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY1RlbXBsYXRlT3B0aW9uczxUIGV4dGVuZHMgTmdUZW1wbGF0ZVJlZjx1bmtub3duPj4gZXh0ZW5kcyBEeW5hbWljVmlld09wdGlvbnM8VD4ge1xuICB0ZW1wbGF0ZTogVDtcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgdGVtcGxhdGUsIG9mZmVyaW5nIG1ldGhvZHMgdG8gbWFuYWdlIGl0cyBsaWZlY3ljbGUsXG4gKiBkZXRlY3QgY2hhbmdlcywgYW5kIHVwZGF0ZSBpdHMgY29udGV4dC4gSXQgZW5jYXBzdWxhdGVzIHRoZSBsb2dpYyBmb3IgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZ1xuICogYW4gYEVtYmVkZGVkVmlld1JlZmAgZnJvbSBhIGdpdmVuIGBUZW1wbGF0ZVJlZmAuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgYE5nVGVtcGxhdGVSZWZgIGJlaW5nIG1hbmFnZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEeW5hbWljVGVtcGxhdGVSZWY8VCBleHRlbmRzIE5nVGVtcGxhdGVSZWY8dW5rbm93bj4gPSBOZ1RlbXBsYXRlUmVmPHVua25vd24+PiBpbXBsZW1lbnRzIER5bmFtaWNWaWV3UmVmPFQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvbiA9IHRoaXMub3B0aW9ucy5pbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpO1xuICBwcml2YXRlIGVtYmVkZGVkVmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBEeW5hbWljVGVtcGxhdGVPcHRpb25zPFQ+KSB7XG4gICAgdGhpcy5jcmVhdGUob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgY2hhbmdlIGRldGVjdGlvbiBvbiB0aGUgZW1iZWRkZWQgdmlldyBjcmVhdGVkIGZyb20gdGhlIHRlbXBsYXRlLCBlbnN1cmluZyB0aGF0IGFueSB1cGRhdGVzXG4gICAqIHRvIHRoZSBjb250ZXh0IG9yIGludGVybmFsIHN0YXRlIGFyZSByZWZsZWN0ZWQgaW4gdGhlIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmVtYmVkZGVkVmlld1JlZj8uZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoZSBlbWJlZGRlZCB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUsIGNsZWFuaW5nIHVwIHJlc291cmNlcyBhbmQgZGV0YWNoaW5nIGl0IGZyb20gdGhlXG4gICAqIGFwcGxpY2F0aW9uIHZpZXcgaWYgbmVjZXNzYXJ5LlxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVmPy5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpc1ZpZXdDb250YWluZXIodGhpcy5vcHRpb25zLmhvc3QpICYmIHRoaXMuZW1iZWRkZWRWaWV3UmVmKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uLmRldGFjaFZpZXcodGhpcy5lbWJlZGRlZFZpZXdSZWYpO1xuICAgIH1cbiAgICB0aGlzLmVtYmVkZGVkVmlld1JlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIG5hdGl2ZSBlbGVtZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUncyBlbWJlZGRlZCB2aWV3J3Mgcm9vdCBub2RlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7RWxlbWVudH0gVGhlIG5hdGl2ZSBET00gZWxlbWVudCBvZiB0aGUgZW1iZWRkZWQgdmlldydzIHJvb3Qgbm9kZSwgaWYgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHVibGljIGdldEVsZW1lbnQoKTogRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZW1iZWRkZWRWaWV3UmVmPy5yb290Tm9kZXM/LlswXSA/PyBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGNvbnRleHQgb2YgdGhlIGVtYmVkZGVkIHZpZXcgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNvbnRleHQgb2JqZWN0LiBNZXJnZXMgdGhlIG5ldyBjb250ZXh0XG4gICAqIHdpdGggdGhlIGV4aXN0aW5nIG9uZSBhbmQgYXBwbGllcyB0aGUgY29tYmluZWQgY29udGV4dCB0byB0aGUgZW1iZWRkZWQgdmlldy5cbiAgICpcbiAgICogQHBhcmFtIHtHZXREeW5hbWljVmlld0NvbnRleHQ8VD59IGNvbnRleHQgLSBUaGUgY29udGV4dCBjb250YWluaW5nIG5ldyB2YWx1ZXMgZm9yIHRoZSB0ZW1wbGF0ZSdzIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlKGNvbnRleHQ6IEdldER5bmFtaWNWaWV3Q29udGV4dDxUPik6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucy5jb250ZXh0ID0gZGVlcG1lcmdlKHt9LCB0aGlzLm9wdGlvbnMuY29udGV4dCwgY29udGV4dCkgYXMgR2V0RHluYW1pY1ZpZXdDb250ZXh0PFQ+O1xuICAgIGlmICh0aGlzLmVtYmVkZGVkVmlld1JlZikge1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYuY29udGV4dCA9IHRoaXMub3B0aW9ucy5jb250ZXh0O1xuICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBjb250ZXh0IHVzZWQgZm9yIHRoZSB0ZW1wbGF0ZSdzIHZpZXcuXG4gICAqXG4gICAqIEByZXR1cm5zIHtHZXREeW5hbWljVmlld0NvbnRleHQ8VD59IFRoZSBjdXJyZW50IGNvbnRleHQgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGdldENvbnRleHQoKTogR2V0RHluYW1pY1ZpZXdDb250ZXh0PFQ+IHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmNvbnRleHQgPz8ge307XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB2aWV3IHJlZmVyZW5jZSAoYFZpZXdSZWZgKSBhc3NvY2lhdGVkIHdpdGggdGhlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgdGVtcGxhdGUncyBlbWJlZGRlZCB2aWV3LlxuICAgKlxuICAgKiBAcmV0dXJucyB7Vmlld1JlZiB8IG51bGx9IFRoZSB2aWV3IHJlZmVyZW5jZSwgb3IgbnVsbCBpZiB0aGUgdGVtcGxhdGUgaGFzIG5vdCBiZWVuIGluc3RhbnRpYXRlZCBvciBoYXMgYmVlbiBkZXN0cm95ZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmlldygpOiBWaWV3UmVmIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZW1iZWRkZWRWaWV3UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGUoeyBjb250ZXh0LCB0ZW1wbGF0ZSwgaG9zdCB9OiBEeW5hbWljVGVtcGxhdGVPcHRpb25zPFQ+KSB7XG4gICAgaWYgKGlzVmlld0NvbnRhaW5lcihob3N0KSkge1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYgPSBob3N0LmNyZWF0ZUVtYmVkZGVkVmlldyh0ZW1wbGF0ZSwgY29udGV4dCwgeyBpbmplY3RvcjogdGhpcy5vcHRpb25zLmluamVjdG9yIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtYmVkZGVkVmlld1JlZiA9IHRlbXBsYXRlLmNyZWF0ZUVtYmVkZGVkVmlldyhjb250ZXh0ID8/IHt9LCB0aGlzLm9wdGlvbnMuaW5qZWN0b3IpO1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbi5hdHRhY2hWaWV3KHRoaXMuZW1iZWRkZWRWaWV3UmVmKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -7,7 +7,42 @@ export const EVENT_PLUGINS = PLUGINS.map((useClass) => ({
|
|
|
7
7
|
useClass,
|
|
8
8
|
multi: true,
|
|
9
9
|
}));
|
|
10
|
+
/**
|
|
11
|
+
* Provides a set of custom event plugins to Angular's event handling system. This function
|
|
12
|
+
* registers custom event plugins like `DebounceEventPlugin` and `DeferEventPlugin`, enhancing
|
|
13
|
+
* the capabilities of Angular's native event management. By using `EVENT_MANAGER_PLUGINS`, these
|
|
14
|
+
* plugins are integrated into Angular's event system and can be utilized in templates and components
|
|
15
|
+
* to handle events with custom behaviors such as debouncing or deferring event execution.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* Registering the event plugins in an Angular module:
|
|
19
|
+
* ```ts
|
|
20
|
+
* @NgModule({
|
|
21
|
+
* imports: [
|
|
22
|
+
* BrowserModule,
|
|
23
|
+
* BrowserAnimationsModule,
|
|
24
|
+
* // other imports...
|
|
25
|
+
* ],
|
|
26
|
+
* declarations: [AppComponent],
|
|
27
|
+
* providers: [
|
|
28
|
+
* provideEventPlugins(),
|
|
29
|
+
* ],
|
|
30
|
+
* bootstrap: [AppComponent],
|
|
31
|
+
* })
|
|
32
|
+
* export class AppModule {}
|
|
33
|
+
* ```
|
|
34
|
+
* Assuming `DebounceEventPlugin` modifies event names with a `.debounce` modifier:
|
|
35
|
+
* ```html
|
|
36
|
+
* <button (click.debounce)="handleDebouncedClick($event)">Click Me</button>
|
|
37
|
+
* ```
|
|
38
|
+
* Assuming `DeferEventPlugin` modifies event names with a `.defer` modifier:
|
|
39
|
+
* ```html
|
|
40
|
+
* <div (mouseenter.defer)="handleDeferredMouseEnter($event)"></div>
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @returns {EnvironmentProviders} - A configuration object for Angular's DI system, to be used with `makeEnvironmentProviders`.
|
|
44
|
+
*/
|
|
10
45
|
export function provideEventPlugins() {
|
|
11
46
|
return makeEnvironmentProviders(EVENT_PLUGINS);
|
|
12
47
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGx1Z2lucy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2V2ZW50LXBsdWdpbnMvc3JjL2xpYi9ldmVudC1wbHVnaW5zLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsRSxNQUFNLE9BQU8sR0FBRyxDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFlLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEUsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixRQUFRO0lBQ1IsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDLENBQUMsQ0FBQztBQUVKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXIsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRVZFTlRfTUFOQUdFUl9QTFVHSU5TIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBEZWJvdW5jZUV2ZW50UGx1Z2luLCBEZWZlckV2ZW50UGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zJztcblxuY29uc3QgUExVR0lOUyA9IFtEZWJvdW5jZUV2ZW50UGx1Z2luLCBEZWZlckV2ZW50UGx1Z2luXTtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX1BMVUdJTlM6IFByb3ZpZGVyW10gPSBQTFVHSU5TLm1hcCgodXNlQ2xhc3MpID0+ICh7XG4gIHByb3ZpZGU6IEVWRU5UX01BTkFHRVJfUExVR0lOUyxcbiAgdXNlQ2xhc3MsXG4gIG11bHRpOiB0cnVlLFxufSkpO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgc2V0IG9mIGN1c3RvbSBldmVudCBwbHVnaW5zIHRvIEFuZ3VsYXIncyBldmVudCBoYW5kbGluZyBzeXN0ZW0uIFRoaXMgZnVuY3Rpb25cbiAqIHJlZ2lzdGVycyBjdXN0b20gZXZlbnQgcGx1Z2lucyBsaWtlIGBEZWJvdW5jZUV2ZW50UGx1Z2luYCBhbmQgYERlZmVyRXZlbnRQbHVnaW5gLCBlbmhhbmNpbmdcbiAqIHRoZSBjYXBhYmlsaXRpZXMgb2YgQW5ndWxhcidzIG5hdGl2ZSBldmVudCBtYW5hZ2VtZW50LiBCeSB1c2luZyBgRVZFTlRfTUFOQUdFUl9QTFVHSU5TYCwgdGhlc2VcbiAqIHBsdWdpbnMgYXJlIGludGVncmF0ZWQgaW50byBBbmd1bGFyJ3MgZXZlbnQgc3lzdGVtIGFuZCBjYW4gYmUgdXRpbGl6ZWQgaW4gdGVtcGxhdGVzIGFuZCBjb21wb25lbnRzXG4gKiB0byBoYW5kbGUgZXZlbnRzIHdpdGggY3VzdG9tIGJlaGF2aW9ycyBzdWNoIGFzIGRlYm91bmNpbmcgb3IgZGVmZXJyaW5nIGV2ZW50IGV4ZWN1dGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogUmVnaXN0ZXJpbmcgdGhlIGV2ZW50IHBsdWdpbnMgaW4gYW4gQW5ndWxhciBtb2R1bGU6XG4gKiBgYGB0c1xuICogQE5nTW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1xuICogICAgIEJyb3dzZXJNb2R1bGUsXG4gKiAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXG4gKiAgICAgLy8gb3RoZXIgaW1wb3J0cy4uLlxuICogICBdLFxuICogICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLFxuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlRXZlbnRQbHVnaW5zKCksXG4gKiAgIF0sXG4gKiAgIGJvb3RzdHJhcDogW0FwcENvbXBvbmVudF0sXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICogYGBgXG4gKiBBc3N1bWluZyBgRGVib3VuY2VFdmVudFBsdWdpbmAgbW9kaWZpZXMgZXZlbnQgbmFtZXMgd2l0aCBhIGAuZGVib3VuY2VgIG1vZGlmaWVyOlxuICogYGBgaHRtbFxuICogPGJ1dHRvbiAoY2xpY2suZGVib3VuY2UpPVwiaGFuZGxlRGVib3VuY2VkQ2xpY2soJGV2ZW50KVwiPkNsaWNrIE1lPC9idXR0b24+XG4gKiAgYGBgXG4gKiBBc3N1bWluZyBgRGVmZXJFdmVudFBsdWdpbmAgbW9kaWZpZXMgZXZlbnQgbmFtZXMgd2l0aCBhIGAuZGVmZXJgIG1vZGlmaWVyOlxuICogYGBgaHRtbFxuICogPGRpdiAobW91c2VlbnRlci5kZWZlcik9XCJoYW5kbGVEZWZlcnJlZE1vdXNlRW50ZXIoJGV2ZW50KVwiPjwvZGl2PlxuICogYGBgXG4gKlxuICogQHJldHVybnMge0Vudmlyb25tZW50UHJvdmlkZXJzfSAtIEEgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIEFuZ3VsYXIncyBESSBzeXN0ZW0sIHRvIGJlIHVzZWQgd2l0aCBgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVFdmVudFBsdWdpbnMoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKEVWRU5UX1BMVUdJTlMpO1xufVxuIl19
|
|
@@ -1,16 +1,60 @@
|
|
|
1
1
|
import { isFunction } from '@odx/angular/utils';
|
|
2
|
+
/**
|
|
3
|
+
* An abstract class for implementing custom event plugins in Angular. This class provides
|
|
4
|
+
* the core functionality required to create a custom event listener with specific behavior,
|
|
5
|
+
* allowing developers to extend Angular's native event handling capabilities.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* Extending EventPlugin to create a custom event plugin:
|
|
9
|
+
* ```ts
|
|
10
|
+
* @Injectable()
|
|
11
|
+
* class CustomEventPlugin extends EventPlugin {
|
|
12
|
+
* public readonly modifier = /custom/;
|
|
13
|
+
*
|
|
14
|
+
* public addEventListener(element: HTMLElement, eventName: string, handler: EventListener): Function {
|
|
15
|
+
* // Custom logic for adding an event listener
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* ```html
|
|
21
|
+
* <div (click.custom)="handleClick($event)"></div>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
2
24
|
export class EventPlugin {
|
|
25
|
+
/**
|
|
26
|
+
* Adds a global event listener.
|
|
27
|
+
*
|
|
28
|
+
* @returns {Function} - A function that does nothing.
|
|
29
|
+
*/
|
|
3
30
|
addGlobalEventListener() {
|
|
4
31
|
return () => void 0;
|
|
5
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Checks if the event plugin supports the given event name.
|
|
35
|
+
*
|
|
36
|
+
* @param {string} eventName - The name of the event.
|
|
37
|
+
* @returns {boolean} - `true` if the event plugin supports the event, `false` otherwise.
|
|
38
|
+
*/
|
|
6
39
|
supports(eventName) {
|
|
7
40
|
return this.modifier.test(eventName);
|
|
8
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Gets the NgZone instance from the event manager.
|
|
44
|
+
*
|
|
45
|
+
* @returns {NgZone} - The NgZone instance.
|
|
46
|
+
*/
|
|
9
47
|
getZone() {
|
|
10
48
|
return this.manager.getZone();
|
|
11
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Tears down the event listener.
|
|
52
|
+
*
|
|
53
|
+
* @param {Function | null} listener - The event listener function.
|
|
54
|
+
* @returns {Function} - A function that can be called to clean up the listener.
|
|
55
|
+
*/
|
|
12
56
|
teardown(listener) {
|
|
13
57
|
return () => (isFunction(listener) ? listener() : void 0);
|
|
14
58
|
}
|
|
15
59
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9ldmVudC1wbHVnaW5zL3NyYy9saWIvbW9kZWxzL2V2ZW50LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQU0sT0FBZ0IsV0FBVztJQW9CL0I7Ozs7T0FJRztJQUNJLHNCQUFzQjtRQUMzQixPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBQyxTQUFpQjtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sT0FBTztRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTyxRQUFRLENBQUMsUUFBeUI7UUFDMUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB7IE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnRNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxudHlwZSBFdmVudE1hbmFnZXJBcmcgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEV2ZW50TWFuYWdlcj5bMF1bMF07XG5cbnR5cGUgRXZlbnRNYW5hZ2VyUGx1Z2luID0ge1xuICBbSyBpbiBrZXlvZiBFdmVudE1hbmFnZXJBcmddOiBFdmVudE1hbmFnZXJBcmdbS107XG59O1xuXG4vKipcbiAqIEFuIGFic3RyYWN0IGNsYXNzIGZvciBpbXBsZW1lbnRpbmcgY3VzdG9tIGV2ZW50IHBsdWdpbnMgaW4gQW5ndWxhci4gVGhpcyBjbGFzcyBwcm92aWRlc1xuICogdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSByZXF1aXJlZCB0byBjcmVhdGUgYSBjdXN0b20gZXZlbnQgbGlzdGVuZXIgd2l0aCBzcGVjaWZpYyBiZWhhdmlvcixcbiAqIGFsbG93aW5nIGRldmVsb3BlcnMgdG8gZXh0ZW5kIEFuZ3VsYXIncyBuYXRpdmUgZXZlbnQgaGFuZGxpbmcgY2FwYWJpbGl0aWVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBFeHRlbmRpbmcgRXZlbnRQbHVnaW4gdG8gY3JlYXRlIGEgY3VzdG9tIGV2ZW50IHBsdWdpbjpcbiAqIGBgYHRzXG4gKiBASW5qZWN0YWJsZSgpXG4gKiBjbGFzcyBDdXN0b21FdmVudFBsdWdpbiBleHRlbmRzIEV2ZW50UGx1Z2luIHtcbiAqICAgcHVibGljIHJlYWRvbmx5IG1vZGlmaWVyID0gL2N1c3RvbS87XG4gKlxuICogICBwdWJsaWMgYWRkRXZlbnRMaXN0ZW5lcihlbGVtZW50OiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGhhbmRsZXI6IEV2ZW50TGlzdGVuZXIpOiBGdW5jdGlvbiB7XG4gKiAgICAgLy8gQ3VzdG9tIGxvZ2ljIGZvciBhZGRpbmcgYW4gZXZlbnQgbGlzdGVuZXJcbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICogPGRpdiAoY2xpY2suY3VzdG9tKT1cImhhbmRsZUNsaWNrKCRldmVudClcIj48L2Rpdj5cbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRXZlbnRQbHVnaW4gaW1wbGVtZW50cyBFdmVudE1hbmFnZXJQbHVnaW4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgbW9kaWZpZXI6IFJlZ0V4cDtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IG1hbmFnZXIgZm9yIGhhbmRsaW5nIGV2ZW50cy5cbiAgICpcbiAgICogQHR5cGUge0V2ZW50TWFuYWdlcn1cbiAgICovXG4gIHB1YmxpYyBtYW5hZ2VyITogRXZlbnRNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gYXR0YWNoIHRoZSBldmVudCBsaXN0ZW5lciB0by5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIHtFdmVudExpc3RlbmVyfSBoYW5kbGVyIC0gVGhlIGV2ZW50IGxpc3RlbmVyIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IC0gQSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBjYWxsZWQgdG8gcmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRFdmVudExpc3RlbmVyKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogRXZlbnRMaXN0ZW5lcik6IEZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgZ2xvYmFsIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IC0gQSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90aGluZy5cbiAgICovXG4gIHB1YmxpYyBhZGRHbG9iYWxFdmVudExpc3RlbmVyKCk6IEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gKCkgPT4gdm9pZCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgZXZlbnQgcGx1Z2luIHN1cHBvcnRzIHRoZSBnaXZlbiBldmVudCBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBgdHJ1ZWAgaWYgdGhlIGV2ZW50IHBsdWdpbiBzdXBwb3J0cyB0aGUgZXZlbnQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIHN1cHBvcnRzKGV2ZW50TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kaWZpZXIudGVzdChldmVudE5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIE5nWm9uZSBpbnN0YW5jZSBmcm9tIHRoZSBldmVudCBtYW5hZ2VyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Tmdab25lfSAtIFRoZSBOZ1pvbmUgaW5zdGFuY2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0Wm9uZSgpOiBOZ1pvbmUge1xuICAgIHJldHVybiB0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlYXJzIGRvd24gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9uIHwgbnVsbH0gbGlzdGVuZXIgLSBUaGUgZXZlbnQgbGlzdGVuZXIgZnVuY3Rpb24uXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gLSBBIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCB0byBjbGVhbiB1cCB0aGUgbGlzdGVuZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgdGVhcmRvd24obGlzdGVuZXI6IEZ1bmN0aW9uIHwgbnVsbCk6ICgpID0+IHZvaWQge1xuICAgIHJldHVybiAoKSA9PiAoaXNGdW5jdGlvbihsaXN0ZW5lcikgPyBsaXN0ZW5lcigpIDogdm9pZCAwKTtcbiAgfVxufVxuIl19
|
|
@@ -5,6 +5,38 @@ import { debounce } from '@odx/angular/utils';
|
|
|
5
5
|
import { EventPlugin } from '../models';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
const DEFAULT_DELAY = 250;
|
|
8
|
+
/**
|
|
9
|
+
* A service that extends `EventPlugin` for debouncing events. This service wraps event listeners
|
|
10
|
+
* and ensures that they are triggered no more than once per specified delay period. It is
|
|
11
|
+
* particularly useful for handling events that fire frequently, such as mouse movements
|
|
12
|
+
* or keystrokes, in a performant manner.
|
|
13
|
+
*
|
|
14
|
+
* The delay period can be specified directly in the event name using the syntax
|
|
15
|
+
* `(eventName.debounce.delay)`, where `delay` is the debounce duration in milliseconds.
|
|
16
|
+
* If no delay is specified, a default delay of 250 milliseconds is used.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* Provide the `DebounceEventPlugin` in an Angular module:
|
|
20
|
+
* ```ts
|
|
21
|
+
* @NgModule({
|
|
22
|
+
* providers: [
|
|
23
|
+
* ...
|
|
24
|
+
* provideEventPlugins(),
|
|
25
|
+
* ...
|
|
26
|
+
* ],
|
|
27
|
+
* })
|
|
28
|
+
* export class AppModule {}
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* In a component template, apply the debounce modifier to an event, specifying a custom delay:
|
|
32
|
+
* ```html
|
|
33
|
+
* <button (click.debounce.400)="handleClick($event)"></button>
|
|
34
|
+
* ```
|
|
35
|
+
* In a component template, apply the debounce modifier with the default delay:
|
|
36
|
+
* ```html
|
|
37
|
+
* <input (keyup.debounce)="onKeyUp($event)" placeholder="Type here...">
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
8
40
|
export class DebounceEventPlugin extends EventPlugin {
|
|
9
41
|
constructor() {
|
|
10
42
|
super(...arguments);
|
|
@@ -32,4 +64,4 @@ export class DebounceEventPlugin extends EventPlugin {
|
|
|
32
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DebounceEventPlugin, decorators: [{
|
|
33
65
|
type: Injectable
|
|
34
66
|
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UtZXZlbnQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9ldmVudC1wbHVnaW5zL3NyYy9saWIvcGx1Z2lucy9kZWJvdW5jZS1ldmVudC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBQzFCLGlEQUFpRDtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFeEMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBRTFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFEcEQ7O1FBRWtCLGFBQVEsR0FBRyxVQUFVLENBQUM7S0F1QnZDO0lBckJRLGdCQUFnQixDQUFDLE9BQW9CLEVBQUUsU0FBaUIsRUFBRSxlQUE4QjtRQUM3RixNQUFNLENBQUMsSUFBSSxFQUFFLEFBQUQsRUFBRyxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUUzRixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRU8sYUFBYSxDQUFDLGVBQThCLEVBQUUsS0FBYTtRQUNqRSxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQVksRUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVyRyxPQUFPLFFBQVEsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFdBQTJCO1FBQ25ELElBQUksUUFBUSxHQUFvQixJQUFJLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNwQyxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0F2QlUsbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgbnVtYmVyQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBFdmVudFBsdWdpbiB9IGZyb20gJy4uL21vZGVscyc7XG5cbmNvbnN0IERFRkFVTFRfREVMQVkgPSAyNTA7XG5cbi8qKlxuICogQSBzZXJ2aWNlIHRoYXQgZXh0ZW5kcyBgRXZlbnRQbHVnaW5gIGZvciBkZWJvdW5jaW5nIGV2ZW50cy4gVGhpcyBzZXJ2aWNlIHdyYXBzIGV2ZW50IGxpc3RlbmVyc1xuICogYW5kIGVuc3VyZXMgdGhhdCB0aGV5IGFyZSB0cmlnZ2VyZWQgbm8gbW9yZSB0aGFuIG9uY2UgcGVyIHNwZWNpZmllZCBkZWxheSBwZXJpb2QuIEl0IGlzXG4gKiBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBoYW5kbGluZyBldmVudHMgdGhhdCBmaXJlIGZyZXF1ZW50bHksIHN1Y2ggYXMgbW91c2UgbW92ZW1lbnRzXG4gKiBvciBrZXlzdHJva2VzLCBpbiBhIHBlcmZvcm1hbnQgbWFubmVyLlxuICpcbiAqIFRoZSBkZWxheSBwZXJpb2QgY2FuIGJlIHNwZWNpZmllZCBkaXJlY3RseSBpbiB0aGUgZXZlbnQgbmFtZSB1c2luZyB0aGUgc3ludGF4XG4gKiBgKGV2ZW50TmFtZS5kZWJvdW5jZS5kZWxheSlgLCB3aGVyZSBgZGVsYXlgIGlzIHRoZSBkZWJvdW5jZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuXG4gKiBJZiBubyBkZWxheSBpcyBzcGVjaWZpZWQsIGEgZGVmYXVsdCBkZWxheSBvZiAyNTAgbWlsbGlzZWNvbmRzIGlzIHVzZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIFByb3ZpZGUgdGhlIGBEZWJvdW5jZUV2ZW50UGx1Z2luYCBpbiBhbiBBbmd1bGFyIG1vZHVsZTpcbiAqIGBgYHRzXG4gKiBATmdNb2R1bGUoe1xuICogIHByb3ZpZGVyczogW1xuICogICAuLi5cbiAqICAgcHJvdmlkZUV2ZW50UGx1Z2lucygpLFxuICogICAuLi5cbiAqICBdLFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGUge31cbiAqIGBgYFxuICpcbiAqIEluIGEgY29tcG9uZW50IHRlbXBsYXRlLCBhcHBseSB0aGUgZGVib3VuY2UgbW9kaWZpZXIgdG8gYW4gZXZlbnQsIHNwZWNpZnlpbmcgYSBjdXN0b20gZGVsYXk6XG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIChjbGljay5kZWJvdW5jZS40MDApPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiPjwvYnV0dG9uPlxuICogYGBgXG4gKiBJbiBhIGNvbXBvbmVudCB0ZW1wbGF0ZSwgYXBwbHkgdGhlIGRlYm91bmNlIG1vZGlmaWVyIHdpdGggdGhlIGRlZmF1bHQgZGVsYXk6XG4gKiBgYGBodG1sXG4gKiA8aW5wdXQgKGtleXVwLmRlYm91bmNlKT1cIm9uS2V5VXAoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlLi4uXCI+XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERlYm91bmNlRXZlbnRQbHVnaW4gZXh0ZW5kcyBFdmVudFBsdWdpbiB7XG4gIHB1YmxpYyByZWFkb25seSBtb2RpZmllciA9IC9kZWJvdW5jZS87XG5cbiAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBvcmlnaW5hbEhhbmRsZXI6IEV2ZW50TGlzdGVuZXIpOiBGdW5jdGlvbiB7XG4gICAgY29uc3QgW25hbWUsICwgZGVsYXldID0gZXZlbnROYW1lLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY3JlYXRlSGFuZGxlcihvcmlnaW5hbEhhbmRsZXIsIG51bWJlckF0dHJpYnV0ZShkZWxheSwgREVGQVVMVF9ERUxBWSkpO1xuXG4gICAgcmV0dXJuIHRoaXMucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5tYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudCwgbmFtZSwgaGFuZGxlcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIYW5kbGVyKG9yaWdpbmFsSGFuZGxlcjogRXZlbnRMaXN0ZW5lciwgZGVsYXk6IG51bWJlcik6IChldmVudDogRXZlbnQpID0+IHZvaWQge1xuICAgIGNvbnN0IGlubmVySGFuZGxlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHRoaXMuZ2V0Wm9uZSgpLnJ1bkd1YXJkZWQoKCkgPT4gb3JpZ2luYWxIYW5kbGVyKGV2ZW50KSk7XG5cbiAgICByZXR1cm4gZGVib3VuY2UoaW5uZXJIYW5kbGVyLCBkZWxheSk7XG4gIH1cblxuICBwcml2YXRlIHJ1bk91dHNpZGVBbmd1bGFyKGFkZExpc3RlbmVyOiAoKSA9PiBGdW5jdGlvbik6ICgpID0+IHZvaWQge1xuICAgIGxldCBsaXN0ZW5lcjogRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcbiAgICB0aGlzLmdldFpvbmUoKS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBsaXN0ZW5lciA9IGFkZExpc3RlbmVyKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy50ZWFyZG93bihsaXN0ZW5lcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { EventPlugin } from '../models';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* A service that extends `EventPlugin` to allow event handlers to be deferred until the end of the current call stack.
|
|
8
|
+
* This can improve performance by avoiding triggering Angular's change detection unnecessarily.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* Provide the `DeferEventPlugin` in an Angular module:
|
|
12
|
+
* ```ts
|
|
13
|
+
* @NgModule({
|
|
14
|
+
* providers: [
|
|
15
|
+
* ...
|
|
16
|
+
* provideEventPlugins(),
|
|
17
|
+
* ...
|
|
18
|
+
* ],
|
|
19
|
+
* })
|
|
20
|
+
* export class AppModule {}
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* In your Angular component:
|
|
24
|
+
* ```html
|
|
25
|
+
* <button (click.defer)="handleClick($event)"></button>
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* The `.defer` modifier in the event name `click.defer` indicates that the event handler should be deferred.
|
|
29
|
+
*/
|
|
6
30
|
export class DeferEventPlugin extends EventPlugin {
|
|
7
31
|
constructor() {
|
|
8
32
|
super(...arguments);
|
|
@@ -24,4 +48,4 @@ export class DeferEventPlugin extends EventPlugin {
|
|
|
24
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DeferEventPlugin, decorators: [{
|
|
25
49
|
type: Injectable
|
|
26
50
|
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXItZXZlbnQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9ldmVudC1wbHVnaW5zL3NyYy9saWIvcGx1Z2lucy9kZWZlci1ldmVudC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBQzFCLGlEQUFpRDtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRXhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBRGpEOztRQUVrQixhQUFRLEdBQUcsT0FBTyxDQUFDO0tBY3BDO0lBWlEsZ0JBQWdCLENBQUMsT0FBb0IsRUFBRSxTQUFpQixFQUFFLGVBQThCO1FBQzdGLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEQsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVPLGFBQWEsQ0FBQyxlQUE4QjtRQUNsRCxPQUFPLENBQUMsS0FBWSxFQUFRLEVBQUU7WUFDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0FkVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudFBsdWdpbiB9IGZyb20gJy4uL21vZGVscyc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIHRoYXQgZXh0ZW5kcyBgRXZlbnRQbHVnaW5gIHRvIGFsbG93IGV2ZW50IGhhbmRsZXJzIHRvIGJlIGRlZmVycmVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgY2FsbCBzdGFjay5cbiAqIFRoaXMgY2FuIGltcHJvdmUgcGVyZm9ybWFuY2UgYnkgYXZvaWRpbmcgdHJpZ2dlcmluZyBBbmd1bGFyJ3MgY2hhbmdlIGRldGVjdGlvbiB1bm5lY2Vzc2FyaWx5LlxuICpcbiAqIEBleGFtcGxlXG4gKiBQcm92aWRlIHRoZSBgRGVmZXJFdmVudFBsdWdpbmAgaW4gYW4gQW5ndWxhciBtb2R1bGU6XG4gKiBgYGB0c1xuICogQE5nTW9kdWxlKHtcbiAqICBwcm92aWRlcnM6IFtcbiAqICAgLi4uXG4gKiAgIHByb3ZpZGVFdmVudFBsdWdpbnMoKSxcbiAqICAgLi4uXG4gKiAgXSxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKiBgYGBcbiAqXG4gKiBJbiB5b3VyIEFuZ3VsYXIgY29tcG9uZW50OlxuICogYGBgaHRtbFxuICogPGJ1dHRvbiAoY2xpY2suZGVmZXIpPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiPjwvYnV0dG9uPlxuICogYGBgXG4gKlxuICogVGhlIGAuZGVmZXJgIG1vZGlmaWVyIGluIHRoZSBldmVudCBuYW1lIGBjbGljay5kZWZlcmAgaW5kaWNhdGVzIHRoYXQgdGhlIGV2ZW50IGhhbmRsZXIgc2hvdWxkIGJlIGRlZmVycmVkLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVmZXJFdmVudFBsdWdpbiBleHRlbmRzIEV2ZW50UGx1Z2luIHtcbiAgcHVibGljIHJlYWRvbmx5IG1vZGlmaWVyID0gL2RlZmVyLztcblxuICBwdWJsaWMgYWRkRXZlbnRMaXN0ZW5lcihlbGVtZW50OiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIG9yaWdpbmFsSGFuZGxlcjogRXZlbnRMaXN0ZW5lcik6IEZ1bmN0aW9uIHtcbiAgICBjb25zdCBbbmFtZV0gPSBldmVudE5hbWUuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5jcmVhdGVIYW5kbGVyKG9yaWdpbmFsSGFuZGxlcik7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRab25lKCkucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5tYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudCwgbmFtZSwgaGFuZGxlcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIYW5kbGVyKG9yaWdpbmFsSGFuZGxlcjogRXZlbnRMaXN0ZW5lcik6IChldmVudDogRXZlbnQpID0+IHZvaWQge1xuICAgIHJldHVybiAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZ2V0Wm9uZSgpLnJ1bkd1YXJkZWQoKCkgPT4gb3JpZ2luYWxIYW5kbGVyKGV2ZW50KSksIDApO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
|