@odx/angular 1.0.0-rc.3 → 1.0.0-rc.5
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/animations/index.d.ts +1 -0
- package/animations/lib/wait-for-child-animations.d.ts +1 -0
- package/cdk/active-indicator/README.md +3 -0
- package/cdk/active-indicator/index.d.ts +2 -0
- package/cdk/active-indicator/lib/active-indicator.directive.d.ts +24 -0
- package/cdk/active-indicator/lib/models/active-indicator-direction.d.ts +5 -0
- package/cdk/active-indicator/lib/models/active-indicator-position.d.ts +6 -0
- package/cdk/active-indicator/lib/models/index.d.ts +2 -0
- package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +2 -3
- package/cdk/custom-form-control/lib/custom-form-control.d.ts +7 -14
- package/cdk/dynamic-view/lib/dynamic-view.component.d.ts +3 -3
- package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +3 -1
- package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +1 -0
- package/cdk/dynamic-view/lib/facade/dynamic-view-ref.d.ts +1 -0
- package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +2 -0
- package/cdk/dynamic-view/lib/helpers/index.d.ts +1 -0
- package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +1 -0
- package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +1 -0
- package/cdk/dynamic-view/lib/models/dynamic-view-options.d.ts +7 -3
- package/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.d.ts +3 -0
- package/cdk/dynamic-view/lib/tokens/index.d.ts +1 -0
- package/components/checkbox/index.d.ts +2 -0
- package/components/checkbox/lib/checkbox.module.d.ts +9 -0
- package/components/checkbox/lib/checkbox.validator.d.ts +6 -0
- package/components/chip/README.md +3 -0
- package/components/chip/index.d.ts +2 -0
- package/components/chip/lib/chip.component.d.ts +15 -0
- package/components/chip/lib/models/chip-size.d.ts +5 -0
- package/components/chip/lib/models/chip-variant.d.ts +7 -0
- package/components/chip/lib/models/index.d.ts +2 -0
- package/components/circular-progress/README.md +3 -0
- package/components/circular-progress/index.d.ts +2 -0
- package/components/circular-progress/lib/circular-progress.component.d.ts +28 -0
- package/components/circular-progress/lib/models/circular-progress-size.d.ts +7 -0
- package/components/circular-progress/lib/models/index.d.ts +1 -0
- package/components/form-field/lib/components/form-group/form-group.component.d.ts +0 -1
- package/components/form-field/lib/directives/form-field-control.directive.d.ts +3 -4
- package/components/form-field/lib/form-field.config.d.ts +0 -5
- package/components/list/README.md +3 -0
- package/components/list/index.d.ts +3 -0
- package/components/list/lib/components/index.d.ts +1 -0
- package/components/list/lib/components/list-item.component.d.ts +14 -0
- package/components/list/lib/list.component.d.ts +5 -0
- package/components/list/lib/list.module.d.ts +9 -0
- package/components/loading-spinner/README.md +3 -0
- package/components/loading-spinner/index.d.ts +3 -0
- package/components/loading-spinner/lib/loading-spinner.component.d.ts +15 -0
- package/components/loading-spinner/lib/loading-spinner.directive.d.ts +26 -0
- package/components/loading-spinner/lib/loading-spinner.module.d.ts +9 -0
- package/components/loading-spinner/lib/loading-spinner.service.d.ts +9 -0
- package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +6 -1
- package/components/main-menu/lib/main-menu.component.d.ts +3 -1
- package/components/modal/lib/components/modal-header/modal-header.component.d.ts +1 -0
- package/components/modal/lib/modal.component.d.ts +4 -3
- package/components/modal/lib/modal.directive.d.ts +8 -4
- package/components/modal/lib/modal.service.d.ts +0 -2
- package/components/modal/lib/models/index.d.ts +1 -0
- package/components/modal/lib/models/modal-options.d.ts +2 -0
- package/components/modal/lib/models/modal-ref.d.ts +4 -2
- package/components/modal/lib/models/modal-variant.d.ts +5 -0
- package/components/progress/README.md +3 -0
- package/components/progress/index.d.ts +1 -0
- package/components/progress/lib/progress.component.d.ts +14 -0
- package/components/rail-navigation/README.md +3 -0
- package/components/rail-navigation/index.d.ts +3 -0
- package/components/rail-navigation/lib/components/rail-navigation-item.component.d.ts +15 -0
- package/components/rail-navigation/lib/rail-navigation.component.d.ts +12 -0
- package/components/rail-navigation/lib/rail-navigation.module.d.ts +9 -0
- package/components/switch/index.d.ts +2 -0
- package/components/switch/lib/switch.module.d.ts +9 -0
- package/components/switch/lib/switch.validator.d.ts +6 -0
- package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +5 -1
- package/esm2020/animations/index.mjs +2 -1
- package/esm2020/animations/lib/fade.mjs +2 -5
- package/esm2020/animations/lib/wait-for-child-animations.mjs +3 -0
- package/esm2020/cdk/active-indicator/index.mjs +3 -0
- package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +127 -0
- package/esm2020/cdk/active-indicator/lib/models/active-indicator-direction.mjs +5 -0
- package/esm2020/cdk/active-indicator/lib/models/active-indicator-position.mjs +6 -0
- package/esm2020/cdk/active-indicator/lib/models/index.mjs +3 -0
- package/esm2020/cdk/active-indicator/odx-angular-cdk-active-indicator.mjs +5 -0
- package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +13 -15
- package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +4 -4
- package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +20 -47
- package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +23 -14
- package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +21 -9
- package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +11 -9
- package/esm2020/cdk/dynamic-view/lib/facade/dynamic-view-ref.mjs +1 -1
- package/esm2020/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +9 -0
- package/esm2020/cdk/dynamic-view/lib/helpers/index.mjs +2 -1
- package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +13 -5
- package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +9 -5
- package/esm2020/cdk/dynamic-view/lib/models/dynamic-view-options.mjs +1 -1
- package/esm2020/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.mjs +10 -0
- package/esm2020/cdk/dynamic-view/lib/tokens/index.mjs +2 -1
- package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +4 -4
- package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +4 -4
- package/esm2020/cdk/expandable/lib/expandable.module.mjs +5 -5
- package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +7 -7
- package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +4 -4
- package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +5 -5
- package/esm2020/components/accordion/lib/accordion.component.mjs +4 -4
- package/esm2020/components/accordion/lib/accordion.module.mjs +5 -5
- package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +4 -4
- package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +4 -4
- package/esm2020/components/action-group/action-group.component.mjs +4 -4
- package/esm2020/components/area-header/area-header.component.mjs +4 -4
- package/esm2020/components/area-header/area-header.module.mjs +5 -5
- package/esm2020/components/area-header/directives/area-header-content.directive.mjs +4 -4
- package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +4 -4
- package/esm2020/components/avatar/lib/avatar.component.mjs +4 -4
- package/esm2020/components/badge/lib/badge.component.mjs +6 -6
- package/esm2020/components/badge/lib/badge.directive.mjs +7 -7
- package/esm2020/components/button/lib/button.component.mjs +5 -5
- package/esm2020/components/button-group/lib/button-group.component.mjs +4 -4
- package/esm2020/components/checkbox/index.mjs +3 -1
- package/esm2020/components/checkbox/lib/checkbox.component.mjs +5 -5
- package/esm2020/components/checkbox/lib/checkbox.module.mjs +19 -0
- package/esm2020/components/checkbox/lib/checkbox.validator.mjs +28 -0
- package/esm2020/components/chip/index.mjs +3 -0
- package/esm2020/components/chip/lib/chip.component.mjs +54 -0
- package/esm2020/components/chip/lib/models/chip-size.mjs +5 -0
- package/esm2020/components/chip/lib/models/chip-variant.mjs +7 -0
- package/esm2020/components/chip/lib/models/index.mjs +3 -0
- package/esm2020/components/chip/odx-angular-components-chip.mjs +5 -0
- package/esm2020/components/circular-progress/index.mjs +3 -0
- package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +91 -0
- package/esm2020/components/circular-progress/lib/models/circular-progress-size.mjs +7 -0
- package/esm2020/components/circular-progress/lib/models/index.mjs +2 -0
- package/esm2020/components/circular-progress/odx-angular-components-circular-progress.mjs +5 -0
- package/esm2020/components/content-box/lib/content-box.component.mjs +4 -4
- package/esm2020/components/content-box/lib/content-box.module.mjs +5 -5
- package/esm2020/components/content-box/lib/directives/content-box-footer-directive.mjs +4 -4
- package/esm2020/components/content-box/lib/directives/content-box-header-directive.mjs +4 -4
- package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +4 -4
- package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +11 -13
- package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +20 -13
- package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +4 -4
- package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -4
- package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +4 -4
- package/esm2020/components/form-field/lib/directives/form.directive.mjs +4 -4
- package/esm2020/components/form-field/lib/form-field.component.mjs +4 -4
- package/esm2020/components/form-field/lib/form-field.config.mjs +1 -2
- package/esm2020/components/form-field/lib/form-field.module.mjs +5 -5
- package/esm2020/components/form-field/lib/form-field.service.mjs +4 -4
- package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +4 -4
- package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +4 -4
- package/esm2020/components/header/lib/directives/header-title.directive.mjs +4 -4
- package/esm2020/components/header/lib/header.component.mjs +4 -4
- package/esm2020/components/header/lib/header.module.mjs +5 -5
- package/esm2020/components/icon/lib/icon.component.mjs +4 -4
- package/esm2020/components/link/link.directive.mjs +4 -4
- package/esm2020/components/list/index.mjs +4 -0
- package/esm2020/components/list/lib/components/index.mjs +2 -0
- package/esm2020/components/list/lib/components/list-item.component.mjs +46 -0
- package/esm2020/components/list/lib/list.component.mjs +13 -0
- package/esm2020/components/list/lib/list.module.mjs +19 -0
- package/esm2020/components/list/odx-angular-components-list.mjs +5 -0
- package/esm2020/components/loading-spinner/index.mjs +4 -0
- package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +58 -0
- package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +87 -0
- package/esm2020/components/loading-spinner/lib/loading-spinner.module.mjs +19 -0
- package/esm2020/components/loading-spinner/lib/loading-spinner.service.mjs +17 -0
- package/esm2020/components/loading-spinner/odx-angular-components-loading-spinner.mjs +5 -0
- package/esm2020/components/logo/logo.directive.mjs +4 -4
- package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +4 -4
- package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +20 -9
- package/esm2020/components/main-menu/lib/main-menu.component.mjs +7 -6
- package/esm2020/components/main-menu/lib/main-menu.module.mjs +5 -5
- package/esm2020/components/main-menu/lib/main-menu.service.mjs +4 -4
- package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -4
- package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +10 -8
- package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +4 -4
- package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +4 -4
- package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +4 -4
- package/esm2020/components/modal/lib/modal.component.mjs +29 -16
- package/esm2020/components/modal/lib/modal.config.mjs +3 -1
- package/esm2020/components/modal/lib/modal.directive.mjs +24 -6
- package/esm2020/components/modal/lib/modal.module.mjs +5 -5
- package/esm2020/components/modal/lib/modal.service.mjs +8 -21
- package/esm2020/components/modal/lib/models/index.mjs +2 -1
- package/esm2020/components/modal/lib/models/modal-options.mjs +1 -1
- package/esm2020/components/modal/lib/models/modal-ref.mjs +9 -2
- package/esm2020/components/modal/lib/models/modal-variant.mjs +5 -0
- package/esm2020/components/modal/lib/services/open-modal-manager.service.mjs +4 -4
- package/esm2020/components/progress/index.mjs +2 -0
- package/esm2020/components/progress/lib/progress.component.mjs +51 -0
- package/esm2020/components/progress/odx-angular-components-progress.mjs +5 -0
- package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +5 -5
- package/esm2020/components/radio-group/lib/radio-group.component.mjs +4 -4
- package/esm2020/components/radio-group/lib/radio-group.module.mjs +5 -5
- package/esm2020/components/rail-navigation/index.mjs +4 -0
- package/esm2020/components/rail-navigation/lib/components/rail-navigation-item.component.mjs +43 -0
- package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +41 -0
- package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +19 -0
- package/esm2020/components/rail-navigation/odx-angular-components-rail-navigation.mjs +5 -0
- package/esm2020/components/switch/index.mjs +3 -1
- package/esm2020/components/switch/lib/switch.component.mjs +5 -5
- package/esm2020/components/switch/lib/switch.module.mjs +19 -0
- package/esm2020/components/switch/lib/switch.validator.mjs +28 -0
- package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +5 -5
- package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +20 -11
- package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +5 -5
- package/esm2020/lib/controllers/controller.mjs +15 -13
- package/esm2020/lib/controllers/disabled.controller.mjs +7 -6
- package/esm2020/lib/controllers/readonly.controller.mjs +7 -6
- package/esm2020/lib/core.module.mjs +5 -5
- package/esm2020/lib/directives/click-outside.directive.mjs +4 -4
- package/esm2020/lib/services/window-ref.mjs +4 -4
- package/esm2020/rxjs/index.mjs +2 -2
- package/esm2020/rxjs/lib/from-element-resize.mjs +14 -0
- package/esm2020/utils/lib/helpers/angular.mjs +5 -2
- package/esm2020/utils/lib/helpers/dom.mjs +24 -1
- package/fesm2015/odx-angular-animations.mjs +5 -3
- package/fesm2015/odx-angular-animations.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-active-indicator.mjs +142 -0
- package/fesm2015/odx-angular-cdk-active-indicator.mjs.map +1 -0
- package/fesm2015/odx-angular-cdk-checkbox-control.mjs +12 -14
- package/fesm2015/odx-angular-cdk-checkbox-control.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-custom-form-control.mjs +24 -51
- package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-dynamic-view.mjs +88 -38
- package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-expandable.mjs +10 -10
- package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-radio-group-control.mjs +13 -13
- package/fesm2015/odx-angular-cdk-radio-group-control.mjs.map +1 -1
- package/fesm2015/odx-angular-components-accordion.mjs +13 -13
- package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2015/odx-angular-components-action-group.mjs +3 -3
- package/fesm2015/odx-angular-components-action-group.mjs.map +1 -1
- package/fesm2015/odx-angular-components-area-header.mjs +13 -13
- package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
- package/fesm2015/odx-angular-components-avatar.mjs +3 -3
- package/fesm2015/odx-angular-components-avatar.mjs.map +1 -1
- package/fesm2015/odx-angular-components-badge.mjs +10 -10
- package/fesm2015/odx-angular-components-badge.mjs.map +1 -1
- package/fesm2015/odx-angular-components-button-group.mjs +3 -3
- package/fesm2015/odx-angular-components-button-group.mjs.map +1 -1
- package/fesm2015/odx-angular-components-button.mjs +4 -5
- package/fesm2015/odx-angular-components-button.mjs.map +1 -1
- package/fesm2015/odx-angular-components-checkbox.mjs +47 -7
- package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2015/odx-angular-components-chip.mjs +71 -0
- package/fesm2015/odx-angular-components-chip.mjs.map +1 -0
- package/fesm2015/odx-angular-components-circular-progress.mjs +103 -0
- package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -0
- package/fesm2015/odx-angular-components-content-box.mjs +13 -13
- package/fesm2015/odx-angular-components-content-box.mjs.map +1 -1
- package/fesm2015/odx-angular-components-form-field.mjs +52 -51
- package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
- package/fesm2015/odx-angular-components-header.mjs +13 -13
- package/fesm2015/odx-angular-components-header.mjs.map +1 -1
- package/fesm2015/odx-angular-components-icon.mjs +3 -3
- package/fesm2015/odx-angular-components-icon.mjs.map +1 -1
- package/fesm2015/odx-angular-components-link.mjs +3 -3
- package/fesm2015/odx-angular-components-link.mjs.map +1 -1
- package/fesm2015/odx-angular-components-list.mjs +79 -0
- package/fesm2015/odx-angular-components-list.mjs.map +1 -0
- package/fesm2015/odx-angular-components-loading-spinner.mjs +173 -0
- package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -0
- package/fesm2015/odx-angular-components-logo.mjs +3 -3
- package/fesm2015/odx-angular-components-logo.mjs.map +1 -1
- package/fesm2015/odx-angular-components-main-menu.mjs +34 -23
- package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2015/odx-angular-components-modal.mjs +97 -66
- package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2015/odx-angular-components-progress.mjs +57 -0
- package/fesm2015/odx-angular-components-progress.mjs.map +1 -0
- package/fesm2015/odx-angular-components-radio-group.mjs +11 -11
- package/fesm2015/odx-angular-components-radio-group.mjs.map +1 -1
- package/fesm2015/odx-angular-components-rail-navigation.mjs +97 -0
- package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -0
- package/fesm2015/odx-angular-components-switch.mjs +47 -7
- package/fesm2015/odx-angular-components-switch.mjs.map +1 -1
- package/fesm2015/odx-angular-components-toggle-button-group.mjs +26 -18
- package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -1
- package/fesm2015/odx-angular-rxjs.mjs +15 -6
- package/fesm2015/odx-angular-rxjs.mjs.map +1 -1
- package/fesm2015/odx-angular-utils.mjs +28 -2
- package/fesm2015/odx-angular-utils.mjs.map +1 -1
- package/fesm2015/odx-angular.mjs +38 -33
- package/fesm2015/odx-angular.mjs.map +1 -1
- package/fesm2020/odx-angular-animations.mjs +5 -6
- package/fesm2020/odx-angular-animations.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-active-indicator.mjs +142 -0
- package/fesm2020/odx-angular-cdk-active-indicator.mjs.map +1 -0
- package/fesm2020/odx-angular-cdk-checkbox-control.mjs +12 -14
- package/fesm2020/odx-angular-cdk-checkbox-control.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-custom-form-control.mjs +22 -49
- package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-dynamic-view.mjs +82 -33
- package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-expandable.mjs +10 -10
- package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-radio-group-control.mjs +13 -13
- package/fesm2020/odx-angular-cdk-radio-group-control.mjs.map +1 -1
- package/fesm2020/odx-angular-components-accordion.mjs +13 -13
- package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2020/odx-angular-components-action-group.mjs +3 -3
- package/fesm2020/odx-angular-components-action-group.mjs.map +1 -1
- package/fesm2020/odx-angular-components-area-header.mjs +13 -13
- package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
- package/fesm2020/odx-angular-components-avatar.mjs +3 -3
- package/fesm2020/odx-angular-components-avatar.mjs.map +1 -1
- package/fesm2020/odx-angular-components-badge.mjs +10 -10
- package/fesm2020/odx-angular-components-badge.mjs.map +1 -1
- package/fesm2020/odx-angular-components-button-group.mjs +3 -3
- package/fesm2020/odx-angular-components-button-group.mjs.map +1 -1
- package/fesm2020/odx-angular-components-button.mjs +4 -4
- package/fesm2020/odx-angular-components-button.mjs.map +1 -1
- package/fesm2020/odx-angular-components-checkbox.mjs +47 -7
- package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2020/odx-angular-components-chip.mjs +71 -0
- package/fesm2020/odx-angular-components-chip.mjs.map +1 -0
- package/fesm2020/odx-angular-components-circular-progress.mjs +103 -0
- package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -0
- package/fesm2020/odx-angular-components-content-box.mjs +13 -13
- package/fesm2020/odx-angular-components-content-box.mjs.map +1 -1
- package/fesm2020/odx-angular-components-form-field.mjs +52 -51
- package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
- package/fesm2020/odx-angular-components-header.mjs +13 -13
- package/fesm2020/odx-angular-components-header.mjs.map +1 -1
- package/fesm2020/odx-angular-components-icon.mjs +3 -3
- package/fesm2020/odx-angular-components-icon.mjs.map +1 -1
- package/fesm2020/odx-angular-components-link.mjs +3 -3
- package/fesm2020/odx-angular-components-link.mjs.map +1 -1
- package/fesm2020/odx-angular-components-list.mjs +78 -0
- package/fesm2020/odx-angular-components-list.mjs.map +1 -0
- package/fesm2020/odx-angular-components-loading-spinner.mjs +172 -0
- package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -0
- package/fesm2020/odx-angular-components-logo.mjs +3 -3
- package/fesm2020/odx-angular-components-logo.mjs.map +1 -1
- package/fesm2020/odx-angular-components-main-menu.mjs +34 -23
- package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2020/odx-angular-components-modal.mjs +96 -65
- package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2020/odx-angular-components-progress.mjs +57 -0
- package/fesm2020/odx-angular-components-progress.mjs.map +1 -0
- package/fesm2020/odx-angular-components-radio-group.mjs +11 -11
- package/fesm2020/odx-angular-components-radio-group.mjs.map +1 -1
- package/fesm2020/odx-angular-components-rail-navigation.mjs +96 -0
- package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -0
- package/fesm2020/odx-angular-components-switch.mjs +47 -7
- package/fesm2020/odx-angular-components-switch.mjs.map +1 -1
- package/fesm2020/odx-angular-components-toggle-button-group.mjs +26 -18
- package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -1
- package/fesm2020/odx-angular-rxjs.mjs +15 -6
- package/fesm2020/odx-angular-rxjs.mjs.map +1 -1
- package/fesm2020/odx-angular-utils.mjs +28 -2
- package/fesm2020/odx-angular-utils.mjs.map +1 -1
- package/fesm2020/odx-angular.mjs +38 -33
- package/fesm2020/odx-angular.mjs.map +1 -1
- package/lib/controllers/controller.d.ts +1 -2
- package/package.json +59 -2
- package/rxjs/index.d.ts +1 -1
- package/rxjs/lib/from-element-resize.d.ts +2 -0
- package/utils/lib/helpers/angular.d.ts +2 -1
- package/utils/lib/helpers/dom.d.ts +5 -1
- package/esm2020/rxjs/lib/mark-for-check.mjs +0 -5
- package/rxjs/lib/mark-for-check.d.ts +0 -3
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
1
|
import { Directive, inject, Input, ViewChild } from '@angular/core';
|
|
3
|
-
import { NgControl, Validators } from '@angular/forms';
|
|
2
|
+
import { NgControl, RequiredValidator, Validators } from '@angular/forms';
|
|
4
3
|
import { Controller, DisabledController, ReadonlyController } from '@odx/angular';
|
|
5
|
-
import { EMPTY, filter } from 'rxjs';
|
|
6
4
|
import { ControlDirective } from './control.directive';
|
|
7
5
|
import * as i0 from "@angular/core";
|
|
8
6
|
export class CustomFormControl extends Controller {
|
|
9
7
|
constructor(initialValue) {
|
|
10
8
|
super();
|
|
11
|
-
this.
|
|
9
|
+
this.requiredValidator = inject(RequiredValidator, { optional: true, self: true });
|
|
12
10
|
this.disabledController = DisabledController.inject();
|
|
13
11
|
this.readonlyController = ReadonlyController.inject();
|
|
14
|
-
this.enabled$ = this.disabledController?.change$.pipe(filter(() => !this.isDisabled)) ?? EMPTY;
|
|
15
12
|
this.ngControl = inject(NgControl, { self: true, optional: true });
|
|
16
13
|
this.id = null;
|
|
17
14
|
this.name = `odx-form-control-${CustomFormControl.CURRENT_INDEX++}`;
|
|
@@ -20,22 +17,14 @@ export class CustomFormControl extends Controller {
|
|
|
20
17
|
if (this.ngControl) {
|
|
21
18
|
this.ngControl.valueAccessor = this;
|
|
22
19
|
}
|
|
23
|
-
this.enabled$.subscribe(() => this.updateRequiredValidator());
|
|
24
20
|
}
|
|
25
|
-
set
|
|
26
|
-
this.isRequired = coerceBooleanProperty(value);
|
|
27
|
-
this.updateRequiredValidator();
|
|
28
|
-
}
|
|
29
|
-
get required() {
|
|
30
|
-
return this.isRequired;
|
|
31
|
-
}
|
|
32
|
-
set controlValue(value) {
|
|
21
|
+
set value(value) {
|
|
33
22
|
if (this.internalValue !== value) {
|
|
34
23
|
this.internalValue = value;
|
|
35
24
|
this.triggerControllerChange();
|
|
36
25
|
}
|
|
37
26
|
}
|
|
38
|
-
get
|
|
27
|
+
get value() {
|
|
39
28
|
return this.internalValue;
|
|
40
29
|
}
|
|
41
30
|
get hasError() {
|
|
@@ -47,14 +36,14 @@ export class CustomFormControl extends Controller {
|
|
|
47
36
|
get isReadonly() {
|
|
48
37
|
return !!this.readonlyController?.readonly;
|
|
49
38
|
}
|
|
50
|
-
|
|
51
|
-
this.
|
|
39
|
+
get isRequired() {
|
|
40
|
+
return !!this.requiredValidator?.required || this.hasValidator(Validators.required) || this.hasValidator(Validators.requiredTrue);
|
|
52
41
|
}
|
|
53
42
|
onTouched() {
|
|
54
|
-
//
|
|
43
|
+
// implemented by control value accessor
|
|
55
44
|
}
|
|
56
45
|
onChange(_value) {
|
|
57
|
-
//
|
|
46
|
+
// implemented by control value accessor
|
|
58
47
|
}
|
|
59
48
|
registerOnChange(fn) {
|
|
60
49
|
this.onChange = fn;
|
|
@@ -66,39 +55,25 @@ export class CustomFormControl extends Controller {
|
|
|
66
55
|
this.disabledController?.setDisabledState(isDisabled);
|
|
67
56
|
}
|
|
68
57
|
writeValue(value) {
|
|
69
|
-
this.
|
|
58
|
+
if (this.isDisabled)
|
|
59
|
+
return;
|
|
60
|
+
this.value = value;
|
|
61
|
+
this.onChange(value);
|
|
70
62
|
}
|
|
71
63
|
updateValue(value) {
|
|
64
|
+
if (this.isDisabled)
|
|
65
|
+
return;
|
|
72
66
|
this.writeValue(value);
|
|
73
|
-
this.onChange(value);
|
|
74
67
|
this.onTouched();
|
|
75
68
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (!control)
|
|
79
|
-
return;
|
|
80
|
-
const hasValidator = control.hasValidator(validator);
|
|
81
|
-
if (state && hasValidator)
|
|
82
|
-
return;
|
|
83
|
-
if (!state && !hasValidator)
|
|
84
|
-
return;
|
|
85
|
-
if (state) {
|
|
86
|
-
control.addValidators(validator);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
control.removeValidators(validator);
|
|
90
|
-
}
|
|
91
|
-
control.updateValueAndValidity();
|
|
92
|
-
control.markAsUntouched();
|
|
93
|
-
}
|
|
94
|
-
updateRequiredValidator() {
|
|
95
|
-
this.toggleValidator(Validators.required, this.isRequired);
|
|
69
|
+
hasValidator(validator) {
|
|
70
|
+
return !!this.ngControl?.control?.hasValidator(validator);
|
|
96
71
|
}
|
|
97
72
|
}
|
|
98
73
|
CustomFormControl.CURRENT_INDEX = 0;
|
|
99
|
-
CustomFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
100
|
-
CustomFormControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
74
|
+
CustomFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: CustomFormControl, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
75
|
+
CustomFormControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: CustomFormControl, inputs: { id: "id", name: "name" }, host: { properties: { "class.has-error": "hasError", "class.is-disabled": "isDisabled", "class.is-readonly": "isReadonly", "class.is-required": "required" } }, viewQueries: [{ propertyName: "control", first: true, predicate: ControlDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: CustomFormControl, decorators: [{
|
|
102
77
|
type: Directive,
|
|
103
78
|
args: [{
|
|
104
79
|
host: {
|
|
@@ -112,10 +87,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
112
87
|
type: Input
|
|
113
88
|
}], name: [{
|
|
114
89
|
type: Input
|
|
115
|
-
}], required: [{
|
|
116
|
-
type: Input
|
|
117
90
|
}], control: [{
|
|
118
91
|
type: ViewChild,
|
|
119
92
|
args: [ControlDirective]
|
|
120
93
|
}] } });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZvcm0tY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbC9zcmMvbGliL2N1c3RvbS1mb3JtLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQXdCLFNBQVMsRUFBRSxpQkFBaUIsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVV2RCxNQUFNLE9BQWdCLGlCQUFxQixTQUFRLFVBQVU7SUE0QzNELFlBQVksWUFBZTtRQUN6QixLQUFLLEVBQUUsQ0FBQztRQTFDTyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTVFLHVCQUFrQixHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pELHVCQUFrQixHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pELGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUcxRSxPQUFFLEdBQWtCLElBQUksQ0FBQztRQUd6QixTQUFJLEdBQUcsb0JBQW9CLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7UUE2QnRELFlBQU8sR0FBNEIsSUFBSSxDQUFDO1FBSXRELElB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cnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCwgUmVxdWlyZWRWYWxpZGF0b3IsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29udHJvbGxlciwgRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbC5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuaGFzLWVycm9yXSc6ICdoYXNFcnJvcicsXG4gICAgJ1tjbGFzcy5pcy1kaXNhYmxlZF0nOiAnaXNEaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5pcy1yZWFkb25seV0nOiAnaXNSZWFkb25seScsXG4gICAgJ1tjbGFzcy5pcy1yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICB9LFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdXN0b21Gb3JtQ29udHJvbDxUPiBleHRlbmRzIENvbnRyb2xsZXIgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgc3RhdGljIENVUlJFTlRfSU5ERVggPSAwO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWlyZWRWYWxpZGF0b3IgPSBpbmplY3QoUmVxdWlyZWRWYWxpZGF0b3IsIHsgb3B0aW9uYWw6IHRydWUsIHNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgaW50ZXJuYWxWYWx1ZTogVDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkQ29udHJvbGxlciA9IERpc2FibGVkQ29udHJvbGxlci5pbmplY3QoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlYWRvbmx5Q29udHJvbGxlciA9IFJlYWRvbmx5Q29udHJvbGxlci5pbmplY3QoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHsgc2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbmFtZSA9IGBvZHgtZm9ybS1jb250cm9sLSR7Q3VzdG9tRm9ybUNvbnRyb2wuQ1VSUkVOVF9JTkRFWCsrfWA7XG5cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgIGlmICh0aGlzLmludGVybmFsVmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMudHJpZ2dlckNvbnRyb2xsZXJDaGFuZ2UoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm5nQ29udHJvbD8udG91Y2hlZCAmJiAhIXRoaXMubmdDb250cm9sPy5pbnZhbGlkO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGlzYWJsZWRDb250cm9sbGVyPy5kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNSZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlYWRvbmx5Q29udHJvbGxlcj8ucmVhZG9ubHk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZXF1aXJlZFZhbGlkYXRvcj8ucmVxdWlyZWQgfHwgdGhpcy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgfHwgdGhpcy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuICB9XG5cbiAgQFZpZXdDaGlsZChDb250cm9sRGlyZWN0aXZlKVxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbDogQ29udHJvbERpcmVjdGl2ZSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxWYWx1ZTogVCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbnRlcm5hbFZhbHVlID0gaW5pdGlhbFZhbHVlO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uVG91Y2hlZCgpIHtcbiAgICAvLyBpbXBsZW1lbnRlZCBieSBjb250cm9sIHZhbHVlIGFjY2Vzc29yXG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2UoX3ZhbHVlOiBUKSB7XG4gICAgLy8gaW1wbGVtZW50ZWQgYnkgY29udHJvbCB2YWx1ZSBhY2Nlc3NvclxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZENvbnRyb2xsZXI/LnNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc1ZhbGlkYXRvcih2YWxpZGF0b3I6IFZhbGlkYXRvckZuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcih2YWxpZGF0b3IpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,22 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { isObservable } from 'rxjs';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { injectElement } from '@odx/angular/utils';
|
|
3
|
+
import { distinctUntilChanged, isObservable } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class DynamicViewComponent {
|
|
6
6
|
constructor() {
|
|
7
|
-
this.
|
|
8
|
-
this.
|
|
7
|
+
this.element = injectElement();
|
|
8
|
+
this.currentSubscription = null;
|
|
9
9
|
}
|
|
10
10
|
set content(value) {
|
|
11
|
-
|
|
11
|
+
if (isObservable(value)) {
|
|
12
|
+
this.ngOnDestroy();
|
|
13
|
+
this.currentSubscription = value.pipe(distinctUntilChanged()).subscribe((innerValue) => {
|
|
14
|
+
this.setContent(innerValue);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
this.setContent(value);
|
|
19
|
+
}
|
|
12
20
|
}
|
|
13
21
|
ngOnDestroy() {
|
|
14
|
-
this.
|
|
22
|
+
this.currentSubscription?.unsubscribe();
|
|
23
|
+
this.currentSubscription = null;
|
|
24
|
+
}
|
|
25
|
+
setContent(value) {
|
|
26
|
+
this.element.nativeElement.innerHTML = value;
|
|
15
27
|
}
|
|
16
28
|
}
|
|
17
|
-
DynamicViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
18
|
-
DynamicViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
29
|
+
DynamicViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
DynamicViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: DynamicViewComponent, isStandalone: true, selector: "odx-dynamic-view", inputs: { content: "content" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewComponent, decorators: [{
|
|
20
32
|
type: Component,
|
|
21
33
|
args: [{
|
|
22
34
|
selector: 'odx-dynamic-view',
|
|
@@ -24,11 +36,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
24
36
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
25
37
|
encapsulation: ViewEncapsulation.None,
|
|
26
38
|
standalone: true,
|
|
27
|
-
host: {
|
|
28
|
-
'[innerHTML]': 'resolveContent()',
|
|
29
|
-
},
|
|
30
39
|
}]
|
|
31
40
|
}], propDecorators: { content: [{
|
|
32
41
|
type: Input
|
|
33
42
|
}] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3L3NyYy9saWIvZHluYW1pYy12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBVXhFLE1BQU0sT0FBTyxvQkFBb0I7SUFQakM7UUFRbUIsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQ25DLHdCQUFtQixHQUF3QixJQUFJLENBQUM7S0FzQnpEO0lBcEJDLElBQ1csT0FBTyxDQUFDLEtBQXlCO1FBQzFDLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3JGLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQy9DLENBQUM7O2tIQXZCVSxvQkFBb0I7c0dBQXBCLG9CQUFvQiw0R0FMckIsRUFBRTs0RkFLRCxvQkFBb0I7a0JBUGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBTVksT0FBTztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBpc09ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHluYW1pY1RleHRDb250ZW50IH0gZnJvbSAnLi9mYWNhZGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtZHluYW1pYy12aWV3JyxcbiAgdGVtcGxhdGU6ICcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG4gIHByaXZhdGUgY3VycmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb250ZW50KHZhbHVlOiBEeW5hbWljVGV4dENvbnRlbnQpIHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSkge1xuICAgICAgdGhpcy5uZ09uRGVzdHJveSgpO1xuICAgICAgdGhpcy5jdXJyZW50U3Vic2NyaXB0aW9uID0gdmFsdWUucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKGlubmVyVmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5zZXRDb250ZW50KGlubmVyVmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0Q29udGVudCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmN1cnJlbnRTdWJzY3JpcHRpb24gPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb250ZW50KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTtcbiAgfVxufVxuIl19
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { Directive, inject, Injector, Input, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { hasChanged } from '@odx/angular/utils';
|
|
1
|
+
import { Directive, inject, Injector, Input, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { hasChanged, isComponent } from '@odx/angular/utils';
|
|
3
3
|
import { DynamicViewService } from './dynamic-view.service';
|
|
4
|
-
import { isDynamicTextContent, isDynamicView } from './helpers';
|
|
4
|
+
import { createProjectableNodes, isDynamicTextContent, isDynamicView } from './helpers';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class DynamicViewDirective {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.dynamicViewService = inject(DynamicViewService);
|
|
9
9
|
this.viewContainer = inject(ViewContainerRef);
|
|
10
|
+
this.template = inject(TemplateRef);
|
|
10
11
|
this.viewRef = null;
|
|
12
|
+
this.contentViewRef = null;
|
|
13
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
11
14
|
this.content = null;
|
|
12
15
|
}
|
|
13
16
|
ngOnInit() {
|
|
@@ -47,24 +50,33 @@ export class DynamicViewDirective {
|
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
else {
|
|
53
|
+
let projectableNodes = [];
|
|
54
|
+
if (isComponent(this.content)) {
|
|
55
|
+
this.contentViewRef = this.dynamicViewService.createView(this.template, { injector: this.injector });
|
|
56
|
+
const rootNodes = this.contentViewRef.getView().rootNodes;
|
|
57
|
+
projectableNodes = createProjectableNodes(this.content, rootNodes);
|
|
58
|
+
}
|
|
50
59
|
this.viewRef = this.dynamicViewService.createView(this.content, {
|
|
51
60
|
context: this.context ?? undefined,
|
|
52
61
|
injector: this.injector ?? this.viewContainer.injector,
|
|
53
|
-
|
|
62
|
+
projectableNodes,
|
|
63
|
+
host: this.viewContainer,
|
|
54
64
|
});
|
|
55
65
|
}
|
|
56
66
|
}
|
|
57
67
|
destroy() {
|
|
68
|
+
this.contentViewRef?.destroy();
|
|
58
69
|
this.viewRef?.destroy();
|
|
70
|
+
this.contentViewRef = null;
|
|
59
71
|
this.viewRef = null;
|
|
60
72
|
}
|
|
61
73
|
}
|
|
62
|
-
DynamicViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
63
|
-
DynamicViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
74
|
+
DynamicViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
75
|
+
DynamicViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: DynamicViewDirective, isStandalone: true, selector: "ng-template[odxDynamicView]", inputs: { content: ["odxDynamicView", "content"], injector: ["odxDynamicViewInjector", "injector"], context: ["odxDynamicViewContext", "context"] }, usesOnChanges: true, ngImport: i0 });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewDirective, decorators: [{
|
|
65
77
|
type: Directive,
|
|
66
78
|
args: [{
|
|
67
|
-
selector: '[odxDynamicView]',
|
|
79
|
+
selector: 'ng-template[odxDynamicView]',
|
|
68
80
|
standalone: true,
|
|
69
81
|
}]
|
|
70
82
|
}], propDecorators: { content: [{
|
|
@@ -77,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
77
89
|
type: Input,
|
|
78
90
|
args: ['odxDynamicViewContext']
|
|
79
91
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy12aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3L3NyYy9saWIvZHluYW1pYy12aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0MsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFhLE1BQU0sb0JBQW9CLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFNeEYsTUFBTSxPQUFPLG9CQUFvQjtJQUpqQztRQUttQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsWUFBTyxHQUE2QixJQUFJLENBQUM7UUFDekMsbUJBQWMsR0FBZ0QsSUFBSSxDQUFDO1FBRTNFLDJEQUEyRDtRQUVwRCxZQUFPLEdBQWtDLElBQUksQ0FBQztLQXNFdEQ7SUE1RFEsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXdEO1FBQ3pFLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDZjtRQUNELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRTtZQUNsQyxNQUFNLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUMxSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNyQztRQUNELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRU8sTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQVksQ0FBQyxDQUFDO1lBQzFELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEIsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hDLElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7YUFBTTtZQUNMLElBQUksZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO1lBQ3BDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3JHLE1BQU0sU0FBUyxHQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUErQixDQUFDLFNBQVMsQ0FBQztnQkFDeEYsZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNwRTtZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM5RCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFTO2dCQUNsQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVE7Z0JBQ3RELGdCQUFnQjtnQkFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQ3pCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQzs7a0hBOUVVLG9CQUFvQjtzR0FBcEIsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQVVRLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBS2hCLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyx3QkFBd0I7Z0JBS3hCLE9BQU87c0JBRGIsS0FBSzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgaW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBoYXNDaGFuZ2VkLCBpc0NvbXBvbmVudCwgTmdDaGFuZ2VzIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IER5bmFtaWNWaWV3U2VydmljZSB9IGZyb20gJy4vZHluYW1pYy12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQsIER5bmFtaWNWaWV3UmVmLCBHZXREeW5hbWljVmlld0NvbnRleHQgfSBmcm9tICcuL2ZhY2FkZSc7XG5pbXBvcnQgeyBjcmVhdGVQcm9qZWN0YWJsZU5vZGVzLCBpc0R5bmFtaWNUZXh0Q29udGVudCwgaXNEeW5hbWljVmlldyB9IGZyb20gJy4vaGVscGVycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW29keER5bmFtaWNWaWV3XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNWaWV3RGlyZWN0aXZlPFQgZXh0ZW5kcyBEeW5hbWljQ29udGVudDx1bmtub3duPiA9IER5bmFtaWNDb250ZW50PHVua25vd24+PiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IGR5bmFtaWNWaWV3U2VydmljZSA9IGluamVjdChEeW5hbWljVmlld1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXIgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuICBwcml2YXRlIHZpZXdSZWY6IER5bmFtaWNWaWV3UmVmPFQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29udGVudFZpZXdSZWY6IER5bmFtaWNWaWV3UmVmPFRlbXBsYXRlUmVmPHVua25vd24+PiB8IG51bGwgPSBudWxsO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnb2R4RHluYW1pY1ZpZXcnKVxuICBwdWJsaWMgY29udGVudD86IFQgfCBEeW5hbWljVmlld1JlZjxUPiB8IG51bGwgPSBudWxsO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnb2R4RHluYW1pY1ZpZXdJbmplY3RvcicpXG4gIHB1YmxpYyBpbmplY3Rvcj86IEluamVjdG9yO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnb2R4RHluYW1pY1ZpZXdDb250ZXh0JylcbiAgcHVibGljIGNvbnRleHQ/OiBHZXREeW5hbWljVmlld0NvbnRleHQ8VD47XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogTmdDaGFuZ2VzPER5bmFtaWNWaWV3RGlyZWN0aXZlPER5bmFtaWNDb250ZW50Pj4pOiB2b2lkIHtcbiAgICBpZiAoaGFzQ2hhbmdlZChjaGFuZ2VzLCAnaW5qZWN0b3InKSkge1xuICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICB9XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2NvbnRlbnQnKSkge1xuICAgICAgY29uc3QgaGFzQ2hhbmdlZFRleHRDb250ZW50ID0gaXNEeW5hbWljVGV4dENvbnRlbnQoY2hhbmdlcy5jb250ZW50Py5wcmV2aW91c1ZhbHVlKSAmJiBpc0R5bmFtaWNUZXh0Q29udGVudChjaGFuZ2VzLmNvbnRlbnQ/LmN1cnJlbnRWYWx1ZSk7XG4gICAgICB0aGlzLnJlbmRlcighaGFzQ2hhbmdlZFRleHRDb250ZW50KTtcbiAgICB9XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2NvbnRleHQnKSkge1xuICAgICAgdGhpcy52aWV3UmVmPy51cGRhdGUoY2hhbmdlcy5jb250ZXh0Py5jdXJyZW50VmFsdWUgPz8ge30pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWaWV3KCk6IER5bmFtaWNWaWV3UmVmPFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmlld1JlZjtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKHJlUmVuZGVyID0gdHJ1ZSkge1xuICAgIGlmICghdGhpcy5jb250ZW50KSByZXR1cm47XG4gICAgaWYgKCFyZVJlbmRlciAmJiB0aGlzLnZpZXdSZWYpIHtcbiAgICAgIHRoaXMudmlld1JlZj8udXBkYXRlKHsgY29udGVudDogdGhpcy5jb250ZW50IH0gYXMgb2JqZWN0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52aWV3UmVmPy5kZXN0cm95KCk7XG4gICAgaWYgKGlzRHluYW1pY1ZpZXcodGhpcy5jb250ZW50KSkge1xuICAgICAgdGhpcy52aWV3UmVmID0gdGhpcy5jb250ZW50O1xuICAgICAgY29uc3QgaG9zdFZpZXcgPSB0aGlzLnZpZXdSZWYuZ2V0VmlldygpO1xuICAgICAgaWYgKGhvc3RWaWV3KSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5pbnNlcnQoaG9zdFZpZXcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcHJvamVjdGFibGVOb2RlczogTm9kZVtdW10gPSBbXTtcbiAgICAgIGlmIChpc0NvbXBvbmVudCh0aGlzLmNvbnRlbnQpKSB7XG4gICAgICAgIHRoaXMuY29udGVudFZpZXdSZWYgPSB0aGlzLmR5bmFtaWNWaWV3U2VydmljZS5jcmVhdGVWaWV3KHRoaXMudGVtcGxhdGUsIHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSk7XG4gICAgICAgIGNvbnN0IHJvb3ROb2RlcyA9ICh0aGlzLmNvbnRlbnRWaWV3UmVmLmdldFZpZXcoKSBhcyBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj4pLnJvb3ROb2RlcztcbiAgICAgICAgcHJvamVjdGFibGVOb2RlcyA9IGNyZWF0ZVByb2plY3RhYmxlTm9kZXModGhpcy5jb250ZW50LCByb290Tm9kZXMpO1xuICAgICAgfVxuICAgICAgdGhpcy52aWV3UmVmID0gdGhpcy5keW5hbWljVmlld1NlcnZpY2UuY3JlYXRlVmlldyh0aGlzLmNvbnRlbnQsIHtcbiAgICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0ID8/IHVuZGVmaW5lZCxcbiAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgPz8gdGhpcy52aWV3Q29udGFpbmVyLmluamVjdG9yLFxuICAgICAgICBwcm9qZWN0YWJsZU5vZGVzLFxuICAgICAgICBob3N0OiB0aGlzLnZpZXdDb250YWluZXIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5jb250ZW50Vmlld1JlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMudmlld1JlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY29udGVudFZpZXdSZWYgPSBudWxsO1xuICAgIHRoaXMudmlld1JlZiA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isComponent, isTemplateRef } from '@odx/angular/utils';
|
|
1
|
+
import { Injectable, Injector } from '@angular/core';
|
|
2
|
+
import { getInjector, isComponent, isTemplateRef } from '@odx/angular/utils';
|
|
3
3
|
import { DynamicViewComponent } from './dynamic-view.component';
|
|
4
4
|
import { isDynamicTextContent } from './helpers';
|
|
5
5
|
import { DynamicComponentRef } from './models';
|
|
6
6
|
import { DynamicTemplateRef } from './models/dynamic-template-ref';
|
|
7
|
-
import { DYNAMIC_VIEW_CONTEXT } from './tokens';
|
|
7
|
+
import { DYNAMIC_VIEW_CONTEXT, getDynamicViewDefaultHost } from './tokens';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export class DynamicViewService {
|
|
10
10
|
constructor() {
|
|
11
|
-
this.injector =
|
|
11
|
+
this.injector = getInjector();
|
|
12
|
+
this.defaultHost = getDynamicViewDefaultHost();
|
|
12
13
|
}
|
|
13
14
|
createView(content, options = {}) {
|
|
14
15
|
const viewOptions = {
|
|
15
16
|
...options,
|
|
17
|
+
host: options.host ?? this.defaultHost,
|
|
16
18
|
injector: Injector.create({
|
|
17
|
-
providers: [{ provide: DYNAMIC_VIEW_CONTEXT, useValue: options.context }],
|
|
19
|
+
providers: [{ provide: DYNAMIC_VIEW_CONTEXT, useValue: options.context }, options.providers ?? []],
|
|
18
20
|
parent: options.injector ?? this.injector,
|
|
19
21
|
}),
|
|
20
22
|
};
|
|
@@ -34,10 +36,10 @@ export class DynamicViewService {
|
|
|
34
36
|
throw new Error('Content type is not supported');
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
|
-
DynamicViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
38
|
-
DynamicViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
39
|
+
DynamicViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
DynamicViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewService, providedIn: 'root' });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewService, decorators: [{
|
|
40
42
|
type: Injectable,
|
|
41
43
|
args: [{ providedIn: 'root' }]
|
|
42
44
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL2R5bmFtaWMtdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQXNCLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHM0UsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVtQixhQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDekIsZ0JBQVcsR0FBRyx5QkFBeUIsRUFBRSxDQUFDO0tBMEI1RDtJQXhCUSxVQUFVLENBQTJCLE9BQVUsRUFBRSxVQUEwQyxFQUFFO1FBQ2xHLE1BQU0sV0FBVyxHQUEwQjtZQUN6QyxHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVztZQUN0QyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztnQkFDbEcsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVE7YUFDMUMsQ0FBQztTQUNILENBQUM7UUFDRixJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixPQUFPLElBQUksa0JBQWtCLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN0RTtRQUNELElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ2xHO1FBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQyxPQUFPLElBQUksbUJBQW1CLENBQUM7Z0JBQzdCLEdBQUcsV0FBVztnQkFDZCxTQUFTLEVBQUUsb0JBQW9CO2dCQUMvQixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUU7YUFDckIsQ0FBVSxDQUFDO1NBQ2I7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbkQsQ0FBQzs7Z0hBM0JVLGtCQUFrQjtvSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRJbmplY3RvciwgaXNDb21wb25lbnQsIGlzVGVtcGxhdGVSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQsIER5bmFtaWNWaWV3UmVmIH0gZnJvbSAnLi9mYWNhZGUnO1xuaW1wb3J0IHsgaXNEeW5hbWljVGV4dENvbnRlbnQgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudFJlZiwgRHluYW1pY1ZpZXdPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgRHluYW1pY1RlbXBsYXRlUmVmIH0gZnJvbSAnLi9tb2RlbHMvZHluYW1pYy10ZW1wbGF0ZS1yZWYnO1xuaW1wb3J0IHsgRFlOQU1JQ19WSUVXX0NPTlRFWFQsIGdldER5bmFtaWNWaWV3RGVmYXVsdEhvc3QgfSBmcm9tICcuL3Rva2Vucyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1ZpZXdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGdldEluamVjdG9yKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEhvc3QgPSBnZXREeW5hbWljVmlld0RlZmF1bHRIb3N0KCk7XG5cbiAgcHVibGljIGNyZWF0ZVZpZXc8VCBleHRlbmRzIER5bmFtaWNDb250ZW50Pihjb250ZW50OiBULCBvcHRpb25zOiBQYXJ0aWFsPER5bmFtaWNWaWV3T3B0aW9uczxUPj4gPSB7fSk6IER5bmFtaWNWaWV3UmVmPFQ+IHtcbiAgICBjb25zdCB2aWV3T3B0aW9uczogRHluYW1pY1ZpZXdPcHRpb25zPFQ+ID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGhvc3Q6IG9wdGlvbnMuaG9zdCA/PyB0aGlzLmRlZmF1bHRIb3N0LFxuICAgICAgaW5qZWN0b3I6IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRFlOQU1JQ19WSUVXX0NPTlRFWFQsIHVzZVZhbHVlOiBvcHRpb25zLmNvbnRleHQgfSwgb3B0aW9ucy5wcm92aWRlcnMgPz8gW11dLFxuICAgICAgICBwYXJlbnQ6IG9wdGlvbnMuaW5qZWN0b3IgPz8gdGhpcy5pbmplY3RvcixcbiAgICAgIH0pLFxuICAgIH07XG4gICAgaWYgKGlzVGVtcGxhdGVSZWYoY29udGVudCkpIHtcbiAgICAgIHJldHVybiBuZXcgRHluYW1pY1RlbXBsYXRlUmVmKHsgLi4udmlld09wdGlvbnMsIHRlbXBsYXRlOiBjb250ZW50IH0pO1xuICAgIH1cbiAgICBpZiAoaXNDb21wb25lbnQoY29udGVudCkpIHtcbiAgICAgIHJldHVybiBuZXcgRHluYW1pY0NvbXBvbmVudFJlZih7IC4uLnZpZXdPcHRpb25zLCBjb250ZXh0OiBvcHRpb25zLmNvbnRleHQsIGNvbXBvbmVudDogY29udGVudCB9KTtcbiAgICB9XG4gICAgaWYgKGlzRHluYW1pY1RleHRDb250ZW50KGNvbnRlbnQpKSB7XG4gICAgICByZXR1cm4gbmV3IER5bmFtaWNDb21wb25lbnRSZWYoe1xuICAgICAgICAuLi52aWV3T3B0aW9ucyxcbiAgICAgICAgY29tcG9uZW50OiBEeW5hbWljVmlld0NvbXBvbmVudCxcbiAgICAgICAgY29udGV4dDogeyBjb250ZW50IH0sXG4gICAgICB9KSBhcyBuZXZlcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb250ZW50IHR5cGUgaXMgbm90IHN1cHBvcnRlZCcpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy12aWV3LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3L3NyYy9saWIvZmFjYWRlL2R5bmFtaWMtdmlldy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER5bmFtaWNDb250ZW50LCBHZXREeW5hbWljVmlld0NvbnRleHQgfSBmcm9tICcuL2R5bmFtaWMtY29udGVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY1ZpZXdSZWY8VCBleHRlbmRzIER5bmFtaWNDb250ZW50PiB7XG4gIGRldGVjdENoYW5nZXMoKTogdm9pZDtcbiAgZGVzdHJveSgpOiB2b2lkO1xuICBnZXRFbGVtZW50KCk6IEVsZW1lbnQ7XG4gIHVwZGF0ZShjb250ZXh0OiBHZXREeW5hbWljVmlld0NvbnRleHQ8VD4pOiB2b2lkO1xuICBnZXRDb250ZXh0KCk6IEdldER5bmFtaWNWaWV3Q29udGV4dDxUPjtcbiAgZ2V0VmlldygpOiBWaWV3UmVmIHwgbnVsbDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { reflectComponentType } from '@angular/core';
|
|
2
|
+
export function createProjectableNodes(component, nodes) {
|
|
3
|
+
const componentType = reflectComponentType(component);
|
|
4
|
+
if (componentType && componentType.ngContentSelectors.length > 0) {
|
|
5
|
+
return componentType.ngContentSelectors.map((selector) => (selector === '*' ? nodes : []));
|
|
6
|
+
}
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2plY3RhYmxlLW5vZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcvc3JjL2xpYi9oZWxwZXJzL2NyZWF0ZS1wcm9qZWN0YWJsZS1ub2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFM0QsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFNBQXdCLEVBQUUsS0FBYTtJQUM1RSxNQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNoRSxPQUFPLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQzVGO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVmbGVjdENvbXBvbmVudFR5cGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2plY3RhYmxlTm9kZXMoY29tcG9uZW50OiBUeXBlPHVua25vd24+LCBub2RlczogTm9kZVtdKTogTm9kZVtdW10ge1xuICBjb25zdCBjb21wb25lbnRUeXBlID0gcmVmbGVjdENvbXBvbmVudFR5cGUoY29tcG9uZW50KTtcbiAgaWYgKGNvbXBvbmVudFR5cGUgJiYgY29tcG9uZW50VHlwZS5uZ0NvbnRlbnRTZWxlY3RvcnMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBjb21wb25lbnRUeXBlLm5nQ29udGVudFNlbGVjdG9ycy5tYXAoKHNlbGVjdG9yKSA9PiAoc2VsZWN0b3IgPT09ICcqJyA/IG5vZGVzIDogW10pKTtcbiAgfVxuICByZXR1cm4gW107XG59XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './create-projectable-nodes';
|
|
1
2
|
export * from './is-dynamic-text-content';
|
|
2
3
|
export * from './is-dynamic-view';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL2hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1wcm9qZWN0YWJsZS1ub2Rlcyc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWR5bmFtaWMtdGV4dC1jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaXMtZHluYW1pYy12aWV3JztcbiJdfQ==
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { ApplicationRef, createComponent, EnvironmentInjector } from '@angular/core';
|
|
2
|
+
import { isViewContainer } from '@odx/angular/utils';
|
|
2
3
|
export class DynamicComponentRef {
|
|
3
4
|
constructor(options) {
|
|
4
5
|
this.options = options;
|
|
5
6
|
this.application = this.options.injector.get(ApplicationRef);
|
|
6
7
|
this.componentRef = null;
|
|
7
|
-
const { component, context, injector,
|
|
8
|
+
const { component, context, injector, projectableNodes, host } = options;
|
|
8
9
|
this.componentRef = createComponent(component, {
|
|
9
10
|
environmentInjector: injector.get(EnvironmentInjector),
|
|
10
11
|
elementInjector: injector,
|
|
12
|
+
projectableNodes,
|
|
11
13
|
});
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
+
if (isViewContainer(host)) {
|
|
15
|
+
host.insert(this.componentRef.hostView);
|
|
14
16
|
}
|
|
15
17
|
else {
|
|
16
18
|
this.application.attachView(this.componentRef.hostView);
|
|
19
|
+
if (host) {
|
|
20
|
+
host.appendChild(this.getElement());
|
|
21
|
+
}
|
|
17
22
|
}
|
|
18
23
|
if (context) {
|
|
19
24
|
this.update(context);
|
|
@@ -27,7 +32,7 @@ export class DynamicComponentRef {
|
|
|
27
32
|
this.componentRef = null;
|
|
28
33
|
return;
|
|
29
34
|
}
|
|
30
|
-
if (this.componentRef && !this.options.
|
|
35
|
+
if (this.componentRef && !isViewContainer(this.options.host)) {
|
|
31
36
|
this.application.detachView(this.componentRef.hostView);
|
|
32
37
|
}
|
|
33
38
|
this.componentRef?.destroy();
|
|
@@ -41,8 +46,11 @@ export class DynamicComponentRef {
|
|
|
41
46
|
this.componentRef?.setInput(key, context[key]);
|
|
42
47
|
}
|
|
43
48
|
}
|
|
49
|
+
getContext() {
|
|
50
|
+
return this.options.context ?? {};
|
|
51
|
+
}
|
|
44
52
|
getView() {
|
|
45
53
|
return this.componentRef?.hostView ?? null;
|
|
46
54
|
}
|
|
47
55
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcvc3JjL2xpYi9tb2RlbHMvZHluYW1pYy1jb21wb25lbnQtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWdCLGVBQWUsRUFBRSxtQkFBbUIsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBU3JELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsWUFBNkIsT0FBbUM7UUFBbkMsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFIL0MsZ0JBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakUsaUJBQVksR0FBMkIsSUFBSSxDQUFDO1FBR2xELE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFekUsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsU0FBb0IsRUFBRTtZQUN4RCxtQkFBbUIsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1lBQ3RELGVBQWUsRUFBRSxRQUFRO1lBQ3pCLGdCQUFnQjtTQUNqQixDQUFDLENBQUM7UUFFSCxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEQsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzthQUNyQztTQUNGO1FBQ0QsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQVksQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekQ7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBVTtRQUN0QixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRTtZQUN6QixJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUM7SUFDN0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudFJlZiwgY3JlYXRlQ29tcG9uZW50LCBFbnZpcm9ubWVudEluamVjdG9yLCBUeXBlLCBWaWV3UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1ZpZXdDb250YWluZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgR2V0RHluYW1pY1ZpZXdDb250ZXh0IH0gZnJvbSAnLi4vZmFjYWRlJztcbmltcG9ydCB7IER5bmFtaWNWaWV3UmVmIH0gZnJvbSAnLi4vZmFjYWRlL2R5bmFtaWMtdmlldy1yZWYnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdPcHRpb25zIH0gZnJvbSAnLi9keW5hbWljLXZpZXctb3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0NvbXBvbmVudE9wdGlvbnM8VCBleHRlbmRzIFR5cGU8dW5rbm93bj4+IGV4dGVuZHMgRHluYW1pY1ZpZXdPcHRpb25zPFQ+IHtcbiAgY29tcG9uZW50OiBUO1xufVxuXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudFJlZjxUIGV4dGVuZHMgVHlwZTx1bmtub3duPiwgQyBleHRlbmRzIEdldER5bmFtaWNWaWV3Q29udGV4dDxUPj4gaW1wbGVtZW50cyBEeW5hbWljVmlld1JlZjxUPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwbGljYXRpb24gPSB0aGlzLm9wdGlvbnMuaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogRHluYW1pY0NvbXBvbmVudE9wdGlvbnM8VD4pIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudCwgY29udGV4dCwgaW5qZWN0b3IsIHByb2plY3RhYmxlTm9kZXMsIGhvc3QgfSA9IG9wdGlvbnM7XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IGNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQgYXMgVHlwZTxUPiwge1xuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogaW5qZWN0b3IuZ2V0KEVudmlyb25tZW50SW5qZWN0b3IpLFxuICAgICAgZWxlbWVudEluamVjdG9yOiBpbmplY3RvcixcbiAgICAgIHByb2plY3RhYmxlTm9kZXMsXG4gICAgfSk7XG5cbiAgICBpZiAoaXNWaWV3Q29udGFpbmVyKGhvc3QpKSB7XG4gICAgICBob3N0Lmluc2VydCh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb24uYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICBpZiAoaG9zdCkge1xuICAgICAgICBob3N0LmFwcGVuZENoaWxkKHRoaXMuZ2V0RWxlbWVudCgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbnRleHQpIHtcbiAgICAgIHRoaXMudXBkYXRlKGNvbnRleHQgYXMgQyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRSZWY/LmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZj8uaG9zdFZpZXcuZGVzdHJveWVkKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAmJiAhaXNWaWV3Q29udGFpbmVyKHRoaXMub3B0aW9ucy5ob3N0KSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICB9XG4gICAgdGhpcy5jb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0RWxlbWVudCgpOiBFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRSZWY/LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQgPz8gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUoY29udGV4dDogQyk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNvbnRleHQpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmPy5zZXRJbnB1dChrZXksIGNvbnRleHRba2V5XSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENvbnRleHQoKTogR2V0RHluYW1pY1ZpZXdDb250ZXh0PFQ+IHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmNvbnRleHQgPz8ge307XG4gIH1cblxuICBwdWJsaWMgZ2V0VmlldygpOiBWaWV3UmVmIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmPy5ob3N0VmlldyA/PyBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ApplicationRef } from '@angular/core';
|
|
2
|
+
import { isViewContainer } from '@odx/angular/utils';
|
|
2
3
|
export class DynamicTemplateRef {
|
|
3
4
|
constructor(options) {
|
|
4
5
|
this.options = options;
|
|
@@ -14,7 +15,7 @@ export class DynamicTemplateRef {
|
|
|
14
15
|
this.embeddedViewRef = null;
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
if (!this.options.
|
|
18
|
+
if (!isViewContainer(this.options.host) && this.embeddedViewRef) {
|
|
18
19
|
this.application.detachView(this.embeddedViewRef);
|
|
19
20
|
}
|
|
20
21
|
this.embeddedViewRef?.destroy();
|
|
@@ -29,12 +30,15 @@ export class DynamicTemplateRef {
|
|
|
29
30
|
this.detectChanges();
|
|
30
31
|
}
|
|
31
32
|
}
|
|
33
|
+
getContext() {
|
|
34
|
+
return this.options.context ?? {};
|
|
35
|
+
}
|
|
32
36
|
getView() {
|
|
33
37
|
return this.embeddedViewRef;
|
|
34
38
|
}
|
|
35
|
-
create({ context, template,
|
|
36
|
-
if (
|
|
37
|
-
this.embeddedViewRef =
|
|
39
|
+
create({ context, template, host }) {
|
|
40
|
+
if (isViewContainer(host)) {
|
|
41
|
+
this.embeddedViewRef = host.createEmbeddedView(template, context, { injector: this.options.injector });
|
|
38
42
|
}
|
|
39
43
|
else {
|
|
40
44
|
this.embeddedViewRef = template.createEmbeddedView(context ?? {}, this.options.injector);
|
|
@@ -42,4 +46,4 @@ export class DynamicTemplateRef {
|
|
|
42
46
|
}
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZW1wbGF0ZS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL21vZGVscy9keW5hbWljLXRlbXBsYXRlLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUEwRCxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRckQsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUE2QixPQUFrQztRQUFsQyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUg5QyxnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRSxvQkFBZSxHQUFvQyxJQUFJLENBQUM7UUFHOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRTtZQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbkQ7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQWlDO1FBQzdDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRU8sTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQTZCO1FBQ25FLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3hHO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIEVtYmVkZGVkVmlld1JlZiwgVGVtcGxhdGVSZWYgYXMgTmdUZW1wbGF0ZVJlZiwgVmlld1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNWaWV3Q29udGFpbmVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IER5bmFtaWNWaWV3UmVmLCBHZXREeW5hbWljVmlld0NvbnRleHQgfSBmcm9tICcuLi9mYWNhZGUnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdPcHRpb25zIH0gZnJvbSAnLi9keW5hbWljLXZpZXctb3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY1RlbXBsYXRlT3B0aW9uczxUIGV4dGVuZHMgTmdUZW1wbGF0ZVJlZjx1bmtub3duPj4gZXh0ZW5kcyBEeW5hbWljVmlld09wdGlvbnM8VD4ge1xuICB0ZW1wbGF0ZTogVDtcbn1cblxuZXhwb3J0IGNsYXNzIER5bmFtaWNUZW1wbGF0ZVJlZjxUIGV4dGVuZHMgTmdUZW1wbGF0ZVJlZjx1bmtub3duPiA9IE5nVGVtcGxhdGVSZWY8dW5rbm93bj4+IGltcGxlbWVudHMgRHluYW1pY1ZpZXdSZWY8VD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uID0gdGhpcy5vcHRpb25zLmluamVjdG9yLmdldChBcHBsaWNhdGlvblJlZik7XG4gIHByaXZhdGUgZW1iZWRkZWRWaWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IER5bmFtaWNUZW1wbGF0ZU9wdGlvbnM8VD4pIHtcbiAgICB0aGlzLmNyZWF0ZShvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmPy5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbWJlZGRlZFZpZXdSZWY/LmRlc3Ryb3llZCkge1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWlzVmlld0NvbnRhaW5lcih0aGlzLm9wdGlvbnMuaG9zdCkgJiYgdGhpcy5lbWJlZGRlZFZpZXdSZWYpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb24uZGV0YWNoVmlldyh0aGlzLmVtYmVkZGVkVmlld1JlZik7XG4gICAgfVxuICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmPy5kZXN0cm95KCk7XG4gICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldEVsZW1lbnQoKTogRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZW1iZWRkZWRWaWV3UmVmPy5yb290Tm9kZXM/LlswXSA/PyBudWxsO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZShjb250ZXh0OiBHZXREeW5hbWljVmlld0NvbnRleHQ8VD4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbWJlZGRlZFZpZXdSZWYpIHtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENvbnRleHQoKTogR2V0RHluYW1pY1ZpZXdDb250ZXh0PFQ+IHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmNvbnRleHQgPz8ge307XG4gIH1cblxuICBwdWJsaWMgZ2V0VmlldygpOiBWaWV3UmVmIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZW1iZWRkZWRWaWV3UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGUoeyBjb250ZXh0LCB0ZW1wbGF0ZSwgaG9zdCB9OiBEeW5hbWljVGVtcGxhdGVPcHRpb25zPFQ+KSB7XG4gICAgaWYgKGlzVmlld0NvbnRhaW5lcihob3N0KSkge1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYgPSBob3N0LmNyZWF0ZUVtYmVkZGVkVmlldyh0ZW1wbGF0ZSwgY29udGV4dCwgeyBpbmplY3RvcjogdGhpcy5vcHRpb25zLmluamVjdG9yIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtYmVkZGVkVmlld1JlZiA9IHRlbXBsYXRlLmNyZWF0ZUVtYmVkZGVkVmlldyhjb250ZXh0ID8/IHt9LCB0aGlzLm9wdGlvbnMuaW5qZWN0b3IpO1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbi5hdHRhY2hWaWV3KHRoaXMuZW1iZWRkZWRWaWV3UmVmKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy12aWV3LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL21vZGVscy9keW5hbWljLXZpZXctb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIFN0YXRpY1Byb3ZpZGVyLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljQ29udGVudCwgR2V0RHluYW1pY1ZpZXdDb250ZXh0IH0gZnJvbSAnLi4vZmFjYWRlJztcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljVmlld1JlbmRlcmluZ09wdGlvbnMge1xuICBpbmplY3RvcjogSW5qZWN0b3I7XG4gIHByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW107XG4gIGhvc3Q/OiBWaWV3Q29udGFpbmVyUmVmIHwgRWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljVmlld09wdGlvbnM8VCBleHRlbmRzIER5bmFtaWNDb250ZW50PiBleHRlbmRzIER5bmFtaWNWaWV3UmVuZGVyaW5nT3B0aW9ucyB7XG4gIGNvbnRleHQ/OiBHZXREeW5hbWljVmlld0NvbnRleHQ8VD47XG4gIHByb2plY3RhYmxlTm9kZXM/OiBOb2RlW11bXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { inject, InjectionToken } from '@angular/core';
|
|
3
|
+
export const ODX_DYNAMIC_VIEW_DEFAULT_HOST = new InjectionToken('@odx/angular/cdk/dynamic-view::DynamicViewDefaultHost', {
|
|
4
|
+
providedIn: 'root',
|
|
5
|
+
factory: () => inject(DOCUMENT).body,
|
|
6
|
+
});
|
|
7
|
+
export function getDynamicViewDefaultHost() {
|
|
8
|
+
return inject(ODX_DYNAMIC_VIEW_DEFAULT_HOST);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy12aWV3LWRlZmF1bHQtaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3L3NyYy9saWIvdG9rZW5zL2R5bmFtaWMtdmlldy1kZWZhdWx0LWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUFVLHVEQUF1RCxFQUFFO0lBQ2hJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSTtDQUNyQyxDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLE9BQU8sTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IE9EWF9EWU5BTUlDX1ZJRVdfREVGQVVMVF9IT1NUID0gbmV3IEluamVjdGlvblRva2VuPEVsZW1lbnQ+KCdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldzo6RHluYW1pY1ZpZXdEZWZhdWx0SG9zdCcsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBpbmplY3QoRE9DVU1FTlQpLmJvZHksXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldER5bmFtaWNWaWV3RGVmYXVsdEhvc3QoKTogRWxlbWVudCB7XG4gIHJldHVybiBpbmplY3QoT0RYX0RZTkFNSUNfVklFV19ERUZBVUxUX0hPU1QpO1xufVxuIl19
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './dynamic-view-context';
|
|
2
|
-
|
|
2
|
+
export * from './dynamic-view-default-host';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL3Rva2Vucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtdmlldy1jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy12aWV3LWRlZmF1bHQtaG9zdCc7XG4iXX0=
|