@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,15 +1,64 @@
|
|
|
1
1
|
import { EMPTY } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* A reference to a connected overlay created by the `ConnectedOverlayService`. This class provides methods to interact
|
|
4
|
+
* with the overlay, such as updating its options or closing it. It encapsulates the `DynamicViewRef` for the overlay's instance,
|
|
5
|
+
* allowing for direct manipulation of the overlay's state and behavior.
|
|
6
|
+
*
|
|
7
|
+
* This example demonstrates how to use a `ConnectedOverlayRef` to update and close a connected overlay in response
|
|
8
|
+
* to user interactions.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* class MyComponent {
|
|
13
|
+
* private overlayRef?: ConnectedOverlayRef;
|
|
14
|
+
*
|
|
15
|
+
* constructor(private overlayService: ConnectedOverlayService) {}
|
|
16
|
+
*
|
|
17
|
+
* openOverlay() {
|
|
18
|
+
* this.overlayRef = this.overlayService.createOverlay(this.someElementRef.nativeElement, { position: 'bottom' });
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* updateOverlayPosition() {
|
|
22
|
+
* if (this.overlayRef) {
|
|
23
|
+
* this.overlayRef.update({ position: 'top' });
|
|
24
|
+
* }
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* closeOverlay() {
|
|
28
|
+
* this.overlayRef?.close();
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* In this example, `MyComponent` uses the `ConnectedOverlayService` to create an overlay. It stores a reference to
|
|
34
|
+
* the created overlay in `overlayRef`, allowing it to update the overlay's position or close it when necessary.
|
|
35
|
+
*/
|
|
2
36
|
export class ConnectedOverlayRef {
|
|
3
37
|
constructor(dynamicViewRef) {
|
|
4
38
|
this.dynamicViewRef = dynamicViewRef;
|
|
5
39
|
this.element = this.dynamicViewRef.getElement();
|
|
40
|
+
/**
|
|
41
|
+
* An Observable that emits when the overlay is closed.
|
|
42
|
+
*
|
|
43
|
+
* @emits {void} - Emits when the overlay is closed.
|
|
44
|
+
*/
|
|
6
45
|
this.onClose$ = this.dynamicViewRef.getContext().closed ?? EMPTY;
|
|
7
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Updates the connected overlay with new options.
|
|
49
|
+
*
|
|
50
|
+
* @param options - The new options to be applied to the connected overlay.
|
|
51
|
+
*/
|
|
8
52
|
update(options) {
|
|
9
53
|
this.dynamicViewRef.update({ options: options });
|
|
10
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Closes the connected overlay.
|
|
57
|
+
*
|
|
58
|
+
* @returns {void}
|
|
59
|
+
*/
|
|
11
60
|
close() {
|
|
12
61
|
this.dynamicViewRef.destroy();
|
|
13
62
|
}
|
|
14
63
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLW92ZXJsYXktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9jb25uZWN0ZWQtb3ZlcmxheS9zcmMvbGliL21vZGVscy9jb25uZWN0ZWQtb3ZlcmxheS1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUl6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQVU5QixZQUE2QixjQUFnRTtRQUFoRSxtQkFBYyxHQUFkLGNBQWMsQ0FBa0Q7UUFUN0UsWUFBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFM0Q7Ozs7V0FJRztRQUNhLGFBQVEsR0FBcUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO0lBRUUsQ0FBQztJQUVqRzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE9BQXlDO1FBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQWtDLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY1ZpZXdSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4uL2Nvbm5lY3RlZC1vdmVybGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyB9IGZyb20gJy4vY29ubmVjdGVkLW92ZXJsYXktb3B0aW9ucyc7XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSBjb25uZWN0ZWQgb3ZlcmxheSBjcmVhdGVkIGJ5IHRoZSBgQ29ubmVjdGVkT3ZlcmxheVNlcnZpY2VgLiBUaGlzIGNsYXNzIHByb3ZpZGVzIG1ldGhvZHMgdG8gaW50ZXJhY3RcbiAqIHdpdGggdGhlIG92ZXJsYXksIHN1Y2ggYXMgdXBkYXRpbmcgaXRzIG9wdGlvbnMgb3IgY2xvc2luZyBpdC4gSXQgZW5jYXBzdWxhdGVzIHRoZSBgRHluYW1pY1ZpZXdSZWZgIGZvciB0aGUgb3ZlcmxheSdzIGluc3RhbmNlLFxuICogYWxsb3dpbmcgZm9yIGRpcmVjdCBtYW5pcHVsYXRpb24gb2YgdGhlIG92ZXJsYXkncyBzdGF0ZSBhbmQgYmVoYXZpb3IuXG4gKlxuICogVGhpcyBleGFtcGxlIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIGEgYENvbm5lY3RlZE92ZXJsYXlSZWZgIHRvIHVwZGF0ZSBhbmQgY2xvc2UgYSBjb25uZWN0ZWQgb3ZlcmxheSBpbiByZXNwb25zZVxuICogdG8gdXNlciBpbnRlcmFjdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgIHByaXZhdGUgb3ZlcmxheVJlZj86IENvbm5lY3RlZE92ZXJsYXlSZWY7XG4gKlxuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXlTZXJ2aWNlOiBDb25uZWN0ZWRPdmVybGF5U2VydmljZSkge31cbiAqXG4gKiAgIG9wZW5PdmVybGF5KCkge1xuICogICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlT3ZlcmxheSh0aGlzLnNvbWVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgcG9zaXRpb246ICdib3R0b20nIH0pO1xuICogICB9XG4gKlxuICogICB1cGRhdGVPdmVybGF5UG9zaXRpb24oKSB7XG4gKiAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICogICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZSh7IHBvc2l0aW9uOiAndG9wJyB9KTtcbiAqICAgICB9XG4gKiAgIH1cbiAqXG4gKiAgIGNsb3NlT3ZlcmxheSgpIHtcbiAqICAgICB0aGlzLm92ZXJsYXlSZWY/LmNsb3NlKCk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEluIHRoaXMgZXhhbXBsZSwgYE15Q29tcG9uZW50YCB1c2VzIHRoZSBgQ29ubmVjdGVkT3ZlcmxheVNlcnZpY2VgIHRvIGNyZWF0ZSBhbiBvdmVybGF5LiBJdCBzdG9yZXMgYSByZWZlcmVuY2UgdG9cbiAqIHRoZSBjcmVhdGVkIG92ZXJsYXkgaW4gYG92ZXJsYXlSZWZgLCBhbGxvd2luZyBpdCB0byB1cGRhdGUgdGhlIG92ZXJsYXkncyBwb3NpdGlvbiBvciBjbG9zZSBpdCB3aGVuIG5lY2Vzc2FyeS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbm5lY3RlZE92ZXJsYXlSZWYge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IHRoaXMuZHluYW1pY1ZpZXdSZWYuZ2V0RWxlbWVudCgpO1xuXG4gIC8qKlxuICAgKiBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hlbiB0aGUgb3ZlcmxheSBpcyBjbG9zZWQuXG4gICAqXG4gICAqIEBlbWl0cyB7dm9pZH0gLSBFbWl0cyB3aGVuIHRoZSBvdmVybGF5IGlzIGNsb3NlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvbkNsb3NlJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuZHluYW1pY1ZpZXdSZWYuZ2V0Q29udGV4dCgpLmNsb3NlZCA/PyBFTVBUWTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGR5bmFtaWNWaWV3UmVmOiBEeW5hbWljVmlld1JlZjx0eXBlb2YgQ29ubmVjdGVkT3ZlcmxheUNvbXBvbmVudD4pIHt9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGNvbm5lY3RlZCBvdmVybGF5IHdpdGggbmV3IG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG5ldyBvcHRpb25zIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGNvbm5lY3RlZCBvdmVybGF5LlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBQYXJ0aWFsPENvbm5lY3RlZE92ZXJsYXlPcHRpb25zPik6IHZvaWQge1xuICAgIHRoaXMuZHluYW1pY1ZpZXdSZWYudXBkYXRlKHsgb3B0aW9uczogb3B0aW9ucyBhcyBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGNvbm5lY3RlZCBvdmVybGF5LlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmR5bmFtaWNWaWV3UmVmLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
|
|
@@ -5,26 +5,93 @@ import { Controller, DisabledController, ReadonlyController } from '@odx/angular
|
|
|
5
5
|
import { arrayAttribute, Pure } from '@odx/angular/utils';
|
|
6
6
|
import { ControlDirective } from './control.directive';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* An abstract directive that serves as a base for custom form controls, integrating seamlessly with Angular Forms.
|
|
10
|
+
* It incorporates common form control behaviors such as handling disabled and readonly states, validation, and more.
|
|
11
|
+
*
|
|
12
|
+
* This approach allows the creation of highly reusable and consistent form controls within Angular applications,
|
|
13
|
+
* simplifying the integration with Angular Forms and the handling of common form behaviors.
|
|
14
|
+
*
|
|
15
|
+
* Extends Controller to provide a consistent API for managing state changes and subscriptions.
|
|
16
|
+
*
|
|
17
|
+
* @see {Controller}
|
|
18
|
+
*/
|
|
8
19
|
export class CustomFormControl extends Controller {
|
|
9
20
|
static { this.CURRENT_INDEX = 0; }
|
|
21
|
+
/**
|
|
22
|
+
* The current value of the form control. Setting this value updates the internal state and marks the control
|
|
23
|
+
* for checking changes. Getting this value returns the current internal value of the control.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* this.customInputControl.value = 'newValue'; // Sets the value
|
|
28
|
+
* const currentValue = this.customInputControl.value; // Gets the current value
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
10
31
|
set value(value) {
|
|
11
32
|
if (this.internalValue !== value) {
|
|
12
33
|
this.internalValue = value;
|
|
13
34
|
this.triggerControllerChange();
|
|
14
35
|
}
|
|
15
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Gets the value of the custom form control.
|
|
39
|
+
*
|
|
40
|
+
* @returns {T} - The value of the custom form control.
|
|
41
|
+
*/
|
|
16
42
|
get value() {
|
|
17
43
|
return this.internalValue;
|
|
18
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Indicates whether the form control currently has an error. This takes into account any ignored errors.
|
|
47
|
+
*
|
|
48
|
+
* @returns {boolean} - True if the form control has an error, false otherwise.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* if (this.customInputControl.hasError) { ... }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
19
55
|
get hasError() {
|
|
20
56
|
return !!this.ngControl?.touched && !!this.ngControl?.invalid && this.hasNonIgnoredError(this.ngControl.errors);
|
|
21
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Indicates whether the form control is currently disabled.
|
|
60
|
+
*
|
|
61
|
+
* @returns {boolean} - True if the form control is disabled, false otherwise.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* if (this.customInputControl.isDisabled) { ... }
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
22
68
|
get isDisabled() {
|
|
23
69
|
return !!this.disabledController?.disabled;
|
|
24
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Indicates whether the form control is currently in a readonly state.
|
|
73
|
+
*
|
|
74
|
+
* @returns {boolean} - True if the form control is readonly, false otherwise.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```ts
|
|
78
|
+
* if (this.customInputControl.isReadonly) { ... }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
25
81
|
get isReadonly() {
|
|
26
82
|
return !!this.readonlyController?.readonly;
|
|
27
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Indicates whether the form control is marked as required, either through Validators.required, Validators.requiredTrue,
|
|
86
|
+
* or by a required attribute on a parent form field.
|
|
87
|
+
*
|
|
88
|
+
* @returns {boolean} - True if the form control is required, false otherwise.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ````ts
|
|
92
|
+
* if (this.customInputControl.isRequired) { ... }
|
|
93
|
+
* ````
|
|
94
|
+
*/
|
|
28
95
|
get isRequired() {
|
|
29
96
|
return !!this.requiredValidator?.required || this.hasValidator(Validators.required) || this.hasValidator(Validators.requiredTrue);
|
|
30
97
|
}
|
|
@@ -34,37 +101,76 @@ export class CustomFormControl extends Controller {
|
|
|
34
101
|
this.disabledController = DisabledController.inject();
|
|
35
102
|
this.readonlyController = ReadonlyController.inject();
|
|
36
103
|
this.ngControl = inject(NgControl, { self: true, optional: true });
|
|
104
|
+
/**
|
|
105
|
+
* A unique identifier for the custom form control. If not provided, a unique ID is generated automatically.
|
|
106
|
+
* This can be useful for associating form control with a label.
|
|
107
|
+
*
|
|
108
|
+
* @type {string}
|
|
109
|
+
*/
|
|
37
110
|
this.id = null;
|
|
111
|
+
/**
|
|
112
|
+
* The name attribute for the custom form control. Defaults to a unique name if not provided.
|
|
113
|
+
* This is useful when the form control is part of a form and needs to be identified.
|
|
114
|
+
*
|
|
115
|
+
* @type {string}
|
|
116
|
+
*/
|
|
38
117
|
this.name = `odx-form-control-${CustomFormControl.CURRENT_INDEX++}`;
|
|
118
|
+
/**
|
|
119
|
+
* The tabindex attribute for the custom form control. Can be used to control the order of focus navigation.
|
|
120
|
+
*
|
|
121
|
+
* @type {string | null}
|
|
122
|
+
*/
|
|
39
123
|
this.tabindex = null;
|
|
124
|
+
/**
|
|
125
|
+
* An array of error codes to ignore. If an error code is included in this array, the form control will not
|
|
126
|
+
* consider it as an error state. Useful for ignoring specific validation errors.
|
|
127
|
+
*
|
|
128
|
+
* @type {string[]}
|
|
129
|
+
*/
|
|
40
130
|
this.ignoreErrors = [];
|
|
131
|
+
/**
|
|
132
|
+
* A reference to the `ControlDirective` if it exists within the same host. This allows for direct interaction
|
|
133
|
+
* with the underlying form control directive.
|
|
134
|
+
*
|
|
135
|
+
* @type {ControlDirective | null}
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* this.customInputControl.control?.focus();
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
41
142
|
this.control = null;
|
|
42
143
|
this.internalValue = initialValue;
|
|
43
144
|
if (this.ngControl) {
|
|
44
145
|
this.ngControl.valueAccessor = this;
|
|
45
146
|
}
|
|
46
147
|
}
|
|
148
|
+
/** @internal */
|
|
47
149
|
onTouched() {
|
|
48
150
|
// implemented by control value accessor
|
|
49
151
|
}
|
|
152
|
+
/** @internal */
|
|
50
153
|
onChange(_value) {
|
|
51
154
|
// implemented by control value accessor
|
|
52
155
|
}
|
|
156
|
+
/** @internal */
|
|
53
157
|
registerOnChange(fn) {
|
|
54
158
|
this.onChange = fn;
|
|
55
159
|
}
|
|
160
|
+
/** @internal */
|
|
56
161
|
registerOnTouched(fn) {
|
|
57
162
|
this.onTouched = fn;
|
|
58
163
|
}
|
|
164
|
+
/** @internal */
|
|
59
165
|
setDisabledState(isDisabled) {
|
|
60
166
|
this.disabledController?.setDisabledState(isDisabled);
|
|
61
167
|
}
|
|
168
|
+
/** @internal */
|
|
62
169
|
writeValue(value) {
|
|
63
|
-
if (this.isDisabled)
|
|
64
|
-
return;
|
|
65
170
|
this.value = value;
|
|
66
171
|
this.onChange(value);
|
|
67
172
|
}
|
|
173
|
+
/** @internal */
|
|
68
174
|
updateValue(value) {
|
|
69
175
|
if (this.isDisabled)
|
|
70
176
|
return;
|
|
@@ -111,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
111
217
|
type: ViewChild,
|
|
112
218
|
args: [ControlDirective]
|
|
113
219
|
}], hasNonIgnoredError: [] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZvcm0tY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbC9zcmMvbGliL2N1c3RvbS1mb3JtLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUF3QixTQUFTLEVBQUUsaUJBQWlCLEVBQWlDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ILE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFVdkQsTUFBTSxPQUFnQixpQkFBcUIsU0FBUSxVQUFVO2FBQzVDLGtCQUFhLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFvQmpDLElBQVcsS0FBSyxDQUFDLEtBQVE7UUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUNoQztJQUNILENBQUM7SUFDRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FB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LEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQzsrR0FuR21CLGlCQUFpQjttR0FBakIsaUJBQWlCLHlHQWtCakIsY0FBYyxzT0E2QnZCLGdCQUFnQjs7QUFnRG5CO0lBRFAsSUFBSTs7OzsyREFLSjs0RkFuR21CLGlCQUFpQjtrQkFSdEMsU0FBUzttQkFBQztvQkFDVCxJQUFJLEVBQUU7d0JBQ0osbUJBQW1CLEVBQUUsVUFBVTt3QkFDL0IscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMscUJBQXFCLEVBQUUsVUFBVTtxQkFDbEM7aUJBQ0Y7NkZBV1EsRUFBRTtzQkFEUixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUU7Z0JBOEJwQixPQUFPO3NCQUR0QixTQUFTO3VCQUFDLGdCQUFnQjtnQkFnRG5CLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBSZXF1aXJlZFZhbGlkYXRvciwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyLCBEaXNhYmxlZENvbnRyb2xsZXIsIFJlYWRvbmx5Q29udHJvbGxlciB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBhcnJheUF0dHJpYnV0ZSwgUHVyZSB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9jb250cm9sLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5oYXMtZXJyb3JdJzogJ2hhc0Vycm9yJyxcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdpc0Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmlzLXJlYWRvbmx5XSc6ICdpc1JlYWRvbmx5JyxcbiAgICAnW2NsYXNzLmlzLXJlcXVpcmVkXSc6ICdyZXF1aXJlZCcsXG4gIH0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbUZvcm1Db250cm9sPFQ+IGV4dGVuZHMgQ29udHJvbGxlciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHJpdmF0ZSBzdGF0aWMgQ1VSUkVOVF9JTkRFWCA9IDA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXF1aXJlZFZhbGlkYXRvciA9IGluamVjdChSZXF1aXJlZFZhbGlkYXRvciwgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBpbnRlcm5hbFZhbHVlOiBUO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzYWJsZWRDb250cm9sbGVyID0gRGlzYWJsZWRDb250cm9sbGVyLmluamVjdCgpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVhZG9ubHlDb250cm9sbGVyID0gUmVhZG9ubHlDb250cm9sbGVyLmluamVjdCgpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBzZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuYW1lID0gYG9keC1mb3JtLWNvbnRyb2wtJHtDdXN0b21Gb3JtQ29udHJvbC5DVVJSRU5UX0lOREVYKyt9YDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGFiaW5kZXg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYXJyYXlBdHRyaWJ1dGUgfSlcbiAgcHVibGljIGlnbm9yZUVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgaWYgKHRoaXMuaW50ZXJuYWxWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy50cmlnZ2VyQ29udHJvbGxlckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFQge1xuICAgIHJldHVybiB0aGlzLmludGVybmFsVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubmdDb250cm9sPy50b3VjaGVkICYmICEhdGhpcy5uZ0NvbnRyb2w/LmludmFsaWQgJiYgdGhpcy5oYXNOb25JZ25vcmVkRXJyb3IodGhpcy5uZ0NvbnRyb2wuZXJyb3JzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRpc2FibGVkQ29udHJvbGxlcj8uZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZWFkb25seUNvbnRyb2xsZXI/LnJlYWRvbmx5O1xuICB9XG5cbiAgcHVibGljIGdldCBpc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVxdWlyZWRWYWxpZGF0b3I/LnJlcXVpcmVkIHx8IHRoaXMuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpIHx8IHRoaXMuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlKTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoQ29udHJvbERpcmVjdGl2ZSlcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2w6IENvbnRyb2xEaXJlY3RpdmUgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWU6IFQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IGluaXRpYWxWYWx1ZTtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblRvdWNoZWQoKSB7XG4gICAgLy8gaW1wbGVtZW50ZWQgYnkgY29udHJvbCB2YWx1ZSBhY2Nlc3NvclxuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlKF92YWx1ZTogVCkge1xuICAgIC8vIGltcGxlbWVudGVkIGJ5IGNvbnRyb2wgdmFsdWUgYWNjZXNzb3JcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFQpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWRDb250cm9sbGVyPy5zZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNWYWxpZGF0b3IodmFsaWRhdG9yOiBWYWxpZGF0b3JGbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IodmFsaWRhdG9yKTtcbiAgfVxuXG4gIEBQdXJlXG4gIHByaXZhdGUgaGFzTm9uSWdub3JlZEVycm9yKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoIWVycm9ycykgcmV0dXJuIGZhbHNlO1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycykuc29tZSgoZXJyb3IpID0+ICF0aGlzLmlnbm9yZUVycm9ycy5pbmNsdWRlcyhlcnJvcikpO1xuICB9XG59XG4iXX0=
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZvcm0tY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbC9zcmMvbGliL2N1c3RvbS1mb3JtLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUF3QixTQUFTLEVBQUUsaUJBQWlCLEVBQWlDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ILE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFdkQ7Ozs7Ozs7Ozs7R0FVRztBQVNILE1BQU0sT0FBZ0IsaUJBQXFCLFNBQVEsVUFBVTthQUM1QyxrQkFBYSxHQUFHLENBQUMsQUFBSixDQUFLO0lBMkNqQzs7Ozs7Ozs7O09BU0c7SUFDSCxJQUFXLEtBQUssQ0FBQyxLQUFRO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxJQUFJLENB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QUFDO0lBRVMsWUFBWSxDQUFDLFNBQXNCO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBR08sa0JBQWtCLENBQUMsTUFBK0I7UUFDeEQsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUxQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQzsrR0FuTW1CLGlCQUFpQjttR0FBakIsaUJBQWlCLHlHQXlDakIsY0FBYyxzT0FpR3ZCLGdCQUFnQjs7QUFxRG5CO0lBRFAsSUFBSTs7OzsyREFLSjs0RkFuTW1CLGlCQUFpQjtrQkFSdEMsU0FBUzttQkFBQztvQkFDVCxJQUFJLEVBQUU7d0JBQ0osbUJBQW1CLEVBQUUsVUFBVTt3QkFDL0IscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMscUJBQXFCLEVBQUUsVUFBVTtxQkFDbEM7aUJBQ0Y7NkZBaUJRLEVBQUU7c0JBRFIsS0FBSztnQkFVQyxJQUFJO3NCQURWLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxLQUFLO2dCQVVDLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2dCQWtHcEIsT0FBTztzQkFEdEIsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBcURuQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCwgUmVxdWlyZWRWYWxpZGF0b3IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29udHJvbGxlciwgRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgYXJyYXlBdHRyaWJ1dGUsIFB1cmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEFuIGFic3RyYWN0IGRpcmVjdGl2ZSB0aGF0IHNlcnZlcyBhcyBhIGJhc2UgZm9yIGN1c3RvbSBmb3JtIGNvbnRyb2xzLCBpbnRlZ3JhdGluZyBzZWFtbGVzc2x5IHdpdGggQW5ndWxhciBGb3Jtcy5cbiAqIEl0IGluY29ycG9yYXRlcyBjb21tb24gZm9ybSBjb250cm9sIGJlaGF2aW9ycyBzdWNoIGFzIGhhbmRsaW5nIGRpc2FibGVkIGFuZCByZWFkb25seSBzdGF0ZXMsIHZhbGlkYXRpb24sIGFuZCBtb3JlLlxuICpcbiAqIFRoaXMgYXBwcm9hY2ggYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiBoaWdobHkgcmV1c2FibGUgYW5kIGNvbnNpc3RlbnQgZm9ybSBjb250cm9scyB3aXRoaW4gQW5ndWxhciBhcHBsaWNhdGlvbnMsXG4gKiBzaW1wbGlmeWluZyB0aGUgaW50ZWdyYXRpb24gd2l0aCBBbmd1bGFyIEZvcm1zIGFuZCB0aGUgaGFuZGxpbmcgb2YgY29tbW9uIGZvcm0gYmVoYXZpb3JzLlxuICpcbiAqIEV4dGVuZHMgQ29udHJvbGxlciB0byBwcm92aWRlIGEgY29uc2lzdGVudCBBUEkgZm9yIG1hbmFnaW5nIHN0YXRlIGNoYW5nZXMgYW5kIHN1YnNjcmlwdGlvbnMuXG4gKlxuICogQHNlZSB7Q29udHJvbGxlcn1cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmhhcy1lcnJvcl0nOiAnaGFzRXJyb3InLFxuICAgICdbY2xhc3MuaXMtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQnLFxuICAgICdbY2xhc3MuaXMtcmVhZG9ubHldJzogJ2lzUmVhZG9ubHknLFxuICAgICdbY2xhc3MuaXMtcmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgfSxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3VzdG9tRm9ybUNvbnRyb2w8VD4gZXh0ZW5kcyBDb250cm9sbGVyIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIHN0YXRpYyBDVVJSRU5UX0lOREVYID0gMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVpcmVkVmFsaWRhdG9yID0gaW5qZWN0KFJlcXVpcmVkVmFsaWRhdG9yLCB7IG9wdGlvbmFsOiB0cnVlLCBzZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIGludGVybmFsVmFsdWU6IFQ7XG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSByZWFkb25seUNvbnRyb2xsZXIgPSBSZWFkb25seUNvbnRyb2xsZXIuaW5qZWN0KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7IHNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY3VzdG9tIGZvcm0gY29udHJvbC4gSWYgbm90IHByb3ZpZGVkLCBhIHVuaXF1ZSBJRCBpcyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICogVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBhc3NvY2lhdGluZyBmb3JtIGNvbnRyb2wgd2l0aCBhIGxhYmVsLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgYXR0cmlidXRlIGZvciB0aGUgY3VzdG9tIGZvcm0gY29udHJvbC4gRGVmYXVsdHMgdG8gYSB1bmlxdWUgbmFtZSBpZiBub3QgcHJvdmlkZWQuXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gdGhlIGZvcm0gY29udHJvbCBpcyBwYXJ0IG9mIGEgZm9ybSBhbmQgbmVlZHMgdG8gYmUgaWRlbnRpZmllZC5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuYW1lID0gYG9keC1mb3JtLWNvbnRyb2wtJHtDdXN0b21Gb3JtQ29udHJvbC5DVVJSRU5UX0lOREVYKyt9YDtcblxuICAvKipcbiAgICogVGhlIHRhYmluZGV4IGF0dHJpYnV0ZSBmb3IgdGhlIGN1c3RvbSBmb3JtIGNvbnRyb2wuIENhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIG9yZGVyIG9mIGZvY3VzIG5hdmlnYXRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmcgfCBudWxsfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRhYmluZGV4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgZXJyb3IgY29kZXMgdG8gaWdub3JlLiBJZiBhbiBlcnJvciBjb2RlIGlzIGluY2x1ZGVkIGluIHRoaXMgYXJyYXksIHRoZSBmb3JtIGNvbnRyb2wgd2lsbCBub3RcbiAgICogY29uc2lkZXIgaXQgYXMgYW4gZXJyb3Igc3RhdGUuIFVzZWZ1bCBmb3IgaWdub3Jpbmcgc3BlY2lmaWMgdmFsaWRhdGlvbiBlcnJvcnMuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYXJyYXlBdHRyaWJ1dGUgfSlcbiAgcHVibGljIGlnbm9yZUVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGZvcm0gY29udHJvbC4gU2V0dGluZyB0aGlzIHZhbHVlIHVwZGF0ZXMgdGhlIGludGVybmFsIHN0YXRlIGFuZCBtYXJrcyB0aGUgY29udHJvbFxuICAgKiBmb3IgY2hlY2tpbmcgY2hhbmdlcy4gR2V0dGluZyB0aGlzIHZhbHVlIHJldHVybnMgdGhlIGN1cnJlbnQgaW50ZXJuYWwgdmFsdWUgb2YgdGhlIGNvbnRyb2wuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuY3VzdG9tSW5wdXRDb250cm9sLnZhbHVlID0gJ25ld1ZhbHVlJzsgLy8gU2V0cyB0aGUgdmFsdWVcbiAgICogY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5jdXN0b21JbnB1dENvbnRyb2wudmFsdWU7IC8vIEdldHMgdGhlIGN1cnJlbnQgdmFsdWVcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgaWYgKHRoaXMuaW50ZXJuYWxWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy50cmlnZ2VyQ29udHJvbGxlckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWx1ZSBvZiB0aGUgY3VzdG9tIGZvcm0gY29udHJvbC5cbiAgICpcbiAgICogQHJldHVybnMge1R9IC0gVGhlIHZhbHVlIG9mIHRoZSBjdXN0b20gZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmb3JtIGNvbnRyb2wgY3VycmVudGx5IGhhcyBhbiBlcnJvci4gVGhpcyB0YWtlcyBpbnRvIGFjY291bnQgYW55IGlnbm9yZWQgZXJyb3JzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUcnVlIGlmIHRoZSBmb3JtIGNvbnRyb2wgaGFzIGFuIGVycm9yLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGlmICh0aGlzLmN1c3RvbUlucHV0Q29udHJvbC5oYXNFcnJvcikgeyAuLi4gfVxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5uZ0NvbnRyb2w/LnRvdWNoZWQgJiYgISF0aGlzLm5nQ29udHJvbD8uaW52YWxpZCAmJiB0aGlzLmhhc05vbklnbm9yZWRFcnJvcih0aGlzLm5nQ29udHJvbC5lcnJvcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmb3JtIGNvbnRyb2wgaXMgY3VycmVudGx5IGRpc2FibGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUcnVlIGlmIHRoZSBmb3JtIGNvbnRyb2wgaXMgZGlzYWJsZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogaWYgKHRoaXMuY3VzdG9tSW5wdXRDb250cm9sLmlzRGlzYWJsZWQpIHsgLi4uIH1cbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kaXNhYmxlZENvbnRyb2xsZXI/LmRpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmb3JtIGNvbnRyb2wgaXMgY3VycmVudGx5IGluIGEgcmVhZG9ubHkgc3RhdGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFRydWUgaWYgdGhlIGZvcm0gY29udHJvbCBpcyByZWFkb25seSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBpZiAodGhpcy5jdXN0b21JbnB1dENvbnRyb2wuaXNSZWFkb25seSkgeyAuLi4gfVxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNSZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlYWRvbmx5Q29udHJvbGxlcj8ucmVhZG9ubHk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZvcm0gY29udHJvbCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQsIGVpdGhlciB0aHJvdWdoIFZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlLFxuICAgKiBvciBieSBhIHJlcXVpcmVkIGF0dHJpYnV0ZSBvbiBhIHBhcmVudCBmb3JtIGZpZWxkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUcnVlIGlmIHRoZSBmb3JtIGNvbnRyb2wgaXMgcmVxdWlyZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgYHRzXG4gICAqIGlmICh0aGlzLmN1c3RvbUlucHV0Q29udHJvbC5pc1JlcXVpcmVkKSB7IC4uLiB9XG4gICAqIGBgYGBcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlcXVpcmVkVmFsaWRhdG9yPy5yZXF1aXJlZCB8fCB0aGlzLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSB8fCB0aGlzLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gdGhlIGBDb250cm9sRGlyZWN0aXZlYCBpZiBpdCBleGlzdHMgd2l0aGluIHRoZSBzYW1lIGhvc3QuIFRoaXMgYWxsb3dzIGZvciBkaXJlY3QgaW50ZXJhY3Rpb25cbiAgICogd2l0aCB0aGUgdW5kZXJseWluZyBmb3JtIGNvbnRyb2wgZGlyZWN0aXZlLlxuICAgKlxuICAgKiBAdHlwZSB7Q29udHJvbERpcmVjdGl2ZSB8IG51bGx9XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuY3VzdG9tSW5wdXRDb250cm9sLmNvbnRyb2w/LmZvY3VzKCk7XG4gICAqIGBgYFxuICAgKi9cbiAgQFZpZXdDaGlsZChDb250cm9sRGlyZWN0aXZlKVxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbDogQ29udHJvbERpcmVjdGl2ZSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxWYWx1ZTogVCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbnRlcm5hbFZhbHVlID0gaW5pdGlhbFZhbHVlO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb25Ub3VjaGVkKCkge1xuICAgIC8vIGltcGxlbWVudGVkIGJ5IGNvbnRyb2wgdmFsdWUgYWNjZXNzb3JcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG9uQ2hhbmdlKF92YWx1ZTogVCkge1xuICAgIC8vIGltcGxlbWVudGVkIGJ5IGNvbnRyb2wgdmFsdWUgYWNjZXNzb3JcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkQ29udHJvbGxlcj8uc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzVmFsaWRhdG9yKHZhbGlkYXRvcjogVmFsaWRhdG9yRm4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uaGFzVmFsaWRhdG9yKHZhbGlkYXRvcik7XG4gIH1cblxuICBAUHVyZVxuICBwcml2YXRlIGhhc05vbklnbm9yZWRFcnJvcihlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKCFlcnJvcnMpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhlcnJvcnMpLnNvbWUoKGVycm9yKSA9PiAhdGhpcy5pZ25vcmVFcnJvcnMuaW5jbHVkZXMoZXJyb3IpKTtcbiAgfVxufVxuIl19
|
|
@@ -2,24 +2,99 @@ import { Directive } from '@angular/core';
|
|
|
2
2
|
import { injectElement, untilDestroyed } from '@odx/angular/utils';
|
|
3
3
|
import { distinctUntilChanged, fromEvent, map } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* An abstract directive that facilitates handling input changes, focusing, and blurring programmatically for input elements.
|
|
7
|
+
* It provides a reactive `valueChange$` observable to subscribe to input changes.
|
|
8
|
+
* This directive can be extended to create more specific input handlers.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* Extending InputControlDirective in a custom directive:
|
|
12
|
+
* ```ts
|
|
13
|
+
* @Directive({
|
|
14
|
+
* selector: '[appCustomInput]',
|
|
15
|
+
* standalone: true,
|
|
16
|
+
* })
|
|
17
|
+
* export class CustomInputDirective extends InputControlDirective {
|
|
18
|
+
* // Custom logic here
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* Using the directive in a component template:
|
|
23
|
+
* ```html
|
|
24
|
+
* <input appCustomInput type="text" />
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* Subscribing to input changes in the component:
|
|
28
|
+
* ```ts
|
|
29
|
+
* @Component({...})
|
|
30
|
+
* export class MyComponent implements AfterViewInit {
|
|
31
|
+
* @ViewChild(CustomInputDirective) customInputDirective!: CustomInputDirective;
|
|
32
|
+
*
|
|
33
|
+
* ngAfterViewInit(): void {
|
|
34
|
+
* this.customInputDirective.valueChange$.subscribe(value => {
|
|
35
|
+
* console.log('Input value changed to:', value);
|
|
36
|
+
* });
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* // Focusing the input programmatically
|
|
41
|
+
* this.customInputDirective.focus();
|
|
42
|
+
*
|
|
43
|
+
* // Blurring the input programmatically
|
|
44
|
+
* this.customInputDirective.blur();
|
|
45
|
+
*
|
|
46
|
+
* // Resetting the input value programmatically
|
|
47
|
+
* this.customInputDirective.reset();
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
5
50
|
export class InputControlDirective {
|
|
6
51
|
constructor() {
|
|
7
52
|
this.takeUntilDestroyed = untilDestroyed();
|
|
8
53
|
this.element = injectElement();
|
|
54
|
+
/**
|
|
55
|
+
* Represents an observable stream of value changes for the input control.
|
|
56
|
+
*
|
|
57
|
+
* @emits {string} input value changes.
|
|
58
|
+
*/
|
|
9
59
|
this.valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(distinctUntilChanged(), map(() => this.nativeElementValue));
|
|
10
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Gets the current value of the input element.
|
|
63
|
+
*
|
|
64
|
+
* @type {string} The current value of the input element.
|
|
65
|
+
*/
|
|
11
66
|
get nativeElementValue() {
|
|
12
67
|
return this.element.nativeElement.value;
|
|
13
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Sets the value of the input element.
|
|
71
|
+
*
|
|
72
|
+
* @param {string} value - The value to set.
|
|
73
|
+
*/
|
|
14
74
|
set nativeElementValue(value) {
|
|
15
75
|
this.element.nativeElement.value = value;
|
|
16
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Sets focus on the input element.
|
|
79
|
+
*
|
|
80
|
+
* @returns {void}
|
|
81
|
+
*/
|
|
17
82
|
focus() {
|
|
18
83
|
this.element.nativeElement.focus();
|
|
19
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Removes focus from the input element.
|
|
87
|
+
*
|
|
88
|
+
* @returns {void}
|
|
89
|
+
*/
|
|
20
90
|
blur() {
|
|
21
91
|
this.element.nativeElement.blur();
|
|
22
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Resets the input element value to an empty string.
|
|
95
|
+
*
|
|
96
|
+
* @returns {void}
|
|
97
|
+
*/
|
|
23
98
|
reset() {
|
|
24
99
|
this.element.nativeElement.value = '';
|
|
25
100
|
}
|
|
@@ -32,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
32
107
|
standalone: true,
|
|
33
108
|
}]
|
|
34
109
|
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY29udHJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wvc3JjL2xpYi9pbnB1dC1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDRztBQUlILE1BQU0sT0FBZ0IscUJBQXFCO0lBSDNDO1FBSXFCLHVCQUFrQixHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRXpDLFlBQU8sR0FBRyxhQUFhLEVBQW9CLENBQUM7UUFFNUQ7Ozs7V0FJRztRQUNJLGlCQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdkUsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUNuQyxDQUFDO0tBOENIO0lBNUNDOzs7O09BSUc7SUFDSCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsa0JBQWtCLENBQUMsS0FBYTtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDeEMsQ0FBQzsrR0ExRG1CLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUgxQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RWxlbWVudCwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZyb21FdmVudCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQW4gYWJzdHJhY3QgZGlyZWN0aXZlIHRoYXQgZmFjaWxpdGF0ZXMgaGFuZGxpbmcgaW5wdXQgY2hhbmdlcywgZm9jdXNpbmcsIGFuZCBibHVycmluZyBwcm9ncmFtbWF0aWNhbGx5IGZvciBpbnB1dCBlbGVtZW50cy5cbiAqIEl0IHByb3ZpZGVzIGEgcmVhY3RpdmUgYHZhbHVlQ2hhbmdlJGAgb2JzZXJ2YWJsZSB0byBzdWJzY3JpYmUgdG8gaW5wdXQgY2hhbmdlcy5cbiAqIFRoaXMgZGlyZWN0aXZlIGNhbiBiZSBleHRlbmRlZCB0byBjcmVhdGUgbW9yZSBzcGVjaWZpYyBpbnB1dCBoYW5kbGVycy5cbiAqXG4gKiBAZXhhbXBsZVxuICogRXh0ZW5kaW5nIElucHV0Q29udHJvbERpcmVjdGl2ZSBpbiBhIGN1c3RvbSBkaXJlY3RpdmU6XG4gKiBgYGB0c1xuICogQERpcmVjdGl2ZSh7XG4gKiAgIHNlbGVjdG9yOiAnW2FwcEN1c3RvbUlucHV0XScsXG4gKiAgIHN0YW5kYWxvbmU6IHRydWUsXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEN1c3RvbUlucHV0RGlyZWN0aXZlIGV4dGVuZHMgSW5wdXRDb250cm9sRGlyZWN0aXZlIHtcbiAqICAgLy8gQ3VzdG9tIGxvZ2ljIGhlcmVcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFVzaW5nIHRoZSBkaXJlY3RpdmUgaW4gYSBjb21wb25lbnQgdGVtcGxhdGU6XG4gKiBgYGBodG1sXG4gKiA8aW5wdXQgYXBwQ3VzdG9tSW5wdXQgdHlwZT1cInRleHRcIiAvPlxuICogYGBgXG4gKlxuICogU3Vic2NyaWJpbmcgdG8gaW5wdXQgY2hhbmdlcyBpbiB0aGUgY29tcG9uZW50OlxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoey4uLn0pXG4gKiBleHBvcnQgY2xhc3MgTXlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAqICAgQFZpZXdDaGlsZChDdXN0b21JbnB1dERpcmVjdGl2ZSkgY3VzdG9tSW5wdXREaXJlY3RpdmUhOiBDdXN0b21JbnB1dERpcmVjdGl2ZTtcbiAqXG4gKiAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAqICAgICB0aGlzLmN1c3RvbUlucHV0RGlyZWN0aXZlLnZhbHVlQ2hhbmdlJC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICogICAgICAgY29uc29sZS5sb2coJ0lucHV0IHZhbHVlIGNoYW5nZWQgdG86JywgdmFsdWUpO1xuICogICAgIH0pO1xuICogICB9XG4gKiB9XG4gKlxuICogLy8gRm9jdXNpbmcgdGhlIGlucHV0IHByb2dyYW1tYXRpY2FsbHlcbiAqIHRoaXMuY3VzdG9tSW5wdXREaXJlY3RpdmUuZm9jdXMoKTtcbiAqXG4gKiAvLyBCbHVycmluZyB0aGUgaW5wdXQgcHJvZ3JhbW1hdGljYWxseVxuICogdGhpcy5jdXN0b21JbnB1dERpcmVjdGl2ZS5ibHVyKCk7XG4gKlxuICogLy8gUmVzZXR0aW5nIHRoZSBpbnB1dCB2YWx1ZSBwcm9ncmFtbWF0aWNhbGx5XG4gKiB0aGlzLmN1c3RvbUlucHV0RGlyZWN0aXZlLnJlc2V0KCk7XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIElucHV0Q29udHJvbERpcmVjdGl2ZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudDxIVE1MSW5wdXRFbGVtZW50PigpO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGFuIG9ic2VydmFibGUgc3RyZWFtIG9mIHZhbHVlIGNoYW5nZXMgZm9yIHRoZSBpbnB1dCBjb250cm9sLlxuICAgKlxuICAgKiBAZW1pdHMge3N0cmluZ30gaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHB1YmxpYyB2YWx1ZUNoYW5nZSQgPSBmcm9tRXZlbnQodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBtYXAoKCkgPT4gdGhpcy5uYXRpdmVFbGVtZW50VmFsdWUpLFxuICApO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBpbnB1dCBlbGVtZW50LlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfSBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBpbnB1dCBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKi9cbiAgcHVibGljIHNldCBuYXRpdmVFbGVtZW50VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBmb2N1cyBvbiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGZvY3VzIGZyb20gdGhlIGlucHV0IGVsZW1lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgcHVibGljIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgaW5wdXQgZWxlbWVudCB2YWx1ZSB0byBhbiBlbXB0eSBzdHJpbmcuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,6 +3,13 @@ import { hasChanged, isComponent } from '@odx/angular/utils';
|
|
|
3
3
|
import { DynamicViewService } from './dynamic-view.service';
|
|
4
4
|
import { createProjectableNodes, isDynamicTextContent, isDynamicView } from './helpers';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* A directive that dynamically renders content based on the provided input. It supports rendering
|
|
8
|
+
* Angular components, templates, and text content, allowing for dynamic and flexible content
|
|
9
|
+
* management within Angular applications.
|
|
10
|
+
*
|
|
11
|
+
* @template T - A type parameter that extends `DynamicContent<unknown>`, representing the type of content to be dynamically rendered.
|
|
12
|
+
*/
|
|
6
13
|
export class DynamicViewDirective {
|
|
7
14
|
constructor() {
|
|
8
15
|
this.dynamicViewService = inject(DynamicViewService);
|
|
@@ -10,6 +17,10 @@ export class DynamicViewDirective {
|
|
|
10
17
|
this.template = inject(TemplateRef);
|
|
11
18
|
this.viewRef = null;
|
|
12
19
|
this.contentViewRef = null;
|
|
20
|
+
/**
|
|
21
|
+
* The content to be dynamically rendered. This can be a component, template reference, or text content.
|
|
22
|
+
* The content is wrapped in a `DynamicViewRef`, providing additional control over the dynamically rendered view.
|
|
23
|
+
*/
|
|
13
24
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
14
25
|
this.content = null;
|
|
15
26
|
}
|
|
@@ -31,6 +42,12 @@ export class DynamicViewDirective {
|
|
|
31
42
|
ngOnDestroy() {
|
|
32
43
|
this.destroy();
|
|
33
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Retrieves the current `DynamicViewRef` associated with the rendered content, providing access
|
|
47
|
+
* to the view reference for additional operations like updating context or manual destruction.
|
|
48
|
+
*
|
|
49
|
+
* @returns {DynamicViewRef<T> | null} The current view reference for the dynamically rendered content, if available.
|
|
50
|
+
*/
|
|
34
51
|
getView() {
|
|
35
52
|
return this.viewRef;
|
|
36
53
|
}
|
|
@@ -91,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
91
108
|
type: Input,
|
|
92
109
|
args: ['odxDynamicViewContext']
|
|
93
110
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy12aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3L3NyYy9saWIvZHluYW1pYy12aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0MsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFhLE1BQU0sb0JBQW9CLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFNeEYsTUFBTSxPQUFPLG9CQUFvQjtJQUpqQztRQUttQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsWUFBTyxHQUE2QixJQUFJLENBQUM7UUFDekMsbUJBQWMsR0FBZ0QsSUFBSSxDQUFDO1FBRTNFLDJEQUEyRDtRQUVwRCxZQUFPLEdBQWtDLElBQUksQ0FBQztLQXlFdEQ7SUEvRFEsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXdEO1FBQ3pFLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDZjtRQUNELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMs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RSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFVUSxPQUFPO3NCQURiLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUtoQixRQUFRO3NCQURkLEtBQUs7dUJBQUMsd0JBQXdCO2dCQUt4QixPQUFPO3NCQURiLEtBQUs7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbWJlZGRlZFZpZXdSZWYsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaGFzQ2hhbmdlZCwgaXNDb21wb25lbnQsIE5nQ2hhbmdlcyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBEeW5hbWljVmlld1NlcnZpY2UgfSBmcm9tICcuL2R5bmFtaWMtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNDb250ZW50LCBEeW5hbWljVmlld1JlZiwgR2V0RHluYW1pY1ZpZXdDb250ZXh0IH0gZnJvbSAnLi9mYWNhZGUnO1xuaW1wb3J0IHsgY3JlYXRlUHJvamVjdGFibGVOb2RlcywgaXNEeW5hbWljVGV4dENvbnRlbnQsIGlzRHluYW1pY1ZpZXcgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtvZHhEeW5hbWljVmlld10nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVmlld0RpcmVjdGl2ZTxUIGV4dGVuZHMgRHluYW1pY0NvbnRlbnQ8dW5rbm93bj4gPSBEeW5hbWljQ29udGVudDx1bmtub3duPj4gaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkeW5hbWljVmlld1NlcnZpY2UgPSBpbmplY3QoRHluYW1pY1ZpZXdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbiAgcHJpdmF0ZSB2aWV3UmVmOiBEeW5hbWljVmlld1JlZjxUPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbnRlbnRWaWV3UmVmOiBEeW5hbWljVmlld1JlZjxUZW1wbGF0ZVJlZjx1bmtub3duPj4gfCBudWxsID0gbnVsbDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29keER5bmFtaWNWaWV3JylcbiAgcHVibGljIGNvbnRlbnQ/OiBUIHwgRHluYW1pY1ZpZXdSZWY8VD4gfCBudWxsID0gbnVsbDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29keER5bmFtaWNWaWV3SW5qZWN0b3InKVxuICBwdWJsaWMgaW5qZWN0b3I/OiBJbmplY3RvcjtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29keER5bmFtaWNWaWV3Q29udGV4dCcpXG4gIHB1YmxpYyBjb250ZXh0PzogR2V0RHluYW1pY1ZpZXdDb250ZXh0PFQ+O1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IE5nQ2hhbmdlczxEeW5hbWljVmlld0RpcmVjdGl2ZTxEeW5hbWljQ29udGVudD4+KTogdm9pZCB7XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2luamVjdG9yJykpIHtcbiAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsICdjb250ZW50JykpIHtcbiAgICAgIGNvbnN0IGhhc0NoYW5nZWRUZXh0Q29udGVudCA9IGlzRHluYW1pY1RleHRDb250ZW50KGNoYW5nZXMuY29udGVudD8ucHJldmlvdXNWYWx1ZSkgJiYgaXNEeW5hbWljVGV4dENvbnRlbnQoY2hhbmdlcy5jb250ZW50Py5jdXJyZW50VmFsdWUpO1xuICAgICAgdGhpcy5yZW5kZXIoIWhhc0NoYW5nZWRUZXh0Q29udGVudCk7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsICdjb250ZXh0JykpIHtcbiAgICAgIHRoaXMudmlld1JlZj8udXBkYXRlKGNoYW5nZXMuY29udGV4dD8uY3VycmVudFZhbHVlID8/IHt9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmlldygpOiBEeW5hbWljVmlld1JlZjxUPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnZpZXdSZWY7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcihyZVJlbmRlciA9IHRydWUpIHtcbiAgICBpZiAoIXRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghcmVSZW5kZXIgJiYgdGhpcy52aWV3UmVmKSB7XG4gICAgICB0aGlzLnZpZXdSZWY/LnVwZGF0ZSh7IGNvbnRlbnQ6IHRoaXMuY29udGVudCB9IGFzIG9iamVjdCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmlld1JlZj8uZGVzdHJveSgpO1xuICAgIGlmIChpc0R5bmFtaWNWaWV3KHRoaXMuY29udGVudCkpIHtcbiAgICAgIHRoaXMudmlld1JlZiA9IHRoaXMuY29udGVudDtcbiAgICAgIGNvbnN0IGhvc3RWaWV3ID0gdGhpcy52aWV3UmVmLmdldFZpZXcoKTtcbiAgICAgIGlmIChob3N0Vmlldykge1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuaW5zZXJ0KGhvc3RWaWV3KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHByb2plY3RhYmxlTm9kZXM6IE5vZGVbXVtdID0gW107XG4gICAgICBpZiAoaXNDb21wb25lbnQodGhpcy5jb250ZW50KSkge1xuICAgICAgICB0aGlzLmNvbnRlbnRWaWV3UmVmID0gdGhpcy5keW5hbWljVmlld1NlcnZpY2UuY3JlYXRlVmlldyh0aGlzLnRlbXBsYXRlLCB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0pO1xuICAgICAgICBjb25zdCByb290Tm9kZXMgPSAodGhpcy5jb250ZW50Vmlld1JlZi5nZXRWaWV3KCkgYXMgRW1iZWRkZWRWaWV3UmVmPHVua25vd24+KS5yb290Tm9kZXM7XG4gICAgICAgIHByb2plY3RhYmxlTm9kZXMgPSBjcmVhdGVQcm9qZWN0YWJsZU5vZGVzKHRoaXMuY29udGVudCwgcm9vdE5vZGVzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudmlld1JlZiA9IHRoaXMuZHluYW1pY1ZpZXdTZXJ2aWNlLmNyZWF0ZVZpZXcodGhpcy5jb250ZW50LCB7XG4gICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dCA/PyB1bmRlZmluZWQsXG4gICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yID8/IHRoaXMudmlld0NvbnRhaW5lci5pbmplY3RvcixcbiAgICAgICAgcHJvamVjdGFibGVOb2RlcyxcbiAgICAgICAgaG9zdDogdGhpcy52aWV3Q29udGFpbmVyLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95KCkge1xuICAgIHRoaXMuY29udGVudFZpZXdSZWY/LmRlc3Ryb3koKTtcbiAgICB0aGlzLnZpZXdSZWY/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmNvbnRlbnRWaWV3UmVmID0gbnVsbDtcbiAgICB0aGlzLnZpZXdSZWYgPSBudWxsO1xuICB9XG59XG4iXX0=
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy12aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3L3NyYy9saWIvZHluYW1pYy12aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0MsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFhLE1BQU0sb0JBQW9CLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFeEY7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLG9CQUFvQjtJQUpqQztRQUttQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsWUFBTyxHQUE2QixJQUFJLENBQUM7UUFDekMsbUJBQWMsR0FBZ0QsSUFBSSxDQUFDO1FBRTNFOzs7V0FHRztRQUNILDJEQUEyRDtRQUVwRCxZQUFPLEdBQWtDLElBQUksQ0FBQztLQXVGdEQ7SUFyRVEsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXdEO1FBQ3pFLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDZjtRQUNELElBQUksVUFB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QixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQWNRLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBU2hCLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyx3QkFBd0I7Z0JBU3hCLE9BQU87c0JBRGIsS0FBSzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgaW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBoYXNDaGFuZ2VkLCBpc0NvbXBvbmVudCwgTmdDaGFuZ2VzIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IER5bmFtaWNWaWV3U2VydmljZSB9IGZyb20gJy4vZHluYW1pYy12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQsIER5bmFtaWNWaWV3UmVmLCBHZXREeW5hbWljVmlld0NvbnRleHQgfSBmcm9tICcuL2ZhY2FkZSc7XG5pbXBvcnQgeyBjcmVhdGVQcm9qZWN0YWJsZU5vZGVzLCBpc0R5bmFtaWNUZXh0Q29udGVudCwgaXNEeW5hbWljVmlldyB9IGZyb20gJy4vaGVscGVycyc7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBkeW5hbWljYWxseSByZW5kZXJzIGNvbnRlbnQgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGlucHV0LiBJdCBzdXBwb3J0cyByZW5kZXJpbmdcbiAqIEFuZ3VsYXIgY29tcG9uZW50cywgdGVtcGxhdGVzLCBhbmQgdGV4dCBjb250ZW50LCBhbGxvd2luZyBmb3IgZHluYW1pYyBhbmQgZmxleGlibGUgY29udGVudFxuICogbWFuYWdlbWVudCB3aXRoaW4gQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBBIHR5cGUgcGFyYW1ldGVyIHRoYXQgZXh0ZW5kcyBgRHluYW1pY0NvbnRlbnQ8dW5rbm93bj5gLCByZXByZXNlbnRpbmcgdGhlIHR5cGUgb2YgY29udGVudCB0byBiZSBkeW5hbWljYWxseSByZW5kZXJlZC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbb2R4RHluYW1pY1ZpZXddJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1ZpZXdEaXJlY3RpdmU8VCBleHRlbmRzIER5bmFtaWNDb250ZW50PHVua25vd24+ID0gRHluYW1pY0NvbnRlbnQ8dW5rbm93bj4+IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZHluYW1pY1ZpZXdTZXJ2aWNlID0gaW5qZWN0KER5bmFtaWNWaWV3U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG4gIHByaXZhdGUgdmlld1JlZjogRHluYW1pY1ZpZXdSZWY8VD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb250ZW50Vmlld1JlZjogRHluYW1pY1ZpZXdSZWY8VGVtcGxhdGVSZWY8dW5rbm93bj4+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IHRvIGJlIGR5bmFtaWNhbGx5IHJlbmRlcmVkLiBUaGlzIGNhbiBiZSBhIGNvbXBvbmVudCwgdGVtcGxhdGUgcmVmZXJlbmNlLCBvciB0ZXh0IGNvbnRlbnQuXG4gICAqIFRoZSBjb250ZW50IGlzIHdyYXBwZWQgaW4gYSBgRHluYW1pY1ZpZXdSZWZgLCBwcm92aWRpbmcgYWRkaXRpb25hbCBjb250cm9sIG92ZXIgdGhlIGR5bmFtaWNhbGx5IHJlbmRlcmVkIHZpZXcuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29keER5bmFtaWNWaWV3JylcbiAgcHVibGljIGNvbnRlbnQ/OiBUIHwgRHluYW1pY1ZpZXdSZWY8VD4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgaW5qZWN0b3IgdG8gYmUgdXNlZCBmb3IgZHluYW1pY2FsbHkgY3JlYXRlZCBjb21wb25lbnRzLiBUaGlzIGFsbG93cyBmb3IgY3VzdG9tIGRlcGVuZGVuY3kgaW5qZWN0aW9uXG4gICAqIGludG8gZHluYW1pY2FsbHkgcmVuZGVyZWQgY29tcG9uZW50cy5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnb2R4RHluYW1pY1ZpZXdJbmplY3RvcicpXG4gIHB1YmxpYyBpbmplY3Rvcj86IEluamVjdG9yO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBjb250ZXh0IHByb3ZpZGluZyBmdW5jdGlvbiBmb3IgZHluYW1pY2FsbHkgY3JlYXRlZCB2aWV3cy4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBjb250ZXh0XG4gICAqIG9iamVjdCB0byBiZSBwYXNzZWQgdG8gdGhlIGR5bmFtaWNhbGx5IHJlbmRlcmVkIGNvbnRlbnQsIGFsbG93aW5nIGZvciBkeW5hbWljIGludGVyYWN0aW9uIHdpdGggdGhlIGNvbnRlbnQuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29keER5bmFtaWNWaWV3Q29udGV4dCcpXG4gIHB1YmxpYyBjb250ZXh0PzogR2V0RHluYW1pY1ZpZXdDb250ZXh0PFQ+O1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IE5nQ2hhbmdlczxEeW5hbWljVmlld0RpcmVjdGl2ZTxEeW5hbWljQ29udGVudD4+KTogdm9pZCB7XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2luamVjdG9yJykpIHtcbiAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsICdjb250ZW50JykpIHtcbiAgICAgIGNvbnN0IGhhc0NoYW5nZWRUZXh0Q29udGVudCA9IGlzRHluYW1pY1RleHRDb250ZW50KGNoYW5nZXMuY29udGVudD8ucHJldmlvdXNWYWx1ZSkgJiYgaXNEeW5hbWljVGV4dENvbnRlbnQoY2hhbmdlcy5jb250ZW50Py5jdXJyZW50VmFsdWUpO1xuICAgICAgdGhpcy5yZW5kZXIoIWhhc0NoYW5nZWRUZXh0Q29udGVudCk7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsICdjb250ZXh0JykpIHtcbiAgICAgIHRoaXMudmlld1JlZj8udXBkYXRlKGNoYW5nZXMuY29udGV4dD8uY3VycmVudFZhbHVlID8/IHt9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGBEeW5hbWljVmlld1JlZmAgYXNzb2NpYXRlZCB3aXRoIHRoZSByZW5kZXJlZCBjb250ZW50LCBwcm92aWRpbmcgYWNjZXNzXG4gICAqIHRvIHRoZSB2aWV3IHJlZmVyZW5jZSBmb3IgYWRkaXRpb25hbCBvcGVyYXRpb25zIGxpa2UgdXBkYXRpbmcgY29udGV4dCBvciBtYW51YWwgZGVzdHJ1Y3Rpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIHtEeW5hbWljVmlld1JlZjxUPiB8IG51bGx9IFRoZSBjdXJyZW50IHZpZXcgcmVmZXJlbmNlIGZvciB0aGUgZHluYW1pY2FsbHkgcmVuZGVyZWQgY29udGVudCwgaWYgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHVibGljIGdldFZpZXcoKTogRHluYW1pY1ZpZXdSZWY8VD4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52aWV3UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXIocmVSZW5kZXIgPSB0cnVlKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRlbnQpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXJlUmVuZGVyICYmIHRoaXMudmlld1JlZikge1xuICAgICAgdGhpcy52aWV3UmVmPy51cGRhdGUoeyBjb250ZW50OiB0aGlzLmNvbnRlbnQgfSBhcyBvYmplY3QpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZpZXdSZWY/LmRlc3Ryb3koKTtcbiAgICBpZiAoaXNEeW5hbWljVmlldyh0aGlzLmNvbnRlbnQpKSB7XG4gICAgICB0aGlzLnZpZXdSZWYgPSB0aGlzLmNvbnRlbnQ7XG4gICAgICBjb25zdCBob3N0VmlldyA9IHRoaXMudmlld1JlZi5nZXRWaWV3KCk7XG4gICAgICBpZiAoaG9zdFZpZXcpIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmluc2VydChob3N0Vmlldyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBwcm9qZWN0YWJsZU5vZGVzOiBOb2RlW11bXSA9IFtdO1xuICAgICAgaWYgKGlzQ29tcG9uZW50KHRoaXMuY29udGVudCkpIHtcbiAgICAgICAgdGhpcy5jb250ZW50Vmlld1JlZiA9IHRoaXMuZHluYW1pY1ZpZXdTZXJ2aWNlLmNyZWF0ZVZpZXcodGhpcy50ZW1wbGF0ZSwgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KTtcbiAgICAgICAgY29uc3Qgcm9vdE5vZGVzID0gKHRoaXMuY29udGVudFZpZXdSZWYuZ2V0VmlldygpIGFzIEVtYmVkZGVkVmlld1JlZjx1bmtub3duPikucm9vdE5vZGVzO1xuICAgICAgICBwcm9qZWN0YWJsZU5vZGVzID0gY3JlYXRlUHJvamVjdGFibGVOb2Rlcyh0aGlzLmNvbnRlbnQsIHJvb3ROb2Rlcyk7XG4gICAgICB9XG4gICAgICB0aGlzLnZpZXdSZWYgPSB0aGlzLmR5bmFtaWNWaWV3U2VydmljZS5jcmVhdGVWaWV3KHRoaXMuY29udGVudCwge1xuICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHQgPz8gdW5kZWZpbmVkLFxuICAgICAgICBpbmplY3RvcjogdGhpcy5pbmplY3RvciA/PyB0aGlzLnZpZXdDb250YWluZXIuaW5qZWN0b3IsXG4gICAgICAgIHByb2plY3RhYmxlTm9kZXMsXG4gICAgICAgIGhvc3Q6IHRoaXMudmlld0NvbnRhaW5lcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveSgpIHtcbiAgICB0aGlzLmNvbnRlbnRWaWV3UmVmPy5kZXN0cm95KCk7XG4gICAgdGhpcy52aWV3UmVmPy5kZXN0cm95KCk7XG4gICAgdGhpcy5jb250ZW50Vmlld1JlZiA9IG51bGw7XG4gICAgdGhpcy52aWV3UmVmID0gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -6,11 +6,41 @@ import { DynamicComponentRef } from './models';
|
|
|
6
6
|
import { DynamicTemplateRef } from './models/dynamic-template-ref';
|
|
7
7
|
import { DYNAMIC_VIEW_CONTEXT, getDynamicViewDefaultHost } from './tokens';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* A service for creating and managing dynamic views in an Angular application.
|
|
11
|
+
* It supports rendering Angular components, templates, and text content dynamically,
|
|
12
|
+
* allowing for flexible and dynamic content composition.
|
|
13
|
+
*/
|
|
9
14
|
export class DynamicViewService {
|
|
10
15
|
constructor() {
|
|
11
16
|
this.injector = inject(Injector);
|
|
12
17
|
this.defaultHost = getDynamicViewDefaultHost();
|
|
13
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates and returns a reference to a dynamic view based on the provided content and options.
|
|
21
|
+
* The method supports dynamic creation of components, template references, and text content,
|
|
22
|
+
* providing a unified API for dynamic content rendering.
|
|
23
|
+
*
|
|
24
|
+
* @template T - The type of the content to be dynamically rendered.
|
|
25
|
+
* @param {T} content - The content to be rendered dynamically. This can be a component class,
|
|
26
|
+
* a template reference, or text content.
|
|
27
|
+
* @param {Partial<DynamicViewOptions<T>>} [options={}] - Optional configuration for the dynamic view creation,
|
|
28
|
+
* including a custom injector, context, host element, and additional providers for the dynamic component's injector.
|
|
29
|
+
* @returns {DynamicViewRef<T>} A reference to the dynamically created view, encapsulating the rendered content
|
|
30
|
+
* and providing methods for interaction and management.
|
|
31
|
+
* @throws {Error} Throws an error if the content type is not supported.
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* // Create a dynamic view for a component
|
|
35
|
+
* const componentRef = dynamicViewService.createView(MyComponent, { context: { ... } });
|
|
36
|
+
*
|
|
37
|
+
* // Create a dynamic view for a template reference
|
|
38
|
+
* const templateRef = dynamicViewService.createView(myTemplate, { context: { ... } });
|
|
39
|
+
*
|
|
40
|
+
* // Create a dynamic view for text content
|
|
41
|
+
* const textRef = dynamicViewService.createView('Dynamic text content', {});
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
14
44
|
createView(content, options = {}) {
|
|
15
45
|
const viewOptions = {
|
|
16
46
|
...options,
|
|
@@ -42,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
42
72
|
type: Injectable,
|
|
43
73
|
args: [{ providedIn: 'root' }]
|
|
44
74
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL2R5bmFtaWMtdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQXNCLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFFM0U7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFbUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixnQkFBVyxHQUFHLHlCQUF5QixFQUFFLENBQUM7S0FtRDVEO0lBakRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDSSxVQUFVLENBQTJCLE9BQVUsRUFBRSxVQUEwQyxFQUFFO1FBQ2xHLE1BQU0sV0FBVyxHQUEwQjtZQUN6QyxHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVztZQUN0QyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztnQkFDbEcsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVE7YUFDMUMsQ0FBQztTQUNILENBQUM7UUFDRixJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixPQUFPLElBQUksa0JBQWtCLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN0RTtRQUNELElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ2xHO1FBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQyxPQUFPLElBQUksbUJBQW1CLENBQUM7Z0JBQzdCLEdBQUcsV0FBVztnQkFDZCxTQUFTLEVBQUUsb0JBQW9CO2dCQUMvQixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUU7YUFDckIsQ0FBVSxDQUFDO1NBQ2I7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbkQsQ0FBQzsrR0FwRFUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzQ29tcG9uZW50LCBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IER5bmFtaWNWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNDb250ZW50LCBEeW5hbWljVmlld1JlZiB9IGZyb20gJy4vZmFjYWRlJztcbmltcG9ydCB7IGlzRHluYW1pY1RleHRDb250ZW50IH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRSZWYsIER5bmFtaWNWaWV3T3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IER5bmFtaWNUZW1wbGF0ZVJlZiB9IGZyb20gJy4vbW9kZWxzL2R5bmFtaWMtdGVtcGxhdGUtcmVmJztcbmltcG9ydCB7IERZTkFNSUNfVklFV19DT05URVhULCBnZXREeW5hbWljVmlld0RlZmF1bHRIb3N0IH0gZnJvbSAnLi90b2tlbnMnO1xuXG4vKipcbiAqIEEgc2VydmljZSBmb3IgY3JlYXRpbmcgYW5kIG1hbmFnaW5nIGR5bmFtaWMgdmlld3MgaW4gYW4gQW5ndWxhciBhcHBsaWNhdGlvbi5cbiAqIEl0IHN1cHBvcnRzIHJlbmRlcmluZyBBbmd1bGFyIGNvbXBvbmVudHMsIHRlbXBsYXRlcywgYW5kIHRleHQgY29udGVudCBkeW5hbWljYWxseSxcbiAqIGFsbG93aW5nIGZvciBmbGV4aWJsZSBhbmQgZHluYW1pYyBjb250ZW50IGNvbXBvc2l0aW9uLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNWaWV3U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRIb3N0ID0gZ2V0RHluYW1pY1ZpZXdEZWZhdWx0SG9zdCgpO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuZCByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIGEgZHluYW1pYyB2aWV3IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb250ZW50IGFuZCBvcHRpb25zLlxuICAgKiBUaGUgbWV0aG9kIHN1cHBvcnRzIGR5bmFtaWMgY3JlYXRpb24gb2YgY29tcG9uZW50cywgdGVtcGxhdGUgcmVmZXJlbmNlcywgYW5kIHRleHQgY29udGVudCxcbiAgICogcHJvdmlkaW5nIGEgdW5pZmllZCBBUEkgZm9yIGR5bmFtaWMgY29udGVudCByZW5kZXJpbmcuXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIGNvbnRlbnQgdG8gYmUgZHluYW1pY2FsbHkgcmVuZGVyZWQuXG4gICAqIEBwYXJhbSB7VH0gY29udGVudCAtIFRoZSBjb250ZW50IHRvIGJlIHJlbmRlcmVkIGR5bmFtaWNhbGx5LiBUaGlzIGNhbiBiZSBhIGNvbXBvbmVudCBjbGFzcyxcbiAgICogYSB0ZW1wbGF0ZSByZWZlcmVuY2UsIG9yIHRleHQgY29udGVudC5cbiAgICogQHBhcmFtIHtQYXJ0aWFsPER5bmFtaWNWaWV3T3B0aW9uczxUPj59IFtvcHRpb25zPXt9XSAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBkeW5hbWljIHZpZXcgY3JlYXRpb24sXG4gICAqIGluY2x1ZGluZyBhIGN1c3RvbSBpbmplY3RvciwgY29udGV4dCwgaG9zdCBlbGVtZW50LCBhbmQgYWRkaXRpb25hbCBwcm92aWRlcnMgZm9yIHRoZSBkeW5hbWljIGNvbXBvbmVudCdzIGluamVjdG9yLlxuICAgKiBAcmV0dXJucyB7RHluYW1pY1ZpZXdSZWY8VD59IEEgcmVmZXJlbmNlIHRvIHRoZSBkeW5hbWljYWxseSBjcmVhdGVkIHZpZXcsIGVuY2Fwc3VsYXRpbmcgdGhlIHJlbmRlcmVkIGNvbnRlbnRcbiAgICogYW5kIHByb3ZpZGluZyBtZXRob2RzIGZvciBpbnRlcmFjdGlvbiBhbmQgbWFuYWdlbWVudC5cbiAgICogQHRocm93cyB7RXJyb3J9IFRocm93cyBhbiBlcnJvciBpZiB0aGUgY29udGVudCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIC8vIENyZWF0ZSBhIGR5bmFtaWMgdmlldyBmb3IgYSBjb21wb25lbnRcbiAgICogY29uc3QgY29tcG9uZW50UmVmID0gZHluYW1pY1ZpZXdTZXJ2aWNlLmNyZWF0ZVZpZXcoTXlDb21wb25lbnQsIHsgY29udGV4dDogeyAuLi4gfSB9KTtcbiAgICpcbiAgICogLy8gQ3JlYXRlIGEgZHluYW1pYyB2aWV3IGZvciBhIHRlbXBsYXRlIHJlZmVyZW5jZVxuICAgKiBjb25zdCB0ZW1wbGF0ZVJlZiA9IGR5bmFtaWNWaWV3U2VydmljZS5jcmVhdGVWaWV3KG15VGVtcGxhdGUsIHsgY29udGV4dDogeyAuLi4gfSB9KTtcbiAgICpcbiAgICogLy8gQ3JlYXRlIGEgZHluYW1pYyB2aWV3IGZvciB0ZXh0IGNvbnRlbnRcbiAgICogY29uc3QgdGV4dFJlZiA9IGR5bmFtaWNWaWV3U2VydmljZS5jcmVhdGVWaWV3KCdEeW5hbWljIHRleHQgY29udGVudCcsIHt9KTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlVmlldzxUIGV4dGVuZHMgRHluYW1pY0NvbnRlbnQ+KGNvbnRlbnQ6IFQsIG9wdGlvbnM6IFBhcnRpYWw8RHluYW1pY1ZpZXdPcHRpb25zPFQ+PiA9IHt9KTogRHluYW1pY1ZpZXdSZWY8VD4ge1xuICAgIGNvbnN0IHZpZXdPcHRpb25zOiBEeW5hbWljVmlld09wdGlvbnM8VD4gPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgaG9zdDogb3B0aW9ucy5ob3N0ID8/IHRoaXMuZGVmYXVsdEhvc3QsXG4gICAgICBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBEWU5BTUlDX1ZJRVdfQ09OVEVYVCwgdXNlVmFsdWU6IG9wdGlvbnMuY29udGV4dCB9LCBvcHRpb25zLnByb3ZpZGVycyA/PyBbXV0sXG4gICAgICAgIHBhcmVudDogb3B0aW9ucy5pbmplY3RvciA/PyB0aGlzLmluamVjdG9yLFxuICAgICAgfSksXG4gICAgfTtcbiAgICBpZiAoaXNUZW1wbGF0ZVJlZihjb250ZW50KSkge1xuICAgICAgcmV0dXJuIG5ldyBEeW5hbWljVGVtcGxhdGVSZWYoeyAuLi52aWV3T3B0aW9ucywgdGVtcGxhdGU6IGNvbnRlbnQgfSk7XG4gICAgfVxuICAgIGlmIChpc0NvbXBvbmVudChjb250ZW50KSkge1xuICAgICAgcmV0dXJuIG5ldyBEeW5hbWljQ29tcG9uZW50UmVmKHsgLi4udmlld09wdGlvbnMsIGNvbnRleHQ6IG9wdGlvbnMuY29udGV4dCwgY29tcG9uZW50OiBjb250ZW50IH0pO1xuICAgIH1cbiAgICBpZiAoaXNEeW5hbWljVGV4dENvbnRlbnQoY29udGVudCkpIHtcbiAgICAgIHJldHVybiBuZXcgRHluYW1pY0NvbXBvbmVudFJlZih7XG4gICAgICAgIC4uLnZpZXdPcHRpb25zLFxuICAgICAgICBjb21wb25lbnQ6IER5bmFtaWNWaWV3Q29tcG9uZW50LFxuICAgICAgICBjb250ZXh0OiB7IGNvbnRlbnQgfSxcbiAgICAgIH0pIGFzIG5ldmVyO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnRlbnQgdHlwZSBpcyBub3Qgc3VwcG9ydGVkJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
import { reflectComponentType } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Prepares an array of node arrays suitable for projection into the `<ng-content>` slots
|
|
4
|
+
* of a dynamically created Angular component based on its content selectors.
|
|
5
|
+
*
|
|
6
|
+
* The function inspects the component's content selectors and aligns the provided nodes
|
|
7
|
+
* for projection according to these selectors. A selector of '*' indicates that the nodes
|
|
8
|
+
* should be projected into this slot. If a content selector does not match '*', an empty
|
|
9
|
+
* array is returned for that slot, indicating no nodes are projected into it.
|
|
10
|
+
*
|
|
11
|
+
* @param {Type<unknown>} component - The component class for which the projectable nodes are being prepared.
|
|
12
|
+
* @param {Node[]} nodes - The nodes intended for projection into the component's `<ng-content>` slots.
|
|
13
|
+
* @returns {Node[][]} An array of node arrays, each corresponding to a `<ng-content>` slot in the component.
|
|
14
|
+
* Each sub-array contains nodes to be projected into the respective `<ng-content>` slot, based on the component's content selectors.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* // Given a component with two `<ng-content>` slots, the first without a selector and the second with the selector `<ng-content select=".selector-class">`,
|
|
19
|
+
* const nodes = [document.createTextNode('Hello'), document.createElement('div')];
|
|
20
|
+
* const projectableNodes = createProjectableNodes(MyComponent, nodes);
|
|
21
|
+
* // projectableNodes would be `[[TextNode, DivElement], []]` for a component with selectors ['*', '.selector-class']
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
2
24
|
export function createProjectableNodes(component, nodes) {
|
|
3
25
|
const componentType = reflectComponentType(component);
|
|
4
26
|
if (componentType && componentType.ngContentSelectors.length > 0) {
|
|
@@ -6,4 +28,4 @@ export function createProjectableNodes(component, nodes) {
|
|
|
6
28
|
}
|
|
7
29
|
return [];
|
|
8
30
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2plY3RhYmxlLW5vZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcvc3JjL2xpYi9oZWxwZXJzL2NyZWF0ZS1wcm9qZWN0YWJsZS1ub2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxTQUF3QixFQUFFLEtBQWE7SUFDNUUsTUFBTSxhQUFhLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDaEUsT0FBTyxhQUFhLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUM1RjtJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZmxlY3RDb21wb25lbnRUeXBlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogUHJlcGFyZXMgYW4gYXJyYXkgb2Ygbm9kZSBhcnJheXMgc3VpdGFibGUgZm9yIHByb2plY3Rpb24gaW50byB0aGUgYDxuZy1jb250ZW50PmAgc2xvdHNcbiAqIG9mIGEgZHluYW1pY2FsbHkgY3JlYXRlZCBBbmd1bGFyIGNvbXBvbmVudCBiYXNlZCBvbiBpdHMgY29udGVudCBzZWxlY3RvcnMuXG4gKlxuICogVGhlIGZ1bmN0aW9uIGluc3BlY3RzIHRoZSBjb21wb25lbnQncyBjb250ZW50IHNlbGVjdG9ycyBhbmQgYWxpZ25zIHRoZSBwcm92aWRlZCBub2Rlc1xuICogZm9yIHByb2plY3Rpb24gYWNjb3JkaW5nIHRvIHRoZXNlIHNlbGVjdG9ycy4gQSBzZWxlY3RvciBvZiAnKicgaW5kaWNhdGVzIHRoYXQgdGhlIG5vZGVzXG4gKiBzaG91bGQgYmUgcHJvamVjdGVkIGludG8gdGhpcyBzbG90LiBJZiBhIGNvbnRlbnQgc2VsZWN0b3IgZG9lcyBub3QgbWF0Y2ggJyonLCBhbiBlbXB0eVxuICogYXJyYXkgaXMgcmV0dXJuZWQgZm9yIHRoYXQgc2xvdCwgaW5kaWNhdGluZyBubyBub2RlcyBhcmUgcHJvamVjdGVkIGludG8gaXQuXG4gKlxuICogQHBhcmFtIHtUeXBlPHVua25vd24+fSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGNsYXNzIGZvciB3aGljaCB0aGUgcHJvamVjdGFibGUgbm9kZXMgYXJlIGJlaW5nIHByZXBhcmVkLlxuICogQHBhcmFtIHtOb2RlW119IG5vZGVzIC0gVGhlIG5vZGVzIGludGVuZGVkIGZvciBwcm9qZWN0aW9uIGludG8gdGhlIGNvbXBvbmVudCdzIGA8bmctY29udGVudD5gIHNsb3RzLlxuICogQHJldHVybnMge05vZGVbXVtdfSBBbiBhcnJheSBvZiBub2RlIGFycmF5cywgZWFjaCBjb3JyZXNwb25kaW5nIHRvIGEgYDxuZy1jb250ZW50PmAgc2xvdCBpbiB0aGUgY29tcG9uZW50LlxuICogRWFjaCBzdWItYXJyYXkgY29udGFpbnMgbm9kZXMgdG8gYmUgcHJvamVjdGVkIGludG8gdGhlIHJlc3BlY3RpdmUgYDxuZy1jb250ZW50PmAgc2xvdCwgYmFzZWQgb24gdGhlIGNvbXBvbmVudCdzIGNvbnRlbnQgc2VsZWN0b3JzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gR2l2ZW4gYSBjb21wb25lbnQgd2l0aCB0d28gYDxuZy1jb250ZW50PmAgc2xvdHMsIHRoZSBmaXJzdCB3aXRob3V0IGEgc2VsZWN0b3IgYW5kIHRoZSBzZWNvbmQgd2l0aCB0aGUgc2VsZWN0b3IgYDxuZy1jb250ZW50IHNlbGVjdD1cIi5zZWxlY3Rvci1jbGFzc1wiPmAsXG4gKiBjb25zdCBub2RlcyA9IFtkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnSGVsbG8nKSwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyldO1xuICogY29uc3QgcHJvamVjdGFibGVOb2RlcyA9IGNyZWF0ZVByb2plY3RhYmxlTm9kZXMoTXlDb21wb25lbnQsIG5vZGVzKTtcbiAqIC8vIHByb2plY3RhYmxlTm9kZXMgd291bGQgYmUgYFtbVGV4dE5vZGUsIERpdkVsZW1lbnRdLCBbXV1gIGZvciBhIGNvbXBvbmVudCB3aXRoIHNlbGVjdG9ycyBbJyonLCAnLnNlbGVjdG9yLWNsYXNzJ11cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvamVjdGFibGVOb2Rlcyhjb21wb25lbnQ6IFR5cGU8dW5rbm93bj4sIG5vZGVzOiBOb2RlW10pOiBOb2RlW11bXSB7XG4gIGNvbnN0IGNvbXBvbmVudFR5cGUgPSByZWZsZWN0Q29tcG9uZW50VHlwZShjb21wb25lbnQpO1xuICBpZiAoY29tcG9uZW50VHlwZSAmJiBjb21wb25lbnRUeXBlLm5nQ29udGVudFNlbGVjdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGNvbXBvbmVudFR5cGUubmdDb250ZW50U2VsZWN0b3JzLm1hcCgoc2VsZWN0b3IpID0+IChzZWxlY3RvciA9PT0gJyonID8gbm9kZXMgOiBbXSkpO1xuICB9XG4gIHJldHVybiBbXTtcbn1cbiJdfQ==
|