@wavemaker/app-ng-runtime 11.14.1-rc.6311 → 11.14.2-1.245
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/components/advanced/carousel/bundles/index.umd.js +15 -1
- package/components/advanced/carousel/carousel.directive.d.ts +1 -0
- package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
- package/components/advanced/carousel/fesm2022/index.mjs +15 -1
- package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/bundles/index.umd.js +24 -3
- package/components/advanced/login/esm2022/login.component.mjs +25 -4
- package/components/advanced/login/fesm2022/index.mjs +24 -3
- package/components/advanced/login/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/login.component.d.ts +5 -2
- package/components/base/bundles/index.umd.js +323 -28
- package/components/base/directives/show-in-device.directive.d.ts +2 -1
- package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
- package/components/base/esm2022/pipes/custom-pipes.mjs +1 -1
- package/components/base/esm2022/utils/widget-utils.mjs +3 -3
- package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
- package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
- package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
- package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
- package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
- package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
- package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
- package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
- package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
- package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
- package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
- package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
- package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
- package/components/base/fesm2022/index.mjs +319 -26
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
- package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
- package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
- package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
- package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
- package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
- package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
- package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
- package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
- package/components/basic/anchor/bundles/index.umd.js +13 -1
- package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
- package/components/basic/anchor/fesm2022/index.mjs +13 -1
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/html/bundles/index.umd.js +13 -1
- package/components/basic/html/esm2022/html.directive.mjs +14 -2
- package/components/basic/html/fesm2022/index.mjs +13 -1
- package/components/basic/html/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/bundles/index.umd.js +17 -1
- package/components/basic/label/esm2022/label.directive.mjs +18 -2
- package/components/basic/label/fesm2022/index.mjs +17 -1
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/label.directive.d.ts +3 -2
- package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
- package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
- package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
- package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
- package/components/basic/search/bundles/index.umd.js +40 -12
- package/components/basic/search/esm2022/scrollable.directive.mjs +11 -2
- package/components/basic/search/esm2022/search.component.mjs +31 -12
- package/components/basic/search/fesm2022/index.mjs +40 -12
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/scrollable.directive.d.ts +4 -2
- package/components/basic/search/search.component.d.ts +3 -2
- package/components/basic/spinner/bundles/index.umd.js +9 -1
- package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
- package/components/basic/spinner/fesm2022/index.mjs +9 -1
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/spinner.component.d.ts +4 -2
- package/components/chart/bundles/index.umd.js +21 -3
- package/components/chart/esm2022/chart.component.mjs +22 -4
- package/components/chart/fesm2022/index.mjs +21 -3
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
- package/components/containers/accordion/accordion.directive.d.ts +5 -2
- package/components/containers/accordion/bundles/index.umd.js +49 -2
- package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
- package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
- package/components/containers/accordion/fesm2022/index.mjs +49 -2
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +13 -0
- package/components/containers/panel/esm2022/panel.component.mjs +14 -1
- package/components/containers/panel/fesm2022/index.mjs +13 -0
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/panel.component.d.ts +3 -2
- package/components/containers/tabs/bundles/index.umd.js +54 -2
- package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
- package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
- package/components/containers/tabs/fesm2022/index.mjs +54 -2
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
- package/components/containers/tabs/tabs.component.d.ts +5 -2
- package/components/containers/wizard/bundles/index.umd.js +47 -3
- package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
- package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
- package/components/containers/wizard/fesm2022/index.mjs +47 -3
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
- package/components/containers/wizard/wizard.component.d.ts +4 -2
- package/components/data/card/bundles/index.umd.js +17 -1
- package/components/data/card/card-content/card-content.component.d.ts +3 -2
- package/components/data/card/card.component.d.ts +4 -2
- package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
- package/components/data/card/esm2022/card.component.mjs +13 -2
- package/components/data/card/fesm2022/index.mjs +17 -1
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +92 -0
- package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
- package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
- package/components/data/form/esm2022/form.component.mjs +27 -1
- package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
- package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
- package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
- package/components/data/form/fesm2022/index.mjs +92 -0
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form-action/form-action.directive.d.ts +3 -2
- package/components/data/form/form-field/form-field.directive.d.ts +3 -2
- package/components/data/form/form-widget.directive.d.ts +3 -2
- package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
- package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
- package/components/data/form/live-form/live-form.directive.d.ts +3 -1
- package/components/data/list/bundles/index.umd.js +180 -17
- package/components/data/list/esm2022/list-item.directive.mjs +95 -11
- package/components/data/list/esm2022/list.component.mjs +87 -8
- package/components/data/list/fesm2022/index.mjs +180 -17
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/list-item.directive.d.ts +7 -2
- package/components/data/list/list.component.d.ts +3 -0
- package/components/data/live-table/bundles/index.umd.js +13 -1
- package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
- package/components/data/live-table/fesm2022/index.mjs +13 -1
- package/components/data/live-table/fesm2022/index.mjs.map +1 -1
- package/components/data/live-table/live-table.component.d.ts +4 -2
- package/components/data/pagination/bundles/index.umd.js +57 -4
- package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
- package/components/data/pagination/fesm2022/index.mjs +57 -4
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/pagination.component.d.ts +4 -2
- package/components/data/table/bundles/index.umd.js +311 -12
- package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
- package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
- package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
- package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
- package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
- package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table.component.mjs +159 -9
- package/components/data/table/fesm2022/index.mjs +311 -12
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table-action/table-action.directive.d.ts +3 -2
- package/components/data/table/table-column/table-column.directive.d.ts +3 -2
- package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
- package/components/data/table/table-cud.directive.d.ts +3 -1
- package/components/data/table/table-filter.directive.d.ts +3 -1
- package/components/data/table/table-row/table-row.directive.d.ts +3 -2
- package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
- package/components/data/table/table.component.d.ts +2 -2
- package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
- package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
- package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/bundles/index.umd.js +15 -2
- package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
- package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
- package/components/dialogs/default/fesm2022/index.mjs +15 -2
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
- package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
- package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
- package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
- package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
- package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
- package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
- package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
- package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
- package/components/input/base-form/base-form.component.d.ts +4 -2
- package/components/input/base-form/bundles/index.umd.js +16 -2
- package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
- package/components/input/base-form/fesm2022/index.mjs +16 -2
- package/components/input/base-form/fesm2022/index.mjs.map +1 -1
- package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
- package/components/input/base-form-custom/bundles/index.umd.js +13 -2
- package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
- package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
- package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +7 -0
- package/components/input/checkbox/checkbox.component.d.ts +3 -2
- package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
- package/components/input/checkbox/fesm2022/index.mjs +7 -0
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/bundles/index.umd.js +18 -2
- package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
- package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
- package/components/input/checkboxset/fesm2022/index.mjs +18 -2
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/chips/bundles/index.umd.js +45 -5
- package/components/input/chips/chips.component.d.ts +3 -2
- package/components/input/chips/esm2022/chips.component.mjs +46 -6
- package/components/input/chips/fesm2022/index.mjs +45 -5
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/bundles/index.umd.js +8 -0
- package/components/input/color-picker/color-picker.component.d.ts +3 -2
- package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
- package/components/input/color-picker/fesm2022/index.mjs +8 -0
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/components/input/composite/bundles/index.umd.js +10 -1
- package/components/input/composite/composite.directive.d.ts +3 -2
- package/components/input/composite/esm2022/composite.directive.mjs +11 -2
- package/components/input/composite/fesm2022/index.mjs +10 -1
- package/components/input/composite/fesm2022/index.mjs.map +1 -1
- package/components/input/currency/bundles/index.umd.js +7 -0
- package/components/input/currency/currency.component.d.ts +3 -2
- package/components/input/currency/esm2022/currency.component.mjs +8 -1
- package/components/input/currency/fesm2022/index.mjs +7 -0
- package/components/input/currency/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
- package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
- package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/bundles/index.umd.js +22 -0
- package/components/input/epoch/date/date.component.d.ts +1 -0
- package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
- package/components/input/epoch/date/fesm2022/index.mjs +22 -0
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +25 -8
- package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
- package/components/input/file-upload/fesm2022/index.mjs +25 -8
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/file-upload.component.d.ts +3 -0
- package/components/input/number/bundles/index.umd.js +8 -0
- package/components/input/number/esm2022/number.component.mjs +9 -1
- package/components/input/number/fesm2022/index.mjs +8 -0
- package/components/input/number/fesm2022/index.mjs.map +1 -1
- package/components/input/number/number.component.d.ts +3 -2
- package/components/input/radioset/bundles/index.umd.js +18 -2
- package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
- package/components/input/radioset/fesm2022/index.mjs +18 -2
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/radioset.component.d.ts +4 -2
- package/components/input/rating/bundles/index.umd.js +10 -0
- package/components/input/rating/esm2022/rating.component.mjs +11 -1
- package/components/input/rating/fesm2022/index.mjs +10 -0
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/rating.component.d.ts +3 -2
- package/components/input/select/bundles/index.umd.js +6 -0
- package/components/input/select/esm2022/select.component.mjs +7 -1
- package/components/input/select/fesm2022/index.mjs +6 -0
- package/components/input/select/fesm2022/index.mjs.map +1 -1
- package/components/input/select/select.component.d.ts +3 -2
- package/components/input/slider/bundles/index.umd.js +10 -0
- package/components/input/slider/esm2022/slider.component.mjs +11 -1
- package/components/input/slider/fesm2022/index.mjs +10 -0
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +3 -2
- package/components/input/switch/bundles/index.umd.js +22 -2
- package/components/input/switch/esm2022/switch.component.mjs +23 -3
- package/components/input/switch/fesm2022/index.mjs +22 -2
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/switch.component.d.ts +3 -2
- package/components/input/text/bundles/index.umd.js +36 -0
- package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
- package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
- package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
- package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
- package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
- package/components/input/text/fesm2022/index.mjs +36 -0
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
- package/components/input/text/input-color/input-color.component.d.ts +3 -2
- package/components/input/text/input-email/input-email.component.d.ts +3 -2
- package/components/input/text/input-number/input-number.component.d.ts +3 -2
- package/components/input/text/input-text/input-text.component.d.ts +3 -2
- package/components/input/textarea/bundles/index.umd.js +7 -0
- package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
- package/components/input/textarea/fesm2022/index.mjs +7 -0
- package/components/input/textarea/fesm2022/index.mjs.map +1 -1
- package/components/input/textarea/textarea.component.d.ts +3 -2
- package/components/navigation/menu/bundles/index.umd.js +55 -6
- package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
- package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
- package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
- package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
- package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
- package/components/navigation/menu/fesm2022/index.mjs +55 -6
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
- package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
- package/components/navigation/menu/nav/nav.component.d.ts +3 -2
- package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
- package/components/navigation/navbar/bundles/index.umd.js +5 -0
- package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
- package/components/navigation/navbar/fesm2022/index.mjs +5 -0
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/navbar.component.d.ts +3 -2
- package/components/navigation/popover/bundles/index.umd.js +65 -13
- package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
- package/components/navigation/popover/fesm2022/index.mjs +62 -10
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/popover.component.d.ts +11 -3
- package/components/page/default/bundles/index.umd.js +20 -2
- package/components/page/default/esm2022/layout.directive.mjs +9 -1
- package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
- package/components/page/default/fesm2022/index.mjs +20 -2
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/default/layout.directive.d.ts +3 -2
- package/components/page/default/page-content/page-content.component.d.ts +3 -2
- package/components/page/left-panel/bundles/index.umd.js +16 -0
- package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
- package/components/page/left-panel/fesm2022/index.mjs +16 -0
- package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- package/components/page/left-panel/left-panel.directive.d.ts +3 -2
- package/components/page/top-nav/bundles/index.umd.js +2 -1
- package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
- package/components/page/top-nav/fesm2022/index.mjs +2 -1
- package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- package/components/prefab/bundles/index.umd.js +4 -0
- package/components/prefab/esm2022/prefab.directive.mjs +5 -1
- package/components/prefab/fesm2022/index.mjs +4 -0
- package/components/prefab/fesm2022/index.mjs.map +1 -1
- package/core/bundles/index.umd.js +391 -94
- package/core/esm2022/public_api.mjs +3 -3
- package/core/esm2022/services/viewport.service.mjs +24 -10
- package/core/esm2022/types/types.mjs +1 -1
- package/core/esm2022/utils/dom.mjs +18 -2
- package/core/esm2022/utils/event-notifier.mjs +5 -2
- package/core/esm2022/utils/lru-cache.mjs +16 -2
- package/core/esm2022/utils/utils.mjs +6 -2
- package/core/esm2022/utils/watcher.mjs +323 -81
- package/core/fesm2022/index.mjs +390 -96
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/public_api.d.ts +2 -2
- package/core/services/viewport.service.d.ts +5 -2
- package/core/types/types.d.ts +1 -0
- package/core/utils/lru-cache.d.ts +6 -0
- package/core/utils/utils.d.ts +1 -0
- package/core/utils/watcher.d.ts +26 -5
- package/http/bundles/index.umd.js +31 -1
- package/http/esm2022/http.service.mjs +32 -2
- package/http/fesm2022/index.mjs +31 -1
- package/http/fesm2022/index.mjs.map +1 -1
- package/http/http.service.d.ts +6 -2
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/bundles/index.umd.js +9 -0
- package/oAuth/esm2022/oAuth.service.mjs +10 -1
- package/oAuth/fesm2022/index.mjs +9 -0
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/oAuth.service.d.ts +3 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +364 -30
- package/runtime/base/components/app-component/app.component.d.ts +4 -0
- package/runtime/base/components/prefab-preview.component.d.ts +5 -2
- package/runtime/base/directives/accessroles.directive.d.ts +4 -3
- package/runtime/base/directives/prefab.directive.d.ts +3 -2
- package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
- package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
- package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
- package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
- package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
- package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
- package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
- package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
- package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
- package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
- package/runtime/base/esm2022/services/app.manager.service.mjs +37 -10
- package/runtime/base/esm2022/services/app.service.mjs +34 -2
- package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
- package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
- package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
- package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
- package/runtime/base/fesm2022/index.mjs +365 -31
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/services/app.manager.service.d.ts +6 -1
- package/runtime/base/services/app.service.d.ts +12 -2
- package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
- package/runtime/base/services/spinner.service.d.ts +3 -1
- package/runtime/base/util/fragment-monitor.d.ts +6 -0
- package/runtime/dynamic/bundles/index.umd.js +5 -0
- package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
- package/runtime/dynamic/fesm2022/index.mjs +5 -0
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +100 -14
- package/security/bundles/index.umd.js +41 -2
- package/security/esm2022/security.service.mjs +42 -3
- package/security/fesm2022/index.mjs +41 -2
- package/security/fesm2022/index.mjs.map +1 -1
- package/security/security.service.d.ts +5 -2
- package/variables/bundles/index.umd.js +50 -6
- package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
- package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
- package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
- package/variables/esm2022/service/variables.service.mjs +8 -2
- package/variables/fesm2022/index.mjs +50 -6
- package/variables/fesm2022/index.mjs.map +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Injector } from '@angular/core';
|
|
1
|
+
import { Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { StylableComponent } from "./stylable.component";
|
|
3
3
|
import { IWidgetConfig } from '../../framework/types';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare abstract class BaseContainerComponent extends StylableComponent {
|
|
5
|
+
export declare abstract class BaseContainerComponent extends StylableComponent implements OnDestroy {
|
|
6
6
|
reDrawableComponents: any;
|
|
7
7
|
content: any;
|
|
8
8
|
Widgets: any;
|
|
@@ -10,6 +10,7 @@ export declare abstract class BaseContainerComponent extends StylableComponent {
|
|
|
10
10
|
private updateRedrawableComponents;
|
|
11
11
|
private redrawChildren;
|
|
12
12
|
onPropertyChange(key: string, nv: any, ov?: any): void;
|
|
13
|
+
ngOnDestroy(): void;
|
|
13
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseContainerComponent, never>;
|
|
14
15
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseContainerComponent, never, never, {}, {}, ["reDrawableComponents"], never, false, never>;
|
|
15
16
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ElementRef, Injector, ViewContainerRef } from '@angular/core';
|
|
1
|
+
import { ElementRef, Injector, OnDestroy, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { App, CustomWidgetRefProvider } from '@wm/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class CustomWidgetContainerDirective {
|
|
4
|
+
export declare class CustomWidgetContainerDirective implements OnDestroy {
|
|
5
5
|
componentInstance: any;
|
|
6
6
|
vcRef: ViewContainerRef;
|
|
7
7
|
elRef: ElementRef;
|
|
@@ -9,6 +9,7 @@ export declare class CustomWidgetContainerDirective {
|
|
|
9
9
|
private app;
|
|
10
10
|
private customWidgetRefProvider;
|
|
11
11
|
constructor(componentInstance: any, vcRef: ViewContainerRef, elRef: ElementRef, inj: Injector, app: App, widgetname: string, customWidgetRefProvider: CustomWidgetRefProvider);
|
|
12
|
+
ngOnDestroy(): void;
|
|
12
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<CustomWidgetContainerDirective, [{ self: true; }, null, null, null, null, { attribute: "widgetname"; }, null]>;
|
|
13
14
|
static ɵdir: i0.ɵɵDirectiveDeclaration<CustomWidgetContainerDirective, "[customWidgetContainer][widgetname]", never, {}, {}, never, never, true, never>;
|
|
14
15
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Injector } from '@angular/core';
|
|
1
|
+
import { Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { StylableComponent } from './stylable.component';
|
|
4
|
-
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare abstract class DatasetAwareNavComponent extends StylableComponent implements OnDestroy {
|
|
5
6
|
nodes: Array<NavNode>;
|
|
6
7
|
dataset: any;
|
|
7
8
|
itemicon: string;
|
|
@@ -57,6 +58,9 @@ export declare class DatasetAwareNavComponent extends StylableComponent {
|
|
|
57
58
|
protected resetNodes(): void;
|
|
58
59
|
private _resetNodes;
|
|
59
60
|
onPropertyChange(key: any, nv: any, ov: any): void;
|
|
61
|
+
ngOnDestroy(): void;
|
|
62
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DatasetAwareNavComponent, never>;
|
|
63
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DatasetAwareNavComponent>;
|
|
60
64
|
}
|
|
61
65
|
export interface NavNode {
|
|
62
66
|
label: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ComponentFactoryResolver, ElementRef, Injector, ViewContainerRef } from '@angular/core';
|
|
1
|
+
import { ComponentFactoryResolver, ElementRef, Injector, OnDestroy, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { App, PartialRefProvider } from '@wm/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class PartialContainerDirective {
|
|
4
|
+
export declare class PartialContainerDirective implements OnDestroy {
|
|
5
5
|
componentInstance: any;
|
|
6
6
|
vcRef: ViewContainerRef;
|
|
7
7
|
elRef: ElementRef;
|
|
@@ -16,6 +16,7 @@ export declare class PartialContainerDirective {
|
|
|
16
16
|
renderPartial: import("lodash").DebouncedFunc<(nv: any) => Promise<void>>;
|
|
17
17
|
onLoadSuccess(): void;
|
|
18
18
|
constructor(componentInstance: any, vcRef: ViewContainerRef, elRef: ElementRef, inj: Injector, app: App, _content: string, resolver: ComponentFactoryResolver, partialRefProvider: PartialRefProvider);
|
|
19
|
+
ngOnDestroy(): void;
|
|
19
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<PartialContainerDirective, [{ self: true; }, null, null, null, null, { attribute: "content"; }, null, null]>;
|
|
20
21
|
static ɵdir: i0.ɵɵDirectiveDeclaration<PartialContainerDirective, "[partialContainer]", never, {}, {}, never, never, true, never>;
|
|
21
22
|
}
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* <a partial-container-target></a>
|
|
10
10
|
* </li>
|
|
11
11
|
*/
|
|
12
|
-
import { ElementRef, Injector, ViewContainerRef } from '@angular/core';
|
|
12
|
+
import { ElementRef, Injector, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
|
|
13
13
|
import { App } from '@wm/core';
|
|
14
14
|
import { StylableComponent } from '../base/stylable.component';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
|
-
export declare class ItemTemplateDirective extends StylableComponent {
|
|
16
|
+
export declare class ItemTemplateDirective extends StylableComponent implements OnInit, OnDestroy {
|
|
17
17
|
private app;
|
|
18
18
|
static initializeProps: void;
|
|
19
19
|
context: any;
|
|
@@ -26,6 +26,7 @@ export declare class ItemTemplateDirective extends StylableComponent {
|
|
|
26
26
|
set wmItemTemplate(value: any);
|
|
27
27
|
constructor(inj: Injector, elRef: ElementRef, app: App, explicitContext: any);
|
|
28
28
|
ngOnInit(): void;
|
|
29
|
+
ngOnDestroy(): void;
|
|
29
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<ItemTemplateDirective, [null, null, null, { optional: true; }]>;
|
|
30
31
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ItemTemplateDirective, "[wmItemTemplate]", ["itemTemplateRef"], { "userComponentParams": { "alias": "userComponentParams"; "required": false; }; "wmItemTemplate": { "alias": "wmItemTemplate"; "required": false; }; }, {}, never, never, true, never>;
|
|
31
32
|
}
|
|
@@ -4,7 +4,7 @@ export declare class LazyLoadDirective implements OnDestroy {
|
|
|
4
4
|
private templateRef;
|
|
5
5
|
private viewContainer;
|
|
6
6
|
private readonly viewParent;
|
|
7
|
-
private
|
|
7
|
+
private context;
|
|
8
8
|
private embeddedView;
|
|
9
9
|
private unSubscribeFn;
|
|
10
10
|
constructor(inj: Injector, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, explicitContext?: any);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class PartialParamHandlerDirective {
|
|
3
|
+
export declare class PartialParamHandlerDirective implements OnDestroy {
|
|
4
4
|
private widgetRef;
|
|
5
5
|
constructor(widgetRef: any);
|
|
6
6
|
registerParams(name: string, value: string, bindExpr: string, type: string): void;
|
|
7
|
+
ngOnDestroy(): void;
|
|
7
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<PartialParamHandlerDirective, [{ self: true; }]>;
|
|
8
9
|
static ɵdir: i0.ɵɵDirectiveDeclaration<PartialParamHandlerDirective, "[partialContainer]", never, {}, {}, never, never, true, never>;
|
|
9
10
|
}
|
|
@@ -8,7 +8,7 @@ export declare class PullToRefresh extends SwipeAnimation {
|
|
|
8
8
|
private runAnimation;
|
|
9
9
|
private count;
|
|
10
10
|
private spinner;
|
|
11
|
-
cancelSubscription:
|
|
11
|
+
cancelSubscription: () => void;
|
|
12
12
|
private animationInProgress;
|
|
13
13
|
constructor($el: JQuery<HTMLElement>, app: App, onPullToRefresh: () => void);
|
|
14
14
|
threshold(): number;
|
|
@@ -25,7 +25,7 @@ export declare class PullToRefresh extends SwipeAnimation {
|
|
|
25
25
|
upper: number;
|
|
26
26
|
strict: boolean;
|
|
27
27
|
};
|
|
28
|
-
context():
|
|
28
|
+
context(): object;
|
|
29
29
|
animation(): {
|
|
30
30
|
css: {
|
|
31
31
|
transform: string;
|
|
@@ -44,4 +44,5 @@ export declare class PullToRefresh extends SwipeAnimation {
|
|
|
44
44
|
onAnimation(): void;
|
|
45
45
|
stopAnimation(): void;
|
|
46
46
|
wait(): void;
|
|
47
|
+
destroy(): void;
|
|
47
48
|
}
|
|
@@ -134,6 +134,11 @@
|
|
|
134
134
|
super.ngAfterViewInit();
|
|
135
135
|
this.init();
|
|
136
136
|
if (this.hasGoToPageExpr) {
|
|
137
|
+
// Clean up any existing subscription before creating a new one
|
|
138
|
+
if (this.cancelSubscription) {
|
|
139
|
+
this.cancelSubscription();
|
|
140
|
+
this.cancelSubscription = null;
|
|
141
|
+
}
|
|
137
142
|
// In SPA, it highlights active page link when we navigate within the same layout
|
|
138
143
|
this.cancelSubscription = this.app.subscribe("highlightActiveLink", (data) => {
|
|
139
144
|
if (this.hasNavigationToCurrentPageExpr && this.goToPageName !== this.app.activePageName) {
|
|
@@ -154,9 +159,16 @@
|
|
|
154
159
|
super.ngOnAttach();
|
|
155
160
|
}
|
|
156
161
|
ngOnDestroy() {
|
|
157
|
-
|
|
162
|
+
// Unsubscribe from app event first to prevent any callbacks during destruction
|
|
158
163
|
if (this.cancelSubscription) {
|
|
159
164
|
this.cancelSubscription();
|
|
165
|
+
this.cancelSubscription = null;
|
|
166
|
+
}
|
|
167
|
+
// Destroy local event notifier
|
|
168
|
+
this._eventNotifier.destroy();
|
|
169
|
+
// Remove event listener if it exists
|
|
170
|
+
if (this.nativeElement) {
|
|
171
|
+
this.nativeElement.removeEventListener('contextmenu', disableContextMenu);
|
|
160
172
|
}
|
|
161
173
|
super.ngOnDestroy();
|
|
162
174
|
}
|
|
@@ -89,6 +89,11 @@ export class AnchorComponent extends StylableComponent {
|
|
|
89
89
|
super.ngAfterViewInit();
|
|
90
90
|
this.init();
|
|
91
91
|
if (this.hasGoToPageExpr) {
|
|
92
|
+
// Clean up any existing subscription before creating a new one
|
|
93
|
+
if (this.cancelSubscription) {
|
|
94
|
+
this.cancelSubscription();
|
|
95
|
+
this.cancelSubscription = null;
|
|
96
|
+
}
|
|
92
97
|
// In SPA, it highlights active page link when we navigate within the same layout
|
|
93
98
|
this.cancelSubscription = this.app.subscribe("highlightActiveLink", (data) => {
|
|
94
99
|
if (this.hasNavigationToCurrentPageExpr && this.goToPageName !== this.app.activePageName) {
|
|
@@ -109,9 +114,16 @@ export class AnchorComponent extends StylableComponent {
|
|
|
109
114
|
super.ngOnAttach();
|
|
110
115
|
}
|
|
111
116
|
ngOnDestroy() {
|
|
112
|
-
|
|
117
|
+
// Unsubscribe from app event first to prevent any callbacks during destruction
|
|
113
118
|
if (this.cancelSubscription) {
|
|
114
119
|
this.cancelSubscription();
|
|
120
|
+
this.cancelSubscription = null;
|
|
121
|
+
}
|
|
122
|
+
// Destroy local event notifier
|
|
123
|
+
this._eventNotifier.destroy();
|
|
124
|
+
// Remove event listener if it exists
|
|
125
|
+
if (this.nativeElement) {
|
|
126
|
+
this.nativeElement.removeEventListener('contextmenu', disableContextMenu);
|
|
115
127
|
}
|
|
116
128
|
super.ngOnDestroy();
|
|
117
129
|
}
|
|
@@ -140,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
140
152
|
type: HostBinding,
|
|
141
153
|
args: ['attr.icon-position']
|
|
142
154
|
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9iYXNpYy9hbmNob3Ivc3JjL2FuY2hvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvYW5jaG9yL3NyYy9hbmNob3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUzRyxPQUFPLEVBQ0gsUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixVQUFVLEVBQ1YsV0FBVyxFQUNYLE9BQU8sRUFDVixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBaUIsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFaEosT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRTdDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUNqQyxNQUFNLGFBQWEsR0FBa0I7SUFDakMsVUFBVSxFQUFFLFdBQVc7SUFDdkIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsV0FBVyxFQUFFLFlBQVksQ0FBQyxZQUFZO0NBQ3pDLENBQUM7QUFFRixNQUFNLEtBQUssR0FBRyxxQ0FBcUMsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQWEsRUFBRSxFQUFFO0lBQ2hELE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUM1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eEIsQ0FBQzsrR0ExSVEsZUFBZSw2REEwQlosa0JBQWtCO21HQTFCckIsZUFBZSw4TEFMYjtZQUNQLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztTQUN0Qyx5RUNwQ0wseW9CQWNBLDJDRGlCYyxZQUFZLCtHQUFFLFNBQVMsOENBQUUsb0JBQW9COzs0RkFROUMsZUFBZTtrQkFWM0IsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixDQUFDLFlBQzlDLGFBQWEsYUFFWjt3QkFDUCxrQkFBa0IsaUJBQWlCO3FCQUN0QyxZQUNTLFVBQVU7OzBCQTRCZixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTt5Q0FSbEIsTUFBTTtzQkFBNUIsV0FBVzt1QkFBQyxRQUFRO2dCQUNVLFdBQVc7c0JBQXpDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNNLFlBQVk7c0JBQTlDLFdBQVc7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgYWRkQ2xhc3MsXG4gICAgQXBwLFxuICAgIGVuY29kZVVybCxcbiAgICBFdmVudE5vdGlmaWVyLFxuICAgIGdldFJvdXRlTmFtZUZyb21MaW5rLFxuICAgIHJlbW92ZUF0dHIsXG4gICAgcmVtb3ZlQ2xhc3MsXG4gICAgc2V0QXR0clxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge0RJU1BMQVlfVFlQRSwgSW1hZ2VQaXBlLCBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50LCBzdHlsZXIsIFRleHRDb250ZW50RGlyZWN0aXZlfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHtyZWdpc3RlclByb3BzfSBmcm9tICcuL2FuY2hvci5wcm9wcyc7IFxuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtYW5jaG9yJztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLWFuY2hvcicsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMUyxcbiAgICBkaXNwbGF5VHlwZTogRElTUExBWV9UWVBFLklOTElORV9CTE9DS1xufTtcblxuY29uc3QgcmVnZXggPSAvQWN0aW9ucy5nb1RvUGFnZV8oXFx3KylcXC5pbnZva2VcXChcXCkvZztcbmV4cG9ydCBjb25zdCBkaXNhYmxlQ29udGV4dE1lbnUgPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJbWFnZVBpcGUsIFRleHRDb250ZW50RGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2Fbd21BbmNob3JdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYW5jaG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKEFuY2hvckNvbXBvbmVudClcbiAgICBdLFxuICAgIGV4cG9ydEFzOiAnd21BbmNob3InXG59KVxuZXhwb3J0IGNsYXNzIEFuY2hvckNvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHJpdmF0ZSBoYXNOYXZpZ2F0aW9uVG9DdXJyZW50UGFnZUV4cHI6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBoYXNHb1RvUGFnZUV4cHI6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBnb1RvUGFnZU5hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIGNhbmNlbFN1YnNjcmlwdGlvbjogYW55O1xuXG4gICAgcHVibGljIGVuY29kZXVybDtcbiAgICBwdWJsaWMgaHlwZXJsaW5rO1xuICAgIHB1YmxpYyBpY29uaGVpZ2h0OiBzdHJpbmc7XG4gICAgcHVibGljIGljb253aWR0aDogc3RyaW5nO1xuICAgIHB1YmxpYyBpY29udXJsOiBzdHJpbmc7XG4gICAgcHVibGljIGljb25jbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBjYXB0aW9uOiBhbnk7XG4gICAgcHVibGljIGJhZGdldmFsdWU6IHN0cmluZztcbiAgICBwdWJsaWMgYXJpYWxhYmVsOiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3RhcmdldCcpIHRhcmdldDogc3RyaW5nO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hY2Nlc3NrZXknKSBzaG9ydGN1dGtleTogc3RyaW5nO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pY29uLXBvc2l0aW9uJykgaWNvbnBvc2l0aW9uOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfZXZlbnROb3RpZmllciA9IG5ldyBFdmVudE5vdGlmaWVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByb2Nlc3NFdmVudEF0dHIoZXZlbnROYW1lOiBzdHJpbmcsIGV4cHI6IHN0cmluZywgbWV0YT86IHN0cmluZykge1xuXG4gICAgICAgIHN1cGVyLnByb2Nlc3NFdmVudEF0dHIoZXZlbnROYW1lLCBleHByLCBtZXRhKTtcblxuICAgICAgICBpZiAoIXRoaXMuaGFzTmF2aWdhdGlvblRvQ3VycmVudFBhZ2VFeHByKSB7XG4gICAgICAgICAgICBjb25zdCBhcHAgPSB0aGlzLmluai5nZXQoQXBwKTtcbiAgICAgICAgICAgIGNvbnN0IGZucyA9IGV4cHIuc3BsaXQoJzsnKS5tYXAoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwsIFN0cmluZy5wcm90b3R5cGUudHJpbSk7XG4gICAgICAgICAgICBpZiAoZm5zLnNvbWUoZm4gPT4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMoZm4pO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzR29Ub1BhZ2VFeHByID0gbWF0Y2hlcyAmJiAobWF0Y2hlcy5sZW5ndGggPiAwKTtcbiAgICAgICAgICAgICAgICBpZihoYXNHb1RvUGFnZUV4cHIgJiYgIXRoaXMuaGFzR29Ub1BhZ2VFeHByKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzR29Ub1BhZ2VFeHByID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nb1RvUGFnZU5hbWUgPSBtYXRjaGVzWzFdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBoYXNHb1RvUGFnZUV4cHIgJiYgbWF0Y2hlc1sxXSA9PT0gYXBwLmFjdGl2ZVBhZ2VOYW1lO1xuICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc05hdmlnYXRpb25Ub0N1cnJlbnRQYWdlRXhwciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25BY3RpdmUoY2FsbGJhY2s6IChkYXRhOiBhbnkpID0+dm9pZCkge1xuICAgICAgICB0aGlzLl9ldmVudE5vdGlmaWVyLnN1YnNjcmliZSgnb24tYWN0aXZlJywgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGV2ZW50Q2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSwgbWV0YT86IHN0cmluZykge1xuICAgICAgICBzdXBlci5oYW5kbGVFdmVudChcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBldmVudE5hbWUsXG4gICAgICAgICAgICBlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNHb1RvUGFnZUV4cHIgJiYgbG9jYWxzLiRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbHMuJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV2ZW50Q2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2NhbHMsXG4gICAgICAgICAgICBtZXRhXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2h5cGVybGluaycpIHtcbiAgICAgICAgICAgIGlmICghbnYpIHtcbiAgICAgICAgICAgICAgICBzZXRBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgJ2hyZWYnLCAnamF2YXNjcmlwdDp2b2lkKDApJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgZGlzYWJsZUNvbnRleHRNZW51KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5lbmNvZGV1cmwpIHtcbiAgICAgICAgICAgICAgICBudiA9IGVuY29kZVVybChudik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBoeXBlcmxpbmsgc3RhcnRzIHdpdGggJ3d3dy4nIGFwcGVuZCAnLy8nIGluIHRoZSBiZWdpbm5pbmdcbiAgICAgICAgICAgIGlmIChudi5zdGFydHNXaXRoKCd3d3cuJykpIHtcbiAgICAgICAgICAgICAgICBudiA9IGAvLyR7bnZ9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCAnaHJlZicsIG52KTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGRpc2FibGVDb250ZXh0TWVudSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmhhc05hdmlnYXRpb25Ub0N1cnJlbnRQYWdlRXhwcikge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnYWN0aXZlJyk7XG4gICAgICAgICAgICBzZXRBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FyaWEtY3VycmVudCcsICdwYWdlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaHlwZXJsaW5rICYmIGdldFJvdXRlTmFtZUZyb21MaW5rKHRoaXMuaHlwZXJsaW5rKSA9PT0gYC8ke3RoaXMuYXBwLmFjdGl2ZVBhZ2VOYW1lfWBcbiAgICAgICAgICAgIHx8IHRoaXMuaGFzTmF2aWdhdGlvblRvQ3VycmVudFBhZ2VFeHByKSB7XG4gICAgICAgICAgICB0aGlzLl9ldmVudE5vdGlmaWVyLm5vdGlmeShcIm9uLWFjdGl2ZVwiLCB7fSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgaWYodGhpcy5oYXNHb1RvUGFnZUV4cHIpIHtcbiAgICAgICAgICAgIC8vIEluIFNQQSwgaXQgaGlnaGxpZ2h0cyBhY3RpdmUgcGFnZSBsaW5rIHdoZW4gd2UgbmF2aWdhdGUgd2l0aGluIHRoZSBzYW1lIGxheW91dFxuICAgICAgICAgICAgdGhpcy5jYW5jZWxTdWJzY3JpcHRpb24gPSB0aGlzLmFwcC5zdWJzY3JpYmUoXCJoaWdobGlnaHRBY3RpdmVMaW5rXCIsIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5oYXNOYXZpZ2F0aW9uVG9DdXJyZW50UGFnZUV4cHIgJiYgdGhpcy5nb1RvUGFnZU5hbWUgIT09IHRoaXMuYXBwLmFjdGl2ZVBhZ2VOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzTmF2aWdhdGlvblRvQ3VycmVudFBhZ2VFeHByID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FyaWEtY3VycmVudCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5nb1RvUGFnZU5hbWUgPT09IGRhdGEucGFnZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNOYXZpZ2F0aW9uVG9DdXJyZW50UGFnZUV4cHIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0QXR0cih0aGlzLm5hdGl2ZUVsZW1lbnQsICdhcmlhLWN1cnJlbnQnLCAncGFnZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkF0dGFjaCgpIHtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgIHN1cGVyLm5nT25BdHRhY2goKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2V2ZW50Tm90aWZpZXIuZGVzdHJveSgpO1xuICAgICAgICBpZih0aGlzLmNhbmNlbFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIkBpZiAoaWNvbnVybCkge1xuICA8aW1nIGRhdGEtaWRlbnRpZmllcj1cImltZ1wiIGFsdD1cIkltYWdlXCIgY2xhc3M9XCJhbmNob3ItaW1hZ2UtaWNvblwiIFtzcmNdPVwiaWNvbnVybCB8IGltYWdlXCIgW25nU3R5bGVdPVwie3dpZHRoOmljb253aWR0aCwgaGVpZ2h0Omljb25oZWlnaHQsIG1hcmdpbjppY29ubWFyZ2lufVwiLz5cbn1cbkBpZiAoaWNvbmNsYXNzKSB7XG4gIDxpIGNsYXNzPVwiYXBwLWljb24ge3tpY29uY2xhc3N9fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ1N0eWxlXT1cInt3aWR0aDppY29ud2lkdGgsIGhlaWdodDppY29uaGVpZ2h0LCBtYXJnaW46aWNvbm1hcmdpbn1cIj48L2k+XG59XG5AaWYgKGljb25jbGFzcykge1xuICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57e2NhcHRpb259fSB7e2FwcExvY2FsZS5MQUJFTF9JQ09OfX08L3NwYW4+XG59XG48c3BhbiBjbGFzcz1cImFuY2hvci1jYXB0aW9uXCIgW2lubmVySFRNTF09XCJjYXB0aW9uXCI+PC9zcGFuPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmNhcmV0XCI+PC9uZy1jb250ZW50PlxuQGlmIChiYWRnZXZhbHVlKSB7XG4gIDxzcGFuIGNsYXNzPVwiYmFkZ2UgcHVsbC1yaWdodFwiIFt0ZXh0Q29udGVudF09XCJiYWRnZXZhbHVlXCI+PC9zcGFuPlxufVxuIl19
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9iYXNpYy9hbmNob3Ivc3JjL2FuY2hvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvYW5jaG9yL3NyYy9hbmNob3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUzRyxPQUFPLEVBQ0gsUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixVQUFVLEVBQ1YsV0FBVyxFQUNYLE9BQU8sRUFDVixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBaUIsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFaEosT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRTdDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUNqQyxNQUFNLGFBQWEsR0FBa0I7SUFDakMsVUFBVSxFQUFFLFdBQVc7SUFDdkIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsV0FBVyxFQUFFLFlBQVksQ0FBQyxZQUFZO0NBQ3pDLENBQUM7QUFFRixNQUFNLEtBQUssR0FBRyxxQ0FBcUMsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQWEsRUFBRSxFQUFFO0lBQ2hELE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUM1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RyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU5QixxQ0FBcUM7UUFDckMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBekpRLGVBQWUsNkRBMEJaLGtCQUFrQjttR0ExQnJCLGVBQWUsOExBTGI7WUFDUCxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7U0FDdEMseUVDcENMLHlvQkFjQSwyQ0RpQmMsWUFBWSwrR0FBRSxTQUFTLDhDQUFFLG9CQUFvQjs7NEZBUTlDLGVBQWU7a0JBVjNCLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxZQUM5QyxhQUFhLGFBRVo7d0JBQ1Asa0JBQWtCLGlCQUFpQjtxQkFDdEMsWUFDUyxVQUFVOzswQkE0QmYsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUFHLFFBQVE7eUNBUmxCLE1BQU07c0JBQTVCLFdBQVc7dUJBQUMsUUFBUTtnQkFDVSxXQUFXO3NCQUF6QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDTSxZQUFZO3NCQUE5QyxXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIGFkZENsYXNzLFxuICAgIEFwcCxcbiAgICBlbmNvZGVVcmwsXG4gICAgRXZlbnROb3RpZmllcixcbiAgICBnZXRSb3V0ZU5hbWVGcm9tTGluayxcbiAgICByZW1vdmVBdHRyLFxuICAgIHJlbW92ZUNsYXNzLFxuICAgIHNldEF0dHJcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtESVNQTEFZX1RZUEUsIEltYWdlUGlwZSwgSVdpZGdldENvbmZpZywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyLCBUZXh0Q29udGVudERpcmVjdGl2ZX0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9hbmNob3IucHJvcHMnOyBcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWFuY2hvcic7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1hbmNob3InLFxuICAgIGhvc3RDbGFzczogREVGQVVMVF9DTFMsXG4gICAgZGlzcGxheVR5cGU6IERJU1BMQVlfVFlQRS5JTkxJTkVfQkxPQ0tcbn07XG5cbmNvbnN0IHJlZ2V4ID0gL0FjdGlvbnMuZ29Ub1BhZ2VfKFxcdyspXFwuaW52b2tlXFwoXFwpL2c7XG5leHBvcnQgY29uc3QgZGlzYWJsZUNvbnRleHRNZW51ID0gKCRldmVudDogRXZlbnQpID0+IHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW1hZ2VQaXBlLCBUZXh0Q29udGVudERpcmVjdGl2ZV0sXG4gICAgc2VsZWN0b3I6ICdhW3dtQW5jaG9yXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FuY2hvci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihBbmNob3JDb21wb25lbnQpXG4gICAgXSxcbiAgICBleHBvcnRBczogJ3dtQW5jaG9yJ1xufSlcbmV4cG9ydCBjbGFzcyBBbmNob3JDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHByaXZhdGUgaGFzTmF2aWdhdGlvblRvQ3VycmVudFBhZ2VFeHByOiBib29sZWFuO1xuICAgIHByaXZhdGUgaGFzR29Ub1BhZ2VFeHByOiBib29sZWFuO1xuICAgIHByaXZhdGUgZ29Ub1BhZ2VOYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBjYW5jZWxTdWJzY3JpcHRpb246IGFueTtcblxuICAgIHB1YmxpYyBlbmNvZGV1cmw7XG4gICAgcHVibGljIGh5cGVybGluaztcbiAgICBwdWJsaWMgaWNvbmhlaWdodDogc3RyaW5nO1xuICAgIHB1YmxpYyBpY29ud2lkdGg6IHN0cmluZztcbiAgICBwdWJsaWMgaWNvbnVybDogc3RyaW5nO1xuICAgIHB1YmxpYyBpY29uY2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgY2FwdGlvbjogYW55O1xuICAgIHB1YmxpYyBiYWRnZXZhbHVlOiBzdHJpbmc7XG4gICAgcHVibGljIGFyaWFsYWJlbDogc3RyaW5nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCd0YXJnZXQnKSB0YXJnZXQ6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYWNjZXNza2V5Jykgc2hvcnRjdXRrZXk6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWNvbi1wb3NpdGlvbicpIGljb25wb3NpdGlvbjogc3RyaW5nO1xuICAgIHByaXZhdGUgX2V2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcm9jZXNzRXZlbnRBdHRyKGV2ZW50TmFtZTogc3RyaW5nLCBleHByOiBzdHJpbmcsIG1ldGE/OiBzdHJpbmcpIHtcblxuICAgICAgICBzdXBlci5wcm9jZXNzRXZlbnRBdHRyKGV2ZW50TmFtZSwgZXhwciwgbWV0YSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc05hdmlnYXRpb25Ub0N1cnJlbnRQYWdlRXhwcikge1xuICAgICAgICAgICAgY29uc3QgYXBwID0gdGhpcy5pbmouZ2V0KEFwcCk7XG4gICAgICAgICAgICBjb25zdCBmbnMgPSBleHByLnNwbGl0KCc7JykubWFwKEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLCBTdHJpbmcucHJvdG90eXBlLnRyaW0pO1xuICAgICAgICAgICAgaWYgKGZucy5zb21lKGZuID0+IHtcbiAgICAgICAgICAgICAgICByZWdleC5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSByZWdleC5leGVjKGZuKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0dvVG9QYWdlRXhwciA9IG1hdGNoZXMgJiYgKG1hdGNoZXMubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICAgICAgaWYoaGFzR29Ub1BhZ2VFeHByICYmICF0aGlzLmhhc0dvVG9QYWdlRXhwcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc0dvVG9QYWdlRXhwciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ29Ub1BhZ2VOYW1lID0gbWF0Y2hlc1sxXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gaGFzR29Ub1BhZ2VFeHByICYmIG1hdGNoZXNbMV0gPT09IGFwcC5hY3RpdmVQYWdlTmFtZTtcbiAgICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNOYXZpZ2F0aW9uVG9DdXJyZW50UGFnZUV4cHIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQWN0aXZlKGNhbGxiYWNrOiAoZGF0YTogYW55KSA9PnZvaWQpIHtcbiAgICAgICAgdGhpcy5fZXZlbnROb3RpZmllci5zdWJzY3JpYmUoJ29uLWFjdGl2ZScsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBldmVudENhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnksIG1ldGE/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIuaGFuZGxlRXZlbnQoXG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICAgICAgZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzR29Ub1BhZ2VFeHByICYmIGxvY2Fscy4kZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxzLiRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBldmVudENhbGxiYWNrKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9jYWxzLFxuICAgICAgICAgICAgbWV0YVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdoeXBlcmxpbmsnKSB7XG4gICAgICAgICAgICBpZiAoIW52KSB7XG4gICAgICAgICAgICAgICAgc2V0QXR0cih0aGlzLm5hdGl2ZUVsZW1lbnQsICdocmVmJywgJ2phdmFzY3JpcHQ6dm9pZCgwKScpO1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGRpc2FibGVDb250ZXh0TWVudSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZW5jb2RldXJsKSB7XG4gICAgICAgICAgICAgICAgbnYgPSBlbmNvZGVVcmwobnYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaWYgaHlwZXJsaW5rIHN0YXJ0cyB3aXRoICd3d3cuJyBhcHBlbmQgJy8vJyBpbiB0aGUgYmVnaW5uaW5nXG4gICAgICAgICAgICBpZiAobnYuc3RhcnRzV2l0aCgnd3d3LicpKSB7XG4gICAgICAgICAgICAgICAgbnYgPSBgLy8ke252fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgJ2hyZWYnLCBudik7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBkaXNhYmxlQ29udGV4dE1lbnUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0KCkge1xuICAgICAgICBpZiAodGhpcy5oYXNOYXZpZ2F0aW9uVG9DdXJyZW50UGFnZUV4cHIpIHtcbiAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FjdGl2ZScpO1xuICAgICAgICAgICAgc2V0QXR0cih0aGlzLm5hdGl2ZUVsZW1lbnQsICdhcmlhLWN1cnJlbnQnLCAncGFnZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmh5cGVybGluayAmJiBnZXRSb3V0ZU5hbWVGcm9tTGluayh0aGlzLmh5cGVybGluaykgPT09IGAvJHt0aGlzLmFwcC5hY3RpdmVQYWdlTmFtZX1gXG4gICAgICAgICAgICB8fCB0aGlzLmhhc05hdmlnYXRpb25Ub0N1cnJlbnRQYWdlRXhwcikge1xuICAgICAgICAgICAgdGhpcy5fZXZlbnROb3RpZmllci5ub3RpZnkoXCJvbi1hY3RpdmVcIiwge30pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgIGlmKHRoaXMuaGFzR29Ub1BhZ2VFeHByKSB7XG4gICAgICAgICAgICAvLyBDbGVhbiB1cCBhbnkgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uIGJlZm9yZSBjcmVhdGluZyBhIG5ldyBvbmVcbiAgICAgICAgICAgIGlmICh0aGlzLmNhbmNlbFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBJbiBTUEEsIGl0IGhpZ2hsaWdodHMgYWN0aXZlIHBhZ2UgbGluayB3aGVuIHdlIG5hdmlnYXRlIHdpdGhpbiB0aGUgc2FtZSBsYXlvdXRcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsU3Vic2NyaXB0aW9uID0gdGhpcy5hcHAuc3Vic2NyaWJlKFwiaGlnaGxpZ2h0QWN0aXZlTGlua1wiLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaGFzTmF2aWdhdGlvblRvQ3VycmVudFBhZ2VFeHByICYmIHRoaXMuZ29Ub1BhZ2VOYW1lICE9PSB0aGlzLmFwcC5hY3RpdmVQYWdlTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc05hdmlnYXRpb25Ub0N1cnJlbnRQYWdlRXhwciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQXR0cih0aGlzLm5hdGl2ZUVsZW1lbnQsICdhcmlhLWN1cnJlbnQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ29Ub1BhZ2VOYW1lID09PSBkYXRhLnBhZ2VOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzTmF2aWdhdGlvblRvQ3VycmVudFBhZ2VFeHByID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCAnYXJpYS1jdXJyZW50JywgJ3BhZ2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25BdHRhY2goKSB7XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICBzdXBlci5uZ09uQXR0YWNoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBVbnN1YnNjcmliZSBmcm9tIGFwcCBldmVudCBmaXJzdCB0byBwcmV2ZW50IGFueSBjYWxsYmFja3MgZHVyaW5nIGRlc3RydWN0aW9uXG4gICAgICAgIGlmKHRoaXMuY2FuY2VsU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbFN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBEZXN0cm95IGxvY2FsIGV2ZW50IG5vdGlmaWVyXG4gICAgICAgIHRoaXMuX2V2ZW50Tm90aWZpZXIuZGVzdHJveSgpO1xuICAgICAgICBcbiAgICAgICAgLy8gUmVtb3ZlIGV2ZW50IGxpc3RlbmVyIGlmIGl0IGV4aXN0c1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBkaXNhYmxlQ29udGV4dE1lbnUpO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiQGlmIChpY29udXJsKSB7XG4gIDxpbWcgZGF0YS1pZGVudGlmaWVyPVwiaW1nXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cImFuY2hvci1pbWFnZS1pY29uXCIgW3NyY109XCJpY29udXJsIHwgaW1hZ2VcIiBbbmdTdHlsZV09XCJ7d2lkdGg6aWNvbndpZHRoLCBoZWlnaHQ6aWNvbmhlaWdodCwgbWFyZ2luOmljb25tYXJnaW59XCIvPlxufVxuQGlmIChpY29uY2xhc3MpIHtcbiAgPGkgY2xhc3M9XCJhcHAtaWNvbiB7e2ljb25jbGFzc319XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nU3R5bGVdPVwie3dpZHRoOmljb253aWR0aCwgaGVpZ2h0Omljb25oZWlnaHQsIG1hcmdpbjppY29ubWFyZ2lufVwiPjwvaT5cbn1cbkBpZiAoaWNvbmNsYXNzKSB7XG4gIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7Y2FwdGlvbn19IHt7YXBwTG9jYWxlLkxBQkVMX0lDT059fTwvc3Bhbj5cbn1cbjxzcGFuIGNsYXNzPVwiYW5jaG9yLWNhcHRpb25cIiBbaW5uZXJIVE1MXT1cImNhcHRpb25cIj48L3NwYW4+XG48bmctY29udGVudCBzZWxlY3Q9XCIuY2FyZXRcIj48L25nLWNvbnRlbnQ+XG5AaWYgKGJhZGdldmFsdWUpIHtcbiAgPHNwYW4gY2xhc3M9XCJiYWRnZSBwdWxsLXJpZ2h0XCIgW3RleHRDb250ZW50XT1cImJhZGdldmFsdWVcIj48L3NwYW4+XG59XG4iXX0=
|
|
@@ -115,6 +115,11 @@ class AnchorComponent extends StylableComponent {
|
|
|
115
115
|
super.ngAfterViewInit();
|
|
116
116
|
this.init();
|
|
117
117
|
if (this.hasGoToPageExpr) {
|
|
118
|
+
// Clean up any existing subscription before creating a new one
|
|
119
|
+
if (this.cancelSubscription) {
|
|
120
|
+
this.cancelSubscription();
|
|
121
|
+
this.cancelSubscription = null;
|
|
122
|
+
}
|
|
118
123
|
// In SPA, it highlights active page link when we navigate within the same layout
|
|
119
124
|
this.cancelSubscription = this.app.subscribe("highlightActiveLink", (data) => {
|
|
120
125
|
if (this.hasNavigationToCurrentPageExpr && this.goToPageName !== this.app.activePageName) {
|
|
@@ -135,9 +140,16 @@ class AnchorComponent extends StylableComponent {
|
|
|
135
140
|
super.ngOnAttach();
|
|
136
141
|
}
|
|
137
142
|
ngOnDestroy() {
|
|
138
|
-
|
|
143
|
+
// Unsubscribe from app event first to prevent any callbacks during destruction
|
|
139
144
|
if (this.cancelSubscription) {
|
|
140
145
|
this.cancelSubscription();
|
|
146
|
+
this.cancelSubscription = null;
|
|
147
|
+
}
|
|
148
|
+
// Destroy local event notifier
|
|
149
|
+
this._eventNotifier.destroy();
|
|
150
|
+
// Remove event listener if it exists
|
|
151
|
+
if (this.nativeElement) {
|
|
152
|
+
this.nativeElement.removeEventListener('contextmenu', disableContextMenu);
|
|
141
153
|
}
|
|
142
154
|
super.ngOnDestroy();
|
|
143
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/anchor/src/anchor.props.ts","../../../../../projects/components/widgets/basic/anchor/src/anchor.component.ts","../../../../../projects/components/widgets/basic/anchor/src/anchor.component.html","../../../../../projects/components/widgets/basic/anchor/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-anchor',\n new Map(\n [\n ['animation', PROP_STRING],\n ['badgevalue', PROP_STRING],\n ['caption', {value: 'Link', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['encodeurl', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['hyperlink', {value: '', ...PROP_STRING}],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconposition', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['name', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['target', {value: '_self', ...PROP_STRING}]\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport {AfterViewInit, Component, HostBinding, Inject, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport {\n addClass,\n App,\n encodeUrl,\n EventNotifier,\n getRouteNameFromLink,\n removeAttr,\n removeClass,\n setAttr\n} from '@wm/core';\nimport {DISPLAY_TYPE, ImagePipe, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, TextContentDirective} from '@wm/components/base';\n\nimport {registerProps} from './anchor.props'; \n\nconst DEFAULT_CLS = 'app-anchor';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-anchor',\n hostClass: DEFAULT_CLS,\n displayType: DISPLAY_TYPE.INLINE_BLOCK\n};\n\nconst regex = /Actions.goToPage_(\\w+)\\.invoke\\(\\)/g;\nexport const disableContextMenu = ($event: Event) => {\n $event.preventDefault();\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, ImagePipe, TextContentDirective],\n selector: 'a[wmAnchor]',\n templateUrl: './anchor.component.html',\n providers: [\n provideAsWidgetRef(AnchorComponent)\n ],\n exportAs: 'wmAnchor'\n})\nexport class AnchorComponent extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n private hasNavigationToCurrentPageExpr: boolean;\n private hasGoToPageExpr: boolean;\n private goToPageName: string;\n private cancelSubscription: any;\n\n public encodeurl;\n public hyperlink;\n public iconheight: string;\n public iconwidth: string;\n public iconurl: string;\n public iconclass: string;\n public caption: any;\n public badgevalue: string;\n public arialabel: string;\n\n @HostBinding('target') target: string;\n @HostBinding('attr.accesskey') shortcutkey: string;\n @HostBinding('attr.icon-position') iconposition: string;\n private _eventNotifier = new EventNotifier();\n\n constructor(\n inj: Injector,\n private app: App,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n protected processEventAttr(eventName: string, expr: string, meta?: string) {\n\n super.processEventAttr(eventName, expr, meta);\n\n if (!this.hasNavigationToCurrentPageExpr) {\n const app = this.inj.get(App);\n const fns = expr.split(';').map(Function.prototype.call, String.prototype.trim);\n if (fns.some(fn => {\n regex.lastIndex = 0;\n const matches = regex.exec(fn);\n\n const hasGoToPageExpr = matches && (matches.length > 0);\n if(hasGoToPageExpr && !this.hasGoToPageExpr) {\n this.hasGoToPageExpr = true;\n this.goToPageName = matches[1];\n }\n\n return hasGoToPageExpr && matches[1] === app.activePageName;\n })) {\n this.hasNavigationToCurrentPageExpr = true;\n }\n }\n }\n\n public onActive(callback: (data: any) =>void) {\n this._eventNotifier.subscribe('on-active', callback);\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any, meta?: string) {\n super.handleEvent(\n node,\n eventName,\n e => {\n if (this.hasGoToPageExpr && locals.$event) {\n locals.$event.preventDefault();\n }\n eventCallback();\n },\n locals,\n meta\n );\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'hyperlink') {\n if (!nv) {\n setAttr(this.nativeElement, 'href', 'javascript:void(0)');\n this.nativeElement.addEventListener('contextmenu', disableContextMenu);\n return;\n }\n if (this.encodeurl) {\n nv = encodeUrl(nv);\n }\n // if hyperlink starts with 'www.' append '//' in the beginning\n if (nv.startsWith('www.')) {\n nv = `//${nv}`;\n }\n setAttr(this.nativeElement, 'href', nv);\n this.nativeElement.removeEventListener('contextmenu', disableContextMenu);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n init() {\n if (this.hasNavigationToCurrentPageExpr) {\n addClass(this.nativeElement, 'active');\n setAttr(this.nativeElement, 'aria-current', 'page');\n }\n if (this.hyperlink && getRouteNameFromLink(this.hyperlink) === `/${this.app.activePageName}`\n || this.hasNavigationToCurrentPageExpr) {\n this._eventNotifier.notify(\"on-active\", {});\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.init();\n if(this.hasGoToPageExpr) {\n // In SPA, it highlights active page link when we navigate within the same layout\n this.cancelSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n if(this.hasNavigationToCurrentPageExpr && this.goToPageName !== this.app.activePageName) {\n this.hasNavigationToCurrentPageExpr = false;\n removeClass(this.nativeElement, 'active');\n removeAttr(this.nativeElement, 'aria-current');\n }\n if (this.goToPageName === data.pageName) {\n this.hasNavigationToCurrentPageExpr = true;\n addClass(this.nativeElement, 'active');\n setAttr(this.nativeElement, 'aria-current', 'page');\n }\n });\n }\n }\n\n ngOnAttach() {\n this.init();\n super.ngOnAttach();\n }\n\n public ngOnDestroy() {\n this._eventNotifier.destroy();\n if(this.cancelSubscription) {\n this.cancelSubscription();\n }\n super.ngOnDestroy();\n }\n}\n","@if (iconurl) {\n <img data-identifier=\"img\" alt=\"Image\" class=\"anchor-image-icon\" [src]=\"iconurl | image\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin}\"/>\n}\n@if (iconclass) {\n <i class=\"app-icon {{iconclass}}\" aria-hidden=\"true\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin}\"></i>\n}\n@if (iconclass) {\n <span class=\"sr-only\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n}\n<span class=\"anchor-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n@if (badgevalue) {\n <span class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/anchor/src/anchor.props.ts","../../../../../projects/components/widgets/basic/anchor/src/anchor.component.ts","../../../../../projects/components/widgets/basic/anchor/src/anchor.component.html","../../../../../projects/components/widgets/basic/anchor/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-anchor',\n new Map(\n [\n ['animation', PROP_STRING],\n ['badgevalue', PROP_STRING],\n ['caption', {value: 'Link', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['encodeurl', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['hyperlink', {value: '', ...PROP_STRING}],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconposition', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['name', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['target', {value: '_self', ...PROP_STRING}]\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport {AfterViewInit, Component, HostBinding, Inject, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport {\n addClass,\n App,\n encodeUrl,\n EventNotifier,\n getRouteNameFromLink,\n removeAttr,\n removeClass,\n setAttr\n} from '@wm/core';\nimport {DISPLAY_TYPE, ImagePipe, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, TextContentDirective} from '@wm/components/base';\n\nimport {registerProps} from './anchor.props'; \n\nconst DEFAULT_CLS = 'app-anchor';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-anchor',\n hostClass: DEFAULT_CLS,\n displayType: DISPLAY_TYPE.INLINE_BLOCK\n};\n\nconst regex = /Actions.goToPage_(\\w+)\\.invoke\\(\\)/g;\nexport const disableContextMenu = ($event: Event) => {\n $event.preventDefault();\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, ImagePipe, TextContentDirective],\n selector: 'a[wmAnchor]',\n templateUrl: './anchor.component.html',\n providers: [\n provideAsWidgetRef(AnchorComponent)\n ],\n exportAs: 'wmAnchor'\n})\nexport class AnchorComponent extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n private hasNavigationToCurrentPageExpr: boolean;\n private hasGoToPageExpr: boolean;\n private goToPageName: string;\n private cancelSubscription: any;\n\n public encodeurl;\n public hyperlink;\n public iconheight: string;\n public iconwidth: string;\n public iconurl: string;\n public iconclass: string;\n public caption: any;\n public badgevalue: string;\n public arialabel: string;\n\n @HostBinding('target') target: string;\n @HostBinding('attr.accesskey') shortcutkey: string;\n @HostBinding('attr.icon-position') iconposition: string;\n private _eventNotifier = new EventNotifier();\n\n constructor(\n inj: Injector,\n private app: App,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n protected processEventAttr(eventName: string, expr: string, meta?: string) {\n\n super.processEventAttr(eventName, expr, meta);\n\n if (!this.hasNavigationToCurrentPageExpr) {\n const app = this.inj.get(App);\n const fns = expr.split(';').map(Function.prototype.call, String.prototype.trim);\n if (fns.some(fn => {\n regex.lastIndex = 0;\n const matches = regex.exec(fn);\n\n const hasGoToPageExpr = matches && (matches.length > 0);\n if(hasGoToPageExpr && !this.hasGoToPageExpr) {\n this.hasGoToPageExpr = true;\n this.goToPageName = matches[1];\n }\n\n return hasGoToPageExpr && matches[1] === app.activePageName;\n })) {\n this.hasNavigationToCurrentPageExpr = true;\n }\n }\n }\n\n public onActive(callback: (data: any) =>void) {\n this._eventNotifier.subscribe('on-active', callback);\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any, meta?: string) {\n super.handleEvent(\n node,\n eventName,\n e => {\n if (this.hasGoToPageExpr && locals.$event) {\n locals.$event.preventDefault();\n }\n eventCallback();\n },\n locals,\n meta\n );\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'hyperlink') {\n if (!nv) {\n setAttr(this.nativeElement, 'href', 'javascript:void(0)');\n this.nativeElement.addEventListener('contextmenu', disableContextMenu);\n return;\n }\n if (this.encodeurl) {\n nv = encodeUrl(nv);\n }\n // if hyperlink starts with 'www.' append '//' in the beginning\n if (nv.startsWith('www.')) {\n nv = `//${nv}`;\n }\n setAttr(this.nativeElement, 'href', nv);\n this.nativeElement.removeEventListener('contextmenu', disableContextMenu);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n init() {\n if (this.hasNavigationToCurrentPageExpr) {\n addClass(this.nativeElement, 'active');\n setAttr(this.nativeElement, 'aria-current', 'page');\n }\n if (this.hyperlink && getRouteNameFromLink(this.hyperlink) === `/${this.app.activePageName}`\n || this.hasNavigationToCurrentPageExpr) {\n this._eventNotifier.notify(\"on-active\", {});\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.init();\n if(this.hasGoToPageExpr) {\n // Clean up any existing subscription before creating a new one\n if (this.cancelSubscription) {\n this.cancelSubscription();\n this.cancelSubscription = null;\n }\n \n // In SPA, it highlights active page link when we navigate within the same layout\n this.cancelSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n if(this.hasNavigationToCurrentPageExpr && this.goToPageName !== this.app.activePageName) {\n this.hasNavigationToCurrentPageExpr = false;\n removeClass(this.nativeElement, 'active');\n removeAttr(this.nativeElement, 'aria-current');\n }\n if (this.goToPageName === data.pageName) {\n this.hasNavigationToCurrentPageExpr = true;\n addClass(this.nativeElement, 'active');\n setAttr(this.nativeElement, 'aria-current', 'page');\n }\n });\n }\n }\n\n ngOnAttach() {\n this.init();\n super.ngOnAttach();\n }\n\n public ngOnDestroy() {\n // Unsubscribe from app event first to prevent any callbacks during destruction\n if(this.cancelSubscription) {\n this.cancelSubscription();\n this.cancelSubscription = null;\n }\n \n // Destroy local event notifier\n this._eventNotifier.destroy();\n \n // Remove event listener if it exists\n if (this.nativeElement) {\n this.nativeElement.removeEventListener('contextmenu', disableContextMenu);\n }\n super.ngOnDestroy();\n }\n}\n","@if (iconurl) {\n <img data-identifier=\"img\" alt=\"Image\" class=\"anchor-image-icon\" [src]=\"iconurl | image\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin}\"/>\n}\n@if (iconclass) {\n <i class=\"app-icon {{iconclass}}\" aria-hidden=\"true\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin}\"></i>\n}\n@if (iconclass) {\n <span class=\"sr-only\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n}\n<span class=\"anchor-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n@if (badgevalue) {\n <span class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,11 @@
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
onPropertyChange(key, nv, ov) {
|
|
65
|
+
// Guard against property changes after component destruction
|
|
66
|
+
// This can happen when property changes are queued asynchronously
|
|
67
|
+
if (this.isDestroyed) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
65
70
|
if (key === 'content') {
|
|
66
71
|
// Check for trustPipe safe values
|
|
67
72
|
let bindContent = this.nativeElement.getAttribute('content.bind');
|
|
@@ -70,7 +75,14 @@
|
|
|
70
75
|
core.setProperty(this.nativeElement, 'innerHTML', nv[Object.keys(nv)[0]]);
|
|
71
76
|
}
|
|
72
77
|
else {
|
|
73
|
-
|
|
78
|
+
// Guard against sanitizePipe being null/undefined
|
|
79
|
+
if (this.sanitizePipe) {
|
|
80
|
+
core.setProperty(this.nativeElement, 'innerHTML', this.sanitizePipe.transform(nv, i0.SecurityContext.HTML));
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Fallback to textContent if sanitizePipe is not available
|
|
84
|
+
core.setProperty(this.nativeElement, 'textContent', nv);
|
|
85
|
+
}
|
|
74
86
|
}
|
|
75
87
|
}
|
|
76
88
|
else {
|
|
@@ -31,6 +31,11 @@ export class HtmlDirective extends StylableComponent {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
onPropertyChange(key, nv, ov) {
|
|
34
|
+
// Guard against property changes after component destruction
|
|
35
|
+
// This can happen when property changes are queued asynchronously
|
|
36
|
+
if (this.isDestroyed) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
34
39
|
if (key === 'content') {
|
|
35
40
|
// Check for trustPipe safe values
|
|
36
41
|
let bindContent = this.nativeElement.getAttribute('content.bind');
|
|
@@ -39,7 +44,14 @@ export class HtmlDirective extends StylableComponent {
|
|
|
39
44
|
setProperty(this.nativeElement, 'innerHTML', nv[Object.keys(nv)[0]]);
|
|
40
45
|
}
|
|
41
46
|
else {
|
|
42
|
-
|
|
47
|
+
// Guard against sanitizePipe being null/undefined
|
|
48
|
+
if (this.sanitizePipe) {
|
|
49
|
+
setProperty(this.nativeElement, 'innerHTML', this.sanitizePipe.transform(nv, SecurityContext.HTML));
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Fallback to textContent if sanitizePipe is not available
|
|
53
|
+
setProperty(this.nativeElement, 'textContent', nv);
|
|
54
|
+
}
|
|
43
55
|
}
|
|
44
56
|
}
|
|
45
57
|
else {
|
|
@@ -73,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
73
85
|
}, {
|
|
74
86
|
type: Optional
|
|
75
87
|
}] }] });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvaHRtbC9zcmMvaHRtbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBVSxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhHLE9BQU8sRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBaUIsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUU3QyxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQztBQUN6QyxNQUFNLGFBQWEsR0FBa0I7SUFDakMsVUFBVSxFQUFFLFNBQVM7SUFDckIsU0FBUyxFQUFFLFdBQVc7Q0FDekIsQ0FBQztBQVVGLE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO2FBQ3pDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBR3pDLFlBQ0ksR0FBYSxFQUNRLE1BQWMsRUFDQSxZQUFvQixFQUMvQyxZQUF5QixFQUNPLGVBQW9CO1FBRTVELEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSlIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDL0MsaUJBQVksR0FBWixZQUFZLENBQWE7UUFLakMscURBQXFEO1FBQ3JELElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ2hELENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFRO1FBQzNDLDZEQUE2RDtRQUM3RCxrRUFBa0U7UUFDbEUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQixrQ0FBa0M7WUFDbEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEUsSUFBSSxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzdFLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUN0QyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLENBQUM7aUJBQU8sQ0FBQztnQkFDTCxrREFBa0Q7Z0JBQ2xELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNwQixXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN4RyxDQUFDO3FCQUFNLENBQUM7b0JBQ0osMkRBQTJEO29CQUMzRCxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQzsrR0F4RFEsYUFBYSwwQ0FNUCxRQUFRLDhCQUNSLGNBQWMsMERBRWpCLGtCQUFrQjttR0FUckIsYUFBYSx1REFMWDtZQUNQLGtCQUFrQixDQUFDLGFBQWEsQ0FBQztTQUNwQzs7NEZBR1EsYUFBYTtrQkFSekIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDZCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsU0FBUyxFQUFFO3dCQUNQLGtCQUFrQixlQUFlO3FCQUNwQztvQkFDRCxRQUFRLEVBQUUsUUFBUTtpQkFDckI7OzBCQU9RLFNBQVM7MkJBQUMsUUFBUTs7MEJBQ2xCLFNBQVM7MkJBQUMsY0FBYzs7MEJBRXhCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgSW5qZWN0LCBJbmplY3RvciwgT25Jbml0LCBPcHRpb25hbCwgU2VjdXJpdHlDb250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtzZXRDU1MsIHNldFByb3BlcnR5fSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXNXaWRnZXRSZWYsIFNhbml0aXplUGlwZSwgU3R5bGFibGVDb21wb25lbnQsIHN0eWxlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9odG1sLnByb3BzJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWh0bWwtY29udGFpbmVyJztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLWh0bWwnLFxuICAgIGhvc3RDbGFzczogREVGQVVMVF9DTFNcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dtSHRtbF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoSHRtbERpcmVjdGl2ZSlcbiAgICBdLFxuICAgIGV4cG9ydEFzOiAnd21IdG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdG1sRGlyZWN0aXZlIGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBAQXR0cmlidXRlKCdoZWlnaHQnKSBoZWlnaHQ6IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgnY29udGVudC5iaW5kJykgcHJpdmF0ZSBib3VuZENvbnRlbnQ6IHN0cmluZyxcbiAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZVBpcGU6U2FuaXRpemVQaXBlLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuXG4gICAgICAgIC8vIGlmIHRoZSBoZWlnaHQgaXMgcHJvdmlkZWQgc2V0IHRoZSBvdmVyZmxvdyB0byBhdXRvXG4gICAgICAgIGlmIChoZWlnaHQpIHtcbiAgICAgICAgICAgIHNldENTUyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdvdmVyZmxvdycsICdhdXRvJyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuYm91bmRDb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnQgJiYgdGhpcy5uYXRpdmVFbGVtZW50LmlubmVySFRNTCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5uYXRpdmVFbGVtZW50LmlubmVySFRNTDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIC8vIEd1YXJkIGFnYWluc3QgcHJvcGVydHkgY2hhbmdlcyBhZnRlciBjb21wb25lbnQgZGVzdHJ1Y3Rpb25cbiAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIHdoZW4gcHJvcGVydHkgY2hhbmdlcyBhcmUgcXVldWVkIGFzeW5jaHJvbm91c2x5XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5ID09PSAnY29udGVudCcpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGZvciB0cnVzdFBpcGUgc2FmZSB2YWx1ZXNcbiAgICAgICAgICAgIGxldCBiaW5kQ29udGVudCA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQuYmluZCcpO1xuICAgICAgICAgICAgbGV0IHNhZmVWYWx1ZSA9IGJpbmRDb250ZW50ID8gbnYgJiYgYmluZENvbnRlbnQuaW5jbHVkZXMoJ3RydXN0QXM6JykgOiBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbnYgPT09ICdvYmplY3QnICYmIHNhZmVWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHNldFByb3BlcnR5KHRoaXMubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsIG52W09iamVjdC5rZXlzKG52KVswXV0pO1xuICAgICAgICAgICAgfSAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gR3VhcmQgYWdhaW5zdCBzYW5pdGl6ZVBpcGUgYmVpbmcgbnVsbC91bmRlZmluZWRcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zYW5pdGl6ZVBpcGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UHJvcGVydHkodGhpcy5uYXRpdmVFbGVtZW50LCAnaW5uZXJIVE1MJywgdGhpcy5zYW5pdGl6ZVBpcGUudHJhbnNmb3JtKG52LCBTZWN1cml0eUNvbnRleHQuSFRNTCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIHRleHRDb250ZW50IGlmIHNhbml0aXplUGlwZSBpcyBub3QgYXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgICAgIHNldFByb3BlcnR5KHRoaXMubmF0aXZlRWxlbWVudCwgJ3RleHRDb250ZW50JywgbnYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -42,6 +42,11 @@ class HtmlDirective extends StylableComponent {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
onPropertyChange(key, nv, ov) {
|
|
45
|
+
// Guard against property changes after component destruction
|
|
46
|
+
// This can happen when property changes are queued asynchronously
|
|
47
|
+
if (this.isDestroyed) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
45
50
|
if (key === 'content') {
|
|
46
51
|
// Check for trustPipe safe values
|
|
47
52
|
let bindContent = this.nativeElement.getAttribute('content.bind');
|
|
@@ -50,7 +55,14 @@ class HtmlDirective extends StylableComponent {
|
|
|
50
55
|
setProperty(this.nativeElement, 'innerHTML', nv[Object.keys(nv)[0]]);
|
|
51
56
|
}
|
|
52
57
|
else {
|
|
53
|
-
|
|
58
|
+
// Guard against sanitizePipe being null/undefined
|
|
59
|
+
if (this.sanitizePipe) {
|
|
60
|
+
setProperty(this.nativeElement, 'innerHTML', this.sanitizePipe.transform(nv, SecurityContext.HTML));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// Fallback to textContent if sanitizePipe is not available
|
|
64
|
+
setProperty(this.nativeElement, 'textContent', nv);
|
|
65
|
+
}
|
|
54
66
|
}
|
|
55
67
|
}
|
|
56
68
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/html/src/html.props.ts","../../../../../projects/components/widgets/basic/html/src/html.directive.ts","../../../../../projects/components/widgets/basic/html/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-html',\n new Map(\n [\n ['class', PROP_STRING],\n ['content', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {Attribute, Directive, Inject, Injector, OnInit, Optional, SecurityContext} from '@angular/core';\n\nimport {setCSS, setProperty} from '@wm/core';\nimport { IWidgetConfig, provideAsWidgetRef, SanitizePipe, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './html.props';\n\nconst DEFAULT_CLS = 'app-html-container';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-html',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: '[wmHtml]',\n providers: [\n provideAsWidgetRef(HtmlDirective)\n ],\n exportAs: 'wmHtml'\n})\nexport class HtmlDirective extends StylableComponent implements OnInit {\n static initializeProps = registerProps();\n public content: string;\n\n constructor(\n inj: Injector,\n @Attribute('height') height: string,\n @Attribute('content.bind') private boundContent: string,\n private sanitizePipe:SanitizePipe,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n // if the height is provided set the overflow to auto\n if (height) {\n setCSS(this.nativeElement, 'overflow', 'auto');\n }\n\n styler(this.nativeElement, this);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.boundContent) {\n this.nativeElement.innerHTML = '';\n }\n if (!this.content && this.nativeElement.innerHTML) {\n this.content = this.nativeElement.innerHTML;\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'content') {\n // Check for trustPipe safe values\n let bindContent = this.nativeElement.getAttribute('content.bind');\n let safeValue = bindContent ? nv && bindContent.includes('trustAs:') : false;\n if (typeof nv === 'object' && safeValue) {\n setProperty(this.nativeElement, 'innerHTML', nv[Object.keys(nv)[0]]);\n } else {\n setProperty(this.nativeElement, 'innerHTML', this.sanitizePipe.transform(nv, SecurityContext.HTML));\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,SAAS,EACT,IAAI,GAAG,CACH;QACI,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC;AAC1C,KAAA,CACJ,CACJ;AACL,CAAC;;ACTD,MAAM,WAAW,GAAG,oBAAoB;AACxC,MAAM,aAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,SAAS,EAAE;CACd;AAUK,MAAO,aAAc,SAAQ,iBAAiB,CAAA;AACzC,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB;IAGzC,WAAA,CACI,GAAa,EACQ,MAAc,EACA,YAAoB,EAC/C,YAAyB,EACO,eAAoB,EAAA;AAE5D,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC;QAJP,IAAA,CAAA,YAAY,GAAZ,YAAY;QACvC,IAAA,CAAA,YAAY,GAAZ,YAAY;;QAMpB,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC;QAClD;AAEA,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;IACpC;IAEA,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE;QACrC;QACA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS;QAC/C;IACJ;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/html/src/html.props.ts","../../../../../projects/components/widgets/basic/html/src/html.directive.ts","../../../../../projects/components/widgets/basic/html/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-html',\n new Map(\n [\n ['class', PROP_STRING],\n ['content', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {Attribute, Directive, Inject, Injector, OnInit, Optional, SecurityContext} from '@angular/core';\n\nimport {setCSS, setProperty} from '@wm/core';\nimport { IWidgetConfig, provideAsWidgetRef, SanitizePipe, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './html.props';\n\nconst DEFAULT_CLS = 'app-html-container';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-html',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: '[wmHtml]',\n providers: [\n provideAsWidgetRef(HtmlDirective)\n ],\n exportAs: 'wmHtml'\n})\nexport class HtmlDirective extends StylableComponent implements OnInit {\n static initializeProps = registerProps();\n public content: string;\n\n constructor(\n inj: Injector,\n @Attribute('height') height: string,\n @Attribute('content.bind') private boundContent: string,\n private sanitizePipe:SanitizePipe,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n // if the height is provided set the overflow to auto\n if (height) {\n setCSS(this.nativeElement, 'overflow', 'auto');\n }\n\n styler(this.nativeElement, this);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.boundContent) {\n this.nativeElement.innerHTML = '';\n }\n if (!this.content && this.nativeElement.innerHTML) {\n this.content = this.nativeElement.innerHTML;\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n // Guard against property changes after component destruction\n // This can happen when property changes are queued asynchronously\n if (this.isDestroyed) {\n return;\n }\n\n if (key === 'content') {\n // Check for trustPipe safe values\n let bindContent = this.nativeElement.getAttribute('content.bind');\n let safeValue = bindContent ? nv && bindContent.includes('trustAs:') : false;\n if (typeof nv === 'object' && safeValue) {\n setProperty(this.nativeElement, 'innerHTML', nv[Object.keys(nv)[0]]);\n } else {\n // Guard against sanitizePipe being null/undefined\n if (this.sanitizePipe) {\n setProperty(this.nativeElement, 'innerHTML', this.sanitizePipe.transform(nv, SecurityContext.HTML));\n } else {\n // Fallback to textContent if sanitizePipe is not available\n setProperty(this.nativeElement, 'textContent', nv);\n }\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,9 @@
|
|
|
54
54
|
i1.styler(this.nativeElement, this);
|
|
55
55
|
}
|
|
56
56
|
onPropertyChange(key, nv, ov) {
|
|
57
|
+
if (this.isDestroyed) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
57
60
|
if (key === 'caption') {
|
|
58
61
|
// Check for trustPipe safe values
|
|
59
62
|
let bindContent = this.nativeElement.getAttribute('caption.bind');
|
|
@@ -72,7 +75,12 @@
|
|
|
72
75
|
core.setProperty(this.nativeElement, 'innerHTML', nv[Object.keys(nv)[0]]);
|
|
73
76
|
}
|
|
74
77
|
else {
|
|
75
|
-
|
|
78
|
+
if (this.sanitizePipe) {
|
|
79
|
+
core.setProperty(this.nativeElement, 'innerHTML', this.sanitizePipe.transform(insertZWSP(nv), i0.SecurityContext.HTML));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
core.setProperty(this.nativeElement, 'textContent', insertZWSP(nv));
|
|
83
|
+
}
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
86
|
else if (key === 'required') {
|
|
@@ -82,6 +90,14 @@
|
|
|
82
90
|
super.onPropertyChange(key, nv, ov);
|
|
83
91
|
}
|
|
84
92
|
}
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
// Call parent ngOnDestroy first (sets isDestroyed = true)
|
|
95
|
+
// This ensures onPropertyChange checks fail fast if called asynchronously
|
|
96
|
+
super.ngOnDestroy();
|
|
97
|
+
// MEMORY LEAK FIX: Clear sanitizePipe reference after destruction flag is set
|
|
98
|
+
// This retains references to the entire DI tree
|
|
99
|
+
this.sanitizePipe = null;
|
|
100
|
+
}
|
|
85
101
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: LabelDirective, deps: [{ token: i0__namespace.Injector }, { token: i1__namespace.SanitizePipe }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
86
102
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LabelDirective, isStandalone: true, selector: "[wmLabel]", providers: [
|
|
87
103
|
i1.provideAsWidgetRef(LabelDirective)
|