@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
|
@@ -43,8 +43,13 @@ export class PartialDialogComponent extends BaseDialog {
|
|
|
43
43
|
this.register(this.viewParent);
|
|
44
44
|
}
|
|
45
45
|
setPartialLoadListener() {
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
// Clean up existing subscription if any
|
|
47
|
+
if (this.partialLoadedSubscription) {
|
|
48
|
+
this.partialLoadedSubscription();
|
|
49
|
+
this.partialLoadedSubscription = null;
|
|
50
|
+
}
|
|
51
|
+
this.partialLoadedSubscription = this.app.subscribe('partialLoaded', () => {
|
|
52
|
+
const parEle = this.partialRef?.nativeElement;
|
|
48
53
|
let partialScope;
|
|
49
54
|
if (parEle) {
|
|
50
55
|
partialScope = parEle.widget;
|
|
@@ -52,7 +57,11 @@ export class PartialDialogComponent extends BaseDialog {
|
|
|
52
57
|
this.Variables = partialScope.Variables;
|
|
53
58
|
this.Actions = partialScope.Actions;
|
|
54
59
|
}
|
|
55
|
-
|
|
60
|
+
// Clean up subscription after use
|
|
61
|
+
if (this.partialLoadedSubscription) {
|
|
62
|
+
this.partialLoadedSubscription();
|
|
63
|
+
this.partialLoadedSubscription = null;
|
|
64
|
+
}
|
|
56
65
|
});
|
|
57
66
|
}
|
|
58
67
|
open(initState) {
|
|
@@ -60,6 +69,17 @@ export class PartialDialogComponent extends BaseDialog {
|
|
|
60
69
|
// WMS-19410 - Set the partial load listener to access widgets, variables and actions of page dialog
|
|
61
70
|
this.setPartialLoadListener();
|
|
62
71
|
}
|
|
72
|
+
ngOnDestroy() {
|
|
73
|
+
// MEMORY LEAK FIX: Unsubscribe from partialLoaded event
|
|
74
|
+
if (this.partialLoadedSubscription) {
|
|
75
|
+
this.partialLoadedSubscription();
|
|
76
|
+
this.partialLoadedSubscription = null;
|
|
77
|
+
}
|
|
78
|
+
// MEMORY LEAK FIX: Clear ContentChild references
|
|
79
|
+
this.partialRef = null;
|
|
80
|
+
this.dialogContent = null;
|
|
81
|
+
super.ngOnDestroy();
|
|
82
|
+
}
|
|
63
83
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PartialDialogComponent, deps: [{ token: i0.Injector }, { token: i1.App }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
84
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PartialDialogComponent, isStandalone: true, selector: "div[wmPartialDialog]", providers: [
|
|
65
85
|
provideAsWidgetRef(PartialDialogComponent),
|
|
@@ -96,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
96
116
|
type: ContentChild,
|
|
97
117
|
args: ['partial']
|
|
98
118
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RpYWxvZ3MvcGFydGlhbC1kaWFsb2cvc3JjL3BhcnRpYWwtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kaWFsb2dzL3BhcnRpYWwtZGlhbG9nL3NyYy9wYXJ0aWFsLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFFUixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRW5ELE1BQU0sVUFBVSxHQUFHLHlDQUF5QyxDQUFDO0FBQzdELE1BQU0sV0FBVyxHQUFHLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLENBQUM7QUFZdkQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFVBQVU7YUFDM0Msb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFVekMsWUFD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QixTQUFTOzJCQUFDLE9BQU87OzBCQUNqQixTQUFTOzJCQUFDLFVBQVU7OzBCQUNwQixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTt5Q0FmTSxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDbEIsYUFBYTtzQkFBdkMsWUFBWTt1QkFBQyxXQUFXO2dCQUNBLFVBQVU7c0JBQWxDLFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQXR0cmlidXRlLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFwcCwgdG9Cb29sZWFuIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZUFzRGlhbG9nUmVmLCBwcm92aWRlQXNXaWRnZXRSZWYgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IEJhc2VEaWFsb2csIERpYWxvZ0JvZHlEaXJlY3RpdmUsIERpYWxvZ0Zvb3RlckRpcmVjdGl2ZSwgRGlhbG9nSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGlhbG9ncyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3BhcnRpYWwtZGlhbG9nLnByb3BzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2lucHV0L2J1dHRvbic7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuY29uc3QgRElBTE9HX0NMUyA9ICdhcHAtZGlhbG9nIG1vZGFsLWRpYWxvZyBhcHAtcGFnZS1kaWFsb2cnO1xuY29uc3QgV0lER0VUX0lORk8gPSB7IHdpZGdldFR5cGU6ICd3bS1wYXJ0aWFsZGlhbG9nJyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtEaWFsb2dCb2R5RGlyZWN0aXZlLCBEaWFsb2dGb290ZXJEaXJlY3RpdmUsIERpYWxvZ0hlYWRlckNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgICBzZWxlY3RvcjogJ2Rpdlt3bVBhcnRpYWxEaWFsb2ddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFydGlhbC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoUGFydGlhbERpYWxvZ0NvbXBvbmVudCksXG4gICAgICAgIHByb3ZpZGVBc0RpYWxvZ1JlZihQYXJ0aWFsRGlhbG9nQ29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGFydGlhbERpYWxvZ0NvbXBvbmVudCBleHRlbmRzIEJhc2VEaWFsb2cgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKSBkaWFsb2dDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoJ3BhcnRpYWwnKSBwYXJ0aWFsUmVmO1xuXG4gICAgcHJvdGVjdGVkIGFwcDtcbiAgICBwcm90ZWN0ZWQgV2lkZ2V0cztcbiAgICBwcm90ZWN0ZWQgVmFyaWFibGVzO1xuICAgIHByb3RlY3RlZCBBY3Rpb25zO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIGFwcDogQXBwLFxuICAgICAgICBAQXR0cmlidXRlKCdjbGFzcycpIGRpYWxvZ0NsYXNzOiBzdHJpbmcsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ21vZGFsJykgbW9kYWw6IHN0cmluZyB8IGJvb2xlYW4sXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Nsb3NhYmxlJykgY2xvc2FibGU6IHN0cmluZyB8IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICBpZiAobW9kYWwgPT09IG51bGwgfHwgbW9kYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbW9kYWwgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjbG9zYWJsZSA9PT0gbnVsbCB8fCBjbG9zYWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjbG9zYWJsZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXR0aW5nIHRoZSBiYWNrZHJvcCB0byAnc3RhdGljJyB3aWxsIG5vdCBjbG9zZSB0aGUgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgICAgIGNvbnN0IGJhY2tkcm9wOiBib29sZWFuIHwgJ3N0YXRpYycgPSB0b0Jvb2xlYW4obW9kYWwpID8gJ3N0YXRpYycgOiB0cnVlO1xuXG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgaW5qLFxuICAgICAgICAgICAgV0lER0VUX0lORk8sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3M6IGAke0RJQUxPR19DTFN9ICR7ZGlhbG9nQ2xhc3MgfHwgJyd9YCxcbiAgICAgICAgICAgICAgICBiYWNrZHJvcCxcbiAgICAgICAgICAgICAgICBrZXlib2FyZDogIXRvQm9vbGVhbihtb2RhbClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleHBsaWNpdENvbnRleHRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5hcHAgPSBhcHA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFRlbXBsYXRlUmVmKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dUZW1wbGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGljayBldmVudCBoYW5kbGVyIGZvciB0aGUgb2sgYnV0dG9uXG4gICAgICogaW52b2tlcyBvbi1vayBldmVudCBjYWxsYmFja1xuICAgICAqIEBwYXJhbSB7RXZlbnR9ICRldmVudFxuICAgICAqL1xuICAgIG9uT2soJGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ29rJywgeyAkZXZlbnQgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXIodGhpcy52aWV3UGFyZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBhcnRpYWxMb2FkTGlzdGVuZXIoKSB7XG4gICAgICAgIGNvbnN0IGNhbmNlbFN1YnNjcmlwdGlvbiA9IHRoaXMuYXBwLnN1YnNjcmliZSgncGFydGlhbExvYWRlZCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhckVsZSA9IHRoaXMucGFydGlhbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgbGV0IHBhcnRpYWxTY29wZTtcbiAgICAgICAgICAgIGlmIChwYXJFbGUpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsU2NvcGUgPSBwYXJFbGUud2lkZ2V0O1xuICAgICAgICAgICAgICAgIHRoaXMuV2lkZ2V0cyA9IHBhcnRpYWxTY29wZS5XaWRnZXRzO1xuICAgICAgICAgICAgICAgIHRoaXMuVmFyaWFibGVzID0gcGFydGlhbFNjb3BlLlZhcmlhYmxlcztcbiAgICAgICAgICAgICAgICB0aGlzLkFjdGlvbnMgPSBwYXJ0aWFsU2NvcGUuQWN0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhbmNlbFN1YnNjcmlwdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3Blbihpbml0U3RhdGU/OiBhbnkpIHtcbiAgICAgICAgc3VwZXIub3Blbihpbml0U3RhdGUpO1xuICAgICAgICAvLyBXTVMtMTk0MTAgLSBTZXQgdGhlIHBhcnRpYWwgbG9hZCBsaXN0ZW5lciB0byBhY2Nlc3Mgd2lkZ2V0cywgdmFyaWFibGVzIGFuZCBhY3Rpb25zIG9mIHBhZ2UgZGlhbG9nXG4gICAgICAgIHRoaXMuc2V0UGFydGlhbExvYWRMaXN0ZW5lcigpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZGlhbG9nVGVtcGxhdGU+XG4gIDxkaXYgd21EaWFsb2dIZWFkZXIgW2Nsb3NhYmxlXT1cImNsb3NhYmxlXCJcbiAgICBbaWNvbmNsYXNzXT1cImljb25jbGFzc1wiXG4gICAgW2ljb251cmxdPVwiaWNvbnVybFwiXG4gICAgW2ljb253aWR0aF09XCJpY29ud2lkdGhcIlxuICAgIFtpY29uaGVpZ2h0XT1cImljb25oZWlnaHRcIlxuICAgIFtpY29ubWFyZ2luXT1cImljb25tYXJnaW5cIlxuICAgIFtoZWFkaW5nXT1cInRpdGxlXCJcbiAgICBbaGVhZGluZ2xldmVsXT1cImhlYWRpbmdsZXZlbFwiXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbdGl0bGVpZF09XCJ0aXRsZUlkXCJcbiAgPjwvZGl2PlxuICA8ZGl2IHdtRGlhbG9nQm9keT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGlhbG9nQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgQGlmIChzaG93YWN0aW9ucykge1xuICAgIDxkaXYgd21EaWFsb2dGb290ZXI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJvbk9rKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm9rdGV4dFwiIGNhcHRpb24uYmluZD1cIm9rdGV4dFwiIGNsYXNzPVwiYnRuLXByaW1hcnkgb2stYWN0aW9uXCJcbiAgICAgIHdtQnV0dG9uPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RpYWxvZ3MvcGFydGlhbC1kaWFsb2cvc3JjL3BhcnRpYWwtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kaWFsb2dzL3BhcnRpYWwtZGlhbG9nL3NyYy9wYXJ0aWFsLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFHUixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRW5ELE1BQU0sVUFBVSxHQUFHLHlDQUF5QyxDQUFDO0FBQzdELE1BQU0sV0FBVyxHQUFHLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLENBQUM7QUFZdkQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFVBQVU7YUFDM0Msb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFXekMsWUFD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dkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFFMUIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBekdRLHNCQUFzQiw2REFlaEIsT0FBTyw4QkFDUCxPQUFPLDhCQUNQLFVBQVUsOEJBQ2Isa0JBQWtCO21HQWxCckIsc0JBQXNCLG1FQUxwQjtZQUNQLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDO1lBQzFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDO1NBQzdDLHFFQUthLFdBQVcsK1JDckM3QixzckJBc0JBLDRDREljLG1CQUFtQiw4REFBRSxxQkFBcUIsZ0VBQUUscUJBQXFCLG9OQUFFLGVBQWUscUZBQUUsZ0JBQWdCOzs0RkFRckcsc0JBQXNCO2tCQVZsQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNyRyxzQkFBc0IsYUFFckI7d0JBQ1Asa0JBQWtCLHdCQUF3Qjt3QkFDMUMsa0JBQWtCLHdCQUF3QjtxQkFDN0M7OzBCQWlCSSxTQUFTOzJCQUFDLE9BQU87OzBCQUNqQixTQUFTOzJCQUFDLE9BQU87OzBCQUNqQixTQUFTOzJCQUFDLFVBQVU7OzBCQUNwQixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTt5Q0FoQk0sY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2xCLGFBQWE7c0JBQXZDLFlBQVk7dUJBQUMsV0FBVztnQkFDQSxVQUFVO3NCQUFsQyxZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEF0dHJpYnV0ZSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXBwLCB0b0Jvb2xlYW4gfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBwcm92aWRlQXNEaWFsb2dSZWYsIHByb3ZpZGVBc1dpZGdldFJlZiB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgQmFzZURpYWxvZywgRGlhbG9nQm9keURpcmVjdGl2ZSwgRGlhbG9nRm9vdGVyRGlyZWN0aXZlLCBEaWFsb2dIZWFkZXJDb21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9kaWFsb2dzJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vcGFydGlhbC1kaWFsb2cucHJvcHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvaW5wdXQvYnV0dG9uJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jb25zdCBESUFMT0dfQ0xTID0gJ2FwcC1kaWFsb2cgbW9kYWwtZGlhbG9nIGFwcC1wYWdlLWRpYWxvZyc7XG5jb25zdCBXSURHRVRfSU5GTyA9IHsgd2lkZ2V0VHlwZTogJ3dtLXBhcnRpYWxkaWFsb2cnIH07XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0RpYWxvZ0JvZHlEaXJlY3RpdmUsIERpYWxvZ0Zvb3RlckRpcmVjdGl2ZSwgRGlhbG9nSGVhZGVyQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHNlbGVjdG9yOiAnZGl2W3dtUGFydGlhbERpYWxvZ10nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYXJ0aWFsLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihQYXJ0aWFsRGlhbG9nQ29tcG9uZW50KSxcbiAgICAgICAgcHJvdmlkZUFzRGlhbG9nUmVmKFBhcnRpYWxEaWFsb2dDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBQYXJ0aWFsRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQmFzZURpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuICAgIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgZGlhbG9nQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdwYXJ0aWFsJykgcGFydGlhbFJlZjtcblxuICAgIHByb3RlY3RlZCBhcHA7XG4gICAgcHJvdGVjdGVkIFdpZGdldHM7XG4gICAgcHJvdGVjdGVkIFZhcmlhYmxlcztcbiAgICBwcm90ZWN0ZWQgQWN0aW9ucztcbiAgICBwcml2YXRlIHBhcnRpYWxMb2FkZWRTdWJzY3JpcHRpb246IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBhcHA6IEFwcCxcbiAgICAgICAgQEF0dHJpYnV0ZSgnY2xhc3MnKSBkaWFsb2dDbGFzczogc3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCdtb2RhbCcpIG1vZGFsOiBzdHJpbmcgfCBib29sZWFuLFxuICAgICAgICBAQXR0cmlidXRlKCdjbG9zYWJsZScpIGNsb3NhYmxlOiBzdHJpbmcgfCBib29sZWFuLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgaWYgKG1vZGFsID09PSBudWxsIHx8IG1vZGFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG1vZGFsID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2xvc2FibGUgPT09IG51bGwgfHwgY2xvc2FibGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY2xvc2FibGUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0dGluZyB0aGUgYmFja2Ryb3AgdG8gJ3N0YXRpYycgd2lsbCBub3QgY2xvc2UgdGhlIGRpYWxvZyBvbiBiYWNrZHJvcCBjbGlja1xuICAgICAgICBjb25zdCBiYWNrZHJvcDogYm9vbGVhbiB8ICdzdGF0aWMnID0gdG9Cb29sZWFuKG1vZGFsKSA/ICdzdGF0aWMnIDogdHJ1ZTtcblxuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIGluaixcbiAgICAgICAgICAgIFdJREdFVF9JTkZPLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzOiBgJHtESUFMT0dfQ0xTfSAke2RpYWxvZ0NsYXNzIHx8ICcnfWAsXG4gICAgICAgICAgICAgICAgYmFja2Ryb3AsXG4gICAgICAgICAgICAgICAga2V5Ym9hcmQ6ICF0b0Jvb2xlYW4obW9kYWwpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhwbGljaXRDb250ZXh0XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYXBwID0gYXBwO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRUZW1wbGF0ZVJlZigpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nVGVtcGxhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xpY2sgZXZlbnQgaGFuZGxlciBmb3IgdGhlIG9rIGJ1dHRvblxuICAgICAqIGludm9rZXMgb24tb2sgZXZlbnQgY2FsbGJhY2tcbiAgICAgKiBAcGFyYW0ge0V2ZW50fSAkZXZlbnRcbiAgICAgKi9cbiAgICBvbk9rKCRldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdvaycsIHsgJGV2ZW50IH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyKHRoaXMudmlld1BhcmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRQYXJ0aWFsTG9hZExpc3RlbmVyKCkge1xuICAgICAgICAvLyBDbGVhbiB1cCBleGlzdGluZyBzdWJzY3JpcHRpb24gaWYgYW55XG4gICAgICAgIGlmICh0aGlzLnBhcnRpYWxMb2FkZWRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFydGlhbExvYWRlZFN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5wYXJ0aWFsTG9hZGVkU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGFydGlhbExvYWRlZFN1YnNjcmlwdGlvbiA9IHRoaXMuYXBwLnN1YnNjcmliZSgncGFydGlhbExvYWRlZCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhckVsZSA9IHRoaXMucGFydGlhbFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGxldCBwYXJ0aWFsU2NvcGU7XG4gICAgICAgICAgICBpZiAocGFyRWxlKSB7XG4gICAgICAgICAgICAgICAgcGFydGlhbFNjb3BlID0gcGFyRWxlLndpZGdldDtcbiAgICAgICAgICAgICAgICB0aGlzLldpZGdldHMgPSBwYXJ0aWFsU2NvcGUuV2lkZ2V0cztcbiAgICAgICAgICAgICAgICB0aGlzLlZhcmlhYmxlcyA9IHBhcnRpYWxTY29wZS5WYXJpYWJsZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5BY3Rpb25zID0gcGFydGlhbFNjb3BlLkFjdGlvbnM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENsZWFuIHVwIHN1YnNjcmlwdGlvbiBhZnRlciB1c2VcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcnRpYWxMb2FkZWRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpYWxMb2FkZWRTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpYWxMb2FkZWRTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3Blbihpbml0U3RhdGU/OiBhbnkpIHtcbiAgICAgICAgc3VwZXIub3Blbihpbml0U3RhdGUpO1xuICAgICAgICAvLyBXTVMtMTk0MTAgLSBTZXQgdGhlIHBhcnRpYWwgbG9hZCBsaXN0ZW5lciB0byBhY2Nlc3Mgd2lkZ2V0cywgdmFyaWFibGVzIGFuZCBhY3Rpb25zIG9mIHBhZ2UgZGlhbG9nXG4gICAgICAgIHRoaXMuc2V0UGFydGlhbExvYWRMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IFVuc3Vic2NyaWJlIGZyb20gcGFydGlhbExvYWRlZCBldmVudFxuICAgICAgICBpZiAodGhpcy5wYXJ0aWFsTG9hZGVkU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnBhcnRpYWxMb2FkZWRTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIHRoaXMucGFydGlhbExvYWRlZFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIENvbnRlbnRDaGlsZCByZWZlcmVuY2VzXG4gICAgICAgIHRoaXMucGFydGlhbFJlZiA9IG51bGw7XG4gICAgICAgIHRoaXMuZGlhbG9nQ29udGVudCA9IG51bGw7XG5cbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2RpYWxvZ1RlbXBsYXRlPlxuICA8ZGl2IHdtRGlhbG9nSGVhZGVyIFtjbG9zYWJsZV09XCJjbG9zYWJsZVwiXG4gICAgW2ljb25jbGFzc109XCJpY29uY2xhc3NcIlxuICAgIFtpY29udXJsXT1cImljb251cmxcIlxuICAgIFtpY29ud2lkdGhdPVwiaWNvbndpZHRoXCJcbiAgICBbaWNvbmhlaWdodF09XCJpY29uaGVpZ2h0XCJcbiAgICBbaWNvbm1hcmdpbl09XCJpY29ubWFyZ2luXCJcbiAgICBbaGVhZGluZ109XCJ0aXRsZVwiXG4gICAgW2hlYWRpbmdsZXZlbF09XCJoZWFkaW5nbGV2ZWxcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW3RpdGxlaWRdPVwidGl0bGVJZFwiXG4gID48L2Rpdj5cbiAgPGRpdiB3bURpYWxvZ0JvZHk+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpYWxvZ0NvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIEBpZiAoc2hvd2FjdGlvbnMpIHtcbiAgICA8ZGl2IHdtRGlhbG9nRm9vdGVyPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib25PaygkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJva3RleHRcIiBjYXB0aW9uLmJpbmQ9XCJva3RleHRcIiBjbGFzcz1cImJ0bi1wcmltYXJ5IG9rLWFjdGlvblwiXG4gICAgICB3bUJ1dHRvbj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -64,8 +64,13 @@ class PartialDialogComponent extends BaseDialog {
|
|
|
64
64
|
this.register(this.viewParent);
|
|
65
65
|
}
|
|
66
66
|
setPartialLoadListener() {
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
// Clean up existing subscription if any
|
|
68
|
+
if (this.partialLoadedSubscription) {
|
|
69
|
+
this.partialLoadedSubscription();
|
|
70
|
+
this.partialLoadedSubscription = null;
|
|
71
|
+
}
|
|
72
|
+
this.partialLoadedSubscription = this.app.subscribe('partialLoaded', () => {
|
|
73
|
+
const parEle = this.partialRef?.nativeElement;
|
|
69
74
|
let partialScope;
|
|
70
75
|
if (parEle) {
|
|
71
76
|
partialScope = parEle.widget;
|
|
@@ -73,7 +78,11 @@ class PartialDialogComponent extends BaseDialog {
|
|
|
73
78
|
this.Variables = partialScope.Variables;
|
|
74
79
|
this.Actions = partialScope.Actions;
|
|
75
80
|
}
|
|
76
|
-
|
|
81
|
+
// Clean up subscription after use
|
|
82
|
+
if (this.partialLoadedSubscription) {
|
|
83
|
+
this.partialLoadedSubscription();
|
|
84
|
+
this.partialLoadedSubscription = null;
|
|
85
|
+
}
|
|
77
86
|
});
|
|
78
87
|
}
|
|
79
88
|
open(initState) {
|
|
@@ -81,6 +90,17 @@ class PartialDialogComponent extends BaseDialog {
|
|
|
81
90
|
// WMS-19410 - Set the partial load listener to access widgets, variables and actions of page dialog
|
|
82
91
|
this.setPartialLoadListener();
|
|
83
92
|
}
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
// MEMORY LEAK FIX: Unsubscribe from partialLoaded event
|
|
95
|
+
if (this.partialLoadedSubscription) {
|
|
96
|
+
this.partialLoadedSubscription();
|
|
97
|
+
this.partialLoadedSubscription = null;
|
|
98
|
+
}
|
|
99
|
+
// MEMORY LEAK FIX: Clear ContentChild references
|
|
100
|
+
this.partialRef = null;
|
|
101
|
+
this.dialogContent = null;
|
|
102
|
+
super.ngOnDestroy();
|
|
103
|
+
}
|
|
84
104
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PartialDialogComponent, deps: [{ token: i0.Injector }, { token: i1.App }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
105
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PartialDialogComponent, isStandalone: true, selector: "div[wmPartialDialog]", providers: [
|
|
86
106
|
provideAsWidgetRef(PartialDialogComponent),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.props.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.html","../../../../../projects/components/widgets/dialogs/partial-dialog/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-partialdialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['content', PROP_STRING],\n ['iconclass', {value: 'wi wi-file', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['showactions', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'Page Content', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {\n Attribute,\n Component,\n ContentChild,\n Inject,\n Injector,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport { App, toBoolean } from '@wm/core';\nimport { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './partial-dialog.props';\nimport { ButtonComponent } from '@wm/components/input/button';\nimport { NgTemplateOutlet } from '@angular/common';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-page-dialog';\nconst WIDGET_INFO = { widgetType: 'wm-partialdialog' };\n\n@Component({\n standalone: true,\n imports: [DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent, NgTemplateOutlet],\n selector: 'div[wmPartialDialog]',\n templateUrl: './partial-dialog.component.html',\n providers: [\n provideAsWidgetRef(PartialDialogComponent),\n provideAsDialogRef(PartialDialogComponent)\n ]\n})\nexport class PartialDialogComponent extends BaseDialog implements OnInit {\n static initializeProps = registerProps();\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate: TemplateRef<any>;\n @ContentChild(TemplateRef) dialogContent: TemplateRef<any>;\n @ContentChild('partial') partialRef;\n\n protected app;\n protected Widgets;\n protected Variables;\n protected Actions;\n\n constructor(\n inj: Injector,\n app: App,\n @Attribute('class') dialogClass: string,\n @Attribute('modal') modal: string | boolean,\n @Attribute('closable') closable: string | boolean,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n if (modal === null || modal === undefined) {\n modal = false;\n }\n\n if (closable === null || closable === undefined) {\n closable = true;\n }\n\n // setting the backdrop to 'static' will not close the dialog on backdrop click\n const backdrop: boolean | 'static' = toBoolean(modal) ? 'static' : true;\n\n super(\n inj,\n WIDGET_INFO,\n {\n class: `${DIALOG_CLS} ${dialogClass || ''}`,\n backdrop,\n keyboard: !toBoolean(modal)\n },\n explicitContext\n );\n this.app = app;\n }\n\n protected getTemplateRef(): TemplateRef<any> {\n return this.dialogTemplate;\n }\n\n /**\n * Click event handler for the ok button\n * invokes on-ok event callback\n * @param {Event} $event\n */\n onOk($event: Event) {\n this.invokeEventCallback('ok', { $event });\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\n }\n\n private setPartialLoadListener() {\n const cancelSubscription = this.app.subscribe('partialLoaded', () => {\n const parEle = this.partialRef.nativeElement;\n let partialScope;\n if (parEle) {\n partialScope = parEle.widget;\n this.Widgets = partialScope.Widgets;\n this.Variables = partialScope.Variables;\n this.Actions = partialScope.Actions;\n }\n cancelSubscription();\n });\n }\n\n public open(initState?: any) {\n super.open(initState);\n // WMS-19410 - Set the partial load listener to access widgets, variables and actions of page dialog\n this.setPartialLoadListener();\n }\n}\n","<ng-template #dialogTemplate>\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [headinglevel]=\"headinglevel\"\n [title]=\"title\"\n [titleid]=\"titleId\"\n ></div>\n <div wmDialogBody>\n <ng-container *ngTemplateOutlet=\"dialogContent\"></ng-container>\n </div>\n @if (showactions) {\n <div wmDialogFooter>\n <button (click)=\"onOk($event)\" [attr.aria-label]=\"oktext\" caption.bind=\"oktext\" class=\"btn-primary ok-action\"\n wmButton></button>\n </div>\n }\n</ng-template>\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/dialogs/partial-dialog/src/partial-dialog.props.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.html","../../../../../projects/components/widgets/dialogs/partial-dialog/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-partialdialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['content', PROP_STRING],\n ['iconclass', {value: 'wi wi-file', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['showactions', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'Page Content', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {\n Attribute,\n Component,\n ContentChild,\n Inject,\n Injector,\n OnInit,\n OnDestroy,\n Optional,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport { App, toBoolean } from '@wm/core';\nimport { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './partial-dialog.props';\nimport { ButtonComponent } from '@wm/components/input/button';\nimport { NgTemplateOutlet } from '@angular/common';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-page-dialog';\nconst WIDGET_INFO = { widgetType: 'wm-partialdialog' };\n\n@Component({\n standalone: true,\n imports: [DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent, NgTemplateOutlet],\n selector: 'div[wmPartialDialog]',\n templateUrl: './partial-dialog.component.html',\n providers: [\n provideAsWidgetRef(PartialDialogComponent),\n provideAsDialogRef(PartialDialogComponent)\n ]\n})\nexport class PartialDialogComponent extends BaseDialog implements OnInit, OnDestroy {\n static initializeProps = registerProps();\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate: TemplateRef<any>;\n @ContentChild(TemplateRef) dialogContent: TemplateRef<any>;\n @ContentChild('partial') partialRef;\n\n protected app;\n protected Widgets;\n protected Variables;\n protected Actions;\n private partialLoadedSubscription: any;\n\n constructor(\n inj: Injector,\n app: App,\n @Attribute('class') dialogClass: string,\n @Attribute('modal') modal: string | boolean,\n @Attribute('closable') closable: string | boolean,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n if (modal === null || modal === undefined) {\n modal = false;\n }\n\n if (closable === null || closable === undefined) {\n closable = true;\n }\n\n // setting the backdrop to 'static' will not close the dialog on backdrop click\n const backdrop: boolean | 'static' = toBoolean(modal) ? 'static' : true;\n\n super(\n inj,\n WIDGET_INFO,\n {\n class: `${DIALOG_CLS} ${dialogClass || ''}`,\n backdrop,\n keyboard: !toBoolean(modal)\n },\n explicitContext\n );\n this.app = app;\n }\n\n protected getTemplateRef(): TemplateRef<any> {\n return this.dialogTemplate;\n }\n\n /**\n * Click event handler for the ok button\n * invokes on-ok event callback\n * @param {Event} $event\n */\n onOk($event: Event) {\n this.invokeEventCallback('ok', { $event });\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\n }\n\n private setPartialLoadListener() {\n // Clean up existing subscription if any\n if (this.partialLoadedSubscription) {\n this.partialLoadedSubscription();\n this.partialLoadedSubscription = null;\n }\n\n this.partialLoadedSubscription = this.app.subscribe('partialLoaded', () => {\n const parEle = this.partialRef?.nativeElement;\n let partialScope;\n if (parEle) {\n partialScope = parEle.widget;\n this.Widgets = partialScope.Widgets;\n this.Variables = partialScope.Variables;\n this.Actions = partialScope.Actions;\n }\n\n // Clean up subscription after use\n if (this.partialLoadedSubscription) {\n this.partialLoadedSubscription();\n this.partialLoadedSubscription = null;\n }\n });\n }\n\n public open(initState?: any) {\n super.open(initState);\n // WMS-19410 - Set the partial load listener to access widgets, variables and actions of page dialog\n this.setPartialLoadListener();\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Unsubscribe from partialLoaded event\n if (this.partialLoadedSubscription) {\n this.partialLoadedSubscription();\n this.partialLoadedSubscription = null;\n }\n\n // MEMORY LEAK FIX: Clear ContentChild references\n this.partialRef = null;\n this.dialogContent = null;\n\n super.ngOnDestroy();\n }\n}\n","<ng-template #dialogTemplate>\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [headinglevel]=\"headinglevel\"\n [title]=\"title\"\n [titleid]=\"titleId\"\n ></div>\n <div wmDialogBody>\n <ng-container *ngTemplateOutlet=\"dialogContent\"></ng-container>\n </div>\n @if (showactions) {\n <div wmDialogFooter>\n <button (click)=\"onOk($event)\" [attr.aria-label]=\"oktext\" caption.bind=\"oktext\" class=\"btn-primary ok-action\"\n wmButton></button>\n </div>\n }\n</ng-template>\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 { Injector, OnInit, TemplateRef } from '@angular/core';
|
|
1
|
+
import { Injector, OnInit, OnDestroy, TemplateRef } from '@angular/core';
|
|
2
2
|
import { App } from '@wm/core';
|
|
3
3
|
import { BaseDialog } from '@wm/components/dialogs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class PartialDialogComponent extends BaseDialog implements OnInit {
|
|
5
|
+
export declare class PartialDialogComponent extends BaseDialog implements OnInit, OnDestroy {
|
|
6
6
|
static initializeProps: void;
|
|
7
7
|
dialogTemplate: TemplateRef<any>;
|
|
8
8
|
dialogContent: TemplateRef<any>;
|
|
@@ -11,6 +11,7 @@ export declare class PartialDialogComponent extends BaseDialog implements OnInit
|
|
|
11
11
|
protected Widgets: any;
|
|
12
12
|
protected Variables: any;
|
|
13
13
|
protected Actions: any;
|
|
14
|
+
private partialLoadedSubscription;
|
|
14
15
|
constructor(inj: Injector, app: App, dialogClass: string, modal: string | boolean, closable: string | boolean, explicitContext: any);
|
|
15
16
|
protected getTemplateRef(): TemplateRef<any>;
|
|
16
17
|
/**
|
|
@@ -22,6 +23,7 @@ export declare class PartialDialogComponent extends BaseDialog implements OnInit
|
|
|
22
23
|
ngOnInit(): void;
|
|
23
24
|
private setPartialLoadListener;
|
|
24
25
|
open(initState?: any): void;
|
|
26
|
+
ngOnDestroy(): void;
|
|
25
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<PartialDialogComponent, [null, null, { attribute: "class"; }, { attribute: "modal"; }, { attribute: "closable"; }, { optional: true; }]>;
|
|
26
28
|
static ɵcmp: i0.ɵɵComponentDeclaration<PartialDialogComponent, "div[wmPartialDialog]", never, {}, {}, ["dialogContent", "partialRef"], never, true, never>;
|
|
27
29
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AfterViewInit, Injector } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { IWidgetConfig, StylableComponent } from '@wm/components/base';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare abstract class BaseFormComponent extends StylableComponent implements AfterViewInit {
|
|
4
|
+
export declare abstract class BaseFormComponent extends StylableComponent implements AfterViewInit, OnDestroy {
|
|
5
5
|
protected inj: Injector;
|
|
6
6
|
private dataval;
|
|
7
7
|
private prevDatavalue;
|
|
@@ -18,7 +18,9 @@ export declare abstract class BaseFormComponent extends StylableComponent implem
|
|
|
18
18
|
protected invokeOnChange(value: any, $event?: Event): void;
|
|
19
19
|
protected updatePrevDatavalue(val: any): void;
|
|
20
20
|
protected getPrevDataValue(): any;
|
|
21
|
+
private boundKeydownHandler;
|
|
21
22
|
ngAfterViewInit(): void;
|
|
23
|
+
ngOnDestroy(): void;
|
|
22
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormComponent, [null, null, { optional: true; }, null]>;
|
|
23
25
|
static ɵprov: i0.ɵɵInjectableDeclaration<BaseFormComponent>;
|
|
24
26
|
}
|
|
@@ -106,13 +106,27 @@
|
|
|
106
106
|
// [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget
|
|
107
107
|
let parentElemList = $(this.nativeElement).parents();
|
|
108
108
|
if (parentElemList.closest('[wmList]').length) {
|
|
109
|
-
|
|
109
|
+
// MEMORY LEAK FIX: Store bound function reference for cleanup
|
|
110
|
+
this.boundKeydownHandler = function ($event) {
|
|
110
111
|
if ($event.keyCode === 37 || $event.keyCode === 38 || $event.keyCode === 39 || $event.keyCode === 40) {
|
|
111
112
|
$event.stopPropagation();
|
|
112
113
|
}
|
|
113
|
-
}
|
|
114
|
+
};
|
|
115
|
+
this.$element.keydown(this.boundKeydownHandler);
|
|
114
116
|
}
|
|
115
117
|
}
|
|
118
|
+
ngOnDestroy() {
|
|
119
|
+
// MEMORY LEAK FIX: Remove jQuery event listener
|
|
120
|
+
if (this.boundKeydownHandler) {
|
|
121
|
+
this.$element.off('keydown', this.boundKeydownHandler);
|
|
122
|
+
this.boundKeydownHandler = null;
|
|
123
|
+
}
|
|
124
|
+
// MEMORY LEAK FIX: Clear references
|
|
125
|
+
this.prevDatavalue = null;
|
|
126
|
+
this.datavaluesource = null;
|
|
127
|
+
this.binddatavalue = null;
|
|
128
|
+
super.ngOnDestroy();
|
|
129
|
+
}
|
|
116
130
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: BaseFormComponent, deps: [{ token: i0__namespace.Injector }, { token: base.WidgetConfig }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: Promise }], target: i0__namespace.ɵɵFactoryTarget.Injectable }); }
|
|
117
131
|
static { this.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: BaseFormComponent }); }
|
|
118
132
|
}
|
|
@@ -86,13 +86,27 @@ export class BaseFormComponent extends StylableComponent {
|
|
|
86
86
|
// [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget
|
|
87
87
|
let parentElemList = $(this.nativeElement).parents();
|
|
88
88
|
if (parentElemList.closest('[wmList]').length) {
|
|
89
|
-
|
|
89
|
+
// MEMORY LEAK FIX: Store bound function reference for cleanup
|
|
90
|
+
this.boundKeydownHandler = function ($event) {
|
|
90
91
|
if ($event.keyCode === 37 || $event.keyCode === 38 || $event.keyCode === 39 || $event.keyCode === 40) {
|
|
91
92
|
$event.stopPropagation();
|
|
92
93
|
}
|
|
93
|
-
}
|
|
94
|
+
};
|
|
95
|
+
this.$element.keydown(this.boundKeydownHandler);
|
|
94
96
|
}
|
|
95
97
|
}
|
|
98
|
+
ngOnDestroy() {
|
|
99
|
+
// MEMORY LEAK FIX: Remove jQuery event listener
|
|
100
|
+
if (this.boundKeydownHandler) {
|
|
101
|
+
this.$element.off('keydown', this.boundKeydownHandler);
|
|
102
|
+
this.boundKeydownHandler = null;
|
|
103
|
+
}
|
|
104
|
+
// MEMORY LEAK FIX: Clear references
|
|
105
|
+
this.prevDatavalue = null;
|
|
106
|
+
this.datavaluesource = null;
|
|
107
|
+
this.binddatavalue = null;
|
|
108
|
+
super.ngOnDestroy();
|
|
109
|
+
}
|
|
96
110
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormComponent, deps: [{ token: i0.Injector }, { token: WidgetConfig }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: Promise }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
97
111
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormComponent }); }
|
|
98
112
|
}
|
|
@@ -107,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
107
121
|
}, {
|
|
108
122
|
type: Optional
|
|
109
123
|
}] }, { type: Promise }] });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9iYXNlLWZvcm0vc3JjL2Jhc2UtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEVBQWdCLGlCQUFpQixFQUFFLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLE1BQU0sV0FBVyxDQUFDOztBQUduQyxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGlCQUFpQjtJQU83RCxZQUNjLEdBQWEsRUFDRCxNQUFxQixFQUNILGVBQW9CLEVBQzVELFdBQTBCO1FBRTFCLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUx2QyxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBTXZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsU0FBUztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxLQUFLO1FBQ3JCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFdkMsOENBQThDO1FBQzlDLElBQUksSUFBSSxDQUFDLGVB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QUM3QixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztRQUNELDRCQUE0QjtRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRVMsbUJBQW1CLENBQUMsR0FBUTtRQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztJQUM3QixDQUFDO0lBQ1MsZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUVoQyxtSkFBbUo7UUFDM0ksSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyRCxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBUyxNQUFNO2dCQUNqQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQ25HLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7K0dBOUdpQixpQkFBaUIsMENBU3ZCLFlBQVksYUFDWixrQkFBa0I7bUhBVlosaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUR0QyxVQUFVOzswQkFVRixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0RhdGFTb3VyY2V9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHtJV2lkZ2V0Q29uZmlnLCBTdHlsYWJsZUNvbXBvbmVudCwgV2lkZ2V0Q29uZmlnfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7aGFzLCBzZXR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xuXG4gICAgcHJpdmF0ZSBkYXRhdmFsO1xuICAgIHByaXZhdGUgcHJldkRhdGF2YWx1ZTtcbiAgICBwcm90ZWN0ZWQgYmluZGRhdGF2YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF0YXZhbHVlc291cmNlOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbmo6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFdpZGdldENvbmZpZykgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksXG4gICAgICAgIGluaXRQcm9taXNlPzogUHJvbWlzZTxhbnk+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgY29uZmlnLCBleHBsaWNpdENvbnRleHQsIGluaXRQcm9taXNlKTtcbiAgICAgICAgdGhpcy5iaW5kZGF0YXZhbHVlID0gdGhpcy4kZWxlbWVudC5hdHRyKCdkYXRhdmFsdWUuYmluZCcpO1xuICAgIH1cblxuICAgIHNldCBkYXRhdmFsdWUoZGF0YXZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0YXZhbCA9IGRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGUgdmFyaWFibGUgYm91bmQgdG8gdGhlIHdpZGdldCdzIGRhdGF2YWx1ZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICB1cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKSB7XG4gICAgICAgIGxldCBiaW5kZGF0YXZhbHVlID0gdGhpcy5iaW5kZGF0YXZhbHVlO1xuXG4gICAgICAgIC8vIHJldHVybiBpZiB0aGUgdmFyaWFibGUgYm91bmQgaXMgbm90IHN0YXRpYy5cbiAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmIHRoaXMuZGF0YXZhbHVlc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmICF0aGlzLmRhdGF2YWx1ZXNvdXJjZS50d29XYXlCaW5kaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIGlmIHdpZGdldCBpcyBib3VuZC5cbiAgICAgICAgaWYgKCFiaW5kZGF0YXZhbHVlIHx8IGJpbmRkYXRhdmFsdWUuc3RhcnRzV2l0aCgnV2lkZ2V0cy4nKSB8fCBiaW5kZGF0YXZhbHVlLnN0YXJ0c1dpdGgoJ2l0ZW1SZWYuY3VycmVudEl0ZW1XaWRnZXRzJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJpbmRkYXRhdmFsdWUgPSBiaW5kZGF0YXZhbHVlLnJlcGxhY2UoL1xcW1xcJGlcXF0vZywgJ1swXScpO1xuICAgICAgICBiaW5kZGF0YXZhbHVlID0gYmluZGRhdGF2YWx1ZS5yZXBsYWNlKFxuICAgICAgICAgICAgL1xcWyguKj8pXFxdL2csXG4gICAgICAgICAgICAoX21hdGNoLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGV2YWwoYHRoaXMudmlld1BhcmVudC4ke2tleX1gKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgWyR7dmFsdWV9XWA7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnWzBdJ1xuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1swXSc7IC8vIGZhbGxiYWNrIGlmIGV2YWx1YXRpb24gZmFpbHNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cblxuICAgICAgICAvLyBJbiBjYXNlIG9mIGxpc3Qgd2lkZ2V0IGNvbnRleHQgd2lsbCBiZSB0aGUgbGlzdEl0ZW0uXG4gICAgICAgIGlmIChoYXModGhpcy5jb250ZXh0LCBiaW5kZGF0YXZhbHVlLnNwbGl0KCcuJylbMF0pICYmIGhhcyh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICBzZXQodGhpcy5jb250ZXh0LCBiaW5kZGF0YXZhbHVlLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFyZW50IHdpZGdldCBtdXN0IHVwZGF0ZSBvbiBjdXN0b20gd2lkZ2V0IGRhdGF2YWx1ZSBjaGFuZ2UgZm9yIGJpbmRpbmdzIHRvIHdvcmtcbiAgICAgICAgZWxzZSBpZiAoaGFzKHRoaXMudmlld1BhcmVudCwgYmluZGRhdGF2YWx1ZSkgJiYgdGhpcy52aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldD8uX2lzQ3VzdG9tKSB7XG4gICAgICAgICAgICBzZXQodGhpcy52aWV3UGFyZW50LCBiaW5kZGF0YXZhbHVlLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaGFzKHRoaXMudmlld1BhcmVudCwgYmluZGRhdGF2YWx1ZSkgJiYgdGhpcy5kYXRhdmFsdWVzb3VyY2U/Lm93bmVyID09PSBcIlBhZ2VcIikge1xuICAgICAgICAgICAgc2V0KHRoaXMudmlld1BhcmVudCwgYmluZGRhdGF2YWx1ZSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKGhhcyh0aGlzLnZpZXdQYXJlbnQ/LkFwcCwgYmluZGRhdGF2YWx1ZSkgJiYgdGhpcy5kYXRhdmFsdWVzb3VyY2U/Lm93bmVyID09PSBcIkFwcFwiKSB7XG4gICAgICAgICAgICBzZXQodGhpcy52aWV3UGFyZW50LkFwcCwgYmluZGRhdGF2YWx1ZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGludm9rZU9uQ2hhbmdlKHZhbHVlLCAkZXZlbnQ/OiBFdmVudCkge1xuICAgICAgICAvLyBpbnZva2UgdGhlIGV2ZW50IGNhbGxiYWNrXG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZSAhPT0gdGhpcy5wcmV2RGF0YXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2NoYW5nZScsIHtcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBuZXdWYWw6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBvbGRWYWw6IHRoaXMucHJldkRhdGF2YWx1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgcHJldmlvdXMgdmFsdWVcbiAgICAgICAgdGhpcy5wcmV2RGF0YXZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVByZXZEYXRhdmFsdWUodmFsOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wcmV2RGF0YXZhbHVlID0gdmFsO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0UHJldkRhdGFWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldkRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4vLyBbV01TLTE4ODkyXS0gc3RvcHBpbmcgZXZlbnQgcHJvcGFnYXRpb24gW2ZvciBBcnJvd0xlZnQsIEFycm93VXAsIEFycm93UmlnaHQsIEFycm93RG93biBhY3Rpb25zXSAgd2hlbiBmb3JtIHdpZGdldHMgb3IgZm9ybSBpcyBpbnNpZGUgbGlzdCB3aWRnZXRcbiAgICAgICAgbGV0IHBhcmVudEVsZW1MaXN0ID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpLnBhcmVudHMoKTtcbiAgICAgICAgaWYgKHBhcmVudEVsZW1MaXN0LmNsb3Nlc3QoJ1t3bUxpc3RdJykubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmtleWRvd24oZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKCRldmVudC5rZXlDb2RlID09PSAzNyB8fCAkZXZlbnQua2V5Q29kZSA9PT0gMzggfHwgJGV2ZW50LmtleUNvZGUgPT09IDM5IHx8ICRldmVudC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9iYXNlLWZvcm0vc3JjL2Jhc2UtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEVBQWdCLGlCQUFpQixFQUFFLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLE1BQU0sV0FBVyxDQUFDOztBQUduQyxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGlCQUFpQjtJQU83RCxZQUNjLEdBQWEsRUFDRCxNQUFxQixFQUNILGVBQW9CLEVBQzVELFdBQTBCO1FBRTFCLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUx2QyxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBTXZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsU0FBUztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxLQUFLO1FBQ3JCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFdkMsOENBQThDO1FBQzlDLElBQUksSUFBSSxDQUFDLGVB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QUM7UUFDcEMsQ0FBQztRQUVELG9DQUFvQztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FqSWlCLGlCQUFpQiwwQ0FTdkIsWUFBWSxhQUNaLGtCQUFrQjttSEFWWixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRHRDLFVBQVU7OzBCQVVGLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtEYXRhU291cmNlfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7SVdpZGdldENvbmZpZywgU3R5bGFibGVDb21wb25lbnQsIFdpZGdldENvbmZpZ30gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge2hhcywgc2V0fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRm9ybUNvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIHByaXZhdGUgZGF0YXZhbDtcbiAgICBwcml2YXRlIHByZXZEYXRhdmFsdWU7XG4gICAgcHJvdGVjdGVkIGJpbmRkYXRhdmFsdWU6IHN0cmluZztcbiAgICBwcml2YXRlIGRhdGF2YWx1ZXNvdXJjZTogYW55O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgaW5qOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChXaWRnZXRDb25maWcpIGNvbmZpZzogSVdpZGdldENvbmZpZyxcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55LFxuICAgICAgICBpbml0UHJvbWlzZT86IFByb21pc2U8YW55PlxuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIGNvbmZpZywgZXhwbGljaXRDb250ZXh0LCBpbml0UHJvbWlzZSk7XG4gICAgICAgIHRoaXMuYmluZGRhdGF2YWx1ZSA9IHRoaXMuJGVsZW1lbnQuYXR0cignZGF0YXZhbHVlLmJpbmQnKTtcbiAgICB9XG5cbiAgICBzZXQgZGF0YXZhbHVlKGRhdGF2YWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGF2YWwgPSBkYXRhdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGRhdGF2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YXZhbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNwb25zaWJsZSBmb3IgdXBkYXRpbmcgdGhlIHZhcmlhYmxlIGJvdW5kIHRvIHRoZSB3aWRnZXQncyBkYXRhdmFsdWUgcHJvcGVydHkuXG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICovXG4gICAgdXBkYXRlQm91bmRWYXJpYWJsZSh2YWx1ZSkge1xuICAgICAgICBsZXQgYmluZGRhdGF2YWx1ZSA9IHRoaXMuYmluZGRhdGF2YWx1ZTtcblxuICAgICAgICAvLyByZXR1cm4gaWYgdGhlIHZhcmlhYmxlIGJvdW5kIGlzIG5vdCBzdGF0aWMuXG4gICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZXNvdXJjZSAmJiB0aGlzLmRhdGF2YWx1ZXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX0FQSV9BV0FSRSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGF2YWx1ZXNvdXJjZSAmJiAhdGhpcy5kYXRhdmFsdWVzb3VyY2UudHdvV2F5QmluZGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJldHVybiBpZiB3aWRnZXQgaXMgYm91bmQuXG4gICAgICAgIGlmICghYmluZGRhdGF2YWx1ZSB8fCBiaW5kZGF0YXZhbHVlLnN0YXJ0c1dpdGgoJ1dpZGdldHMuJykgfHwgYmluZGRhdGF2YWx1ZS5zdGFydHNXaXRoKCdpdGVtUmVmLmN1cnJlbnRJdGVtV2lkZ2V0cycpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBiaW5kZGF0YXZhbHVlID0gYmluZGRhdGF2YWx1ZS5yZXBsYWNlKC9cXFtcXCRpXFxdL2csICdbMF0nKTtcbiAgICAgICAgYmluZGRhdGF2YWx1ZSA9IGJpbmRkYXRhdmFsdWUucmVwbGFjZShcbiAgICAgICAgICAgIC9cXFsoLio/KVxcXS9nLFxuICAgICAgICAgICAgKF9tYXRjaCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBldmFsKGB0aGlzLnZpZXdQYXJlbnQuJHtrZXl9YCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFske3ZhbHVlfV1gO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1swXSdcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbMF0nOyAvLyBmYWxsYmFjayBpZiBldmFsdWF0aW9uIGZhaWxzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG5cbiAgICAgICAgLy8gSW4gY2FzZSBvZiBsaXN0IHdpZGdldCBjb250ZXh0IHdpbGwgYmUgdGhlIGxpc3RJdGVtLlxuICAgICAgICBpZiAoaGFzKHRoaXMuY29udGV4dCwgYmluZGRhdGF2YWx1ZS5zcGxpdCgnLicpWzBdKSAmJiBoYXModGhpcy5jb250ZXh0LCBiaW5kZGF0YXZhbHVlKSkge1xuICAgICAgICAgICAgc2V0KHRoaXMuY29udGV4dCwgYmluZGRhdGF2YWx1ZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFBhcmVudCB3aWRnZXQgbXVzdCB1cGRhdGUgb24gY3VzdG9tIHdpZGdldCBkYXRhdmFsdWUgY2hhbmdlIGZvciBiaW5kaW5ncyB0byB3b3JrXG4gICAgICAgIGVsc2UgaWYgKGhhcyh0aGlzLnZpZXdQYXJlbnQsIGJpbmRkYXRhdmFsdWUpICYmIHRoaXMudmlld1BhcmVudC5jb250YWluZXJXaWRnZXQ/Ll9pc0N1c3RvbSkge1xuICAgICAgICAgICAgc2V0KHRoaXMudmlld1BhcmVudCwgYmluZGRhdGF2YWx1ZSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKGhhcyh0aGlzLnZpZXdQYXJlbnQsIGJpbmRkYXRhdmFsdWUpICYmIHRoaXMuZGF0YXZhbHVlc291cmNlPy5vd25lciA9PT0gXCJQYWdlXCIpIHtcbiAgICAgICAgICAgIHNldCh0aGlzLnZpZXdQYXJlbnQsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmIChoYXModGhpcy52aWV3UGFyZW50Py5BcHAsIGJpbmRkYXRhdmFsdWUpICYmIHRoaXMuZGF0YXZhbHVlc291cmNlPy5vd25lciA9PT0gXCJBcHBcIikge1xuICAgICAgICAgICAgc2V0KHRoaXMudmlld1BhcmVudC5BcHAsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbnZva2VPbkNoYW5nZSh2YWx1ZSwgJGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgLy8gaW52b2tlIHRoZSBldmVudCBjYWxsYmFja1xuICAgICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhdmFsdWUgIT09IHRoaXMucHJldkRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQm91bmRWYXJpYWJsZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdjaGFuZ2UnLCB7XG4gICAgICAgICAgICAgICAgICAgICRldmVudCxcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgb2xkVmFsOiB0aGlzLnByZXZEYXRhdmFsdWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyB1cGRhdGUgdGhlIHByZXZpb3VzIHZhbHVlXG4gICAgICAgIHRoaXMucHJldkRhdGF2YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVQcmV2RGF0YXZhbHVlKHZhbDogYW55KSB7XG4gICAgICAgIHRoaXMucHJldkRhdGF2YWx1ZSA9IHZhbDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldFByZXZEYXRhVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZEYXRhdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBib3VuZEtleWRvd25IYW5kbGVyOiAoZXZlbnQ6IEpRdWVyeS5FdmVudCkgPT4gdm9pZDtcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbi8vIFtXTVMtMTg4OTJdLSBzdG9wcGluZyBldmVudCBwcm9wYWdhdGlvbiBbZm9yIEFycm93TGVmdCwgQXJyb3dVcCwgQXJyb3dSaWdodCwgQXJyb3dEb3duIGFjdGlvbnNdICB3aGVuIGZvcm0gd2lkZ2V0cyBvciBmb3JtIGlzIGluc2lkZSBsaXN0IHdpZGdldFxuICAgICAgICBsZXQgcGFyZW50RWxlbUxpc3QgPSAkKHRoaXMubmF0aXZlRWxlbWVudCkucGFyZW50cygpO1xuICAgICAgICBpZiAocGFyZW50RWxlbUxpc3QuY2xvc2VzdCgnW3dtTGlzdF0nKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogU3RvcmUgYm91bmQgZnVuY3Rpb24gcmVmZXJlbmNlIGZvciBjbGVhbnVwXG4gICAgICAgICAgICB0aGlzLmJvdW5kS2V5ZG93bkhhbmRsZXIgPSBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoJGV2ZW50LmtleUNvZGUgPT09IDM3IHx8ICRldmVudC5rZXlDb2RlID09PSAzOCB8fCAkZXZlbnQua2V5Q29kZSA9PT0gMzkgfHwgJGV2ZW50LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5rZXlkb3duKHRoaXMuYm91bmRLZXlkb3duSGFuZGxlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBSZW1vdmUgalF1ZXJ5IGV2ZW50IGxpc3RlbmVyXG4gICAgICAgIGlmICh0aGlzLmJvdW5kS2V5ZG93bkhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQub2ZmKCdrZXlkb3duJywgdGhpcy5ib3VuZEtleWRvd25IYW5kbGVyKTtcbiAgICAgICAgICAgIHRoaXMuYm91bmRLZXlkb3duSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIHJlZmVyZW5jZXNcbiAgICAgICAgdGhpcy5wcmV2RGF0YXZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5kYXRhdmFsdWVzb3VyY2UgPSBudWxsO1xuICAgICAgICB0aGlzLmJpbmRkYXRhdmFsdWUgPSBudWxsO1xuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIl19
|
|
@@ -87,13 +87,27 @@ class BaseFormComponent extends StylableComponent {
|
|
|
87
87
|
// [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget
|
|
88
88
|
let parentElemList = $(this.nativeElement).parents();
|
|
89
89
|
if (parentElemList.closest('[wmList]').length) {
|
|
90
|
-
|
|
90
|
+
// MEMORY LEAK FIX: Store bound function reference for cleanup
|
|
91
|
+
this.boundKeydownHandler = function ($event) {
|
|
91
92
|
if ($event.keyCode === 37 || $event.keyCode === 38 || $event.keyCode === 39 || $event.keyCode === 40) {
|
|
92
93
|
$event.stopPropagation();
|
|
93
94
|
}
|
|
94
|
-
}
|
|
95
|
+
};
|
|
96
|
+
this.$element.keydown(this.boundKeydownHandler);
|
|
95
97
|
}
|
|
96
98
|
}
|
|
99
|
+
ngOnDestroy() {
|
|
100
|
+
// MEMORY LEAK FIX: Remove jQuery event listener
|
|
101
|
+
if (this.boundKeydownHandler) {
|
|
102
|
+
this.$element.off('keydown', this.boundKeydownHandler);
|
|
103
|
+
this.boundKeydownHandler = null;
|
|
104
|
+
}
|
|
105
|
+
// MEMORY LEAK FIX: Clear references
|
|
106
|
+
this.prevDatavalue = null;
|
|
107
|
+
this.datavaluesource = null;
|
|
108
|
+
this.binddatavalue = null;
|
|
109
|
+
super.ngOnDestroy();
|
|
110
|
+
}
|
|
97
111
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormComponent, deps: [{ token: i0.Injector }, { token: WidgetConfig }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: Promise }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
98
112
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormComponent }); }
|
|
99
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/base-form/src/base-form.component.ts","../../../../../projects/components/widgets/input/base-form/src/index.ts"],"sourcesContent":["import {AfterViewInit, Inject, Injectable, Injector, Optional} from '@angular/core';\n\nimport {DataSource} from '@wm/core';\n\nimport {IWidgetConfig, StylableComponent, WidgetConfig} from '@wm/components/base';\nimport {has, set} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseFormComponent extends StylableComponent implements AfterViewInit{\n\n private dataval;\n private prevDatavalue;\n protected binddatavalue: string;\n private datavaluesource: any;\n\n protected constructor(\n protected inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n initPromise?: Promise<any>\n ) {\n super(inj, config, explicitContext, initPromise);\n this.binddatavalue = this.$element.attr('datavalue.bind');\n }\n\n set datavalue(datavalue) {\n this.dataval = datavalue;\n }\n\n get datavalue() {\n return this.dataval;\n }\n\n /**\n * Responsible for updating the variable bound to the widget's datavalue property.\n * @param value\n */\n updateBoundVariable(value) {\n let binddatavalue = this.binddatavalue;\n\n // return if the variable bound is not static.\n if (this.datavaluesource && this.datavaluesource.execute(DataSource.Operation.IS_API_AWARE)) {\n return;\n } else if (this.datavaluesource && !this.datavaluesource.twoWayBinding) {\n return;\n }\n\n // return if widget is bound.\n if (!binddatavalue || binddatavalue.startsWith('Widgets.') || binddatavalue.startsWith('itemRef.currentItemWidgets')) {\n return;\n }\n\n binddatavalue = binddatavalue.replace(/\\[\\$i\\]/g, '[0]');\n binddatavalue = binddatavalue.replace(\n /\\[(.*?)\\]/g,\n (_match, key) => {\n try {\n const value = eval(`this.viewParent.${key}`);\n if (typeof value === 'string' || typeof value === 'number')\n return `[${value}]`;\n else\n return '[0]'\n } catch {\n return '[0]'; // fallback if evaluation fails\n }\n }\n );\n\n\n // In case of list widget context will be the listItem.\n if (has(this.context, binddatavalue.split('.')[0]) && has(this.context, binddatavalue)) {\n set(this.context, binddatavalue, value);\n }\n // Parent widget must update on custom widget datavalue change for bindings to work\n else if (has(this.viewParent, binddatavalue) && this.viewParent.containerWidget?._isCustom) {\n set(this.viewParent, binddatavalue, value);\n } else if (has(this.viewParent, binddatavalue) && this.datavaluesource?.owner === \"Page\") {\n set(this.viewParent, binddatavalue, value);\n } else if (has(this.viewParent?.App, binddatavalue) && this.datavaluesource?.owner === \"App\") {\n set(this.viewParent.App, binddatavalue, value);\n }\n }\n\n protected invokeOnChange(value, $event?: Event) {\n // invoke the event callback\n if ($event) {\n if (this.datavalue !== this.prevDatavalue) {\n this.updateBoundVariable(value);\n this.invokeEventCallback('change', {\n $event,\n newVal: value,\n oldVal: this.prevDatavalue\n });\n }\n }\n // update the previous value\n this.prevDatavalue = value;\n }\n\n protected updatePrevDatavalue(val: any) {\n this.prevDatavalue = val;\n }\n protected getPrevDataValue() {\n return this.prevDatavalue;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n// [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget\n let parentElemList = $(this.nativeElement).parents();\n if (parentElemList.closest('[wmList]').length) {\n this
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/base-form/src/base-form.component.ts","../../../../../projects/components/widgets/input/base-form/src/index.ts"],"sourcesContent":["import {AfterViewInit, Inject, Injectable, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport {DataSource} from '@wm/core';\n\nimport {IWidgetConfig, StylableComponent, WidgetConfig} from '@wm/components/base';\nimport {has, set} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseFormComponent extends StylableComponent implements AfterViewInit, OnDestroy {\n\n private dataval;\n private prevDatavalue;\n protected binddatavalue: string;\n private datavaluesource: any;\n\n protected constructor(\n protected inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n initPromise?: Promise<any>\n ) {\n super(inj, config, explicitContext, initPromise);\n this.binddatavalue = this.$element.attr('datavalue.bind');\n }\n\n set datavalue(datavalue) {\n this.dataval = datavalue;\n }\n\n get datavalue() {\n return this.dataval;\n }\n\n /**\n * Responsible for updating the variable bound to the widget's datavalue property.\n * @param value\n */\n updateBoundVariable(value) {\n let binddatavalue = this.binddatavalue;\n\n // return if the variable bound is not static.\n if (this.datavaluesource && this.datavaluesource.execute(DataSource.Operation.IS_API_AWARE)) {\n return;\n } else if (this.datavaluesource && !this.datavaluesource.twoWayBinding) {\n return;\n }\n\n // return if widget is bound.\n if (!binddatavalue || binddatavalue.startsWith('Widgets.') || binddatavalue.startsWith('itemRef.currentItemWidgets')) {\n return;\n }\n\n binddatavalue = binddatavalue.replace(/\\[\\$i\\]/g, '[0]');\n binddatavalue = binddatavalue.replace(\n /\\[(.*?)\\]/g,\n (_match, key) => {\n try {\n const value = eval(`this.viewParent.${key}`);\n if (typeof value === 'string' || typeof value === 'number')\n return `[${value}]`;\n else\n return '[0]'\n } catch {\n return '[0]'; // fallback if evaluation fails\n }\n }\n );\n\n\n // In case of list widget context will be the listItem.\n if (has(this.context, binddatavalue.split('.')[0]) && has(this.context, binddatavalue)) {\n set(this.context, binddatavalue, value);\n }\n // Parent widget must update on custom widget datavalue change for bindings to work\n else if (has(this.viewParent, binddatavalue) && this.viewParent.containerWidget?._isCustom) {\n set(this.viewParent, binddatavalue, value);\n } else if (has(this.viewParent, binddatavalue) && this.datavaluesource?.owner === \"Page\") {\n set(this.viewParent, binddatavalue, value);\n } else if (has(this.viewParent?.App, binddatavalue) && this.datavaluesource?.owner === \"App\") {\n set(this.viewParent.App, binddatavalue, value);\n }\n }\n\n protected invokeOnChange(value, $event?: Event) {\n // invoke the event callback\n if ($event) {\n if (this.datavalue !== this.prevDatavalue) {\n this.updateBoundVariable(value);\n this.invokeEventCallback('change', {\n $event,\n newVal: value,\n oldVal: this.prevDatavalue\n });\n }\n }\n // update the previous value\n this.prevDatavalue = value;\n }\n\n protected updatePrevDatavalue(val: any) {\n this.prevDatavalue = val;\n }\n protected getPrevDataValue() {\n return this.prevDatavalue;\n }\n\n private boundKeydownHandler: (event: JQuery.Event) => void;\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n// [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget\n let parentElemList = $(this.nativeElement).parents();\n if (parentElemList.closest('[wmList]').length) {\n // MEMORY LEAK FIX: Store bound function reference for cleanup\n this.boundKeydownHandler = function($event) {\n if ($event.keyCode === 37 || $event.keyCode === 38 || $event.keyCode === 39 || $event.keyCode === 40) {\n $event.stopPropagation();\n }\n };\n this.$element.keydown(this.boundKeydownHandler);\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Remove jQuery event listener\n if (this.boundKeydownHandler) {\n this.$element.off('keydown', this.boundKeydownHandler);\n this.boundKeydownHandler = null;\n }\n\n // MEMORY LEAK FIX: Clear references\n this.prevDatavalue = null;\n this.datavaluesource = null;\n this.binddatavalue = null;\n\n super.ngOnDestroy();\n }\n}\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
1
|
import { ControlValueAccessor, FormControlName, Validator, AbstractControl } from '@angular/forms';
|
|
2
|
-
import { OnInit } from '@angular/core';
|
|
2
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
3
3
|
import { BaseFormComponent } from '@wm/components/input/base-form';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare abstract class BaseFormCustomComponent extends BaseFormComponent implements ControlValueAccessor, OnInit, Validator {
|
|
5
|
+
export declare abstract class BaseFormCustomComponent extends BaseFormComponent implements ControlValueAccessor, OnInit, OnDestroy, Validator {
|
|
6
6
|
private _formControl;
|
|
7
7
|
protected _onChange: any;
|
|
8
8
|
private _onTouched;
|
|
@@ -17,6 +17,7 @@ export declare abstract class BaseFormCustomComponent extends BaseFormComponent
|
|
|
17
17
|
validate(control: AbstractControl): {
|
|
18
18
|
[key: string]: any;
|
|
19
19
|
};
|
|
20
|
+
ngOnDestroy(): void;
|
|
20
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormCustomComponent, never>;
|
|
21
22
|
static ɵprov: i0.ɵɵInjectableDeclaration<BaseFormCustomComponent>;
|
|
22
23
|
}
|
|
@@ -84,7 +84,9 @@
|
|
|
84
84
|
}
|
|
85
85
|
invokeOnChange(value, $event, valid) {
|
|
86
86
|
// let the angular know about the change
|
|
87
|
-
this._onChange
|
|
87
|
+
if (this._onChange) {
|
|
88
|
+
this._onChange(value);
|
|
89
|
+
}
|
|
88
90
|
if ($event) {
|
|
89
91
|
super.invokeOnChange(value, $event);
|
|
90
92
|
}
|
|
@@ -94,7 +96,9 @@
|
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
invokeOnTouched($event) {
|
|
97
|
-
this._onTouched
|
|
99
|
+
if (this._onTouched) {
|
|
100
|
+
this._onTouched();
|
|
101
|
+
}
|
|
98
102
|
if ($event) {
|
|
99
103
|
this.invokeEventCallback('blur', { $event });
|
|
100
104
|
}
|
|
@@ -106,6 +110,13 @@
|
|
|
106
110
|
validate(control) {
|
|
107
111
|
return this['show'] ? validateRequiredBind(this['required'])(control) : null;
|
|
108
112
|
}
|
|
113
|
+
ngOnDestroy() {
|
|
114
|
+
// MEMORY LEAK FIX: Clear form control reference
|
|
115
|
+
this._formControl = null;
|
|
116
|
+
this._onChange = null;
|
|
117
|
+
this._onTouched = null;
|
|
118
|
+
super.ngOnDestroy();
|
|
119
|
+
}
|
|
109
120
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: BaseFormCustomComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Injectable }); }
|
|
110
121
|
static { this.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: BaseFormCustomComponent }); }
|
|
111
122
|
}
|
|
@@ -63,7 +63,9 @@ export class BaseFormCustomComponent extends BaseFormComponent {
|
|
|
63
63
|
}
|
|
64
64
|
invokeOnChange(value, $event, valid) {
|
|
65
65
|
// let the angular know about the change
|
|
66
|
-
this._onChange
|
|
66
|
+
if (this._onChange) {
|
|
67
|
+
this._onChange(value);
|
|
68
|
+
}
|
|
67
69
|
if ($event) {
|
|
68
70
|
super.invokeOnChange(value, $event);
|
|
69
71
|
}
|
|
@@ -73,7 +75,9 @@ export class BaseFormCustomComponent extends BaseFormComponent {
|
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
invokeOnTouched($event) {
|
|
76
|
-
this._onTouched
|
|
78
|
+
if (this._onTouched) {
|
|
79
|
+
this._onTouched();
|
|
80
|
+
}
|
|
77
81
|
if ($event) {
|
|
78
82
|
this.invokeEventCallback('blur', { $event });
|
|
79
83
|
}
|
|
@@ -85,10 +89,17 @@ export class BaseFormCustomComponent extends BaseFormComponent {
|
|
|
85
89
|
validate(control) {
|
|
86
90
|
return this['show'] ? validateRequiredBind(this['required'])(control) : null;
|
|
87
91
|
}
|
|
92
|
+
ngOnDestroy() {
|
|
93
|
+
// MEMORY LEAK FIX: Clear form control reference
|
|
94
|
+
this._formControl = null;
|
|
95
|
+
this._onChange = null;
|
|
96
|
+
this._onTouched = null;
|
|
97
|
+
super.ngOnDestroy();
|
|
98
|
+
}
|
|
88
99
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormCustomComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
89
100
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormCustomComponent }); }
|
|
90
101
|
}
|
|
91
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormCustomComponent, decorators: [{
|
|
92
103
|
type: Injectable
|
|
93
104
|
}] });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLWN1c3RvbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvYmFzZS1mb3JtLWN1c3RvbS9zcmMvYmFzZS1mb3JtLWN1c3RvbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixlQUFlLEVBQTJDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEgsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRW5FOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxHQUFHO0lBQ3JCLFFBQU8sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM3RSxLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7QUFDTCxDQUFDO0FBQ0QsU0FBUyxvQkFBb0IsQ0FBQyxRQUFpQjtJQUMzQyxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFLENBQ2hDLFFBQVE7UUFDSixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMxQixDQUFD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O0lBRUQsV0FBVztRQUNQLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUV2QixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FsRmlCLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUQ1QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sTmFtZSwgVmFsaWRhdG9yLCBWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUZvcm1Db21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dC9iYXNlLWZvcm0nO1xuXG4vKlxuICogV01TLTE4MjY5XG4gKiBjdXN0b20gJ3JlcXVpcmVkJyB2YWxpZGF0b3IgZm9yIGNvbXBvbmVudHMsXG4gKiBhcyB0aGUgYm91bmQgdmFsdWVzIGFyZSByZXNvbHZlZCBhdCBydW50aW1lXG4gKiBDYWxsZWQgb24gJ3JlcXVpcmVkJyBwcm9wZXJ0eSBjaGFuZ2VcbiAqXG4gKiBOb3RlOiBDb21wb25lbnQgbmVlZHMgTkdfVkFMSURBVE9SIHByb3ZpZGVyIGZvciB0aGlzIHRvIHdvcmtcbiAqL1xuZnVuY3Rpb24gaXNWYWxpZFZhbHVlKHZhbCk6IEJvb2xlYW4ge1xuICAgIHN3aXRjaCh0eXBlb2YgdmFsKSB7XG4gICAgICAgIGNhc2UgJ29iamVjdCc6IHJldHVybiAoISF2YWwgJiYgKCEhdmFsLmxlbmd0aCB8fCAhIU9iamVjdC5rZXlzKHZhbCkubGVuZ3RoKSk7XG4gICAgICAgIGNhc2UgJ251bWJlcic6IHJldHVybiAoISF2YWwgfHwgdmFsID09PSAwKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiAhKHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09ICcnKTtcbiAgICB9XG59XG5mdW5jdGlvbiB2YWxpZGF0ZVJlcXVpcmVkQmluZChyZXF1aXJlZDogYm9vbGVhbik6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT5cbiAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgID8gKGlzVmFsaWRWYWx1ZShjb250cm9sLnZhbHVlKVxuICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgIDogeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgICAgICAgICAgOiBudWxsO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZvcm1DdXN0b21Db21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSwgVmFsaWRhdG9yIHtcblxuICAgIHByaXZhdGUgX2Zvcm1Db250cm9sOiBGb3JtQ29udHJvbE5hbWU7XG4gICAgcHJvdGVjdGVkIF9vbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbCA9IHRoaXMuaW5qLmdldChGb3JtQ29udHJvbE5hbWUsIG51bGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuKSB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2Zvcm1Db250cm9sKSB7XG5cbiAgICAgICAgICAgIGlmKHRoaXMuX2Zvcm1Db250cm9sLnZhbHVlQWNjZXNzb3JbXCJ3aWRnZXRTdWJUeXBlXCJdLnN0YXJ0c1dpdGgoJ3dtLWN1c3RvbS0nKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIHRoaXMuZGF0YXZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLm9uUHJvcGVydHlDaGFuZ2UoJ2RhdGF2YWx1ZScsIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJldkRhdGF2YWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgLypcbiAgICAgICAgICogV01TOjE4MjQ2XG4gICAgICAgICAqIENhbGwgb25DaGFuZ2Ugb24gZGVmYXVsdCB2YWx1ZSwgc28gdGhhdCB0aGUgQ29tcG9uZW50IE1vZGVsIGlzIHVwZGF0ZWRcbiAgICAgICAgICogRG8gb25seSBXaGVuIHRoZSBNb2RlbCBWYWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSBkYXRhdmFsdWVcbiAgICAgICAgICovXG4gICAgICAgICh2YWx1ZSE9PXRoaXMuZGF0YXZhbHVlKSAmJiB0aGlzLl9vbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb3JtQ29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Db250cm9sO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbnZva2VPbkNoYW5nZSh2YWx1ZSwgJGV2ZW50PzogRXZlbnQgfCBhbnksIHZhbGlkPzogYm9vbGVhbikge1xuICAgICAgICAvLyBsZXQgdGhlIGFuZ3VsYXIga25vdyBhYm91dCB0aGUgY2hhbmdlXG4gICAgICAgIGlmICh0aGlzLl9vbkNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAgIHN1cGVyLmludm9rZU9uQ2hhbmdlKHZhbHVlLCAkZXZlbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbGlkKSB7XG4gICAgICAgICAgICAvLyBGaXggZm9yIFtXTVMtMjQ4NjldOiB1cGRhdGluZyBQcmV2RGF0YXZhbHVlIHdoZW4gdGhlcmUgaXMgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgd2lkZ2V0LlxuICAgICAgICAgICAgdGhpcy51cGRhdGVQcmV2RGF0YXZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbnZva2VPblRvdWNoZWQoJGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuX29uVG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2JsdXInLCB7JGV2ZW50fSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW52b2tlT25Gb2N1cygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZm9jdXMnLCB7JGV2ZW50fSk7XG4gICAgfVxuICAgIC8qIFdNUy0xODI2OSAqL1xuICAgIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6e1trZXk6IHN0cmluZ106YW55fSB7XG4gICAgICAgIHJldHVybiB0aGlzWydzaG93J10gPyB2YWxpZGF0ZVJlcXVpcmVkQmluZCh0aGlzWydyZXF1aXJlZCddKShjb250cm9sKSA6IG51bGw7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgZm9ybSBjb250cm9sIHJlZmVyZW5jZVxuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbCA9IG51bGw7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gbnVsbDtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkID0gbnVsbDtcblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -64,7 +64,9 @@ class BaseFormCustomComponent extends BaseFormComponent {
|
|
|
64
64
|
}
|
|
65
65
|
invokeOnChange(value, $event, valid) {
|
|
66
66
|
// let the angular know about the change
|
|
67
|
-
this._onChange
|
|
67
|
+
if (this._onChange) {
|
|
68
|
+
this._onChange(value);
|
|
69
|
+
}
|
|
68
70
|
if ($event) {
|
|
69
71
|
super.invokeOnChange(value, $event);
|
|
70
72
|
}
|
|
@@ -74,7 +76,9 @@ class BaseFormCustomComponent extends BaseFormComponent {
|
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
invokeOnTouched($event) {
|
|
77
|
-
this._onTouched
|
|
79
|
+
if (this._onTouched) {
|
|
80
|
+
this._onTouched();
|
|
81
|
+
}
|
|
78
82
|
if ($event) {
|
|
79
83
|
this.invokeEventCallback('blur', { $event });
|
|
80
84
|
}
|
|
@@ -86,6 +90,13 @@ class BaseFormCustomComponent extends BaseFormComponent {
|
|
|
86
90
|
validate(control) {
|
|
87
91
|
return this['show'] ? validateRequiredBind(this['required'])(control) : null;
|
|
88
92
|
}
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
// MEMORY LEAK FIX: Clear form control reference
|
|
95
|
+
this._formControl = null;
|
|
96
|
+
this._onChange = null;
|
|
97
|
+
this._onTouched = null;
|
|
98
|
+
super.ngOnDestroy();
|
|
99
|
+
}
|
|
89
100
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormCustomComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
90
101
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormCustomComponent }); }
|
|
91
102
|
}
|