@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,6 +1,5 @@
|
|
|
1
1
|
import * as i2 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { AnchorComponent } from '@wm/components/basic/anchor';
|
|
4
3
|
import * as i0 from '@angular/core';
|
|
5
4
|
import { TemplateRef, ContentChild, ViewChild, Inject, Optional, Component } from '@angular/core';
|
|
6
5
|
import * as i3 from 'ngx-bootstrap/popover';
|
|
@@ -8,6 +7,7 @@ import { PopoverModule, PopoverDirective } from 'ngx-bootstrap/popover';
|
|
|
8
7
|
import * as i1 from '@wm/core';
|
|
9
8
|
import { adjustContainerPosition, adjustContainerRightEdges, findRootContainer, setCSSFromObj, addClass } from '@wm/core';
|
|
10
9
|
import { register, PROP_STRING, PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, StylableComponent, AUTOCLOSE_TYPE, styler, getContainerTargetClass, provideAsWidgetRef } from '@wm/components/base';
|
|
10
|
+
import { AnchorComponent } from '@wm/components/basic/anchor';
|
|
11
11
|
|
|
12
12
|
const registerProps = () => {
|
|
13
13
|
register('wm-popover', new Map([
|
|
@@ -153,7 +153,9 @@ class PopoverComponent extends StylableComponent {
|
|
|
153
153
|
if (this.isOpen) {
|
|
154
154
|
this.isClosingProgrammatically = true;
|
|
155
155
|
this.isOpen = false;
|
|
156
|
-
this.bsPopoverDirective
|
|
156
|
+
if (this.bsPopoverDirective) {
|
|
157
|
+
this.bsPopoverDirective.hide();
|
|
158
|
+
}
|
|
157
159
|
const index = PopoverComponent.activePopovers.indexOf(this);
|
|
158
160
|
if (index > -1) {
|
|
159
161
|
PopoverComponent.activePopovers.splice(index, 1);
|
|
@@ -176,7 +178,12 @@ class PopoverComponent extends StylableComponent {
|
|
|
176
178
|
setTimeout(() => this.anchorRef.nativeElement.focus(), 10);
|
|
177
179
|
}
|
|
178
180
|
adjustPopoverArrowPosition(popoverElem, popoverLeftShift) {
|
|
179
|
-
|
|
181
|
+
// Clean up any existing subscription before creating a new one
|
|
182
|
+
if (this.arrowPositionSubscription) {
|
|
183
|
+
this.arrowPositionSubscription.unsubscribe();
|
|
184
|
+
this.arrowPositionSubscription = null;
|
|
185
|
+
}
|
|
186
|
+
this.arrowPositionSubscription = this.bsPopoverDirective._popover._ngZone.onStable.subscribe(() => {
|
|
180
187
|
popoverElem.find('.popover-arrow').css('left', popoverLeftShift + 'px');
|
|
181
188
|
});
|
|
182
189
|
}
|
|
@@ -262,7 +269,9 @@ class PopoverComponent extends StylableComponent {
|
|
|
262
269
|
this.setupDocumentClickHandler();
|
|
263
270
|
}
|
|
264
271
|
setTimeout(() => {
|
|
265
|
-
this.anchorRef
|
|
272
|
+
if (this.anchorRef?.nativeElement) {
|
|
273
|
+
this.anchorRef.nativeElement.removeAttribute('aria-describedby');
|
|
274
|
+
}
|
|
266
275
|
});
|
|
267
276
|
const deRegister = this.eventManager.addEventListener(popoverContainer, 'keydown.esc', () => {
|
|
268
277
|
this.isOpen = false;
|
|
@@ -314,7 +323,16 @@ class PopoverComponent extends StylableComponent {
|
|
|
314
323
|
}
|
|
315
324
|
triggerPopoverEvents() {
|
|
316
325
|
if (this.contentsource === 'partial') {
|
|
317
|
-
|
|
326
|
+
this.partialLoadedSubscription = this.app.subscribe('partialLoaded', () => {
|
|
327
|
+
// Always clean up subscription first
|
|
328
|
+
if (this.partialLoadedSubscription) {
|
|
329
|
+
this.partialLoadedSubscription();
|
|
330
|
+
this.partialLoadedSubscription = null;
|
|
331
|
+
}
|
|
332
|
+
// Check if component is still alive and partialRef exists
|
|
333
|
+
if (!this.partialRef || !this.partialRef.nativeElement) {
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
318
336
|
const parEle = this.partialRef.nativeElement;
|
|
319
337
|
let partialScope;
|
|
320
338
|
if (parEle) {
|
|
@@ -325,7 +343,6 @@ class PopoverComponent extends StylableComponent {
|
|
|
325
343
|
this.invokeEventCallback('load');
|
|
326
344
|
this.invokeEventCallback('show', { $event: { type: 'show' } });
|
|
327
345
|
}
|
|
328
|
-
cancelSubscription();
|
|
329
346
|
});
|
|
330
347
|
}
|
|
331
348
|
else {
|
|
@@ -390,25 +407,60 @@ class PopoverComponent extends StylableComponent {
|
|
|
390
407
|
// Hide the popover container while attaching the next component as part of page reuse strategy.
|
|
391
408
|
this.bsPopoverDirective.hide();
|
|
392
409
|
}
|
|
393
|
-
|
|
410
|
+
ngOnDestroy() {
|
|
411
|
+
// Unsubscribe from partialLoaded event
|
|
412
|
+
if (this.partialLoadedSubscription) {
|
|
413
|
+
this.partialLoadedSubscription();
|
|
414
|
+
this.partialLoadedSubscription = null;
|
|
415
|
+
}
|
|
416
|
+
// Unsubscribe from arrow position adjustment
|
|
417
|
+
if (this.arrowPositionSubscription) {
|
|
418
|
+
this.arrowPositionSubscription.unsubscribe();
|
|
419
|
+
this.arrowPositionSubscription = null;
|
|
420
|
+
}
|
|
421
|
+
// Close popover if open
|
|
422
|
+
if (this.isOpen && this.bsPopoverDirective) {
|
|
423
|
+
this.bsPopoverDirective.hide();
|
|
424
|
+
}
|
|
425
|
+
// Clear timeout
|
|
426
|
+
if (this.closePopoverTimeout) {
|
|
427
|
+
clearTimeout(this.closePopoverTimeout);
|
|
428
|
+
this.closePopoverTimeout = null;
|
|
429
|
+
}
|
|
430
|
+
// Remove document click handler
|
|
394
431
|
if (this.documentClickHandler) {
|
|
395
432
|
document.removeEventListener('click', this.documentClickHandler, true);
|
|
433
|
+
this.documentClickHandler = null;
|
|
396
434
|
}
|
|
435
|
+
// Remove from active popovers array
|
|
397
436
|
const index = PopoverComponent.activePopovers.indexOf(this);
|
|
398
437
|
if (index > -1) {
|
|
399
438
|
PopoverComponent.activePopovers.splice(index, 1);
|
|
400
439
|
}
|
|
440
|
+
// Clear anchor event handlers
|
|
441
|
+
if (this.anchorRef?.nativeElement) {
|
|
442
|
+
this.anchorRef.nativeElement.onmouseenter = null;
|
|
443
|
+
this.anchorRef.nativeElement.onmouseleave = null;
|
|
444
|
+
}
|
|
445
|
+
// MEMORY LEAK FIX: Clear all ViewChild and ContentChild references
|
|
446
|
+
// These retain the entire component tree including parent contexts (colDef, etc.)
|
|
447
|
+
this.bsPopoverDirective = null;
|
|
448
|
+
this.anchorRef = null;
|
|
449
|
+
this.popoverTemplate = null;
|
|
450
|
+
this.partialRef = null;
|
|
451
|
+
// Call parent cleanup
|
|
452
|
+
super.ngOnDestroy();
|
|
401
453
|
}
|
|
402
454
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PopoverComponent, deps: [{ token: i0.Injector }, { token: i1.App }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
403
455
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PopoverComponent, isStandalone: true, selector: "wm-popover", providers: [
|
|
404
456
|
provideAsWidgetRef(PopoverComponent)
|
|
405
|
-
], queries: [{ propertyName: "popoverTemplate", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "partialRef", first: true, predicate: ["partial"], descendants: true }], viewQueries: [{ propertyName: "bsPopoverDirective", first: true, predicate: PopoverDirective, descendants: true }, { propertyName: "anchorRef", first: true, predicate: ["anchor"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<a [popover]=\"popoverTemplate\"\n [popoverContext]=\"context\"\n [popoverTitle]=\"title\"\n [placement]=\"popoverplacement\"\n [outsideClick]=\"outsideclick\"\n [triggers]=\"event\"\n (onShown)=\"onShown()\"\n (onHidden)=\"onHidden()\"\n containerClass=\"app-popover animated {{contentanimation}} {{popoverContainerCls}}\"\n [container]=\"containerTarget || '.wm-app'\"\n [isOpen]=\"isOpen\"\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n [class]=\"class\"\n [ngClass]=\"{'disable-popover': !canPopoverOpen}\"\n [adaptivePosition]=\"adaptiveposition\"\n
|
|
457
|
+
], queries: [{ propertyName: "popoverTemplate", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "partialRef", first: true, predicate: ["partial"], descendants: true }], viewQueries: [{ propertyName: "bsPopoverDirective", first: true, predicate: PopoverDirective, descendants: true }, { propertyName: "anchorRef", first: true, predicate: ["anchor"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<a [popover]=\"popoverTemplate\"\n [popoverContext]=\"context\"\n [popoverTitle]=\"title\"\n [placement]=\"popoverplacement\"\n [outsideClick]=\"outsideclick\"\n [triggers]=\"event\"\n (onShown)=\"onShown()\"\n (onHidden)=\"onHidden()\"\n containerClass=\"app-popover animated {{contentanimation}} {{popoverContainerCls}}\"\n [container]=\"containerTarget || '.wm-app'\"\n [isOpen]=\"isOpen\"\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n [class]=\"class\"\n [ngClass]=\"{'disable-popover': !canPopoverOpen}\"\n [adaptivePosition]=\"adaptiveposition\"\n boundariesElement=\"window\"\n [attr.aria-label]=\"arialabel || (badgevalue ? caption + ' ' + badgevalue : caption) || 'Popover menu'\"\n [attr.aria-expanded]=\"isOpen\"\n role=\"button\"\n #anchor\n name.bind=\"name\"\n wmAnchor\n animation.bind=\"animation\"\n badgevalue.bind=\"badgevalue\"\n caption.bind=\"caption\"\n encodeurl.bind=\"encodeurl\"\n hint.bind=\"hint\"\n hyperlink.bind=\"hyperlink\"\n iconurl.bind=\"iconurl\"\n iconwidth.bind=\"iconwidth\"\n iconheight.bind=\"iconheight\"\n iconmargin.bind=\"iconmargin\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n (keydown)=\"onPopoverAnchorKeydown($event)\">\n</a>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i3.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: AnchorComponent, selector: "a[wmAnchor]", exportAs: ["wmAnchor"] }] }); }
|
|
406
458
|
}
|
|
407
459
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
408
460
|
type: Component,
|
|
409
|
-
args: [{ standalone: true, imports: [CommonModule,
|
|
461
|
+
args: [{ standalone: true, imports: [CommonModule, PopoverModule, AnchorComponent], selector: 'wm-popover', providers: [
|
|
410
462
|
provideAsWidgetRef(PopoverComponent)
|
|
411
|
-
], template: "<a [popover]=\"popoverTemplate\"\n [popoverContext]=\"context\"\n [popoverTitle]=\"title\"\n [placement]=\"popoverplacement\"\n [outsideClick]=\"outsideclick\"\n [triggers]=\"event\"\n (onShown)=\"onShown()\"\n (onHidden)=\"onHidden()\"\n containerClass=\"app-popover animated {{contentanimation}} {{popoverContainerCls}}\"\n [container]=\"containerTarget || '.wm-app'\"\n [isOpen]=\"isOpen\"\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n [class]=\"class\"\n [ngClass]=\"{'disable-popover': !canPopoverOpen}\"\n [adaptivePosition]=\"adaptiveposition\"\n
|
|
463
|
+
], template: "<a [popover]=\"popoverTemplate\"\n [popoverContext]=\"context\"\n [popoverTitle]=\"title\"\n [placement]=\"popoverplacement\"\n [outsideClick]=\"outsideclick\"\n [triggers]=\"event\"\n (onShown)=\"onShown()\"\n (onHidden)=\"onHidden()\"\n containerClass=\"app-popover animated {{contentanimation}} {{popoverContainerCls}}\"\n [container]=\"containerTarget || '.wm-app'\"\n [isOpen]=\"isOpen\"\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n [class]=\"class\"\n [ngClass]=\"{'disable-popover': !canPopoverOpen}\"\n [adaptivePosition]=\"adaptiveposition\"\n boundariesElement=\"window\"\n [attr.aria-label]=\"arialabel || (badgevalue ? caption + ' ' + badgevalue : caption) || 'Popover menu'\"\n [attr.aria-expanded]=\"isOpen\"\n role=\"button\"\n #anchor\n name.bind=\"name\"\n wmAnchor\n animation.bind=\"animation\"\n badgevalue.bind=\"badgevalue\"\n caption.bind=\"caption\"\n encodeurl.bind=\"encodeurl\"\n hint.bind=\"hint\"\n hyperlink.bind=\"hyperlink\"\n iconurl.bind=\"iconurl\"\n iconwidth.bind=\"iconwidth\"\n iconheight.bind=\"iconheight\"\n iconmargin.bind=\"iconmargin\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n (keydown)=\"onPopoverAnchorKeydown($event)\">\n</a>\n" }]
|
|
412
464
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.App }, { type: undefined, decorators: [{
|
|
413
465
|
type: Inject,
|
|
414
466
|
args: ['EXPLICIT_CONTEXT']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/navigation/popover/src/popover.props.ts","../../../../../projects/components/widgets/navigation/popover/src/popover.component.ts","../../../../../projects/components/widgets/navigation/popover/src/popover.component.html","../../../../../projects/components/widgets/navigation/popover/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-popover',\n new Map(\n [\n ['autoclose', {value: 'outsideClick', ...PROP_STRING}],\n ['badgevalue', PROP_STRING],\n ['caption', {value: 'Link', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['content', PROP_STRING],\n ['contentanimation', PROP_STRING],\n ['contentsource', {value: 'partial', ...PROP_STRING}],\n ['encodeurl', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['hyperlink', {value: 'javascript:void(0)', 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 ['interaction', {value: 'click', ...PROP_STRING}],\n ['name', PROP_STRING],\n ['popoverarrow', {value: true, ...PROP_BOOLEAN}],\n ['popoverheight', PROP_STRING],\n ['popoverplacement', {value: 'bottom', ... PROP_STRING}],\n ['popoverwidth', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING],\n ['adaptiveposition', {value: true, ...PROP_BOOLEAN}]\n\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { AnchorComponent } from '@wm/components/basic/anchor';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Inject,\n Injector,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {PopoverDirective, PopoverModule} from 'ngx-bootstrap/popover';\n\nimport {\n addClass,\n adjustContainerPosition,\n adjustContainerRightEdges,\n App,\n findRootContainer,\n setCSSFromObj\n} from '@wm/core';\nimport {\n AUTOCLOSE_TYPE,\n getContainerTargetClass,\n IWidgetConfig,\n provideAsWidgetRef,\n StylableComponent,\n styler\n} from '@wm/components/base';\n\nimport {registerProps} from './popover.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-popover-wrapper';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-popover',\n hostClass: DEFAULT_CLS\n};\n\nconst eventsMap = {\n click: 'click',\n hover: 'mouseenter:click',\n default: 'click mouseenter'\n};\n\nlet activePopover: PopoverComponent;\n\n@Component({\n standalone: true,\n imports: [CommonModule, AnchorComponent, PopoverModule],\n selector: 'wm-popover',\n templateUrl: './popover.component.html',\n providers: [\n provideAsWidgetRef(PopoverComponent)\n ]\n})\n\nexport class PopoverComponent extends StylableComponent implements OnInit, AfterViewInit {\n static initializeProps = registerProps();\n\n public event: string;\n public isOpen = false;\n private closePopoverTimeout;\n public readonly popoverContainerCls;\n public canPopoverOpen = true;\n private Widgets;\n private Variables;\n private Actions;\n\n public interaction: string;\n public popoverarrow: boolean;\n public popoverwidth: string;\n public popoverheight: string;\n public contentanimation: string;\n public contentsource: string;\n public content: string;\n public popoverplacement: string;\n public outsideclick: boolean;\n public autoclose: string;\n\n public class: string;\n public title: string;\n public tabindex: any;\n public name: string;\n public adaptiveposition:boolean;\n public containerTarget: string;\n public hint: string;\n public arialabel: string;\n public caption: string;\n public badgevalue: string;\n private documentClickHandler: (e: MouseEvent) => void;\n private isClosingProgrammatically = false;\n private static activePopovers: PopoverComponent[] = [];\n private isHandlingClick = false;\n private preventFocusShift: boolean = false;\n\n @ViewChild(PopoverDirective) private bsPopoverDirective;\n @ViewChild('anchor', { static: true }) anchorRef: ElementRef;\n @ContentChild(TemplateRef) popoverTemplate;\n @ContentChild('partial') partialRef;\n\n constructor(inj: Injector, private app: App, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, private cdr: ChangeDetectorRef) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.popoverContainerCls = `app-popover-${this.widgetId}`;\n }\n\n private setupDocumentClickHandler() {\n if (this.documentClickHandler) {\n document.removeEventListener('click', this.documentClickHandler, true);\n }\n\n this.documentClickHandler = (event: MouseEvent) => {\n if (!this.isOpen) return;\n\n const target = event.target as HTMLElement;\n\n // Set flag to prevent open() from running during click handling\n this.isHandlingClick = true;\n\n try {\n // Check for special containers as before\n const isInsideSpecialContainer = !!(\n target.closest('.bs-datepicker-container') ||\n target.closest(\".dropdown-menu\")\n );\n\n if (isInsideSpecialContainer) {\n return;\n }\n\n const clickedPopoverIndex = PopoverComponent.activePopovers.findIndex(popover => {\n const popoverContainer = document.querySelector(`.${popover.popoverContainerCls}`);\n return popoverContainer?.contains(target);\n });\n\n // For anchor clicks, just close and prevent further handling\n if (this.anchorRef?.nativeElement?.contains(target)) {\n event.preventDefault();\n event.stopPropagation();\n this.isOpen ? this.close() : this.open()\n return;\n }\n\n if (clickedPopoverIndex === -1) {\n if (this.outsideclick) {\n this.closeAllPopovers();\n }\n } else {\n this.closeInnerPopovers(clickedPopoverIndex);\n }\n } finally {\n // Always reset the flag when click handling is done\n setTimeout(() => {\n this.isHandlingClick = false;\n }, 0);\n }\n };\n\n document.addEventListener('click', this.documentClickHandler, true);\n }\n\n private closeAllPopovers() {\n PopoverComponent.activePopovers.forEach(popover => {\n if (popover.outsideclick) {\n popover.isClosingProgrammatically = true;\n popover.close();\n }\n });\n }\n\n private closeInnerPopovers(clickedIndex: number) {\n for (let i = clickedIndex + 1; i < PopoverComponent.activePopovers.length; i++) {\n const popover = PopoverComponent.activePopovers[i];\n if (popover.outsideclick) {\n popover.isClosingProgrammatically = true;\n popover.close();\n }\n }\n }\n\n private isChildPopover(): boolean {\n return !!$(this.nativeElement).closest('.popover').length;\n }\n /**\n * Opens the popover, similar to the showPopover method.\n * @param preventFocusShift Optional parameter (default: false). When false, focus shifts to the popover upon opening. If set to true, focus remains on the triggering element.\n */\n public open(preventFocusShift?:boolean) {\n this.preventFocusShift = preventFocusShift ?? false;\n if (this.isHandlingClick) return;\n this.showPopover();\n if (!PopoverComponent.activePopovers.includes(this)) {\n PopoverComponent.activePopovers.push(this);\n }\n this.cdr.detectChanges();\n }\n\n // This mehtod is used to hide/close the popover.\n public close() {\n if (this.isOpen) {\n this.isClosingProgrammatically = true;\n this.isOpen = false;\n this.bsPopoverDirective.hide();\n const index = PopoverComponent.activePopovers.indexOf(this);\n if (index > -1) {\n PopoverComponent.activePopovers.splice(index, 1);\n }\n this.cdr.detectChanges();\n }\n }\n\n // Trigger on hiding popover\n public onHidden() {\n if (!this.isChildPopover() || this.isClosingProgrammatically) {\n this.invokeEventCallback('hide', {$event: {type: 'hide'}});\n this.isOpen = false;\n if (activePopover === this) {\n activePopover = null;\n }\n }\n this.isClosingProgrammatically = false;\n }\n\n private setFocusToPopoverLink() {\n setTimeout(() => this.anchorRef.nativeElement.focus(), 10);\n }\n\n private adjustPopoverArrowPosition(popoverElem, popoverLeftShift) {\n this.bsPopoverDirective._popover._ngZone.onStable.subscribe(() => {\n popoverElem.find('.popover-arrow').css('left', popoverLeftShift + 'px');\n });\n }\n\n private calculatePopoverPostion(element) {\n\n const popoverElem = $(element);\n let popoverLeft = popoverElem.offset().left;\n const popoverWidth = popoverElem[0].offsetWidth;\n const viewPortWidth = $(window).width();\n const parentDimesion = this.anchorRef.nativeElement.getBoundingClientRect();\n // Adjusting popover position, if it is not visible at left side\n if (popoverLeft < 0) {\n adjustContainerPosition(popoverElem, this.nativeElement, this.bsPopoverDirective._popover);\n const popoverLeftShift = 4;\n const arrowLeftShift = (parentDimesion.left + (parentDimesion.width / 2)) - popoverLeftShift;\n this.adjustPopoverArrowPosition(popoverElem, arrowLeftShift);\n }\n // Adjusting popover position, if it is not visible at right side\n if (popoverLeft + popoverWidth > viewPortWidth) {\n adjustContainerRightEdges(popoverElem, this.nativeElement, this.bsPopoverDirective._popover);\n setTimeout(() => {\n popoverLeft = popoverElem.offset().left;\n const popoverLeftAdjust = (popoverLeft + popoverWidth) - viewPortWidth;\n const popoverLeftShift = popoverLeft - popoverLeftAdjust;\n let arrowLeftShift ;\n if(popoverLeft<=100){\n arrowLeftShift = (parentDimesion.left + (parentDimesion.width / 2)) - popoverLeft;\n }else{\n arrowLeftShift = (parentDimesion.left + (parentDimesion.width / 2)) - popoverLeftShift;\n }\n if(viewPortWidth > 500){\n arrowLeftShift += 30;\n }\n this.adjustPopoverArrowPosition(popoverElem, arrowLeftShift);\n });\n }\n }\n\n // Trigger on showing popover\n public onShown() {\n const root = findRootContainer(this.$element);\n // if page styles have to be applied to popover then popover has to be child of page element.\n if (root) {\n $('body > popover-container').wrap('<' + root + '/>');\n }\n // Fix for [WMS-25125]: Not closing the existing opened popovers when the autoclose property is DISABLED\n if (!this.isChildPopover()) {\n if (activePopover && activePopover !== this &&\n activePopover.autoclose !== AUTOCLOSE_TYPE.DISABLED) {\n activePopover.isClosingProgrammatically = true;\n activePopover.close();\n }\n activePopover = this;\n }\n\n this.isOpen = true;\n if (!PopoverComponent.activePopovers.includes(this)) {\n PopoverComponent.activePopovers.push(this);\n }\n const popoverContainer = document.querySelector(`.${this.popoverContainerCls}`) as HTMLElement;\n if (popoverContainer) {\n popoverContainer.setAttribute('data-popover-id', this.widgetId);\n\n // Add click event listener to stop propagation\n popoverContainer.addEventListener('click', (event: Event) => {\n event.stopPropagation();\n });\n }\n setCSSFromObj(popoverContainer, {\n height: this.popoverheight,\n minWidth: this.popoverwidth,\n width: this.popoverwidth\n });\n if (!this.popoverarrow) {\n addClass(popoverContainer.querySelector('.arrow') as HTMLElement, 'hidden');\n }\n if (this.interaction === 'hover' || this.interaction === 'default') {\n\n // do not use addEventListener here\n // attaching the event this way will override the existing event handlers\n popoverContainer.onmouseenter = () => clearTimeout(this.closePopoverTimeout);\n popoverContainer.onmouseleave = () => this.hidePopover();\n this.anchorRef.nativeElement.onmouseenter = () => clearTimeout(this.closePopoverTimeout);\n this.anchorRef.nativeElement.onmouseleave = () => this.hidePopover();\n }\n if (this.outsideclick) {\n this.setupDocumentClickHandler();\n }\n setTimeout(() => {\n this.anchorRef.nativeElement.removeAttribute('aria-describedby');\n });\n const deRegister = this.eventManager.addEventListener(popoverContainer, 'keydown.esc', () => {\n this.isOpen = false;\n this.setFocusToPopoverLink();\n deRegister();\n });\n const popoverStartBtn: HTMLElement = popoverContainer.querySelector('.popover-start');\n const popoverEndBtn: HTMLElement = popoverContainer.querySelector('.popover-end');\n popoverStartBtn.onkeydown = (event) => {\n // Check for Shift+Tab key\n if (event.shiftKey && event.key === 'Tab') {\n this.bsPopoverDirective.hide();\n event.preventDefault();\n this.setFocusToPopoverLink();\n this.isOpen = false; }\n };\n popoverEndBtn.onkeydown = (event) => {\n // Check for Tab key\n if (!event.shiftKey && event.key === 'Tab') {\n this.bsPopoverDirective.hide();\n event.preventDefault();\n this.setFocusToPopoverLink();\n this.isOpen = false; }\n };\n\n //Whenever autoclose property is set to 'always', adding the onclick listener to the popover container to close the popover.\n if (this.autoclose === AUTOCLOSE_TYPE.ALWAYS) {\n popoverContainer.onclick = () => this.close();\n }\n // Fix for [WMS-27656]: Added 'preventFocusShift' parameter (default: false).\n // By default, focus moves to the popover when it appears.\n // If 'preventFocusShift' is set to true, focus remains on the triggering element.\n if (this.preventFocusShift) {\n const activeElement = document.activeElement as HTMLElement; // Capture current focused element\n setTimeout(() => activeElement?.focus(), 0);\n } else {\n setTimeout(() => popoverStartBtn.focus(), 50);\n }\n\n // Adjusting popover position if the popover placement is top or bottom\n setTimeout( () => {\n if (!this.adaptiveposition ) {\n this.calculatePopoverPostion(popoverContainer);\n }\n // triggering onload and onshow events after popover content has rendered\n this.triggerPopoverEvents();\n });\n }\n\n triggerPopoverEvents() {\n if (this.contentsource === 'partial') {\n const cancelSubscription = this.app.subscribe('partialLoaded', (data) => {\n const parEle = this.partialRef.nativeElement;\n let partialScope;\n\n if (parEle) {\n partialScope = parEle.widget;\n this.Widgets = partialScope.Widgets;\n this.Variables = partialScope.Variables;\n this.Actions = partialScope.Actions;\n this.invokeEventCallback('load');\n this.invokeEventCallback('show', {$event: {type: 'show'}});\n }\n cancelSubscription();\n });\n } else {\n this.Widgets = this.viewParent.Widgets;\n this.Variables = this.viewParent.Variables;\n this.Actions = this.viewParent.Actions;\n this.invokeEventCallback('show', {$event: {type: 'show'}});\n }\n }\n\n private hidePopover() {\n this.isClosingProgrammatically = true;\n this.closePopoverTimeout = setTimeout(() => this.isOpen = false, 500);\n }\n\n private showPopover() {\n this.bsPopoverDirective.show();\n }\n\n onPopoverAnchorKeydown($event) {\n // if there is no content available, the popover should not open through enter key. So checking whether the canPopoverOpen flag is true or not.\n if (!this.canPopoverOpen) {\n return;\n }\n if ($event.key === 'Enter') {\n $event.stopPropagation();\n $event.preventDefault();\n this.showPopover();\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'class' || key === 'tabindex') {\n return;\n }\n if (key === 'contentsource') {\n // if there is no partial content available, the popover should not open\n if (this.contentsource === 'partial' && !this.content) {\n this.canPopoverOpen = false;\n }\n }\n if (key === 'content' && nv) {\n this.canPopoverOpen = true;\n }\n if (key === 'autoclose') {\n this.outsideclick = (nv === AUTOCLOSE_TYPE.OUTSIDECLICK || nv === AUTOCLOSE_TYPE.ALWAYS) ? true : false;\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.event = eventsMap[this.interaction];\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.anchorRef.nativeElement, this);\n this.containerTarget = getContainerTargetClass(this.nativeElement);\n // let parentElemPopover = $(this.nativeElement).parents();\n // if (parentElemPopover.closest('[wmTable]').length ||\n // parentElemPopover.closest('[wmtabs]').length ||\n // parentElemPopover.closest('modal-container').length) {\n // this.adaptiveposition = false;\n // }\n }\n\n ngOnDetach() {\n // Hide the popover container while attaching the next component as part of page reuse strategy.\n this.bsPopoverDirective.hide();\n }\n\n OnDestroy() {\n if (this.documentClickHandler) {\n document.removeEventListener('click', this.documentClickHandler, true);\n }\n const index = PopoverComponent.activePopovers.indexOf(this);\n if (index > -1) {\n PopoverComponent.activePopovers.splice(index, 1);\n }\n }\n}\n","<a [popover]=\"popoverTemplate\"\n [popoverContext]=\"context\"\n [popoverTitle]=\"title\"\n [placement]=\"popoverplacement\"\n [outsideClick]=\"outsideclick\"\n [triggers]=\"event\"\n (onShown)=\"onShown()\"\n (onHidden)=\"onHidden()\"\n containerClass=\"app-popover animated {{contentanimation}} {{popoverContainerCls}}\"\n [container]=\"containerTarget || '.wm-app'\"\n [isOpen]=\"isOpen\"\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n [class]=\"class\"\n [ngClass]=\"{'disable-popover': !canPopoverOpen}\"\n [adaptivePosition]=\"adaptiveposition\"\n boundariesElement=\"window\"\n [attr.aria-label]=\"arialabel || (badgevalue ? caption + ' ' + badgevalue : caption) || 'Popover menu'\"\n [attr.aria-expanded]=\"isOpen\"\n role=\"button\"\n #anchor\n name.bind=\"name\"\n wmAnchor\n animation.bind=\"animation\"\n badgevalue.bind=\"badgevalue\"\n caption.bind=\"caption\"\n encodeurl.bind=\"encodeurl\"\n hint.bind=\"hint\"\n hyperlink.bind=\"hyperlink\"\n iconurl.bind=\"iconurl\"\n iconwidth.bind=\"iconwidth\"\n iconheight.bind=\"iconheight\"\n iconmargin.bind=\"iconmargin\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n (keydown)=\"onPopoverAnchorKeydown($event)\">\n</a>\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/navigation/popover/src/popover.props.ts","../../../../../projects/components/widgets/navigation/popover/src/popover.component.ts","../../../../../projects/components/widgets/navigation/popover/src/popover.component.html","../../../../../projects/components/widgets/navigation/popover/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-popover',\n new Map(\n [\n ['autoclose', {value: 'outsideClick', ...PROP_STRING}],\n ['badgevalue', PROP_STRING],\n ['caption', {value: 'Link', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['content', PROP_STRING],\n ['contentanimation', PROP_STRING],\n ['contentsource', {value: 'partial', ...PROP_STRING}],\n ['encodeurl', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['hyperlink', {value: 'javascript:void(0)', 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 ['interaction', {value: 'click', ...PROP_STRING}],\n ['name', PROP_STRING],\n ['popoverarrow', {value: true, ...PROP_BOOLEAN}],\n ['popoverheight', PROP_STRING],\n ['popoverplacement', {value: 'bottom', ... PROP_STRING}],\n ['popoverwidth', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING],\n ['adaptiveposition', {value: true, ...PROP_BOOLEAN}]\n\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {PopoverDirective, PopoverModule} from 'ngx-bootstrap/popover';\n\nimport {\n addClass,\n adjustContainerPosition,\n adjustContainerRightEdges,\n App,\n findRootContainer,\n setCSSFromObj\n} from '@wm/core';\nimport {\n AUTOCLOSE_TYPE,\n getContainerTargetClass,\n ImagePipe,\n IWidgetConfig,\n provideAsWidgetRef,\n StylableComponent,\n styler\n} from '@wm/components/base';\nimport { AnchorComponent } from '@wm/components/basic/anchor';\n\nimport {registerProps} from './popover.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-popover-wrapper';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-popover',\n hostClass: DEFAULT_CLS\n};\n\nconst eventsMap = {\n click: 'click',\n hover: 'mouseenter:click',\n default: 'click mouseenter'\n};\n\nlet activePopover: PopoverComponent;\n\n@Component({\n standalone: true,\n imports: [CommonModule, PopoverModule, AnchorComponent],\n selector: 'wm-popover',\n templateUrl: './popover.component.html',\n providers: [\n provideAsWidgetRef(PopoverComponent)\n ]\n})\n\nexport class PopoverComponent extends StylableComponent implements OnInit, AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n public event: string;\n public isOpen = false;\n private closePopoverTimeout;\n public readonly popoverContainerCls;\n public canPopoverOpen = true;\n private Widgets;\n private Variables;\n private Actions;\n\n public interaction: string;\n public popoverarrow: boolean;\n public popoverwidth: string;\n public popoverheight: string;\n public contentanimation: string;\n public contentsource: string;\n public content: string;\n public popoverplacement: string;\n public outsideclick: boolean;\n public autoclose: string;\n\n public class: string;\n public title: string;\n public tabindex: any;\n public name: string;\n public adaptiveposition:boolean;\n public containerTarget: string;\n public hint: string;\n public arialabel: string;\n public caption: string;\n public badgevalue: string;\n \n // Anchor display properties\n public iconurl: string;\n public iconwidth: string;\n public iconheight: string;\n public iconmargin: string;\n public iconclass: string;\n public iconposition: string;\n private documentClickHandler: (e: MouseEvent) => void;\n private isClosingProgrammatically = false;\n private static activePopovers: PopoverComponent[] = [];\n private isHandlingClick = false;\n private preventFocusShift: boolean = false;\n private partialLoadedSubscription: any;\n private arrowPositionSubscription: any;\n\n @ViewChild(PopoverDirective) private bsPopoverDirective;\n @ViewChild('anchor', { static: true }) anchorRef: ElementRef;\n @ContentChild(TemplateRef) popoverTemplate;\n @ContentChild('partial') partialRef;\n\n constructor(inj: Injector, private app: App, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, private cdr: ChangeDetectorRef) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.popoverContainerCls = `app-popover-${this.widgetId}`;\n }\n\n private setupDocumentClickHandler() {\n if (this.documentClickHandler) {\n document.removeEventListener('click', this.documentClickHandler, true);\n }\n\n this.documentClickHandler = (event: MouseEvent) => {\n if (!this.isOpen) return;\n\n const target = event.target as HTMLElement;\n\n // Set flag to prevent open() from running during click handling\n this.isHandlingClick = true;\n\n try {\n // Check for special containers as before\n const isInsideSpecialContainer = !!(\n target.closest('.bs-datepicker-container') ||\n target.closest(\".dropdown-menu\")\n );\n\n if (isInsideSpecialContainer) {\n return;\n }\n\n const clickedPopoverIndex = PopoverComponent.activePopovers.findIndex(popover => {\n const popoverContainer = document.querySelector(`.${popover.popoverContainerCls}`);\n return popoverContainer?.contains(target);\n });\n\n // For anchor clicks, just close and prevent further handling\n if (this.anchorRef?.nativeElement?.contains(target)) {\n event.preventDefault();\n event.stopPropagation();\n this.isOpen ? this.close() : this.open()\n return;\n }\n\n if (clickedPopoverIndex === -1) {\n if (this.outsideclick) {\n this.closeAllPopovers();\n }\n } else {\n this.closeInnerPopovers(clickedPopoverIndex);\n }\n } finally {\n // Always reset the flag when click handling is done\n setTimeout(() => {\n this.isHandlingClick = false;\n }, 0);\n }\n };\n\n document.addEventListener('click', this.documentClickHandler, true);\n }\n\n private closeAllPopovers() {\n PopoverComponent.activePopovers.forEach(popover => {\n if (popover.outsideclick) {\n popover.isClosingProgrammatically = true;\n popover.close();\n }\n });\n }\n\n private closeInnerPopovers(clickedIndex: number) {\n for (let i = clickedIndex + 1; i < PopoverComponent.activePopovers.length; i++) {\n const popover = PopoverComponent.activePopovers[i];\n if (popover.outsideclick) {\n popover.isClosingProgrammatically = true;\n popover.close();\n }\n }\n }\n\n private isChildPopover(): boolean {\n return !!$(this.nativeElement).closest('.popover').length;\n }\n /**\n * Opens the popover, similar to the showPopover method.\n * @param preventFocusShift Optional parameter (default: false). When false, focus shifts to the popover upon opening. If set to true, focus remains on the triggering element.\n */\n public open(preventFocusShift?:boolean) {\n this.preventFocusShift = preventFocusShift ?? false;\n if (this.isHandlingClick) return;\n this.showPopover();\n if (!PopoverComponent.activePopovers.includes(this)) {\n PopoverComponent.activePopovers.push(this);\n }\n this.cdr.detectChanges();\n }\n\n // This mehtod is used to hide/close the popover.\n public close() {\n if (this.isOpen) {\n this.isClosingProgrammatically = true;\n this.isOpen = false;\n if (this.bsPopoverDirective) {\n this.bsPopoverDirective.hide();\n }\n const index = PopoverComponent.activePopovers.indexOf(this);\n if (index > -1) {\n PopoverComponent.activePopovers.splice(index, 1);\n }\n this.cdr.detectChanges();\n }\n }\n\n // Trigger on hiding popover\n public onHidden() {\n if (!this.isChildPopover() || this.isClosingProgrammatically) {\n this.invokeEventCallback('hide', {$event: {type: 'hide'}});\n this.isOpen = false;\n if (activePopover === this) {\n activePopover = null;\n }\n }\n this.isClosingProgrammatically = false;\n }\n\n private setFocusToPopoverLink() {\n setTimeout(() => this.anchorRef.nativeElement.focus(), 10);\n }\n\n private adjustPopoverArrowPosition(popoverElem, popoverLeftShift) {\n // Clean up any existing subscription before creating a new one\n if (this.arrowPositionSubscription) {\n this.arrowPositionSubscription.unsubscribe();\n this.arrowPositionSubscription = null;\n }\n \n this.arrowPositionSubscription = this.bsPopoverDirective._popover._ngZone.onStable.subscribe(() => {\n popoverElem.find('.popover-arrow').css('left', popoverLeftShift + 'px');\n });\n }\n\n private calculatePopoverPostion(element) {\n\n const popoverElem = $(element);\n let popoverLeft = popoverElem.offset().left;\n const popoverWidth = popoverElem[0].offsetWidth;\n const viewPortWidth = $(window).width();\n const parentDimesion = this.anchorRef.nativeElement.getBoundingClientRect();\n // Adjusting popover position, if it is not visible at left side\n if (popoverLeft < 0) {\n adjustContainerPosition(popoverElem, this.nativeElement, this.bsPopoverDirective._popover);\n const popoverLeftShift = 4;\n const arrowLeftShift = (parentDimesion.left + (parentDimesion.width / 2)) - popoverLeftShift;\n this.adjustPopoverArrowPosition(popoverElem, arrowLeftShift);\n }\n // Adjusting popover position, if it is not visible at right side\n if (popoverLeft + popoverWidth > viewPortWidth) {\n adjustContainerRightEdges(popoverElem, this.nativeElement, this.bsPopoverDirective._popover);\n setTimeout(() => {\n popoverLeft = popoverElem.offset().left;\n const popoverLeftAdjust = (popoverLeft + popoverWidth) - viewPortWidth;\n const popoverLeftShift = popoverLeft - popoverLeftAdjust;\n let arrowLeftShift ;\n if(popoverLeft<=100){\n arrowLeftShift = (parentDimesion.left + (parentDimesion.width / 2)) - popoverLeft;\n }else{\n arrowLeftShift = (parentDimesion.left + (parentDimesion.width / 2)) - popoverLeftShift;\n }\n if(viewPortWidth > 500){\n arrowLeftShift += 30;\n }\n this.adjustPopoverArrowPosition(popoverElem, arrowLeftShift);\n });\n }\n }\n\n // Trigger on showing popover\n public onShown() {\n const root = findRootContainer(this.$element);\n // if page styles have to be applied to popover then popover has to be child of page element.\n if (root) {\n $('body > popover-container').wrap('<' + root + '/>');\n }\n // Fix for [WMS-25125]: Not closing the existing opened popovers when the autoclose property is DISABLED\n if (!this.isChildPopover()) {\n if (activePopover && activePopover !== this &&\n activePopover.autoclose !== AUTOCLOSE_TYPE.DISABLED) {\n activePopover.isClosingProgrammatically = true;\n activePopover.close();\n }\n activePopover = this;\n }\n\n this.isOpen = true;\n if (!PopoverComponent.activePopovers.includes(this)) {\n PopoverComponent.activePopovers.push(this);\n }\n const popoverContainer = document.querySelector(`.${this.popoverContainerCls}`) as HTMLElement;\n if (popoverContainer) {\n popoverContainer.setAttribute('data-popover-id', this.widgetId);\n\n // Add click event listener to stop propagation\n popoverContainer.addEventListener('click', (event: Event) => {\n event.stopPropagation();\n });\n }\n setCSSFromObj(popoverContainer, {\n height: this.popoverheight,\n minWidth: this.popoverwidth,\n width: this.popoverwidth\n });\n if (!this.popoverarrow) {\n addClass(popoverContainer.querySelector('.arrow') as HTMLElement, 'hidden');\n }\n if (this.interaction === 'hover' || this.interaction === 'default') {\n\n // do not use addEventListener here\n // attaching the event this way will override the existing event handlers\n popoverContainer.onmouseenter = () => clearTimeout(this.closePopoverTimeout);\n popoverContainer.onmouseleave = () => this.hidePopover();\n this.anchorRef.nativeElement.onmouseenter = () => clearTimeout(this.closePopoverTimeout);\n this.anchorRef.nativeElement.onmouseleave = () => this.hidePopover();\n }\n if (this.outsideclick) {\n this.setupDocumentClickHandler();\n }\n setTimeout(() => {\n if (this.anchorRef?.nativeElement) {\n this.anchorRef.nativeElement.removeAttribute('aria-describedby');\n }\n });\n const deRegister = this.eventManager.addEventListener(popoverContainer, 'keydown.esc', () => {\n this.isOpen = false;\n this.setFocusToPopoverLink();\n deRegister();\n });\n const popoverStartBtn: HTMLElement = popoverContainer.querySelector('.popover-start');\n const popoverEndBtn: HTMLElement = popoverContainer.querySelector('.popover-end');\n popoverStartBtn.onkeydown = (event) => {\n // Check for Shift+Tab key\n if (event.shiftKey && event.key === 'Tab') {\n this.bsPopoverDirective.hide();\n event.preventDefault();\n this.setFocusToPopoverLink();\n this.isOpen = false; }\n };\n popoverEndBtn.onkeydown = (event) => {\n // Check for Tab key\n if (!event.shiftKey && event.key === 'Tab') {\n this.bsPopoverDirective.hide();\n event.preventDefault();\n this.setFocusToPopoverLink();\n this.isOpen = false; }\n };\n\n //Whenever autoclose property is set to 'always', adding the onclick listener to the popover container to close the popover.\n if (this.autoclose === AUTOCLOSE_TYPE.ALWAYS) {\n popoverContainer.onclick = () => this.close();\n }\n // Fix for [WMS-27656]: Added 'preventFocusShift' parameter (default: false).\n // By default, focus moves to the popover when it appears.\n // If 'preventFocusShift' is set to true, focus remains on the triggering element.\n if (this.preventFocusShift) {\n const activeElement = document.activeElement as HTMLElement; // Capture current focused element\n setTimeout(() => activeElement?.focus(), 0);\n } else {\n setTimeout(() => popoverStartBtn.focus(), 50);\n }\n\n // Adjusting popover position if the popover placement is top or bottom\n setTimeout( () => {\n if (!this.adaptiveposition ) {\n this.calculatePopoverPostion(popoverContainer);\n }\n // triggering onload and onshow events after popover content has rendered\n this.triggerPopoverEvents();\n });\n }\n\n triggerPopoverEvents() {\n if (this.contentsource === 'partial') {\n this.partialLoadedSubscription = this.app.subscribe('partialLoaded', () => {\n // Always clean up subscription first\n if (this.partialLoadedSubscription) {\n this.partialLoadedSubscription();\n this.partialLoadedSubscription = null;\n }\n \n // Check if component is still alive and partialRef exists\n if (!this.partialRef || !this.partialRef.nativeElement) {\n return;\n }\n \n const parEle = this.partialRef.nativeElement;\n let partialScope;\n\n if (parEle) {\n partialScope = parEle.widget;\n this.Widgets = partialScope.Widgets;\n this.Variables = partialScope.Variables;\n this.Actions = partialScope.Actions;\n this.invokeEventCallback('load');\n this.invokeEventCallback('show', {$event: {type: 'show'}});\n }\n });\n } else {\n this.Widgets = this.viewParent.Widgets;\n this.Variables = this.viewParent.Variables;\n this.Actions = this.viewParent.Actions;\n this.invokeEventCallback('show', {$event: {type: 'show'}});\n }\n }\n\n private hidePopover() {\n this.isClosingProgrammatically = true;\n this.closePopoverTimeout = setTimeout(() => this.isOpen = false, 500);\n }\n\n private showPopover() {\n this.bsPopoverDirective.show();\n }\n\n onPopoverAnchorKeydown($event) {\n // if there is no content available, the popover should not open through enter key. So checking whether the canPopoverOpen flag is true or not.\n if (!this.canPopoverOpen) {\n return;\n }\n if ($event.key === 'Enter') {\n $event.stopPropagation();\n $event.preventDefault();\n this.showPopover();\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'class' || key === 'tabindex') {\n return;\n }\n if (key === 'contentsource') {\n // if there is no partial content available, the popover should not open\n if (this.contentsource === 'partial' && !this.content) {\n this.canPopoverOpen = false;\n }\n }\n if (key === 'content' && nv) {\n this.canPopoverOpen = true;\n }\n if (key === 'autoclose') {\n this.outsideclick = (nv === AUTOCLOSE_TYPE.OUTSIDECLICK || nv === AUTOCLOSE_TYPE.ALWAYS) ? true : false;\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.event = eventsMap[this.interaction];\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.anchorRef.nativeElement, this);\n this.containerTarget = getContainerTargetClass(this.nativeElement);\n // let parentElemPopover = $(this.nativeElement).parents();\n // if (parentElemPopover.closest('[wmTable]').length ||\n // parentElemPopover.closest('[wmtabs]').length ||\n // parentElemPopover.closest('modal-container').length) {\n // this.adaptiveposition = false;\n // }\n }\n\n ngOnDetach() {\n // Hide the popover container while attaching the next component as part of page reuse strategy.\n this.bsPopoverDirective.hide();\n }\n\n ngOnDestroy() {\n // Unsubscribe from partialLoaded event\n if (this.partialLoadedSubscription) {\n this.partialLoadedSubscription();\n this.partialLoadedSubscription = null;\n }\n \n // Unsubscribe from arrow position adjustment\n if (this.arrowPositionSubscription) {\n this.arrowPositionSubscription.unsubscribe();\n this.arrowPositionSubscription = null;\n }\n \n // Close popover if open\n if (this.isOpen && this.bsPopoverDirective) {\n this.bsPopoverDirective.hide();\n }\n \n // Clear timeout\n if (this.closePopoverTimeout) {\n clearTimeout(this.closePopoverTimeout);\n this.closePopoverTimeout = null;\n }\n \n // Remove document click handler\n if (this.documentClickHandler) {\n document.removeEventListener('click', this.documentClickHandler, true);\n this.documentClickHandler = null;\n }\n \n // Remove from active popovers array\n const index = PopoverComponent.activePopovers.indexOf(this);\n if (index > -1) {\n PopoverComponent.activePopovers.splice(index, 1);\n }\n \n // Clear anchor event handlers\n if (this.anchorRef?.nativeElement) {\n this.anchorRef.nativeElement.onmouseenter = null;\n this.anchorRef.nativeElement.onmouseleave = null;\n }\n\n // MEMORY LEAK FIX: Clear all ViewChild and ContentChild references\n // These retain the entire component tree including parent contexts (colDef, etc.)\n this.bsPopoverDirective = null;\n this.anchorRef = null;\n this.popoverTemplate = null;\n this.partialRef = null;\n \n // Call parent cleanup\n super.ngOnDestroy();\n }\n}\n","<a [popover]=\"popoverTemplate\"\n [popoverContext]=\"context\"\n [popoverTitle]=\"title\"\n [placement]=\"popoverplacement\"\n [outsideClick]=\"outsideclick\"\n [triggers]=\"event\"\n (onShown)=\"onShown()\"\n (onHidden)=\"onHidden()\"\n containerClass=\"app-popover animated {{contentanimation}} {{popoverContainerCls}}\"\n [container]=\"containerTarget || '.wm-app'\"\n [isOpen]=\"isOpen\"\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n [class]=\"class\"\n [ngClass]=\"{'disable-popover': !canPopoverOpen}\"\n [adaptivePosition]=\"adaptiveposition\"\n boundariesElement=\"window\"\n [attr.aria-label]=\"arialabel || (badgevalue ? caption + ' ' + badgevalue : caption) || 'Popover menu'\"\n [attr.aria-expanded]=\"isOpen\"\n role=\"button\"\n #anchor\n name.bind=\"name\"\n wmAnchor\n animation.bind=\"animation\"\n badgevalue.bind=\"badgevalue\"\n caption.bind=\"caption\"\n encodeurl.bind=\"encodeurl\"\n hint.bind=\"hint\"\n hyperlink.bind=\"hyperlink\"\n iconurl.bind=\"iconurl\"\n iconwidth.bind=\"iconwidth\"\n iconheight.bind=\"iconheight\"\n iconmargin.bind=\"iconmargin\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n (keydown)=\"onPopoverAnchorKeydown($event)\">\n</a>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AfterViewInit, ChangeDetectorRef, ElementRef, Injector, OnInit } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { App } from '@wm/core';
|
|
3
3
|
import { StylableComponent } from '@wm/components/base';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class PopoverComponent extends StylableComponent implements OnInit, AfterViewInit {
|
|
5
|
+
export declare class PopoverComponent extends StylableComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
6
6
|
private app;
|
|
7
7
|
private cdr;
|
|
8
8
|
static initializeProps: void;
|
|
@@ -34,11 +34,19 @@ export declare class PopoverComponent extends StylableComponent implements OnIni
|
|
|
34
34
|
arialabel: string;
|
|
35
35
|
caption: string;
|
|
36
36
|
badgevalue: string;
|
|
37
|
+
iconurl: string;
|
|
38
|
+
iconwidth: string;
|
|
39
|
+
iconheight: string;
|
|
40
|
+
iconmargin: string;
|
|
41
|
+
iconclass: string;
|
|
42
|
+
iconposition: string;
|
|
37
43
|
private documentClickHandler;
|
|
38
44
|
private isClosingProgrammatically;
|
|
39
45
|
private static activePopovers;
|
|
40
46
|
private isHandlingClick;
|
|
41
47
|
private preventFocusShift;
|
|
48
|
+
private partialLoadedSubscription;
|
|
49
|
+
private arrowPositionSubscription;
|
|
42
50
|
private bsPopoverDirective;
|
|
43
51
|
anchorRef: ElementRef;
|
|
44
52
|
popoverTemplate: any;
|
|
@@ -67,7 +75,7 @@ export declare class PopoverComponent extends StylableComponent implements OnIni
|
|
|
67
75
|
ngOnInit(): void;
|
|
68
76
|
ngAfterViewInit(): void;
|
|
69
77
|
ngOnDetach(): void;
|
|
70
|
-
|
|
78
|
+
ngOnDestroy(): void;
|
|
71
79
|
static ɵfac: i0.ɵɵFactoryDeclaration<PopoverComponent, [null, null, { optional: true; }, null]>;
|
|
72
80
|
static ɵcmp: i0.ɵɵComponentDeclaration<PopoverComponent, "wm-popover", never, {}, {}, ["popoverTemplate", "partialRef"], never, true, never>;
|
|
73
81
|
}
|
|
@@ -151,6 +151,14 @@
|
|
|
151
151
|
base.updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);
|
|
152
152
|
}, 1);
|
|
153
153
|
}
|
|
154
|
+
ngOnDestroy() {
|
|
155
|
+
// MEMORY LEAK FIX: Destroy EventNotifier to release subscribers
|
|
156
|
+
if (this._eventNotifier) {
|
|
157
|
+
this._eventNotifier.destroy();
|
|
158
|
+
this._eventNotifier = null;
|
|
159
|
+
}
|
|
160
|
+
super.ngOnDestroy();
|
|
161
|
+
}
|
|
154
162
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: LayoutDirective, deps: [{ token: i0__namespace.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
155
163
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LayoutDirective, isStandalone: true, selector: "[wmLayout]", providers: [
|
|
156
164
|
base.provideAsWidgetRef(LayoutDirective)
|
|
@@ -223,12 +231,22 @@
|
|
|
223
231
|
}
|
|
224
232
|
});
|
|
225
233
|
this.registerDestroyListener(() => {
|
|
226
|
-
if (this.pullToRefreshIns.
|
|
227
|
-
this.pullToRefreshIns.
|
|
234
|
+
if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {
|
|
235
|
+
this.pullToRefreshIns.destroy();
|
|
236
|
+
this.pullToRefreshIns = null;
|
|
228
237
|
}
|
|
229
238
|
});
|
|
230
239
|
}
|
|
231
240
|
}
|
|
241
|
+
ngOnDestroy() {
|
|
242
|
+
// MEMORY LEAK FIX: Clean up pullToRefresh instance
|
|
243
|
+
// This is already handled by registerDestroyListener, but adding explicit cleanup as backup
|
|
244
|
+
if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {
|
|
245
|
+
this.pullToRefreshIns.destroy();
|
|
246
|
+
this.pullToRefreshIns = null;
|
|
247
|
+
}
|
|
248
|
+
super.ngOnDestroy();
|
|
249
|
+
}
|
|
232
250
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: PageContentComponent, deps: [{ token: i0__namespace.Injector }, { token: i2__namespace.App }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
233
251
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageContentComponent, isStandalone: true, selector: "[wmPageContent]", providers: [
|
|
234
252
|
base.provideAsWidgetRef(PageContentComponent)
|
|
@@ -26,6 +26,14 @@ export class LayoutDirective extends StylableComponent {
|
|
|
26
26
|
updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);
|
|
27
27
|
}, 1);
|
|
28
28
|
}
|
|
29
|
+
ngOnDestroy() {
|
|
30
|
+
// MEMORY LEAK FIX: Destroy EventNotifier to release subscribers
|
|
31
|
+
if (this._eventNotifier) {
|
|
32
|
+
this._eventNotifier.destroy();
|
|
33
|
+
this._eventNotifier = null;
|
|
34
|
+
}
|
|
35
|
+
super.ngOnDestroy();
|
|
36
|
+
}
|
|
29
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
30
38
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LayoutDirective, isStandalone: true, selector: "[wmLayout]", providers: [
|
|
31
39
|
provideAsWidgetRef(LayoutDirective)
|
|
@@ -47,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
47
55
|
}, {
|
|
48
56
|
type: Optional
|
|
49
57
|
}] }] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9wYWdlL2RlZmF1bHQvc3JjL2xheW91dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFOUYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRS9DLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ3pDLE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLENBQUM7QUFVeEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQWlCO2FBQzNDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBSXpDLFlBQVksR0FBYSxFQUEwQyxlQUFvQjtRQUNuRixLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUh2QyxtQkFBYyxHQUFHLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBSWxELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsU0FBaUIsRUFBRSxHQUFHLElBQWdCO1FBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxlQUFlO1FBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3hGLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxXQUFXO1FBQ1AsZ0VBQWdFO1FBQ2hFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDL0IsQ0FBQztRQUVELEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQWxDUSxlQUFlLDBDQUtXLGtCQUFrQjttR0FMNUMsZUFBZSx5REFMYjtZQUNQLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztTQUN0Qzs7NEZBR1EsZUFBZTtrQkFSM0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDZCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNQLGtCQUFrQixpQkFBaUI7cUJBQ3RDO29CQUNELFFBQVEsRUFBRSxVQUFVO2lCQUN2Qjs7MEJBTStCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0V2ZW50Tm90aWZpZXJ9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IHVwZGF0ZURldmljZVZpZXcsIHByb3ZpZGVBc1dpZGdldFJlZiwgU3R5bGFibGVDb21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vbGF5b3V0LnByb3BzJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLXBhZ2UgY29udGFpbmVyJztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLWxheW91dCcsIGhvc3RDbGFzczogREVGQVVMVF9DTFN9O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3bUxheW91dF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoTGF5b3V0RGlyZWN0aXZlKVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bUxheW91dCdcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0RGlyZWN0aXZlIGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwcml2YXRlIF9ldmVudE5vdGlmaWVyID0gbmV3IEV2ZW50Tm90aWZpZXIoZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIGNoaWxkIGNvbXBvbmVudCBjYW4gbm90aWZ5IHBhZ2UgdXNpbmcgdGhpcyBtZXRob2QuIE5vdGlmaWVkIGV2ZW50IHdpbGwgYmUgcGFzc2VkIHRvXG4gICAgICogc3Vic2NyaWJlZCBjaGlsZHJlbiBvbmx5IGFmdGVyIHBhZ2UgaW5pdGlhbGl6YXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gICAgICogQHBhcmFtIGRhdGFcbiAgICAgKi9cbiAgICBwdWJsaWMgbm90aWZ5KGV2ZW50TmFtZTogc3RyaW5nLCAuLi5kYXRhOiBBcnJheTxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2V2ZW50Tm90aWZpZXIubm90aWZ5LmFwcGx5KHRoaXMuX2V2ZW50Tm90aWZpZXIsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB1cGRhdGVEZXZpY2VWaWV3KHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy5nZXRBcHBJbnN0YW5jZSgpLmlzVGFibGV0QXBwbGljYXRpb25UeXBlKTtcbiAgICAgICAgfSwgMSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogRGVzdHJveSBFdmVudE5vdGlmaWVyIHRvIHJlbGVhc2Ugc3Vic2NyaWJlcnNcbiAgICAgICAgaWYgKHRoaXMuX2V2ZW50Tm90aWZpZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50Tm90aWZpZXIuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5fZXZlbnROb3RpZmllciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -44,12 +44,22 @@ export class PageContentComponent extends StylableComponent {
|
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
this.registerDestroyListener(() => {
|
|
47
|
-
if (this.pullToRefreshIns.
|
|
48
|
-
this.pullToRefreshIns.
|
|
47
|
+
if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {
|
|
48
|
+
this.pullToRefreshIns.destroy();
|
|
49
|
+
this.pullToRefreshIns = null;
|
|
49
50
|
}
|
|
50
51
|
});
|
|
51
52
|
}
|
|
52
53
|
}
|
|
54
|
+
ngOnDestroy() {
|
|
55
|
+
// MEMORY LEAK FIX: Clean up pullToRefresh instance
|
|
56
|
+
// This is already handled by registerDestroyListener, but adding explicit cleanup as backup
|
|
57
|
+
if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {
|
|
58
|
+
this.pullToRefreshIns.destroy();
|
|
59
|
+
this.pullToRefreshIns = null;
|
|
60
|
+
}
|
|
61
|
+
super.ngOnDestroy();
|
|
62
|
+
}
|
|
53
63
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageContentComponent, deps: [{ token: i0.Injector }, { token: i1.App }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
64
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageContentComponent, isStandalone: true, selector: "[wmPageContent]", providers: [
|
|
55
65
|
provideAsWidgetRef(PageContentComponent)
|
|
@@ -66,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
66
76
|
}, {
|
|
67
77
|
type: Optional
|
|
68
78
|
}] }] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9wYWdlL2RlZmF1bHQvc3JjL3BhZ2UtY29udGVudC9wYWdlLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL3BhZ2UvZGVmYXVsdC9zcmMvcGFnZS1jb250ZW50L3BhZ2UtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBQyxHQUFHLEVBQUUsV0FBVyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFFckQsTUFBTSxXQUFXLEdBQUcscUNBQXFDLENBQUM7QUFDMUQsTUFBTSxhQUFhLEdBQUcsRUFBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxDQUFDO0FBVTlFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxpQkFBaUI7YUFDaEQsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFNekMsWUFBWSxHQUFhLEVBQVUsR0FBUSxFQUEwQyxlQUFvQjtRQUNyRyxLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQURaLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFHdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUU7WUFDekUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMvQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQVcsRUFBRSxFQUFPLEVBQUUsRUFBUTtRQUMzQyxJQUFJLEdBQUcsS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUN4QixXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLENBQUM7YUFBTSxJQUFJLEdBQUcsS0FBSyxlQUFlLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdkMsMkdBQTJHO1lBQzNHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRUQsOEhBQThIO0lBQ3RILGlCQUFpQjtRQUNyQixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLHFCQUFxQixDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO2dCQUM1RSxJQUFJLHFCQUFxQixFQUFFLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxFQUFFO2dCQUM5QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ3pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDakMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsbURBQW1EO1FBQ25ELDRGQUE0RjtRQUM1RixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDakMsQ0FBQztRQUVELEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQTVEUSxvQkFBb0IsNkRBT3dCLGtCQUFrQjttR0FQOUQsb0JBQW9CLDhEQUpsQjtZQUNQLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO1NBQzNDLGlEQ2hCTCwyQkFBeUI7OzRGRGtCWixvQkFBb0I7a0JBUmhDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlCQUFpQixhQUVoQjt3QkFDUCxrQkFBa0Isc0JBQXNCO3FCQUMzQzs7MEJBUzZDLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0FwcCwgc3dpdGNoQ2xhc3N9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEFQUExZX1NUWUxFU19UWVBFLCBQdWxsVG9SZWZyZXNoLCBwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50LCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vcGFnZS1jb250ZW50LnByb3BzJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLXBhZ2UtY29udGVudCBhcHAtY29udGVudC1jb2x1bW4nO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tcGFnZS1jb250ZW50JywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbd21QYWdlQ29udGVudF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYWdlLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoUGFnZUNvbnRlbnRDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBQYWdlQ29udGVudENvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIHB1bGxUb1JlZnJlc2hJbnM6IFB1bGxUb1JlZnJlc2g7XG4gICAgcHJpdmF0ZSBwdWxsdG9yZWZyZXNoOiBib29sZWFuO1xuICAgIHByaXZhdGUgY2hpbGRQdWxsVG9SZWZyZXNoOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgcHJpdmF0ZSBhcHA6IEFwcCwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcblxuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLCBBUFBMWV9TVFlMRVNfVFlQRS5DT05UQUlORVIpO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIodGhpcy5hcHAuc3Vic2NyaWJlKCdwdWxsVG9SZWZyZXNoOmVuYWJsZScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRQdWxsVG9SZWZyZXNoID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5pdFB1bGxUb1JlZnJlc2goKTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdjb2x1bW53aWR0aCcpIHtcbiAgICAgICAgICAgIHN3aXRjaENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYGNvbC1tZC0ke252fSBjb2wtc20tJHtudn1gLCBgY29sLW1kLSR7b3Z9IGNvbC1zbS0ke292fWApO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3B1bGx0b3JlZnJlc2gnICYmIG52KSB7XG4gICAgICAgICAgICAvLyBjcmVhdGluZyBpbnN0YW5jZSBhZnRlciB0aW1lb3V0IGFzIHRoZSBzbW9vdGhzY3JvbGwgc3R5bGVzIHdoZXJlIGdldHRpbmcgYWRkZWQgb24gcHVsbCByZWZyZXNoLWNvbnRhaW5lclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UHVsbFRvUmVmcmVzaCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdoZW4gbGlzdCBjb21wb25lbnQgaXMgcmVhZHksIHB1bGx0b3JlZnJlc2ggaW5zdGFuY2UgaXMgY3JlYXRlZCBhbmQgdGhpcyBhcHBlbmRzIHB1bGxUb1JlZnJlc2ggZWxlbWVudCBvbiB0aGUgcGFnZSBjb250ZW50LlxuICAgIHByaXZhdGUgaW5pdFB1bGxUb1JlZnJlc2goKSB7XG4gICAgICAgIGNvbnN0IGhhc1B1bGxUb1JlZnJlc2hFdmVudCA9IHRoaXMuaGFzRXZlbnRDYWxsYmFjaygncHVsbHRvcmVmcmVzaCcpO1xuICAgICAgICBpZiAoIXRoaXMucHVsbFRvUmVmcmVzaElucyAmJiAodGhpcy5jaGlsZFB1bGxUb1JlZnJlc2ggfHwgaGFzUHVsbFRvUmVmcmVzaEV2ZW50KSAmJiB0aGlzLnB1bGx0b3JlZnJlc2gpIHtcbiAgICAgICAgICAgIHRoaXMucHVsbFRvUmVmcmVzaElucyA9IG5ldyBQdWxsVG9SZWZyZXNoKCQodGhpcy5uYXRpdmVFbGVtZW50KSwgdGhpcy5hcHAsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzUHVsbFRvUmVmcmVzaEV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygncHVsbHRvcmVmcmVzaCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSgncHVsbHRvcmVmcmVzaCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHVsbFRvUmVmcmVzaElucyAmJiB0aGlzLnB1bGxUb1JlZnJlc2hJbnMuZGVzdHJveSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnB1bGxUb1JlZnJlc2hJbnMuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnB1bGxUb1JlZnJlc2hJbnMgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYW4gdXAgcHVsbFRvUmVmcmVzaCBpbnN0YW5jZVxuICAgICAgICAvLyBUaGlzIGlzIGFscmVhZHkgaGFuZGxlZCBieSByZWdpc3RlckRlc3Ryb3lMaXN0ZW5lciwgYnV0IGFkZGluZyBleHBsaWNpdCBjbGVhbnVwIGFzIGJhY2t1cFxuICAgICAgICBpZiAodGhpcy5wdWxsVG9SZWZyZXNoSW5zICYmIHRoaXMucHVsbFRvUmVmcmVzaElucy5kZXN0cm95KSB7XG4gICAgICAgICAgICB0aGlzLnB1bGxUb1JlZnJlc2hJbnMuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5wdWxsVG9SZWZyZXNoSW5zID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
|
|
@@ -131,6 +131,14 @@ class LayoutDirective extends StylableComponent {
|
|
|
131
131
|
updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);
|
|
132
132
|
}, 1);
|
|
133
133
|
}
|
|
134
|
+
ngOnDestroy() {
|
|
135
|
+
// MEMORY LEAK FIX: Destroy EventNotifier to release subscribers
|
|
136
|
+
if (this._eventNotifier) {
|
|
137
|
+
this._eventNotifier.destroy();
|
|
138
|
+
this._eventNotifier = null;
|
|
139
|
+
}
|
|
140
|
+
super.ngOnDestroy();
|
|
141
|
+
}
|
|
134
142
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
135
143
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LayoutDirective, isStandalone: true, selector: "[wmLayout]", providers: [
|
|
136
144
|
provideAsWidgetRef(LayoutDirective)
|
|
@@ -203,12 +211,22 @@ class PageContentComponent extends StylableComponent {
|
|
|
203
211
|
}
|
|
204
212
|
});
|
|
205
213
|
this.registerDestroyListener(() => {
|
|
206
|
-
if (this.pullToRefreshIns.
|
|
207
|
-
this.pullToRefreshIns.
|
|
214
|
+
if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {
|
|
215
|
+
this.pullToRefreshIns.destroy();
|
|
216
|
+
this.pullToRefreshIns = null;
|
|
208
217
|
}
|
|
209
218
|
});
|
|
210
219
|
}
|
|
211
220
|
}
|
|
221
|
+
ngOnDestroy() {
|
|
222
|
+
// MEMORY LEAK FIX: Clean up pullToRefresh instance
|
|
223
|
+
// This is already handled by registerDestroyListener, but adding explicit cleanup as backup
|
|
224
|
+
if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {
|
|
225
|
+
this.pullToRefreshIns.destroy();
|
|
226
|
+
this.pullToRefreshIns = null;
|
|
227
|
+
}
|
|
228
|
+
super.ngOnDestroy();
|
|
229
|
+
}
|
|
212
230
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageContentComponent, deps: [{ token: i0.Injector }, { token: i2.App }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
213
231
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageContentComponent, isStandalone: true, selector: "[wmPageContent]", providers: [
|
|
214
232
|
provideAsWidgetRef(PageContentComponent)
|