@wavemaker/app-ng-runtime 11.14.1-rc.6311 → 11.14.2-rc.6311
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 +27 -1
- package/components/basic/search/esm2022/scrollable.directive.mjs +11 -2
- package/components/basic/search/esm2022/search.component.mjs +18 -1
- package/components/basic/search/fesm2022/index.mjs +27 -1
- 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
|
@@ -99,6 +99,16 @@ export class NavComponent extends DatasetAwareNavComponent {
|
|
|
99
99
|
this.selecteditem = omit($item, ['children', 'value']);
|
|
100
100
|
this.invokeEventCallback('select', { $event, $item: this.selecteditem });
|
|
101
101
|
}
|
|
102
|
+
ngOnDestroy() {
|
|
103
|
+
// MEMORY LEAK FIX: Cleanup
|
|
104
|
+
// Note: Subscription is already cleaned up via registerDestroyListener in constructor
|
|
105
|
+
// but adding explicit OnDestroy to ensure proper cleanup lifecycle
|
|
106
|
+
// Clear references
|
|
107
|
+
this.selecteditem = null;
|
|
108
|
+
this.pageScope = null;
|
|
109
|
+
this.itemActionFn = null;
|
|
110
|
+
super.ngOnDestroy();
|
|
111
|
+
}
|
|
102
112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i2.UserDefinedExecutionContext }, { token: i2.App }, { token: 'select.event', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
103
113
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NavComponent, isStandalone: true, selector: "[wmNav]", providers: [
|
|
104
114
|
provideAsWidgetRef(NavComponent)
|
|
@@ -118,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
118
128
|
}, {
|
|
119
129
|
type: Optional
|
|
120
130
|
}] }] });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL25hdi9uYXYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL25hdmlnYXRpb24vbWVudS9zcmMvbmF2L25hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7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QUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7K0dBcEdRLFlBQVksK0pBb0JOLGNBQWMsOEJBQ2pCLGtCQUFrQjttR0FyQnJCLFlBQVksc0RBSlY7WUFDUCxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7U0FDbkMsaURDOUJMLHErREFtREEsK0REMUJjLFlBQVksa1dBQUUsZ0JBQWdCLDZXQUFFLGVBQWUscUdBQW1CLGFBQWEsMEVBQUcsZ0JBQWdCOzs0RkFPbkcsWUFBWTtrQkFUeEIsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxnQkFBZ0IsRUFBRyxZQUNyRyxTQUFTLGFBRVI7d0JBQ1Asa0JBQWtCLGNBQWM7cUJBQ25DOzswQkFzQkksU0FBUzsyQkFBQyxjQUFjOzswQkFDeEIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5jaG9yQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzaWMvYW5jaG9yJztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9uYXYtaXRlbS9uYXYtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBhZGRDbGFzcywgQXBwLCB0cmlnZ2VySXRlbUFjdGlvbiwgVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0IH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQVBQTFlfU1RZTEVTX1RZUEUsIERhdGFzZXRBd2FyZU5hdkNvbXBvbmVudCwgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vbmF2LnByb3BzJztcbmltcG9ydCB7IGZpbmQsIGZvckVhY2gsIGlzRW1wdHksIG9taXQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ25hdiBhcHAtbmF2JztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7IHdpZGdldFR5cGU6ICd3bS1uYXYnLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTIH07XG5cbmNvbnN0IE5hdkNsYXNzTWFwID0ge1xuICAgIHBpbGxzOiAnbmF2LXBpbGxzJyxcbiAgICB0YWJzOiAnbmF2LXRhYnMnLFxuICAgIG5hdmJhcjogJ25hdmJhci1uYXYnXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJzRHJvcGRvd25Nb2R1bGUsIEFuY2hvckNvbXBvbmVudCwgZm9yd2FyZFJlZigoKSA9PiBNZW51Q29tcG9uZW50KSwgTmF2SXRlbURpcmVjdGl2ZSwgXSxcbiAgICBzZWxlY3RvcjogJ1t3bU5hdl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXYuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoTmF2Q29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmF2Q29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIHNlbGVjdGVkaXRlbTtcbiAgICBwdWJsaWMgdHlwZTtcbiAgICBwdWJsaWMgZGlzYWJsZU1lbnVDb250ZXh0OiBib29sZWFuO1xuICAgIHB1YmxpYyBsYXlvdXQ7XG4gICAgcHVibGljIHNob3dvbmhvdmVyOiBib29sZWFuO1xuICAgIHByaXZhdGUgaXRlbUFjdGlvbkZuOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIHBhZ2VTY29wZTogYW55O1xuICAgIHByaXZhdGUgZ2V0IGFjdGl2ZVBhZ2VOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHAuYWN0aXZlUGFnZU5hbWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgdXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0OiBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3NlbGVjdC5ldmVudCcpIHNlbGVjdEV2ZW50Q0IsXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFzZWxlY3RFdmVudENCO1xuICAgICAgICB0aGlzLnBhZ2VTY29wZSA9IHRoaXMudmlld1BhcmVudDtcbiAgICAgICAgLy8gRm9yIHNlbGVjdGluZyB0aGUgaXRlbSBvbiBsb2FkXG4gICAgICAgIGNvbnN0IGRhdGFzZXRTdWJzY3JpcHRpb24gPSB0aGlzLm5vZGVzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc0VtcHR5KHRoaXMubm9kZXMpKSB7XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1Gb3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdldEl0ZW0gPSAobm9kZXMsIGlzTWVudVdpZGdldD8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZm9yRWFjaChub2RlcywgKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtRm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5pc2FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Gb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZGl0ZW0gPSBpc01lbnVXaWRnZXQgPyBvbWl0KGl0ZW0sIFsnY2hpbGRyZW4nLCAndmFsdWUnXSkgOiBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyAkZXZlbnQ6IHt9LCAkaXRlbTogaXRlbS52YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGFjdGl2ZSBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckl0ZW1BY3Rpb24odGhpcywgaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gX3NlbGVjdGVkIGlzIHVzZWQgdG8gYWRkIGFjdGl2ZSBjbGFzcyBmb3IgbmF2IGl0ZW0uIElmIHdlIGhhdmUgY2hpbGRyZW4gaW5zaWRlIG5hdiB3aWRnZXQgdGhlbiBpdCBpcyBub3QgcmVxdWlyZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc01lbnVXaWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5fc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRW1wdHkoaXRlbS5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJdGVtKGl0ZW0uY2hpbGRyZW4sICdtZW51Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZ2V0SXRlbSh0aGlzLm5vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzZXROYXZUeXBlKHR5cGUpIHtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBOYXZDbGFzc01hcFt0eXBlXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROYXZMYXlvdXQobGF5b3V0KSB7XG4gICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYG5hdi0ke2xheW91dH1gKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25OYXZTZWxlY3QoJGV2ZW50OiBFdmVudCwgaXRlbTogYW55KSB7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGZpbmQodGhpcy5ub2RlcywgJ19zZWxlY3RlZCcpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBkZWxldGUgc2VsZWN0ZWRJdGVtLl9zZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRpdGVtID0gaXRlbS52YWx1ZTtcblxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3NlbGVjdCcsIHsgJGV2ZW50LCAkaXRlbTogaXRlbS52YWx1ZSB9KTtcbiAgICAgICAgLy8gVHJpZ2dlciB0aGUgYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBhY3RpdmUgaXRlbVxuICAgICAgICB0cmlnZ2VySXRlbUFjdGlvbih0aGlzLCBpdGVtKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXROYXZUeXBlKHRoaXMudHlwZSk7XG4gICAgICAgIHRoaXMuc2V0TmF2TGF5b3V0KHRoaXMubGF5b3V0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpbnZva2VkIGZyb20gdGhlIG1lbnUgd2lkZ2V0IHdoZW4gYSBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAgICogQHBhcmFtICRldmVudFxuICAgICAqIEBwYXJhbSB3aWRnZXRcbiAgICAgKiBAcGFyYW0gJGl0ZW1cbiAgICAgKi9cbiAgICBvbk1lbnVJdGVtU2VsZWN0KCRldmVudCwgd2lkZ2V0LCAkaXRlbSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkaXRlbSA9IG9taXQoJGl0ZW0sIFsnY2hpbGRyZW4nLCAndmFsdWUnXSk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyAkZXZlbnQsICRpdGVtOiB0aGlzLnNlbGVjdGVkaXRlbSB9KTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI21lbnVSZWYgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgPGRpdiB3bU1lbnUgZHJvcGRvd25cbiAgICB0eXBlPVwiYW5jaG9yXCJcbiAgICBhdXRvY2xvc2UuYmluZD1cImF1dG9jbG9zZVwiXG4gICAgaWNvbmNsYXNzLmJpbmQ9XCJpdGVtLmljb25cIlxuICAgIGF1dG9vcGVuLmJpbmQ9XCJhdXRvb3BlblwiXG4gICAgY2FwdGlvbi5iaW5kPVwiaXRlbS5sYWJlbFwiXG4gICAgaGludC5iaW5kPVwiaXRlbS5oaW50XCJcbiAgICBkYXRhc2V0LmJpbmQ9XCJpdGVtLmNoaWxkcmVuXCJcbiAgICBiYWRnZXZhbHVlLmJpbmQ9XCJpdGVtLmJhZGdlXCJcbiAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiXG4gICAgc2hvd29uaG92ZXIuYmluZD1cInNob3dvbmhvdmVyXCJcbiAgc2VsZWN0LmV2ZW50PVwib25NZW51SXRlbVNlbGVjdCgkZXZlbnQsIHdpZGdldCwgJGl0ZW0pXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FuY2hvclJlZiBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiIGxldC1saVJlZj1cImxpUmVmXCI+XG4gIDxhIHdtQW5jaG9yXG4gICAgW2Rpc2FibGVNZW51Q29udGV4dF09XCJkaXNhYmxlTWVudUNvbnRleHQgfHwgISFpdGVtLmFjdGlvblwiXG4gICAgW3dtTmF2aWdhdGlvbkNvbnRyb2xdPVwiaXRlbS5saW5rXCJcbiAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXRlbS5fc2VsZWN0ZWQgfHwgKCFpc2FjdGl2ZSAmJiBpdGVtLmxpbmsgPT09ICcjLycgKyBhY3RpdmVQYWdlTmFtZSkgPyAncGFnZScgOiAnJ1wiXG4gICAgY2FwdGlvbi5iaW5kPVwiaXRlbS5sYWJlbFwiXG4gICAgaGludC5iaW5kPVwiaXRlbS5oaW50XCJcbiAgICBpY29uY2xhc3MuYmluZD1cIml0ZW0uaWNvblwiXG4gICAgYmFkZ2V2YWx1ZS5iaW5kPVwiaXRlbS5iYWRnZVwiXG4gICAgaWNvbnBvc2l0aW9uLmJpbmQ9XCJpY29ucG9zaXRpb25cIlxuICBjbGljay5ldmVudD1cIm9uTmF2U2VsZWN0KCRldmVudCwgaXRlbSlcIj48L2E+XG48L25nLXRlbXBsYXRlPlxuXG5AZm9yIChpdGVtIG9mIG5vZGVzOyB0cmFjayBpdGVtOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcbiAgPGxpICNsaVJlZj1cIm5hdkl0ZW1SZWZcIlxuICAgIFtuZ0NsYXNzXT1cInthY3RpdmU6IGl0ZW0uX3NlbGVjdGVkIHx8ICghaXNhY3RpdmUgJiYgaXRlbS5saW5rID09PSAnIy8nICsgYWN0aXZlUGFnZU5hbWUpfVwiXG4gICAgY2xhc3M9XCJhcHAtbmF2LWl0ZW0ge3tpdGVtLmNsYXNzfX1cIlxuICAgIHdtTmF2SXRlbT5cbiAgICBAaWYgKCFpdGVtLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhbmNob3JSZWZcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGluZGV4OmluZGV4LCBsaVJlZjogbGlSZWZ9XCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcl09XCJjcmVhdGVDdXN0b21JbmplY3RvcignYW5jaG9yXycgKyBsaVJlZi50cmFja0lkLCB7aXRlbTogaXRlbSwgaW5kZXg6aW5kZXgsIGxpUmVmOiBsaVJlZn0pXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGlmIChpdGVtLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51UmVmXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBpbmRleDppbmRleH1cIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImNyZWF0ZUN1c3RvbUluamVjdG9yKCdtZW51XycgKyBsaVJlZi50cmFja0lkLCB7aXRlbTogaXRlbSwgaW5kZXg6aW5kZXh9KVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L2xpPlxufVxuXG5AaWYgKCFub2Rlcy5sZW5ndGgpIHtcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dtTmF2SXRlbV1cIj48L25nLWNvbnRlbnQ+XG59XG4iXX0=
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL25hdi9uYXYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL25hdmlnYXRpb24vbWVudS9zcmMvbmF2L25hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFOUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFD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Q0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsV0FBVztRQUNQLDJCQUEyQjtRQUMzQixzRkFBc0Y7UUFDdEYsbUVBQW1FO1FBRW5FLG1CQUFtQjtRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV6QixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FqSFEsWUFBWSwrSkFvQk4sY0FBYyw4QkFDakIsa0JBQWtCO21HQXJCckIsWUFBWSxzREFKVjtZQUNQLGtCQUFrQixDQUFDLFlBQVksQ0FBQztTQUNuQyxpREM5QkwscStEQW1EQSwrREQxQmMsWUFBWSxrV0FBRSxnQkFBZ0IsNldBQUUsZUFBZSxxR0FBbUIsYUFBYSwwRUFBRyxnQkFBZ0I7OzRGQU9uRyxZQUFZO2tCQVR4QixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLGdCQUFnQixFQUFHLFlBQ3JHLFNBQVMsYUFFUjt3QkFDUCxrQkFBa0IsY0FBYztxQkFDbkM7OzBCQXNCSSxTQUFTOzJCQUFDLGNBQWM7OzBCQUN4QixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBbmNob3JDb21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNpYy9hbmNob3InO1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IE5hdkl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL25hdi1pdGVtL25hdi1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGZvcndhcmRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgYWRkQ2xhc3MsIEFwcCwgdHJpZ2dlckl0ZW1BY3Rpb24sIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEFQUExZX1NUWUxFU19UWVBFLCBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL25hdi5wcm9wcyc7XG5pbXBvcnQgeyBmaW5kLCBmb3JFYWNoLCBpc0VtcHR5LCBvbWl0IH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICduYXYgYXBwLW5hdic7XG5jb25zdCBXSURHRVRfQ09ORklHID0geyB3aWRnZXRUeXBlOiAnd20tbmF2JywgaG9zdENsYXNzOiBERUZBVUxUX0NMUyB9O1xuXG5jb25zdCBOYXZDbGFzc01hcCA9IHtcbiAgICBwaWxsczogJ25hdi1waWxscycsXG4gICAgdGFiczogJ25hdi10YWJzJyxcbiAgICBuYXZiYXI6ICduYXZiYXItbmF2J1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCc0Ryb3Bkb3duTW9kdWxlLCBBbmNob3JDb21wb25lbnQsIGZvcndhcmRSZWYoKCkgPT4gTWVudUNvbXBvbmVudCksIE5hdkl0ZW1EaXJlY3RpdmUsIF0sXG4gICAgc2VsZWN0b3I6ICdbd21OYXZdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKE5hdkNvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5hdkNvbXBvbmVudCBleHRlbmRzIERhdGFzZXRBd2FyZU5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIHNlbGVjdGVkaXRlbTtcbiAgICBwdWJsaWMgdHlwZTtcbiAgICBwdWJsaWMgZGlzYWJsZU1lbnVDb250ZXh0OiBib29sZWFuO1xuICAgIHB1YmxpYyBsYXlvdXQ7XG4gICAgcHVibGljIHNob3dvbmhvdmVyOiBib29sZWFuO1xuICAgIHByaXZhdGUgaXRlbUFjdGlvbkZuOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIHBhZ2VTY29wZTogYW55O1xuICAgIHByaXZhdGUgZ2V0IGFjdGl2ZVBhZ2VOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHAuYWN0aXZlUGFnZU5hbWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgdXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0OiBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3NlbGVjdC5ldmVudCcpIHNlbGVjdEV2ZW50Q0IsXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFzZWxlY3RFdmVudENCO1xuICAgICAgICB0aGlzLnBhZ2VTY29wZSA9IHRoaXMudmlld1BhcmVudDtcbiAgICAgICAgLy8gRm9yIHNlbGVjdGluZyB0aGUgaXRlbSBvbiBsb2FkXG4gICAgICAgIGNvbnN0IGRhdGFzZXRTdWJzY3JpcHRpb24gPSB0aGlzLm5vZGVzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc0VtcHR5KHRoaXMubm9kZXMpKSB7XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1Gb3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdldEl0ZW0gPSAobm9kZXMsIGlzTWVudVdpZGdldD8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZm9yRWFjaChub2RlcywgKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtRm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5pc2FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Gb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZGl0ZW0gPSBpc01lbnVXaWRnZXQgPyBvbWl0KGl0ZW0sIFsnY2hpbGRyZW4nLCAndmFsdWUnXSkgOiBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyAkZXZlbnQ6IHt9LCAkaXRlbTogaXRlbS52YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGFjdGl2ZSBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckl0ZW1BY3Rpb24odGhpcywgaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gX3NlbGVjdGVkIGlzIHVzZWQgdG8gYWRkIGFjdGl2ZSBjbGFzcyBmb3IgbmF2IGl0ZW0uIElmIHdlIGhhdmUgY2hpbGRyZW4gaW5zaWRlIG5hdiB3aWRnZXQgdGhlbiBpdCBpcyBub3QgcmVxdWlyZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc01lbnVXaWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5fc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRW1wdHkoaXRlbS5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJdGVtKGl0ZW0uY2hpbGRyZW4sICdtZW51Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZ2V0SXRlbSh0aGlzLm5vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzZXROYXZUeXBlKHR5cGUpIHtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBOYXZDbGFzc01hcFt0eXBlXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROYXZMYXlvdXQobGF5b3V0KSB7XG4gICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYG5hdi0ke2xheW91dH1gKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25OYXZTZWxlY3QoJGV2ZW50OiBFdmVudCwgaXRlbTogYW55KSB7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGZpbmQodGhpcy5ub2RlcywgJ19zZWxlY3RlZCcpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBkZWxldGUgc2VsZWN0ZWRJdGVtLl9zZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRpdGVtID0gaXRlbS52YWx1ZTtcblxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3NlbGVjdCcsIHsgJGV2ZW50LCAkaXRlbTogaXRlbS52YWx1ZSB9KTtcbiAgICAgICAgLy8gVHJpZ2dlciB0aGUgYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBhY3RpdmUgaXRlbVxuICAgICAgICB0cmlnZ2VySXRlbUFjdGlvbih0aGlzLCBpdGVtKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXROYXZUeXBlKHRoaXMudHlwZSk7XG4gICAgICAgIHRoaXMuc2V0TmF2TGF5b3V0KHRoaXMubGF5b3V0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpbnZva2VkIGZyb20gdGhlIG1lbnUgd2lkZ2V0IHdoZW4gYSBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAgICogQHBhcmFtICRldmVudFxuICAgICAqIEBwYXJhbSB3aWRnZXRcbiAgICAgKiBAcGFyYW0gJGl0ZW1cbiAgICAgKi9cbiAgICBvbk1lbnVJdGVtU2VsZWN0KCRldmVudCwgd2lkZ2V0LCAkaXRlbSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkaXRlbSA9IG9taXQoJGl0ZW0sIFsnY2hpbGRyZW4nLCAndmFsdWUnXSk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyAkZXZlbnQsICRpdGVtOiB0aGlzLnNlbGVjdGVkaXRlbSB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhbnVwXG4gICAgICAgIC8vIE5vdGU6IFN1YnNjcmlwdGlvbiBpcyBhbHJlYWR5IGNsZWFuZWQgdXAgdmlhIHJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyIGluIGNvbnN0cnVjdG9yXG4gICAgICAgIC8vIGJ1dCBhZGRpbmcgZXhwbGljaXQgT25EZXN0cm95IHRvIGVuc3VyZSBwcm9wZXIgY2xlYW51cCBsaWZlY3ljbGVcbiAgICAgICAgXG4gICAgICAgIC8vIENsZWFyIHJlZmVyZW5jZXNcbiAgICAgICAgdGhpcy5zZWxlY3RlZGl0ZW0gPSBudWxsO1xuICAgICAgICB0aGlzLnBhZ2VTY29wZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaXRlbUFjdGlvbkZuID0gbnVsbDtcblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWVudVJlZiBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICA8ZGl2IHdtTWVudSBkcm9wZG93blxuICAgIHR5cGU9XCJhbmNob3JcIlxuICAgIGF1dG9jbG9zZS5iaW5kPVwiYXV0b2Nsb3NlXCJcbiAgICBpY29uY2xhc3MuYmluZD1cIml0ZW0uaWNvblwiXG4gICAgYXV0b29wZW4uYmluZD1cImF1dG9vcGVuXCJcbiAgICBjYXB0aW9uLmJpbmQ9XCJpdGVtLmxhYmVsXCJcbiAgICBoaW50LmJpbmQ9XCJpdGVtLmhpbnRcIlxuICAgIGRhdGFzZXQuYmluZD1cIml0ZW0uY2hpbGRyZW5cIlxuICAgIGJhZGdldmFsdWUuYmluZD1cIml0ZW0uYmFkZ2VcIlxuICAgIGljb25wb3NpdGlvbi5iaW5kPVwiaWNvbnBvc2l0aW9uXCJcbiAgICBzaG93b25ob3Zlci5iaW5kPVwic2hvd29uaG92ZXJcIlxuICBzZWxlY3QuZXZlbnQ9XCJvbk1lbnVJdGVtU2VsZWN0KCRldmVudCwgd2lkZ2V0LCAkaXRlbSlcIj48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYW5jaG9yUmVmIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LWxpUmVmPVwibGlSZWZcIj5cbiAgPGEgd21BbmNob3JcbiAgICBbZGlzYWJsZU1lbnVDb250ZXh0XT1cImRpc2FibGVNZW51Q29udGV4dCB8fCAhIWl0ZW0uYWN0aW9uXCJcbiAgICBbd21OYXZpZ2F0aW9uQ29udHJvbF09XCJpdGVtLmxpbmtcIlxuICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpdGVtLl9zZWxlY3RlZCB8fCAoIWlzYWN0aXZlICYmIGl0ZW0ubGluayA9PT0gJyMvJyArIGFjdGl2ZVBhZ2VOYW1lKSA/ICdwYWdlJyA6ICcnXCJcbiAgICBjYXB0aW9uLmJpbmQ9XCJpdGVtLmxhYmVsXCJcbiAgICBoaW50LmJpbmQ9XCJpdGVtLmhpbnRcIlxuICAgIGljb25jbGFzcy5iaW5kPVwiaXRlbS5pY29uXCJcbiAgICBiYWRnZXZhbHVlLmJpbmQ9XCJpdGVtLmJhZGdlXCJcbiAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiXG4gIGNsaWNrLmV2ZW50PVwib25OYXZTZWxlY3QoJGV2ZW50LCBpdGVtKVwiPjwvYT5cbjwvbmctdGVtcGxhdGU+XG5cbkBmb3IgKGl0ZW0gb2Ygbm9kZXM7IHRyYWNrIGl0ZW07IGxldCBpbmRleCA9ICRpbmRleCkge1xuICA8bGkgI2xpUmVmPVwibmF2SXRlbVJlZlwiXG4gICAgW25nQ2xhc3NdPVwie2FjdGl2ZTogaXRlbS5fc2VsZWN0ZWQgfHwgKCFpc2FjdGl2ZSAmJiBpdGVtLmxpbmsgPT09ICcjLycgKyBhY3RpdmVQYWdlTmFtZSl9XCJcbiAgICBjbGFzcz1cImFwcC1uYXYtaXRlbSB7e2l0ZW0uY2xhc3N9fVwiXG4gICAgd21OYXZJdGVtPlxuICAgIEBpZiAoIWl0ZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFuY2hvclJlZlwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgaW5kZXg6aW5kZXgsIGxpUmVmOiBsaVJlZn1cIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImNyZWF0ZUN1c3RvbUluamVjdG9yKCdhbmNob3JfJyArIGxpUmVmLnRyYWNrSWQsIHtpdGVtOiBpdGVtLCBpbmRleDppbmRleCwgbGlSZWY6IGxpUmVmfSlcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAaWYgKGl0ZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVSZWZcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGluZGV4OmluZGV4fVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3JdPVwiY3JlYXRlQ3VzdG9tSW5qZWN0b3IoJ21lbnVfJyArIGxpUmVmLnRyYWNrSWQsIHtpdGVtOiBpdGVtLCBpbmRleDppbmRleH0pXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gIDwvbGk+XG59XG5cbkBpZiAoIW5vZGVzLmxlbmd0aCkge1xuICA8bmctY29udGVudCBzZWxlY3Q9XCJbd21OYXZJdGVtXVwiPjwvbmctY29udGVudD5cbn1cbiJdfQ==
|
|
@@ -7,18 +7,31 @@ export const disableContextMenu = ($event) => {
|
|
|
7
7
|
export class NavigationControlDirective {
|
|
8
8
|
set wmNavigationControl(val) {
|
|
9
9
|
this._link = val;
|
|
10
|
+
// MEMORY LEAK FIX: Remove existing listener before adding new one
|
|
11
|
+
if (this.boundContextMenuHandler) {
|
|
12
|
+
this.nativeElement.removeEventListener('contextmenu', this.boundContextMenuHandler);
|
|
13
|
+
this.boundContextMenuHandler = null;
|
|
14
|
+
}
|
|
10
15
|
if (val && !this.disableMenuContext) {
|
|
11
16
|
setAttr(this.nativeElement, 'href', val);
|
|
12
|
-
this.nativeElement.removeEventListener('contextmenu', disableContextMenu);
|
|
13
17
|
}
|
|
14
18
|
else {
|
|
15
19
|
setAttr(this.nativeElement, 'href', 'javascript:void(0)');
|
|
16
|
-
|
|
20
|
+
// MEMORY LEAK FIX: Store bound function reference for cleanup
|
|
21
|
+
this.boundContextMenuHandler = disableContextMenu;
|
|
22
|
+
this.nativeElement.addEventListener('contextmenu', this.boundContextMenuHandler);
|
|
17
23
|
}
|
|
18
24
|
}
|
|
19
25
|
constructor(eleRef) {
|
|
20
26
|
this.nativeElement = eleRef.nativeElement;
|
|
21
27
|
}
|
|
28
|
+
ngOnDestroy() {
|
|
29
|
+
// MEMORY LEAK FIX: Remove event listener using stored bound function reference
|
|
30
|
+
if (this.boundContextMenuHandler) {
|
|
31
|
+
this.nativeElement.removeEventListener('contextmenu', this.boundContextMenuHandler);
|
|
32
|
+
this.boundContextMenuHandler = null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
22
35
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavigationControlDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
23
36
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NavigationControlDirective, isStandalone: true, selector: "[wmNavigationControl]", inputs: { disableMenuContext: "disableMenuContext", wmNavigationControl: "wmNavigationControl" }, ngImport: i0 }); }
|
|
24
37
|
}
|
|
@@ -33,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
33
46
|
}], wmNavigationControl: [{
|
|
34
47
|
type: Input
|
|
35
48
|
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL25hdi9uYXZpZ2F0aW9uLWNvbnRyb2wuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVuQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQWEsRUFBRSxFQUFFO0lBQ2hELE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFNRixNQUFNLE9BQU8sMEJBQTBCO0lBUW5DLElBQWEsbUJBQW1CLENBQUMsR0FBRztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUVqQixrRUFBa0U7UUFDbEUsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1lBQzFELDhEQUE4RDtZQUM5RCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsa0JBQWtCLENBQUM7WUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDckYsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLE1BQWtCO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNQLCtFQUErRTtRQUMvRSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7K0dBckNRLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsdUJBQXVCO2lCQUNwQzsrRUFPWSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRU8sbUJBQW1CO3NCQUEvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IHNldEF0dHIgfSBmcm9tICdAd20vY29yZSc7XG5cbmV4cG9ydCBjb25zdCBkaXNhYmxlQ29udGV4dE1lbnUgPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3bU5hdmlnYXRpb25Db250cm9sXSdcbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkNvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHJpdmF0ZSBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIF9saW5rOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBib3VuZENvbnRleHRNZW51SGFuZGxlcjogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcblxuICAgIEBJbnB1dCgpIGRpc2FibGVNZW51Q29udGV4dDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHNldCB3bU5hdmlnYXRpb25Db250cm9sKHZhbCkge1xuICAgICAgICB0aGlzLl9saW5rID0gdmFsO1xuICAgICAgICBcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBSZW1vdmUgZXhpc3RpbmcgbGlzdGVuZXIgYmVmb3JlIGFkZGluZyBuZXcgb25lXG4gICAgICAgIGlmICh0aGlzLmJvdW5kQ29udGV4dE1lbnVIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmJvdW5kQ29udGV4dE1lbnVIYW5kbGVyKTtcbiAgICAgICAgICAgIHRoaXMuYm91bmRDb250ZXh0TWVudUhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbCAmJiAhdGhpcy5kaXNhYmxlTWVudUNvbnRleHQpIHtcbiAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCAnaHJlZicsIHZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgJ2hyZWYnLCAnamF2YXNjcmlwdDp2b2lkKDApJyk7XG4gICAgICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IFN0b3JlIGJvdW5kIGZ1bmN0aW9uIHJlZmVyZW5jZSBmb3IgY2xlYW51cFxuICAgICAgICAgICAgdGhpcy5ib3VuZENvbnRleHRNZW51SGFuZGxlciA9IGRpc2FibGVDb250ZXh0TWVudTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMuYm91bmRDb250ZXh0TWVudUhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoZWxlUmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsZVJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IFJlbW92ZSBldmVudCBsaXN0ZW5lciB1c2luZyBzdG9yZWQgYm91bmQgZnVuY3Rpb24gcmVmZXJlbmNlXG4gICAgICAgIGlmICh0aGlzLmJvdW5kQ29udGV4dE1lbnVIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmJvdW5kQ29udGV4dE1lbnVIYW5kbGVyKTtcbiAgICAgICAgICAgIHRoaXMuYm91bmRDb250ZXh0TWVudUhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -18,18 +18,31 @@ const disableContextMenu = ($event) => {
|
|
|
18
18
|
class NavigationControlDirective {
|
|
19
19
|
set wmNavigationControl(val) {
|
|
20
20
|
this._link = val;
|
|
21
|
+
// MEMORY LEAK FIX: Remove existing listener before adding new one
|
|
22
|
+
if (this.boundContextMenuHandler) {
|
|
23
|
+
this.nativeElement.removeEventListener('contextmenu', this.boundContextMenuHandler);
|
|
24
|
+
this.boundContextMenuHandler = null;
|
|
25
|
+
}
|
|
21
26
|
if (val && !this.disableMenuContext) {
|
|
22
27
|
setAttr(this.nativeElement, 'href', val);
|
|
23
|
-
this.nativeElement.removeEventListener('contextmenu', disableContextMenu);
|
|
24
28
|
}
|
|
25
29
|
else {
|
|
26
30
|
setAttr(this.nativeElement, 'href', 'javascript:void(0)');
|
|
27
|
-
|
|
31
|
+
// MEMORY LEAK FIX: Store bound function reference for cleanup
|
|
32
|
+
this.boundContextMenuHandler = disableContextMenu;
|
|
33
|
+
this.nativeElement.addEventListener('contextmenu', this.boundContextMenuHandler);
|
|
28
34
|
}
|
|
29
35
|
}
|
|
30
36
|
constructor(eleRef) {
|
|
31
37
|
this.nativeElement = eleRef.nativeElement;
|
|
32
38
|
}
|
|
39
|
+
ngOnDestroy() {
|
|
40
|
+
// MEMORY LEAK FIX: Remove event listener using stored bound function reference
|
|
41
|
+
if (this.boundContextMenuHandler) {
|
|
42
|
+
this.nativeElement.removeEventListener('contextmenu', this.boundContextMenuHandler);
|
|
43
|
+
this.boundContextMenuHandler = null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
33
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavigationControlDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
34
47
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NavigationControlDirective, isStandalone: true, selector: "[wmNavigationControl]", inputs: { disableMenuContext: "disableMenuContext", wmNavigationControl: "wmNavigationControl" }, ngImport: i0 }); }
|
|
35
48
|
}
|
|
@@ -77,6 +90,11 @@ class NavItemDirective extends StylableComponent {
|
|
|
77
90
|
removeClass(this.nativeElement, 'active', true);
|
|
78
91
|
super.ngOnDetach();
|
|
79
92
|
}
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
// MEMORY LEAK FIX: Clear ContentChild reference
|
|
95
|
+
this.innerLink = null;
|
|
96
|
+
super.ngOnDestroy();
|
|
97
|
+
}
|
|
80
98
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavItemDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
81
99
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NavItemDirective, isStandalone: true, selector: "[wmNavItem]", host: { listeners: { "click": "makeActive()", "keydown.enter": "makeActive()" } }, providers: [
|
|
82
100
|
provideAsWidgetRef(NavItemDirective)
|
|
@@ -220,6 +238,16 @@ class NavComponent extends DatasetAwareNavComponent {
|
|
|
220
238
|
this.selecteditem = omit($item, ['children', 'value']);
|
|
221
239
|
this.invokeEventCallback('select', { $event, $item: this.selecteditem });
|
|
222
240
|
}
|
|
241
|
+
ngOnDestroy() {
|
|
242
|
+
// MEMORY LEAK FIX: Cleanup
|
|
243
|
+
// Note: Subscription is already cleaned up via registerDestroyListener in constructor
|
|
244
|
+
// but adding explicit OnDestroy to ensure proper cleanup lifecycle
|
|
245
|
+
// Clear references
|
|
246
|
+
this.selecteditem = null;
|
|
247
|
+
this.pageScope = null;
|
|
248
|
+
this.itemActionFn = null;
|
|
249
|
+
super.ngOnDestroy();
|
|
250
|
+
}
|
|
223
251
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i2.UserDefinedExecutionContext }, { token: i2.App }, { token: 'select.event', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
224
252
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NavComponent, isStandalone: true, selector: "[wmNav]", providers: [
|
|
225
253
|
provideAsWidgetRef(NavComponent)
|
|
@@ -712,6 +740,8 @@ class MenuComponent extends DatasetAwareNavComponent {
|
|
|
712
740
|
}
|
|
713
741
|
onPropertyChange(key, nv, ov) {
|
|
714
742
|
if (key === 'tabindex') {
|
|
743
|
+
// Let the base class handle tabindex setting via setAttr
|
|
744
|
+
super.onPropertyChange(key, nv, ov);
|
|
715
745
|
return;
|
|
716
746
|
}
|
|
717
747
|
if (key === 'autoclose') {
|
|
@@ -756,18 +786,23 @@ class MenuComponent extends DatasetAwareNavComponent {
|
|
|
756
786
|
}
|
|
757
787
|
ngAfterViewInit() {
|
|
758
788
|
super.ngAfterViewInit();
|
|
789
|
+
// Fix tabindex if it's NaN (ensure it's fixed after view initialization)
|
|
790
|
+
if (this.widget.tabindex !== undefined && (typeof this.widget.tabindex === 'number' && isNaN(this.widget.tabindex))) {
|
|
791
|
+
this.widget.tabindex = 0;
|
|
792
|
+
this.tabindex = 0;
|
|
793
|
+
}
|
|
759
794
|
styler(this.nativeElement.querySelector('.dropdown-toggle'), this);
|
|
760
795
|
}
|
|
761
796
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.UserDefinedExecutionContext }, { token: i2.App }, { token: i3$1.BsDropdownDirective, optional: true, self: true }, { token: NavComponent, optional: true }, { token: 'select.event', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
762
797
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MenuComponent, isStandalone: true, selector: "[wmMenu]", host: { listeners: { "onShown": "onShow()", "onHidden": "onHide()", "keydown.arrowup": "onKeyDown($event,\"UP-ARROW\")", "mouseenter": "onKeyDown($event,\"MOUSE-ENTER\")", "mouseleave": "onKeyDown($event,\"MOUSE-LEAVE\")", "keydown.arrowdown": "onKeyDown($event,\"DOWN-ARROW\")", "keydown.arrowright": "onKeyDown($event,\"RIGHT-ARROW\")", "keydown.arrowleft": "onKeyDown($event,\"LEFT-ARROW\")", "keydown.enter": "onKeyDown($event,\"ENTER\")" } }, providers: [
|
|
763
798
|
provideAsWidgetRef(MenuComponent),
|
|
764
|
-
], usesInheritance: true, ngImport: i0, template: "\n\n<ng-template #innerTemplate>\n <i class=\"app-icon {{iconclass}}\"></i>\n <span class=\"caption\" [textContent]=\"caption\"></span>\n <span class=\"pull-right caret fa {{menuCaret}}\"></span>\n</ng-template>\n\n@if (type === 'anchor') {\n <a wmAnchor\n dropdownToggle\n [attr.aria-label]=\"arialabel || 'Menu'\"\n href=\"javascript:void(0);\"\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n hint.bind=\"hint\"\n class=\"dropdown-toggle {{menuclass}}\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n badgevalue.bind=\"badgevalue\"\n >\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </a>\n} @else {\n <button wmButton\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"arialabel || 'Menu'\"\n class=\"btn app-button dropdown-toggle {{menuclass}}\"\n hint.bind=\"hint\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\">\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </button>\n}\n\n<ul *dropdownMenu [items]=\"nodes\" [ngClass]=\"menulayout\" class=\"icon-position-{{iconposition}}\" role=\"menubar\"\nwmMenuDropdown></ul>\n", dependencies: [{ kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i3$1.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i3$1.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: AnchorComponent, selector: "a[wmAnchor]", exportAs: ["wmAnchor"] }, { kind: "component", type: ButtonComponent, selector: "button[wmButton]", exportAs: ["wmButton"] }, { kind: "component", type: MenuDropdownComponent, selector: "ul[wmMenuDropdown]", inputs: ["items"] }] }); }
|
|
799
|
+
], usesInheritance: true, ngImport: i0, template: "\n\n<ng-template #innerTemplate>\n <i class=\"app-icon {{iconclass}}\"></i>\n <span class=\"caption\" [textContent]=\"caption\"></span>\n <span class=\"pull-right caret fa {{menuCaret}}\"></span>\n</ng-template>\n\n@if (type === 'anchor') {\n <a wmAnchor\n dropdownToggle\n [attr.aria-label]=\"arialabel || 'Menu'\"\n href=\"javascript:void(0);\"\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n hint.bind=\"hint\"\n class=\"dropdown-toggle {{menuclass}}\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n badgevalue.bind=\"badgevalue\"\n >\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </a>\n} @else {\n <button wmButton\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"arialabel || 'Menu'\"\n class=\"btn app-button dropdown-toggle {{menuclass}}\"\n hint.bind=\"hint\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n type=\"button\">\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </button>\n}\n\n<ul *dropdownMenu [items]=\"nodes\" [ngClass]=\"menulayout\" class=\"icon-position-{{iconposition}}\" role=\"menubar\"\nwmMenuDropdown></ul>\n", dependencies: [{ kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i3$1.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i3$1.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: AnchorComponent, selector: "a[wmAnchor]", exportAs: ["wmAnchor"] }, { kind: "component", type: ButtonComponent, selector: "button[wmButton]", exportAs: ["wmButton"] }, { kind: "component", type: MenuDropdownComponent, selector: "ul[wmMenuDropdown]", inputs: ["items"] }] }); }
|
|
765
800
|
}
|
|
766
801
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, decorators: [{
|
|
767
802
|
type: Component,
|
|
768
803
|
args: [{ standalone: true, imports: [BsDropdownModule, CommonModule, TextContentDirective, AnchorComponent, ButtonComponent, MenuDropdownComponent], selector: '[wmMenu]', providers: [
|
|
769
804
|
provideAsWidgetRef(MenuComponent),
|
|
770
|
-
], template: "\n\n<ng-template #innerTemplate>\n <i class=\"app-icon {{iconclass}}\"></i>\n <span class=\"caption\" [textContent]=\"caption\"></span>\n <span class=\"pull-right caret fa {{menuCaret}}\"></span>\n</ng-template>\n\n@if (type === 'anchor') {\n <a wmAnchor\n dropdownToggle\n [attr.aria-label]=\"arialabel || 'Menu'\"\n href=\"javascript:void(0);\"\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n hint.bind=\"hint\"\n class=\"dropdown-toggle {{menuclass}}\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n badgevalue.bind=\"badgevalue\"\n >\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </a>\n} @else {\n <button wmButton\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"arialabel || 'Menu'\"\n class=\"btn app-button dropdown-toggle {{menuclass}}\"\n hint.bind=\"hint\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\">\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </button>\n}\n\n<ul *dropdownMenu [items]=\"nodes\" [ngClass]=\"menulayout\" class=\"icon-position-{{iconposition}}\" role=\"menubar\"\nwmMenuDropdown></ul>\n" }]
|
|
805
|
+
], template: "\n\n<ng-template #innerTemplate>\n <i class=\"app-icon {{iconclass}}\"></i>\n <span class=\"caption\" [textContent]=\"caption\"></span>\n <span class=\"pull-right caret fa {{menuCaret}}\"></span>\n</ng-template>\n\n@if (type === 'anchor') {\n <a wmAnchor\n dropdownToggle\n [attr.aria-label]=\"arialabel || 'Menu'\"\n href=\"javascript:void(0);\"\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n hint.bind=\"hint\"\n class=\"dropdown-toggle {{menuclass}}\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n badgevalue.bind=\"badgevalue\"\n >\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </a>\n} @else {\n <button wmButton\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"arialabel || 'Menu'\"\n class=\"btn app-button dropdown-toggle {{menuclass}}\"\n hint.bind=\"hint\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n type=\"button\">\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </button>\n}\n\n<ul *dropdownMenu [items]=\"nodes\" [ngClass]=\"menulayout\" class=\"icon-position-{{iconposition}}\" role=\"menubar\"\nwmMenuDropdown></ul>\n" }]
|
|
771
806
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.Router }, { type: i2.UserDefinedExecutionContext }, { type: i2.App }, { type: i3$1.BsDropdownDirective, decorators: [{
|
|
772
807
|
type: Self
|
|
773
808
|
}, {
|
|
@@ -836,13 +871,27 @@ class MenuAdapterComponent extends BaseContainerComponent {
|
|
|
836
871
|
if (this.menuRefQL['first']) {
|
|
837
872
|
this.setMenuProperty();
|
|
838
873
|
}
|
|
839
|
-
|
|
874
|
+
this.menuRefQLSubscription = this.menuRefQL.changes.subscribe((menuRefQL) => {
|
|
840
875
|
if (menuRefQL.first) {
|
|
841
876
|
this.setMenuProperty();
|
|
842
|
-
|
|
877
|
+
if (this.menuRefQLSubscription) {
|
|
878
|
+
this.menuRefQLSubscription.unsubscribe();
|
|
879
|
+
this.menuRefQLSubscription = null;
|
|
880
|
+
}
|
|
843
881
|
}
|
|
844
882
|
});
|
|
845
883
|
}
|
|
884
|
+
ngOnDestroy() {
|
|
885
|
+
// MEMORY LEAK FIX: Unsubscribe from QueryList changes
|
|
886
|
+
if (this.menuRefQLSubscription) {
|
|
887
|
+
this.menuRefQLSubscription.unsubscribe();
|
|
888
|
+
this.menuRefQLSubscription = null;
|
|
889
|
+
}
|
|
890
|
+
// MEMORY LEAK FIX: Clear QueryList reference
|
|
891
|
+
this.menuRefQL = null;
|
|
892
|
+
this.menuRef = null;
|
|
893
|
+
super.ngOnDestroy();
|
|
894
|
+
}
|
|
846
895
|
setMenuProperty() {
|
|
847
896
|
if (this.menuRefQL['first']) {
|
|
848
897
|
if (this.menuRefQL.first) {
|