@wavemaker/app-ng-runtime 11.14.1-rc.6311 → 11.14.2-1.245
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/advanced/carousel/bundles/index.umd.js +15 -1
- package/components/advanced/carousel/carousel.directive.d.ts +1 -0
- package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
- package/components/advanced/carousel/fesm2022/index.mjs +15 -1
- package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/bundles/index.umd.js +24 -3
- package/components/advanced/login/esm2022/login.component.mjs +25 -4
- package/components/advanced/login/fesm2022/index.mjs +24 -3
- package/components/advanced/login/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/login.component.d.ts +5 -2
- package/components/base/bundles/index.umd.js +323 -28
- package/components/base/directives/show-in-device.directive.d.ts +2 -1
- package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
- package/components/base/esm2022/pipes/custom-pipes.mjs +1 -1
- package/components/base/esm2022/utils/widget-utils.mjs +3 -3
- package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
- package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
- package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
- package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
- package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
- package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
- package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
- package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
- package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
- package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
- package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
- package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
- package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
- package/components/base/fesm2022/index.mjs +319 -26
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
- package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
- package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
- package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
- package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
- package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
- package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
- package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
- package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
- package/components/basic/anchor/bundles/index.umd.js +13 -1
- package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
- package/components/basic/anchor/fesm2022/index.mjs +13 -1
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/html/bundles/index.umd.js +13 -1
- package/components/basic/html/esm2022/html.directive.mjs +14 -2
- package/components/basic/html/fesm2022/index.mjs +13 -1
- package/components/basic/html/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/bundles/index.umd.js +17 -1
- package/components/basic/label/esm2022/label.directive.mjs +18 -2
- package/components/basic/label/fesm2022/index.mjs +17 -1
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/label.directive.d.ts +3 -2
- package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
- package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
- package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
- package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
- package/components/basic/search/bundles/index.umd.js +40 -12
- package/components/basic/search/esm2022/scrollable.directive.mjs +11 -2
- package/components/basic/search/esm2022/search.component.mjs +31 -12
- package/components/basic/search/fesm2022/index.mjs +40 -12
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/scrollable.directive.d.ts +4 -2
- package/components/basic/search/search.component.d.ts +3 -2
- package/components/basic/spinner/bundles/index.umd.js +9 -1
- package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
- package/components/basic/spinner/fesm2022/index.mjs +9 -1
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/spinner.component.d.ts +4 -2
- package/components/chart/bundles/index.umd.js +21 -3
- package/components/chart/esm2022/chart.component.mjs +22 -4
- package/components/chart/fesm2022/index.mjs +21 -3
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
- package/components/containers/accordion/accordion.directive.d.ts +5 -2
- package/components/containers/accordion/bundles/index.umd.js +49 -2
- package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
- package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
- package/components/containers/accordion/fesm2022/index.mjs +49 -2
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +13 -0
- package/components/containers/panel/esm2022/panel.component.mjs +14 -1
- package/components/containers/panel/fesm2022/index.mjs +13 -0
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/panel.component.d.ts +3 -2
- package/components/containers/tabs/bundles/index.umd.js +54 -2
- package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
- package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
- package/components/containers/tabs/fesm2022/index.mjs +54 -2
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
- package/components/containers/tabs/tabs.component.d.ts +5 -2
- package/components/containers/wizard/bundles/index.umd.js +47 -3
- package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
- package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
- package/components/containers/wizard/fesm2022/index.mjs +47 -3
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
- package/components/containers/wizard/wizard.component.d.ts +4 -2
- package/components/data/card/bundles/index.umd.js +17 -1
- package/components/data/card/card-content/card-content.component.d.ts +3 -2
- package/components/data/card/card.component.d.ts +4 -2
- package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
- package/components/data/card/esm2022/card.component.mjs +13 -2
- package/components/data/card/fesm2022/index.mjs +17 -1
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +92 -0
- package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
- package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
- package/components/data/form/esm2022/form.component.mjs +27 -1
- package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
- package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
- package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
- package/components/data/form/fesm2022/index.mjs +92 -0
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form-action/form-action.directive.d.ts +3 -2
- package/components/data/form/form-field/form-field.directive.d.ts +3 -2
- package/components/data/form/form-widget.directive.d.ts +3 -2
- package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
- package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
- package/components/data/form/live-form/live-form.directive.d.ts +3 -1
- package/components/data/list/bundles/index.umd.js +180 -17
- package/components/data/list/esm2022/list-item.directive.mjs +95 -11
- package/components/data/list/esm2022/list.component.mjs +87 -8
- package/components/data/list/fesm2022/index.mjs +180 -17
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/list-item.directive.d.ts +7 -2
- package/components/data/list/list.component.d.ts +3 -0
- package/components/data/live-table/bundles/index.umd.js +13 -1
- package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
- package/components/data/live-table/fesm2022/index.mjs +13 -1
- package/components/data/live-table/fesm2022/index.mjs.map +1 -1
- package/components/data/live-table/live-table.component.d.ts +4 -2
- package/components/data/pagination/bundles/index.umd.js +57 -4
- package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
- package/components/data/pagination/fesm2022/index.mjs +57 -4
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/pagination.component.d.ts +4 -2
- package/components/data/table/bundles/index.umd.js +311 -12
- package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
- package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
- package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
- package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
- package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
- package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table.component.mjs +159 -9
- package/components/data/table/fesm2022/index.mjs +311 -12
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table-action/table-action.directive.d.ts +3 -2
- package/components/data/table/table-column/table-column.directive.d.ts +3 -2
- package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
- package/components/data/table/table-cud.directive.d.ts +3 -1
- package/components/data/table/table-filter.directive.d.ts +3 -1
- package/components/data/table/table-row/table-row.directive.d.ts +3 -2
- package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
- package/components/data/table/table.component.d.ts +2 -2
- package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
- package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
- package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/bundles/index.umd.js +15 -2
- package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
- package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
- package/components/dialogs/default/fesm2022/index.mjs +15 -2
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
- package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
- package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
- package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
- package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
- package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
- package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
- package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
- package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
- package/components/input/base-form/base-form.component.d.ts +4 -2
- package/components/input/base-form/bundles/index.umd.js +16 -2
- package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
- package/components/input/base-form/fesm2022/index.mjs +16 -2
- package/components/input/base-form/fesm2022/index.mjs.map +1 -1
- package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
- package/components/input/base-form-custom/bundles/index.umd.js +13 -2
- package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
- package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
- package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +7 -0
- package/components/input/checkbox/checkbox.component.d.ts +3 -2
- package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
- package/components/input/checkbox/fesm2022/index.mjs +7 -0
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/bundles/index.umd.js +18 -2
- package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
- package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
- package/components/input/checkboxset/fesm2022/index.mjs +18 -2
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/chips/bundles/index.umd.js +45 -5
- package/components/input/chips/chips.component.d.ts +3 -2
- package/components/input/chips/esm2022/chips.component.mjs +46 -6
- package/components/input/chips/fesm2022/index.mjs +45 -5
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/bundles/index.umd.js +8 -0
- package/components/input/color-picker/color-picker.component.d.ts +3 -2
- package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
- package/components/input/color-picker/fesm2022/index.mjs +8 -0
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/components/input/composite/bundles/index.umd.js +10 -1
- package/components/input/composite/composite.directive.d.ts +3 -2
- package/components/input/composite/esm2022/composite.directive.mjs +11 -2
- package/components/input/composite/fesm2022/index.mjs +10 -1
- package/components/input/composite/fesm2022/index.mjs.map +1 -1
- package/components/input/currency/bundles/index.umd.js +7 -0
- package/components/input/currency/currency.component.d.ts +3 -2
- package/components/input/currency/esm2022/currency.component.mjs +8 -1
- package/components/input/currency/fesm2022/index.mjs +7 -0
- package/components/input/currency/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
- package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
- package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/bundles/index.umd.js +22 -0
- package/components/input/epoch/date/date.component.d.ts +1 -0
- package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
- package/components/input/epoch/date/fesm2022/index.mjs +22 -0
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +25 -8
- package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
- package/components/input/file-upload/fesm2022/index.mjs +25 -8
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/file-upload.component.d.ts +3 -0
- package/components/input/number/bundles/index.umd.js +8 -0
- package/components/input/number/esm2022/number.component.mjs +9 -1
- package/components/input/number/fesm2022/index.mjs +8 -0
- package/components/input/number/fesm2022/index.mjs.map +1 -1
- package/components/input/number/number.component.d.ts +3 -2
- package/components/input/radioset/bundles/index.umd.js +18 -2
- package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
- package/components/input/radioset/fesm2022/index.mjs +18 -2
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/radioset.component.d.ts +4 -2
- package/components/input/rating/bundles/index.umd.js +10 -0
- package/components/input/rating/esm2022/rating.component.mjs +11 -1
- package/components/input/rating/fesm2022/index.mjs +10 -0
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/rating.component.d.ts +3 -2
- package/components/input/select/bundles/index.umd.js +6 -0
- package/components/input/select/esm2022/select.component.mjs +7 -1
- package/components/input/select/fesm2022/index.mjs +6 -0
- package/components/input/select/fesm2022/index.mjs.map +1 -1
- package/components/input/select/select.component.d.ts +3 -2
- package/components/input/slider/bundles/index.umd.js +10 -0
- package/components/input/slider/esm2022/slider.component.mjs +11 -1
- package/components/input/slider/fesm2022/index.mjs +10 -0
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +3 -2
- package/components/input/switch/bundles/index.umd.js +22 -2
- package/components/input/switch/esm2022/switch.component.mjs +23 -3
- package/components/input/switch/fesm2022/index.mjs +22 -2
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/switch.component.d.ts +3 -2
- package/components/input/text/bundles/index.umd.js +36 -0
- package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
- package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
- package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
- package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
- package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
- package/components/input/text/fesm2022/index.mjs +36 -0
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
- package/components/input/text/input-color/input-color.component.d.ts +3 -2
- package/components/input/text/input-email/input-email.component.d.ts +3 -2
- package/components/input/text/input-number/input-number.component.d.ts +3 -2
- package/components/input/text/input-text/input-text.component.d.ts +3 -2
- package/components/input/textarea/bundles/index.umd.js +7 -0
- package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
- package/components/input/textarea/fesm2022/index.mjs +7 -0
- package/components/input/textarea/fesm2022/index.mjs.map +1 -1
- package/components/input/textarea/textarea.component.d.ts +3 -2
- package/components/navigation/menu/bundles/index.umd.js +55 -6
- package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
- package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
- package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
- package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
- package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
- package/components/navigation/menu/fesm2022/index.mjs +55 -6
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
- package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
- package/components/navigation/menu/nav/nav.component.d.ts +3 -2
- package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
- package/components/navigation/navbar/bundles/index.umd.js +5 -0
- package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
- package/components/navigation/navbar/fesm2022/index.mjs +5 -0
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/navbar.component.d.ts +3 -2
- package/components/navigation/popover/bundles/index.umd.js +65 -13
- package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
- package/components/navigation/popover/fesm2022/index.mjs +62 -10
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/popover.component.d.ts +11 -3
- package/components/page/default/bundles/index.umd.js +20 -2
- package/components/page/default/esm2022/layout.directive.mjs +9 -1
- package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
- package/components/page/default/fesm2022/index.mjs +20 -2
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/default/layout.directive.d.ts +3 -2
- package/components/page/default/page-content/page-content.component.d.ts +3 -2
- package/components/page/left-panel/bundles/index.umd.js +16 -0
- package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
- package/components/page/left-panel/fesm2022/index.mjs +16 -0
- package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- package/components/page/left-panel/left-panel.directive.d.ts +3 -2
- package/components/page/top-nav/bundles/index.umd.js +2 -1
- package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
- package/components/page/top-nav/fesm2022/index.mjs +2 -1
- package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- package/components/prefab/bundles/index.umd.js +4 -0
- package/components/prefab/esm2022/prefab.directive.mjs +5 -1
- package/components/prefab/fesm2022/index.mjs +4 -0
- package/components/prefab/fesm2022/index.mjs.map +1 -1
- package/core/bundles/index.umd.js +391 -94
- package/core/esm2022/public_api.mjs +3 -3
- package/core/esm2022/services/viewport.service.mjs +24 -10
- package/core/esm2022/types/types.mjs +1 -1
- package/core/esm2022/utils/dom.mjs +18 -2
- package/core/esm2022/utils/event-notifier.mjs +5 -2
- package/core/esm2022/utils/lru-cache.mjs +16 -2
- package/core/esm2022/utils/utils.mjs +6 -2
- package/core/esm2022/utils/watcher.mjs +323 -81
- package/core/fesm2022/index.mjs +390 -96
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/public_api.d.ts +2 -2
- package/core/services/viewport.service.d.ts +5 -2
- package/core/types/types.d.ts +1 -0
- package/core/utils/lru-cache.d.ts +6 -0
- package/core/utils/utils.d.ts +1 -0
- package/core/utils/watcher.d.ts +26 -5
- package/http/bundles/index.umd.js +31 -1
- package/http/esm2022/http.service.mjs +32 -2
- package/http/fesm2022/index.mjs +31 -1
- package/http/fesm2022/index.mjs.map +1 -1
- package/http/http.service.d.ts +6 -2
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/bundles/index.umd.js +9 -0
- package/oAuth/esm2022/oAuth.service.mjs +10 -1
- package/oAuth/fesm2022/index.mjs +9 -0
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/oAuth.service.d.ts +3 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +364 -30
- package/runtime/base/components/app-component/app.component.d.ts +4 -0
- package/runtime/base/components/prefab-preview.component.d.ts +5 -2
- package/runtime/base/directives/accessroles.directive.d.ts +4 -3
- package/runtime/base/directives/prefab.directive.d.ts +3 -2
- package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
- package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
- package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
- package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
- package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
- package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
- package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
- package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
- package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
- package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
- package/runtime/base/esm2022/services/app.manager.service.mjs +37 -10
- package/runtime/base/esm2022/services/app.service.mjs +34 -2
- package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
- package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
- package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
- package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
- package/runtime/base/fesm2022/index.mjs +365 -31
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/services/app.manager.service.d.ts +6 -1
- package/runtime/base/services/app.service.d.ts +12 -2
- package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
- package/runtime/base/services/spinner.service.d.ts +3 -1
- package/runtime/base/util/fragment-monitor.d.ts +6 -0
- package/runtime/dynamic/bundles/index.umd.js +5 -0
- package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
- package/runtime/dynamic/fesm2022/index.mjs +5 -0
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +100 -14
- package/security/bundles/index.umd.js +41 -2
- package/security/esm2022/security.service.mjs +42 -3
- package/security/fesm2022/index.mjs +41 -2
- package/security/fesm2022/index.mjs.map +1 -1
- package/security/security.service.d.ts +5 -2
- package/variables/bundles/index.umd.js +50 -6
- package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
- package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
- package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
- package/variables/esm2022/service/variables.service.mjs +8 -2
- package/variables/fesm2022/index.mjs +50 -6
- package/variables/fesm2022/index.mjs.map +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Injector, OnInit } from '@angular/core';
|
|
1
|
+
import { Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { BaseComponent } from '@wm/components/base';
|
|
3
3
|
import { TableComponent } from '../table.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class TableActionDirective extends BaseComponent implements OnInit {
|
|
5
|
+
export declare class TableActionDirective extends BaseComponent implements OnInit, OnDestroy {
|
|
6
6
|
table: TableComponent;
|
|
7
7
|
static initializeProps: void;
|
|
8
8
|
accessroles: any;
|
|
@@ -29,6 +29,7 @@ export declare class TableActionDirective extends BaseComponent implements OnIni
|
|
|
29
29
|
populateAction(): void;
|
|
30
30
|
ngOnInit(): void;
|
|
31
31
|
onPropertyChange(key: any, nv: any): void;
|
|
32
|
+
ngOnDestroy(): void;
|
|
32
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableActionDirective, [null, { optional: true; }, { optional: true; }]>;
|
|
33
34
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TableActionDirective, "[wmTableAction]", never, {}, {}, never, never, true, never>;
|
|
34
35
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { AfterContentInit, AfterViewInit, Injector, OnInit, TemplateRef } from '@angular/core';
|
|
1
|
+
import { AfterContentInit, AfterViewInit, Injector, OnDestroy, OnInit, TemplateRef } from '@angular/core';
|
|
2
2
|
import { AppDefaults } from '@wm/core';
|
|
3
3
|
import { BaseComponent } from '@wm/components/base';
|
|
4
4
|
import { TableComponent } from '../table.component';
|
|
5
5
|
import { TableColumnGroupDirective } from '../table-column-group/table-column-group.directive';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class TableColumnDirective extends BaseComponent implements OnInit, AfterContentInit, AfterViewInit {
|
|
7
|
+
export declare class TableColumnDirective extends BaseComponent implements OnInit, AfterContentInit, AfterViewInit, OnDestroy {
|
|
8
8
|
private appDefaults;
|
|
9
9
|
table: TableComponent;
|
|
10
10
|
group: TableColumnGroupDirective;
|
|
@@ -146,6 +146,7 @@ export declare class TableColumnDirective extends BaseComponent implements OnIni
|
|
|
146
146
|
populateFieldDef(): void;
|
|
147
147
|
onPropertyChange(key: any, nv: any, ov: any): void;
|
|
148
148
|
setProperty(property: any, nv: any): void;
|
|
149
|
+
ngOnDestroy(): void;
|
|
149
150
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableColumnDirective, [null, null, { optional: true; }, { optional: true; }, { attribute: "filterdataset.bind"; }, { attribute: "dataset.bind"; }, { optional: true; }]>;
|
|
150
151
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TableColumnDirective, "[wmTableColumn]", never, {}, {}, ["customExprTmpl", "inlineWidthTempRef", "filterTemplateRef", "_filterInstances", "_inlineInstances", "_inlineInstancesNew"], never, true, never>;
|
|
151
152
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Injector, OnInit } from '@angular/core';
|
|
1
|
+
import { Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { BaseComponent } from '@wm/components/base';
|
|
3
3
|
import { TableComponent } from '../table.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class TableColumnGroupDirective extends BaseComponent implements OnInit {
|
|
5
|
+
export declare class TableColumnGroupDirective extends BaseComponent implements OnInit, OnDestroy {
|
|
6
6
|
group: TableColumnGroupDirective;
|
|
7
7
|
table: TableComponent;
|
|
8
8
|
static initializeProps: void;
|
|
@@ -17,6 +17,7 @@ export declare class TableColumnGroupDirective extends BaseComponent implements
|
|
|
17
17
|
populateConfig(): void;
|
|
18
18
|
onPropertyChange(key: any, nv: any, ov?: any): void;
|
|
19
19
|
ngOnInit(): void;
|
|
20
|
+
ngOnDestroy(): void;
|
|
20
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableColumnGroupDirective, [null, { optional: true; skipSelf: true; }, { optional: true; }, { optional: true; }]>;
|
|
21
22
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TableColumnGroupDirective, "[wmTableColumnGroup]", never, {}, {}, never, never, true, never>;
|
|
22
23
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
1
2
|
import { AbstractDialogService, App } from '@wm/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class TableCUDDirective {
|
|
4
|
+
export declare class TableCUDDirective implements OnDestroy {
|
|
4
5
|
private table;
|
|
5
6
|
private dialogService;
|
|
6
7
|
private app;
|
|
@@ -27,6 +28,7 @@ export declare class TableCUDDirective {
|
|
|
27
28
|
hideEditRow(): void;
|
|
28
29
|
saveRow(): void;
|
|
29
30
|
cancelRow(): void;
|
|
31
|
+
ngOnDestroy(): void;
|
|
30
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableCUDDirective, [{ self: true; }, null, null]>;
|
|
31
33
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TableCUDDirective, "[wmTableCUD]", never, {}, {}, never, never, true, never>;
|
|
32
34
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class TableFilterSortDirective {
|
|
3
|
+
export declare class TableFilterSortDirective implements OnDestroy {
|
|
3
4
|
private table;
|
|
4
5
|
constructor(table: any);
|
|
5
6
|
adjustContainer(fieldName: any): void;
|
|
@@ -28,6 +29,7 @@ export declare class TableFilterSortDirective {
|
|
|
28
29
|
private getFilterOnFieldValues;
|
|
29
30
|
onRowFilterChange(fieldName: any): void;
|
|
30
31
|
refreshData(isSamePage: any): void;
|
|
32
|
+
ngOnDestroy(): void;
|
|
31
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableFilterSortDirective, [{ self: true; }]>;
|
|
32
34
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TableFilterSortDirective, "[wmTableFilterSort]", never, {}, {}, never, never, true, never>;
|
|
33
35
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Injector, OnInit } from '@angular/core';
|
|
1
|
+
import { Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { BaseComponent } from '@wm/components/base';
|
|
3
3
|
import { TableComponent } from '../table.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class TableRowDirective extends BaseComponent implements OnInit {
|
|
5
|
+
export declare class TableRowDirective extends BaseComponent implements OnInit, OnDestroy {
|
|
6
6
|
table: TableComponent;
|
|
7
7
|
static initializeProps: void;
|
|
8
8
|
config: any;
|
|
@@ -19,6 +19,7 @@ export declare class TableRowDirective extends BaseComponent implements OnInit {
|
|
|
19
19
|
populateConfig(): void;
|
|
20
20
|
ngOnInit(): void;
|
|
21
21
|
onPropertyChange(key: string, nv: any): void;
|
|
22
|
+
ngOnDestroy(): void;
|
|
22
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableRowDirective, [null, { optional: true; skipSelf: true; }, { optional: true; }]>;
|
|
23
24
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TableRowDirective, "[wmTableRow]", never, {}, {}, never, never, true, never>;
|
|
24
25
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Injector, OnInit } from '@angular/core';
|
|
1
|
+
import { Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { BaseComponent } from '@wm/components/base';
|
|
3
3
|
import { TableComponent } from '../table.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class TableRowActionDirective extends BaseComponent implements OnInit {
|
|
5
|
+
export declare class TableRowActionDirective extends BaseComponent implements OnInit, OnDestroy {
|
|
6
6
|
table: TableComponent;
|
|
7
7
|
static initializeProps: void;
|
|
8
8
|
accessroles: any;
|
|
@@ -25,6 +25,7 @@ export declare class TableRowActionDirective extends BaseComponent implements On
|
|
|
25
25
|
getTitle(): any;
|
|
26
26
|
populateAction(): void;
|
|
27
27
|
ngOnInit(): void;
|
|
28
|
+
ngOnDestroy(): void;
|
|
28
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableRowActionDirective, [null, { optional: true; }, { self: true; }, { optional: true; }]>;
|
|
29
30
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TableRowActionDirective, "[wmTableRowAction]", never, {}, {}, never, never, true, never>;
|
|
30
31
|
}
|
|
@@ -109,7 +109,7 @@ export declare class TableComponent extends StylableComponent implements AfterCo
|
|
|
109
109
|
exportOptions: any[];
|
|
110
110
|
exportdatasize: any;
|
|
111
111
|
formWidgets: any;
|
|
112
|
-
headerConfig: any
|
|
112
|
+
headerConfig: any;
|
|
113
113
|
items: any[];
|
|
114
114
|
navControls: any;
|
|
115
115
|
rowActions: any[];
|
|
@@ -128,7 +128,7 @@ export declare class TableComponent extends StylableComponent implements AfterCo
|
|
|
128
128
|
actionRowIndex: any;
|
|
129
129
|
actionRowPage: any;
|
|
130
130
|
prevFilterExpression: any;
|
|
131
|
-
fieldDefs: any
|
|
131
|
+
fieldDefs: any;
|
|
132
132
|
rowDef: any;
|
|
133
133
|
rowInstance: any;
|
|
134
134
|
pagesizeoptions: any;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Injector, OnInit, TemplateRef } from '@angular/core';
|
|
1
|
+
import { Injector, OnInit, OnDestroy, TemplateRef } from '@angular/core';
|
|
2
2
|
import { BaseDialog } from '@wm/components/dialogs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class AlertDialogComponent extends BaseDialog implements OnInit {
|
|
4
|
+
export declare class AlertDialogComponent extends BaseDialog implements OnInit, OnDestroy {
|
|
5
5
|
static initializeProps: void;
|
|
6
6
|
dialogTemplate: TemplateRef<any>;
|
|
7
7
|
constructor(inj: Injector, dialogClass: string, modal: string | boolean, closable: string | boolean, explicitContext: any);
|
|
@@ -13,6 +13,7 @@ export declare class AlertDialogComponent extends BaseDialog implements OnInit {
|
|
|
13
13
|
*/
|
|
14
14
|
onOk($event: Event): void;
|
|
15
15
|
ngOnInit(): void;
|
|
16
|
+
ngOnDestroy(): void;
|
|
16
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<AlertDialogComponent, [null, { attribute: "class"; }, { attribute: "modal"; }, { attribute: "closable"; }, { optional: true; }]>;
|
|
17
18
|
static ɵcmp: i0.ɵɵComponentDeclaration<AlertDialogComponent, "div[wmAlertDialog]", never, {}, {}, never, never, true, never>;
|
|
18
19
|
}
|
|
@@ -75,6 +75,11 @@
|
|
|
75
75
|
super.ngOnInit();
|
|
76
76
|
this.register(this.viewParent);
|
|
77
77
|
}
|
|
78
|
+
ngOnDestroy() {
|
|
79
|
+
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
80
|
+
this.dialogTemplate = null;
|
|
81
|
+
super.ngOnDestroy();
|
|
82
|
+
}
|
|
78
83
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: AlertDialogComponent, deps: [{ token: i0__namespace.Injector }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
79
84
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlertDialogComponent, isStandalone: true, selector: "div[wmAlertDialog]", providers: [
|
|
80
85
|
base.provideAsWidgetRef(AlertDialogComponent),
|
|
@@ -39,6 +39,11 @@ export class AlertDialogComponent extends BaseDialog {
|
|
|
39
39
|
super.ngOnInit();
|
|
40
40
|
this.register(this.viewParent);
|
|
41
41
|
}
|
|
42
|
+
ngOnDestroy() {
|
|
43
|
+
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
44
|
+
this.dialogTemplate = null;
|
|
45
|
+
super.ngOnDestroy();
|
|
46
|
+
}
|
|
42
47
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlertDialogComponent, deps: [{ token: i0.Injector }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
48
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlertDialogComponent, isStandalone: true, selector: "div[wmAlertDialog]", providers: [
|
|
44
49
|
provideAsWidgetRef(AlertDialogComponent),
|
|
@@ -69,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
69
74
|
type: ViewChild,
|
|
70
75
|
args: ['dialogTemplate', { static: true }]
|
|
71
76
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kaWFsb2dzL2FsZXJ0LWRpYWxvZy9zcmMvYWxlcnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kaWFsb2dzL2FsZXJ0LWRpYWxvZy9zcmMvYWxlcnQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBR1IsUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNyQyxPQUFPLEVBQWlCLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRTlELE1BQU0sVUFBVSxHQUFHLDBDQUEwQyxDQUFDO0FBRTlELE1BQU0sV0FBVyxHQUFrQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0FBWXBFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO2FBQ3pDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBSXpDLFlBQ0ksR0FBYSxFQUNPLFdBQW1CLEVBQ25CLEtBQXVCLEVBQ3BCLFFBQTBCLEVBQ1QsZUFBb0I7UUFFNUQsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQztRQUVELCtFQUErRTtRQUMvRSxNQUFNLFFBQVEsR0FBdUIsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUV4RSxLQUFLLENBQ0QsR0FBRyxFQUNILFdBQVcsRUFDWDtZQUNJLEtBQUssRUFBRSxHQUFHLFVBQVUsSUFBSSxXQUFXLElBQUksRUFBRSxFQUFFO1lBQzNDLFFBQVE7WUFDUixRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1NBQzlCLEVBQ0QsZUFBZSxDQUNsQixDQUFDO0lBQ04sQ0FBQztJQUVTLGNBQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxDQUFDLE1BQWE7UUFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNQLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUUzQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0ExRFEsb0JBQW9CLDBDQU9kLE9BQU8sOEJBQ1AsT0FBTyw4QkFDUCxVQUFVLDhCQUNiLGtCQUFrQjttR0FWckIsb0JBQW9CLGlFQUxsQjtZQUNQLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO1lBQ3hDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO1NBQzNDLGlMQy9CTCx5dUJBbUJBLDRDRE1jLG9CQUFvQixtRkFBRSxtQkFBbUIsOERBQUUscUJBQXFCLGdFQUFFLHFCQUFxQixvTkFBRSxlQUFlOzs0RkFRekcsb0JBQW9CO2tCQVZoQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxZQUN6RyxvQkFBb0IsYUFFbkI7d0JBQ1Asa0JBQWtCLHNCQUFzQjt3QkFDeEMsa0JBQWtCLHNCQUFzQjtxQkFDM0M7OzBCQVNJLFNBQVM7MkJBQUMsT0FBTzs7MEJBQ2pCLFNBQVM7MkJBQUMsT0FBTzs7MEJBQ2pCLFNBQVM7MkJBQUMsVUFBVTs7MEJBQ3BCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRO3lDQVBNLGNBQWM7c0JBQTVELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgdG9Cb29sZWFuIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgSVdpZGdldENvbmZpZywgcHJvdmlkZUFzRGlhbG9nUmVmLCBwcm92aWRlQXNXaWRnZXRSZWYsIFRleHRDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBCYXNlRGlhbG9nLCBEaWFsb2dCb2R5RGlyZWN0aXZlLCBEaWFsb2dGb290ZXJEaXJlY3RpdmUsIERpYWxvZ0hlYWRlckNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RpYWxvZ3MnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9hbGVydC1kaWFsb2cucHJvcHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L2J1dHRvblwiO1xuXG5jb25zdCBESUFMT0dfQ0xTID0gJ2FwcC1kaWFsb2cgbW9kYWwtZGlhbG9nIGFwcC1hbGVydC1kaWFsb2cnO1xuXG5jb25zdCBXSURHRVRfSU5GTzogSVdpZGdldENvbmZpZyA9IHsgd2lkZ2V0VHlwZTogJ3dtLWFsZXJ0ZGlhbG9nJyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZXh0Q29udGVudERpcmVjdGl2ZSwgRGlhbG9nQm9keURpcmVjdGl2ZSwgRGlhbG9nRm9vdGVyRGlyZWN0aXZlLCBEaWFsb2dIZWFkZXJDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudF0sXG4gICAgc2VsZWN0b3I6ICdkaXZbd21BbGVydERpYWxvZ10nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hbGVydC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoQWxlcnREaWFsb2dDb21wb25lbnQpLFxuICAgICAgICBwcm92aWRlQXNEaWFsb2dSZWYoQWxlcnREaWFsb2dDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ0NvbXBvbmVudCBleHRlbmRzIEJhc2VEaWFsb2cgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgQEF0dHJpYnV0ZSgnY2xhc3MnKSBkaWFsb2dDbGFzczogc3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCdtb2RhbCcpIG1vZGFsOiBzdHJpbmcgfCBib29sZWFuLFxuICAgICAgICBAQXR0cmlidXRlKCdjbG9zYWJsZScpIGNsb3NhYmxlOiBzdHJpbmcgfCBib29sZWFuLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgaWYgKG1vZGFsID09PSBudWxsIHx8IG1vZGFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG1vZGFsID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2xvc2FibGUgPT09IG51bGwgfHwgY2xvc2FibGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY2xvc2FibGUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0dGluZyB0aGUgYmFja2Ryb3AgdG8gJ3N0YXRpYycgd2lsbCBub3QgY2xvc2UgdGhlIGRpYWxvZyBvbiBiYWNrZHJvcCBjbGlja1xuICAgICAgICBjb25zdCBiYWNrZHJvcDogYm9vbGVhbiB8ICdzdGF0aWMnID0gdG9Cb29sZWFuKG1vZGFsKSA/ICdzdGF0aWMnIDogdHJ1ZTtcblxuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIGluaixcbiAgICAgICAgICAgIFdJREdFVF9JTkZPLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzOiBgJHtESUFMT0dfQ0xTfSAke2RpYWxvZ0NsYXNzIHx8ICcnfWAsXG4gICAgICAgICAgICAgICAgYmFja2Ryb3AsXG4gICAgICAgICAgICAgICAga2V5Ym9hcmQ6ICF0b0Jvb2xlYW4obW9kYWwpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhwbGljaXRDb250ZXh0XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFRlbXBsYXRlUmVmKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dUZW1wbGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGljayBldmVudCBoYW5kbGVyIGZvciB0aGUgb2sgYnV0dG9uXG4gICAgICogaW52b2tlcyBvbi1vayBldmVudCBjYWxsYmFja1xuICAgICAqIEBwYXJhbSB7RXZlbnR9ICRldmVudFxuICAgICAqL1xuICAgIG9uT2soJGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ29rJywgeyAkZXZlbnQgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXIodGhpcy52aWV3UGFyZW50KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBWaWV3Q2hpbGQgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuZGlhbG9nVGVtcGxhdGUgPSBudWxsO1xuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNkaWFsb2dUZW1wbGF0ZT5cbiAgICA8ZGl2IHdtRGlhbG9nSGVhZGVyIFtjbG9zYWJsZV09XCJjbG9zYWJsZVwiXG4gICAgICAgICBbaWNvbmNsYXNzXT1cImljb25jbGFzc1wiXG4gICAgICAgICBbaWNvbnVybF09XCJpY29udXJsXCJcbiAgICAgICAgIFtpY29ud2lkdGhdPVwiaWNvbndpZHRoXCJcbiAgICAgICAgIFtpY29uaGVpZ2h0XT1cImljb25oZWlnaHRcIlxuICAgICAgICAgW2ljb25tYXJnaW5dPVwiaWNvbm1hcmdpblwiXG4gICAgICAgICBbaGVhZGluZ109XCJ0aXRsZVwiXG4gICAgICAgICBbaGVhZGluZ2xldmVsXT1cImhlYWRpbmdsZXZlbFwiXG4gICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgICAgW3RpdGxlaWRdPVwidGl0bGVJZFwiPjwvZGl2PlxuICAgIDxkaXYgd21EaWFsb2dCb2R5PlxuICAgICAgICA8cCBjbGFzcz1cImFwcC1kaWFsb2ctbWVzc2FnZSB0ZXh0LXt7YWxlcnR0eXBlfX1cIiBbdGV4dENvbnRlbnRdPVwibWVzc2FnZVwiPjwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHdtRGlhbG9nRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvbk9rKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm9rdGV4dFwiIGNhcHRpb24uYmluZD1cIm9rdGV4dFwiIGNsYXNzPVwiYnRuLXByaW1hcnkgb2stYWN0aW9uXCJcbiAgICAgICAgICAgICAgICB3bUJ1dHRvbj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -60,6 +60,11 @@ class AlertDialogComponent extends BaseDialog {
|
|
|
60
60
|
super.ngOnInit();
|
|
61
61
|
this.register(this.viewParent);
|
|
62
62
|
}
|
|
63
|
+
ngOnDestroy() {
|
|
64
|
+
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
65
|
+
this.dialogTemplate = null;
|
|
66
|
+
super.ngOnDestroy();
|
|
67
|
+
}
|
|
63
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlertDialogComponent, deps: [{ token: i0.Injector }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
69
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlertDialogComponent, isStandalone: true, selector: "div[wmAlertDialog]", providers: [
|
|
65
70
|
provideAsWidgetRef(AlertDialogComponent),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/alert-dialog/src/alert-dialog.props.ts","../../../../../projects/components/widgets/dialogs/alert-dialog/src/alert-dialog.component.ts","../../../../../projects/components/widgets/dialogs/alert-dialog/src/alert-dialog.component.html","../../../../../projects/components/widgets/dialogs/alert-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-alertdialog',\n new Map(\n [\n ['alerttype', {value: 'error', ...PROP_STRING}],\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['iconclass', {value: 'wi wi-warning', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['message', {value: 'Am an alert box!', ...PROP_STRING}],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'Alert', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport { toBoolean } from '@wm/core';\nimport { IWidgetConfig, provideAsDialogRef, provideAsWidgetRef, TextContentDirective } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './alert-dialog.props';\nimport { ButtonComponent } from \"@wm/components/input/button\";\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-alert-dialog';\n\nconst WIDGET_INFO: IWidgetConfig = { widgetType: 'wm-alertdialog' };\n\n@Component({\n standalone: true,\n imports: [TextContentDirective, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent],\n selector: 'div[wmAlertDialog]',\n templateUrl: './alert-dialog.component.html',\n providers: [\n provideAsWidgetRef(AlertDialogComponent),\n provideAsDialogRef(AlertDialogComponent)\n ]\n})\nexport class AlertDialogComponent extends BaseDialog implements OnInit {\n static initializeProps = registerProps();\n\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate: TemplateRef<any>;\n\n constructor(\n inj: Injector,\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 }\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","<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\"></div>\n <div wmDialogBody>\n <p class=\"app-dialog-message text-{{alerttype}}\" [textContent]=\"message\"></p>\n </div>\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</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,gBAAgB,EAChB,IAAI,GAAG,CACH;QACI,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,EAAC,CAAC;QAC/C,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC;QACzC,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAC,CAAC;QACpD,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,WAAW,EAAC,CAAC;QACxD,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;QAC1C,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,EAAC,CAAC;QACzC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;QACxC,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,EAAC,CAAC;QAC/C,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,EAAC;AAC7C,KAAA,CACJ,CACJ;AACL,CAAC;;
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/alert-dialog/src/alert-dialog.props.ts","../../../../../projects/components/widgets/dialogs/alert-dialog/src/alert-dialog.component.ts","../../../../../projects/components/widgets/dialogs/alert-dialog/src/alert-dialog.component.html","../../../../../projects/components/widgets/dialogs/alert-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-alertdialog',\n new Map(\n [\n ['alerttype', {value: 'error', ...PROP_STRING}],\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['iconclass', {value: 'wi wi-warning', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['message', {value: 'Am an alert box!', ...PROP_STRING}],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'Alert', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n OnDestroy,\n Optional,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport { toBoolean } from '@wm/core';\nimport { IWidgetConfig, provideAsDialogRef, provideAsWidgetRef, TextContentDirective } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './alert-dialog.props';\nimport { ButtonComponent } from \"@wm/components/input/button\";\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-alert-dialog';\n\nconst WIDGET_INFO: IWidgetConfig = { widgetType: 'wm-alertdialog' };\n\n@Component({\n standalone: true,\n imports: [TextContentDirective, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent],\n selector: 'div[wmAlertDialog]',\n templateUrl: './alert-dialog.component.html',\n providers: [\n provideAsWidgetRef(AlertDialogComponent),\n provideAsDialogRef(AlertDialogComponent)\n ]\n})\nexport class AlertDialogComponent extends BaseDialog implements OnInit, OnDestroy {\n static initializeProps = registerProps();\n\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate: TemplateRef<any>;\n\n constructor(\n inj: Injector,\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 }\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 ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild reference\n this.dialogTemplate = 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\"></div>\n <div wmDialogBody>\n <p class=\"app-dialog-message text-{{alerttype}}\" [textContent]=\"message\"></p>\n </div>\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</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -85,6 +85,11 @@
|
|
|
85
85
|
super.ngOnInit();
|
|
86
86
|
this.register(this.viewParent);
|
|
87
87
|
}
|
|
88
|
+
ngOnDestroy() {
|
|
89
|
+
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
90
|
+
this.dialogTemplate = null;
|
|
91
|
+
super.ngOnDestroy();
|
|
92
|
+
}
|
|
88
93
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: ConfirmDialogComponent, deps: [{ token: i0__namespace.Injector }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
89
94
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConfirmDialogComponent, isStandalone: true, selector: "div[wmConfirmDialog]", host: { listeners: { "window:keydown.esc": "onEscape($event)" } }, providers: [
|
|
90
95
|
base.provideAsWidgetRef(ConfirmDialogComponent),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Injector, OnInit, TemplateRef } from '@angular/core';
|
|
1
|
+
import { Injector, OnInit, OnDestroy, TemplateRef } from '@angular/core';
|
|
2
2
|
import { BaseDialog } from '@wm/components/dialogs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class ConfirmDialogComponent extends BaseDialog implements OnInit {
|
|
4
|
+
export declare class ConfirmDialogComponent extends BaseDialog implements OnInit, OnDestroy {
|
|
5
5
|
static initializeProps: void;
|
|
6
6
|
dialogTemplate: TemplateRef<any>;
|
|
7
7
|
constructor(inj: Injector, dialogClass: string, modal: string | boolean, closable: string | boolean, explicitContext: any);
|
|
@@ -20,6 +20,7 @@ export declare class ConfirmDialogComponent extends BaseDialog implements OnInit
|
|
|
20
20
|
*/
|
|
21
21
|
onCancel($event: Event): void;
|
|
22
22
|
ngOnInit(): void;
|
|
23
|
+
ngOnDestroy(): void;
|
|
23
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialogComponent, [null, { attribute: "class"; }, { attribute: "modal"; }, { attribute: "closable"; }, { optional: true; }]>;
|
|
24
25
|
static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmDialogComponent, "div[wmConfirmDialog]", never, {}, {}, never, never, true, never>;
|
|
25
26
|
}
|
|
@@ -49,6 +49,11 @@ export class ConfirmDialogComponent extends BaseDialog {
|
|
|
49
49
|
super.ngOnInit();
|
|
50
50
|
this.register(this.viewParent);
|
|
51
51
|
}
|
|
52
|
+
ngOnDestroy() {
|
|
53
|
+
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
54
|
+
this.dialogTemplate = null;
|
|
55
|
+
super.ngOnDestroy();
|
|
56
|
+
}
|
|
52
57
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i0.Injector }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
58
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConfirmDialogComponent, isStandalone: true, selector: "div[wmConfirmDialog]", host: { listeners: { "window:keydown.esc": "onEscape($event)" } }, providers: [
|
|
54
59
|
provideAsWidgetRef(ConfirmDialogComponent),
|
|
@@ -82,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
82
87
|
type: HostListener,
|
|
83
88
|
args: ['window:keydown.esc', ['$event']]
|
|
84
89
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RpYWxvZ3MvY29uZmlybS1kaWFsb2cvc3JjL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kaWFsb2dzL2NvbmZpcm0tZGlhbG9nL3NyYy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxRQUFRLEVBR1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUU5RCxNQUFNLFVBQVUsR0FBRyw0Q0FBNEMsQ0FBQztBQUNoRSxNQUFNLFdBQVcsR0FBRyxFQUFDLFVBQVUsRUFBRSxrQkFBa0IsRUFBQyxDQUFDO0FBWXJELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUFVO2FBQzNDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBR3pDLFlBQ0ksR0FBYSxFQUNPLFdBQW1CLEVBQ25CLEtBQXVCLEVBQ3BCLFFBQTBCLEVBQ1QsZUFBb0I7UUFFNUQsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQztRQUVELCtFQUErRTtRQUMvRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFMUIsS0FBSyxDQUNELEdBQUcsRUFDSCxXQUFXLEVBQ1g7WUFDSSxLQUFLLEVBQUUsR0FBRyxVQUFVLElBQUksV0FBVyxJQUFJLEVBQUUsRUFBRTtZQUMzQyxRQUFRO1lBQ1IsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztTQUM5QixFQUNELGVBQWUsQ0FDbEIsQ0FBQztJQUNOLENBQUM7SUFHRCxRQUFRLENBQUMsTUFBcUIsSUFBRSxDQUFDO0lBQUEsQ0FBQztJQUV4QixjQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxNQUFhO1FBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsTUFBYTtRQUNsQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNQLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUUzQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FyRVEsc0JBQXNCLDBDQU1oQixPQUFPLDhCQUNQLE9BQU8sOEJBQ1AsVUFBVSw4QkFDYixrQkFBa0I7bUdBVHJCLHNCQUFzQixzSUFMcEI7WUFDUCxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQztZQUMxQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQztTQUM3QyxpTEMvQkwsNjRCQXFCQSw0Q0RJYyxtQkFBbUIsOERBQUUscUJBQXFCLGdFQUFFLHFCQUFxQixvTkFBRSxlQUFlOzs0RkFRbkYsc0JBQXNCO2tCQVZsQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxZQUNuRixzQkFBc0IsYUFFckI7d0JBQ1Asa0JBQWtCLHdCQUF3Qjt3QkFDMUMsa0JBQWtCLHdCQUF3QjtxQkFDN0M7OzBCQVFJLFNBQVM7MkJBQUMsT0FBTzs7MEJBQ2pCLFNBQVM7MkJBQUMsT0FBTzs7MEJBQ2pCLFNBQVM7MkJBQUMsVUFBVTs7MEJBQ3BCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRO3lDQVBNLGNBQWM7c0JBQTVELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWlDN0MsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdG9yLFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBPcHRpb25hbCwgXG4gICAgSW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge3RvQm9vbGVhbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZUFzRGlhbG9nUmVmLCBwcm92aWRlQXNXaWRnZXRSZWYgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IEJhc2VEaWFsb2csIERpYWxvZ0JvZHlEaXJlY3RpdmUsIERpYWxvZ0Zvb3RlckRpcmVjdGl2ZSwgRGlhbG9nSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGlhbG9ncyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2NvbmZpcm0tZGlhbG9nLnByb3BzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9idXR0b25cIjtcblxuY29uc3QgRElBTE9HX0NMUyA9ICdhcHAtZGlhbG9nIG1vZGFsLWRpYWxvZyBhcHAtY29uZmlybS1kaWFsb2cnO1xuY29uc3QgV0lER0VUX0lORk8gPSB7d2lkZ2V0VHlwZTogJ3dtLWNvbmZpcm1kaWFsb2cnfTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRGlhbG9nQm9keURpcmVjdGl2ZSwgRGlhbG9nRm9vdGVyRGlyZWN0aXZlLCBEaWFsb2dIZWFkZXJDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudF0sXG4gICAgc2VsZWN0b3I6ICdkaXZbd21Db25maXJtRGlhbG9nXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKENvbmZpcm1EaWFsb2dDb21wb25lbnQpLFxuICAgICAgICBwcm92aWRlQXNEaWFsb2dSZWYoQ29uZmlybURpYWxvZ0NvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpcm1EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGlhbG9nIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBAQXR0cmlidXRlKCdjbGFzcycpIGRpYWxvZ0NsYXNzOiBzdHJpbmcsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ21vZGFsJykgbW9kYWw6IHN0cmluZyB8IGJvb2xlYW4sXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Nsb3NhYmxlJykgY2xvc2FibGU6IHN0cmluZyB8IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICBpZiAobW9kYWwgPT09IG51bGwgfHwgbW9kYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbW9kYWwgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjbG9zYWJsZSA9PT0gbnVsbCB8fCBjbG9zYWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjbG9zYWJsZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXR0aW5nIHRoZSBiYWNrZHJvcCB0byAnc3RhdGljJyB3aWxsIG5vdCBjbG9zZSB0aGUgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgICAgIGNvbnN0IGJhY2tkcm9wID0gJ3N0YXRpYyc7XG5cbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBpbmosXG4gICAgICAgICAgICBXSURHRVRfSU5GTyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzczogYCR7RElBTE9HX0NMU30gJHtkaWFsb2dDbGFzcyB8fCAnJ31gLFxuICAgICAgICAgICAgICAgIGJhY2tkcm9wLFxuICAgICAgICAgICAgICAgIGtleWJvYXJkOiAhdG9Cb29sZWFuKG1vZGFsKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cGxpY2l0Q29udGV4dFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmVzYycsIFsnJGV2ZW50J10pXG4gICAgb25Fc2NhcGUoJGV2ZW50OiBLZXlib2FyZEV2ZW50KXt9O1xuXG4gICAgcHJvdGVjdGVkIGdldFRlbXBsYXRlUmVmKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dUZW1wbGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGljayBldmVudCBoYW5kbGVyIGZvciB0aGUgb2sgYnV0dG9uXG4gICAgICogaW52b2tlcyBvbi1vayBldmVudCBjYWxsYmFja1xuICAgICAqIEBwYXJhbSB7RXZlbnR9ICRldmVudFxuICAgICAqL1xuICAgIG9uT2soJGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ29rJywgeyRldmVudH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsaWNrIGV2ZW50IGhhbmRsZXIgZm9yIHRoZSBjYW5jZWwgYnV0dG9uXG4gICAgICogaW52b2tlcyBvbi1jYW5jZWwgZXZlbnQgY2FsbGJhY2tcbiAgICAgKiBAcGFyYW0ge0V2ZW50fSAkZXZlbnRcbiAgICAgKi9cbiAgICBvbkNhbmNlbCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2FuY2VsJywgeyRldmVudH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyKHRoaXMudmlld1BhcmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgVmlld0NoaWxkIHJlZmVyZW5jZVxuICAgICAgICB0aGlzLmRpYWxvZ1RlbXBsYXRlID0gbnVsbDtcblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZGlhbG9nVGVtcGxhdGU+XG4gICAgPGRpdiB3bURpYWxvZ0hlYWRlciBbY2xvc2FibGVdPVwiY2xvc2FibGVcIlxuICAgICAgICAgW2ljb25jbGFzc109XCJpY29uY2xhc3NcIlxuICAgICAgICAgW2ljb251cmxdPVwiaWNvbnVybFwiXG4gICAgICAgICBbaWNvbndpZHRoXT1cImljb253aWR0aFwiXG4gICAgICAgICBbaWNvbmhlaWdodF09XCJpY29uaGVpZ2h0XCJcbiAgICAgICAgIFtpY29ubWFyZ2luXT1cImljb25tYXJnaW5cIlxuICAgICAgICAgW2hlYWRpbmddPVwidGl0bGVcIlxuICAgICAgICAgW2hlYWRpbmdsZXZlbF09XCJoZWFkaW5nbGV2ZWxcIlxuICAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgIFt0aXRsZWlkXT1cInRpdGxlSWRcIj48L2Rpdj5cbiAgICA8ZGl2IHdtRGlhbG9nQm9keT5cbiAgICAgICAgPHAgY2xhc3M9XCJhcHAtZGlhbG9nLW1lc3NhZ2Uge3ttZXNzYWdlY2xhc3N9fVwiPnt7IG1lc3NhZ2UgfX08L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiB3bURpYWxvZ0Zvb3Rlcj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib25DYW5jZWwoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiY2FuY2VsdGV4dFwiIGNhcHRpb24uYmluZD1cImNhbmNlbHRleHRcIiBjbGFzcz1cImJ0bi1kZWZhdWx0IGNhbmNlbC1hY3Rpb25cIlxuICAgICAgICAgICAgICAgIHdtQnV0dG9uPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvbk9rKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm9rdGV4dFwiIGNhcHRpb24uYmluZD1cIm9rdGV4dFwiIGNsYXNzPVwiYnRuLXByaW1hcnkgb2stYWN0aW9uXCJcbiAgICAgICAgICAgICAgICB3bUJ1dHRvbj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -70,6 +70,11 @@ class ConfirmDialogComponent extends BaseDialog {
|
|
|
70
70
|
super.ngOnInit();
|
|
71
71
|
this.register(this.viewParent);
|
|
72
72
|
}
|
|
73
|
+
ngOnDestroy() {
|
|
74
|
+
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
75
|
+
this.dialogTemplate = null;
|
|
76
|
+
super.ngOnDestroy();
|
|
77
|
+
}
|
|
73
78
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i0.Injector }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
79
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConfirmDialogComponent, isStandalone: true, selector: "div[wmConfirmDialog]", host: { listeners: { "window:keydown.esc": "onEscape($event)" } }, providers: [
|
|
75
80
|
provideAsWidgetRef(ConfirmDialogComponent),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/confirm-dialog/src/confirm-dialog.props.ts","../../../../../projects/components/widgets/dialogs/confirm-dialog/src/confirm-dialog.component.ts","../../../../../projects/components/widgets/dialogs/confirm-dialog/src/confirm-dialog.component.html","../../../../../projects/components/widgets/dialogs/confirm-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-confirmdialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['canceltext', {value: 'CANCEL', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['iconclass', {value: 'wm-sl-l sl-check', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['message', {value: 'I am confirm box!', ...PROP_STRING}],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'Confirm', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {\n Attribute,\n Component,\n Injector,\n OnInit,\n TemplateRef,\n ViewChild,\n HostListener,\n Optional, \n Inject\n} from '@angular/core';\n\nimport {toBoolean} from '@wm/core';\nimport { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './confirm-dialog.props';\nimport { ButtonComponent } from \"@wm/components/input/button\";\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-confirm-dialog';\nconst WIDGET_INFO = {widgetType: 'wm-confirmdialog'};\n\n@Component({\n standalone: true,\n imports: [DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent],\n selector: 'div[wmConfirmDialog]',\n templateUrl: './confirm-dialog.component.html',\n providers: [\n provideAsWidgetRef(ConfirmDialogComponent),\n provideAsDialogRef(ConfirmDialogComponent)\n ]\n})\nexport class ConfirmDialogComponent extends BaseDialog implements OnInit {\n static initializeProps = registerProps();\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate: TemplateRef<any>;\n\n constructor(\n inj: Injector,\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 = 'static';\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 }\n\n @HostListener('window:keydown.esc', ['$event'])\n onEscape($event: KeyboardEvent){};\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 /**\n * Click event handler for the cancel button\n * invokes on-cancel event callback\n * @param {Event} $event\n */\n onCancel($event: Event) {\n this.invokeEventCallback('cancel', {$event});\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\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\"></div>\n <div wmDialogBody>\n <p class=\"app-dialog-message {{messageclass}}\">{{ message }}</p>\n </div>\n <div wmDialogFooter>\n <button (click)=\"onCancel($event)\" [attr.aria-label]=\"canceltext\" caption.bind=\"canceltext\" class=\"btn-default cancel-action\"\n wmButton></button>\n <button (click)=\"onOk($event)\" [attr.aria-label]=\"oktext\" caption.bind=\"oktext\" class=\"btn-primary ok-action\"\n wmButton></button>\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,kBAAkB,EAClB,IAAI,GAAG,CACH;QACI,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAC,CAAC;QACjD,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC;QACzC,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAC,CAAC;QACvD,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,WAAW,EAAC,CAAC;QACzD,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;QAC1C,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,EAAC,CAAC;QACzC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;QACxC,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,EAAC,CAAC;QAC/C,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,EAAC;AAC/C,KAAA,CACJ,CACJ;AACL,CAAC;;
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/confirm-dialog/src/confirm-dialog.props.ts","../../../../../projects/components/widgets/dialogs/confirm-dialog/src/confirm-dialog.component.ts","../../../../../projects/components/widgets/dialogs/confirm-dialog/src/confirm-dialog.component.html","../../../../../projects/components/widgets/dialogs/confirm-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-confirmdialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['canceltext', {value: 'CANCEL', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['iconclass', {value: 'wm-sl-l sl-check', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['message', {value: 'I am confirm box!', ...PROP_STRING}],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'Confirm', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {\n Attribute,\n Component,\n Injector,\n OnInit,\n OnDestroy,\n TemplateRef,\n ViewChild,\n HostListener,\n Optional, \n Inject\n} from '@angular/core';\n\nimport {toBoolean} from '@wm/core';\nimport { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './confirm-dialog.props';\nimport { ButtonComponent } from \"@wm/components/input/button\";\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-confirm-dialog';\nconst WIDGET_INFO = {widgetType: 'wm-confirmdialog'};\n\n@Component({\n standalone: true,\n imports: [DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent],\n selector: 'div[wmConfirmDialog]',\n templateUrl: './confirm-dialog.component.html',\n providers: [\n provideAsWidgetRef(ConfirmDialogComponent),\n provideAsDialogRef(ConfirmDialogComponent)\n ]\n})\nexport class ConfirmDialogComponent extends BaseDialog implements OnInit, OnDestroy {\n static initializeProps = registerProps();\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate: TemplateRef<any>;\n\n constructor(\n inj: Injector,\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 = 'static';\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 }\n\n @HostListener('window:keydown.esc', ['$event'])\n onEscape($event: KeyboardEvent){};\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 /**\n * Click event handler for the cancel button\n * invokes on-cancel event callback\n * @param {Event} $event\n */\n onCancel($event: Event) {\n this.invokeEventCallback('cancel', {$event});\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild reference\n this.dialogTemplate = 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\"></div>\n <div wmDialogBody>\n <p class=\"app-dialog-message {{messageclass}}\">{{ message }}</p>\n </div>\n <div wmDialogFooter>\n <button (click)=\"onCancel($event)\" [attr.aria-label]=\"canceltext\" caption.bind=\"canceltext\" class=\"btn-default cancel-action\"\n wmButton></button>\n <button (click)=\"onOk($event)\" [attr.aria-label]=\"oktext\" caption.bind=\"oktext\" class=\"btn-primary ok-action\"\n wmButton></button>\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
this.dialogRef = dialogRef;
|
|
33
33
|
this.renderer = renderer;
|
|
34
34
|
i1$1.addClass(elRef.nativeElement, DEFAULT_CLS$1);
|
|
35
|
-
|
|
35
|
+
this.bsModalShownSubscription = bsModal.onShown.subscribe(() => {
|
|
36
36
|
const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];
|
|
37
37
|
const dialogContent = $(elRef.nativeElement).closest('.modal-content')[0];
|
|
38
38
|
let dialogRootContainer = $('body.wm-app')[0];
|
|
@@ -73,9 +73,22 @@
|
|
|
73
73
|
i1$1.setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);
|
|
74
74
|
i1$1.setAttr(dialogRoot, 'name', this.dialogRef.name);
|
|
75
75
|
}
|
|
76
|
-
subscription
|
|
76
|
+
// Clean up subscription after first use
|
|
77
|
+
if (this.bsModalShownSubscription) {
|
|
78
|
+
this.bsModalShownSubscription.unsubscribe();
|
|
79
|
+
this.bsModalShownSubscription = null;
|
|
80
|
+
}
|
|
77
81
|
});
|
|
78
82
|
}
|
|
83
|
+
ngOnDestroy() {
|
|
84
|
+
// MEMORY LEAK FIX: Unsubscribe from bsModal.onShown if not already unsubscribed
|
|
85
|
+
if (this.bsModalShownSubscription) {
|
|
86
|
+
this.bsModalShownSubscription.unsubscribe();
|
|
87
|
+
this.bsModalShownSubscription = null;
|
|
88
|
+
}
|
|
89
|
+
// MEMORY LEAK FIX: Clear dialogRef reference
|
|
90
|
+
this.dialogRef = null;
|
|
91
|
+
}
|
|
79
92
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: DialogBodyDirective, deps: [{ token: i0__namespace.ElementRef }, { token: base.DialogRef }, { token: i1__namespace.BsModalService }, { token: i0__namespace.Renderer2 }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
80
93
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DialogBodyDirective, isStandalone: true, selector: "div[wmDialogBody]", host: { properties: { "style.height": "this.height" } }, ngImport: i0__namespace }); }
|
|
81
94
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { ElementRef, Renderer2 } from '@angular/core';
|
|
1
|
+
import { ElementRef, OnDestroy, Renderer2 } from '@angular/core';
|
|
2
2
|
import { BsModalService } from 'ngx-bootstrap/modal';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class DialogBodyDirective {
|
|
4
|
+
export declare class DialogBodyDirective implements OnDestroy {
|
|
5
5
|
private dialogRef;
|
|
6
6
|
private renderer;
|
|
7
7
|
height: any;
|
|
8
|
+
private bsModalShownSubscription;
|
|
8
9
|
constructor(elRef: ElementRef, dialogRef: any, bsModal: BsModalService, renderer: Renderer2);
|
|
10
|
+
ngOnDestroy(): void;
|
|
9
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<DialogBodyDirective, never>;
|
|
10
12
|
static ɵdir: i0.ɵɵDirectiveDeclaration<DialogBodyDirective, "div[wmDialogBody]", never, {}, {}, never, never, true, never>;
|
|
11
13
|
}
|
|
@@ -10,7 +10,7 @@ export class DialogBodyDirective {
|
|
|
10
10
|
this.dialogRef = dialogRef;
|
|
11
11
|
this.renderer = renderer;
|
|
12
12
|
addClass(elRef.nativeElement, DEFAULT_CLS);
|
|
13
|
-
|
|
13
|
+
this.bsModalShownSubscription = bsModal.onShown.subscribe(() => {
|
|
14
14
|
const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];
|
|
15
15
|
const dialogContent = $(elRef.nativeElement).closest('.modal-content')[0];
|
|
16
16
|
let dialogRootContainer = $('body.wm-app')[0];
|
|
@@ -51,9 +51,22 @@ export class DialogBodyDirective {
|
|
|
51
51
|
setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);
|
|
52
52
|
setAttr(dialogRoot, 'name', this.dialogRef.name);
|
|
53
53
|
}
|
|
54
|
-
subscription
|
|
54
|
+
// Clean up subscription after first use
|
|
55
|
+
if (this.bsModalShownSubscription) {
|
|
56
|
+
this.bsModalShownSubscription.unsubscribe();
|
|
57
|
+
this.bsModalShownSubscription = null;
|
|
58
|
+
}
|
|
55
59
|
});
|
|
56
60
|
}
|
|
61
|
+
ngOnDestroy() {
|
|
62
|
+
// MEMORY LEAK FIX: Unsubscribe from bsModal.onShown if not already unsubscribed
|
|
63
|
+
if (this.bsModalShownSubscription) {
|
|
64
|
+
this.bsModalShownSubscription.unsubscribe();
|
|
65
|
+
this.bsModalShownSubscription = null;
|
|
66
|
+
}
|
|
67
|
+
// MEMORY LEAK FIX: Clear dialogRef reference
|
|
68
|
+
this.dialogRef = null;
|
|
69
|
+
}
|
|
57
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogBodyDirective, deps: [{ token: i0.ElementRef }, { token: DialogRef }, { token: i1.BsModalService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
58
71
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DialogBodyDirective, isStandalone: true, selector: "div[wmDialogBody]", host: { properties: { "style.height": "this.height" } }, ngImport: i0 }); }
|
|
59
72
|
}
|
|
@@ -70,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
70
83
|
type: HostBinding,
|
|
71
84
|
args: ['style.height']
|
|
72
85
|
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWJvZHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RpYWxvZ3MvZGVmYXVsdC9zcmMvZGlhbG9nLWJvZHkvZGlhbG9nLWJvZHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFJaEQsTUFBTSxXQUFXLEdBQUcsNEJBQTRCLENBQUM7QUFNakQsTUFBTSxPQUFPLG1CQUFtQjtJQUk1QixZQUNJLEtBQWlCLEVBQ1UsU0FBUyxFQUNwQyxPQUF1QixFQUNkLFFBQW1CO1FBRkQsY0FBUyxHQUFULFNBQVMsQ0FBQTtRQUUzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRTVCLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDM0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxD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QUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQztRQUN6QyxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7K0dBeEVRLG1CQUFtQiw0Q0FNaEIsU0FBUzttR0FOWixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7OzBCQU9RLE1BQU07MkJBQUMsU0FBUzs4RkFMUSxNQUFNO3NCQUFsQyxXQUFXO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIE9uRGVzdHJveSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcblxuaW1wb3J0IHsgYWRkQ2xhc3MsIGdldFNoZWV0UG9zaXRpb25DbGFzcywgc2V0QXR0ciwgc2V0Q1NTIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuZGVjbGFyZSBjb25zdCAkO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtZGlhbG9nLWJvZHkgbW9kYWwtYm9keSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnZGl2W3dtRGlhbG9nQm9keV0nLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dCb2R5RGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpIGhlaWdodDtcbiAgICBwcml2YXRlIGJzTW9kYWxTaG93blN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBASW5qZWN0KERpYWxvZ1JlZikgcHJpdmF0ZSBkaWFsb2dSZWYsXG4gICAgICAgIGJzTW9kYWw6IEJzTW9kYWxTZXJ2aWNlLFxuICAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIGFkZENsYXNzKGVsUmVmLm5hdGl2ZUVsZW1lbnQsIERFRkFVTFRfQ0xTKTtcblxuICAgICAgICB0aGlzLmJzTW9kYWxTaG93blN1YnNjcmlwdGlvbiA9IGJzTW9kYWwub25TaG93bi5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGlhbG9nUm9vdCA9ICQoZWxSZWYubmF0aXZlRWxlbWVudCkuY2xvc2VzdCgnLmFwcC1kaWFsb2cnKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGRpYWxvZ0NvbnRlbnQgPSAkKGVsUmVmLm5hdGl2ZUVsZW1lbnQpLmNsb3Nlc3QoJy5tb2RhbC1jb250ZW50JylbMF07XG4gICAgICAgICAgICBsZXQgZGlhbG9nUm9vdENvbnRhaW5lciA9ICQoJ2JvZHkud20tYXBwJylbMF07XG4gICAgICAgICAgICAvLyBUbyBpZGVudGlmeSB0aGUgbWljcm9mcm9udGVuZCwgaWYgYm9keSB0YWcgZG9lc24ndCBoYXZlIHdtLWFwcCBjbGFzcyB0aGVuIGFwcCBsb2FkaW5nIGFzIG1pY3JvLWZyb250ZW5kXG4gICAgICAgICAgICBpZighZGlhbG9nUm9vdENvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ0JhY2tyb3AgPSAkKCdib2R5ID4gLm1vZGFsLWJhY2tkcm9wJylbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Q29udGFpbmVyID0gJCgnYm9keSA+IG1vZGFsLWNvbnRhaW5lcicpWzBdO1xuICAgICAgICAgICAgICAgIGRpYWxvZ1Jvb3RDb250YWluZXIgPSAkKCcud20tYXBwJylbMF07XG4gICAgICAgICAgICAgICAgaWYoZGlhbG9nUm9vdENvbnRhaW5lciAgJiYgcGFyZW50Q29udGFpbmVyICl7XG4gICAgICAgICAgICAgICAgICAgIGlmKGRpYWxvZ0JhY2tyb3Ape1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkaWFsb2dSb290Q29udGFpbmVyLCBkaWFsb2dCYWNrcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRpYWxvZ1Jvb3RDb250YWluZXIsIHBhcmVudENvbnRhaW5lcik7XG5cbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzU2hlZXQgPSB0aGlzLmRpYWxvZ1JlZi5zaGVldDtcbiAgICAgICAgICAgIGNvbnN0IHNoZWV0UG9zaXRpb24gPSB0aGlzLmRpYWxvZ1JlZi5zaGVldFBvc2l0aW9uO1xuICAgICAgICAgICAgaWYoaXNTaGVldCkge1xuICAgICAgICAgICAgICAgICQoZGlhbG9nUm9vdCkuYWRkQ2xhc3MoJ21vZGFsLXNoZWV0Jyk7XG4gICAgICAgICAgICAgICAgJChkaWFsb2dSb290KS5hZGRDbGFzcyhnZXRTaGVldFBvc2l0aW9uQ2xhc3Moc2hlZXRQb3NpdGlvbikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5kaWFsb2dSZWYuYW5pbWF0aW9uO1xuICAgICAgICAgICAgaWYoYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgJChkaWFsb2dDb250ZW50KS5hZGRDbGFzcygnYW5pbWF0ZWQnKTtcbiAgICAgICAgICAgICAgICAkKGRpYWxvZ0NvbnRlbnQpLmFkZENsYXNzKGFuaW1hdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMuZGlhbG9nUmVmLndpZHRoO1xuICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5kaWFsb2dSZWYuaGVpZ2h0O1xuICAgICAgICAgICAgaWYoaGVpZ2h0KXtcbiAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZT0+e1xuICAgICAgICAgICAgICAgICAgICBzZXRDU1MoJChlbFJlZi5uYXRpdmVFbGVtZW50KVswXSwgJ2hlaWdodCcsIGhlaWdodCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGlhbG9nUm9vdCkge1xuICAgICAgICAgICAgICAgIGlmICh3aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRDU1MoZGlhbG9nUm9vdCwgJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRBdHRyKGRpYWxvZ1Jvb3QsICd0YWJpbmRleCcsIHRoaXMuZGlhbG9nUmVmLnRhYmluZGV4KTtcbiAgICAgICAgICAgICAgICBzZXRBdHRyKGRpYWxvZ1Jvb3QsICduYW1lJywgdGhpcy5kaWFsb2dSZWYubmFtZSk7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIENsZWFuIHVwIHN1YnNjcmlwdGlvbiBhZnRlciBmaXJzdCB1c2VcbiAgICAgICAgICAgIGlmICh0aGlzLmJzTW9kYWxTaG93blN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuYnNNb2RhbFNob3duU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ic01vZGFsU2hvd25TdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBVbnN1YnNjcmliZSBmcm9tIGJzTW9kYWwub25TaG93biBpZiBub3QgYWxyZWFkeSB1bnN1YnNjcmliZWRcbiAgICAgICAgaWYgKHRoaXMuYnNNb2RhbFNob3duU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmJzTW9kYWxTaG93blN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5ic01vZGFsU2hvd25TdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBkaWFsb2dSZWYgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gbnVsbDtcbiAgICB9XG59XG4iXX0=
|