@wavemaker/app-ng-runtime 11.14.1-rc.6311 → 11.14.2-rc.242
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/advanced/carousel/bundles/index.umd.js +15 -1
- package/components/advanced/carousel/carousel.directive.d.ts +1 -0
- package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
- package/components/advanced/carousel/fesm2022/index.mjs +15 -1
- package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/bundles/index.umd.js +24 -3
- package/components/advanced/login/esm2022/login.component.mjs +25 -4
- package/components/advanced/login/fesm2022/index.mjs +24 -3
- package/components/advanced/login/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/login.component.d.ts +5 -2
- package/components/base/bundles/index.umd.js +323 -28
- package/components/base/directives/show-in-device.directive.d.ts +2 -1
- package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
- package/components/base/esm2022/pipes/custom-pipes.mjs +1 -1
- package/components/base/esm2022/utils/widget-utils.mjs +3 -3
- package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
- package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
- package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
- package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
- package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
- package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
- package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
- package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
- package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
- package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
- package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
- package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
- package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
- package/components/base/fesm2022/index.mjs +319 -26
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
- package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
- package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
- package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
- package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
- package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
- package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
- package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
- package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
- package/components/basic/anchor/bundles/index.umd.js +13 -1
- package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
- package/components/basic/anchor/fesm2022/index.mjs +13 -1
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/html/bundles/index.umd.js +13 -1
- package/components/basic/html/esm2022/html.directive.mjs +14 -2
- package/components/basic/html/fesm2022/index.mjs +13 -1
- package/components/basic/html/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/bundles/index.umd.js +17 -1
- package/components/basic/label/esm2022/label.directive.mjs +18 -2
- package/components/basic/label/fesm2022/index.mjs +17 -1
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/label.directive.d.ts +3 -2
- package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
- package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
- package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
- package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
- package/components/basic/search/bundles/index.umd.js +27 -1
- package/components/basic/search/esm2022/scrollable.directive.mjs +11 -2
- package/components/basic/search/esm2022/search.component.mjs +18 -1
- package/components/basic/search/fesm2022/index.mjs +27 -1
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/scrollable.directive.d.ts +4 -2
- package/components/basic/search/search.component.d.ts +3 -2
- package/components/basic/spinner/bundles/index.umd.js +9 -1
- package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
- package/components/basic/spinner/fesm2022/index.mjs +9 -1
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/spinner.component.d.ts +4 -2
- package/components/chart/bundles/index.umd.js +21 -3
- package/components/chart/esm2022/chart.component.mjs +22 -4
- package/components/chart/fesm2022/index.mjs +21 -3
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
- package/components/containers/accordion/accordion.directive.d.ts +5 -2
- package/components/containers/accordion/bundles/index.umd.js +49 -2
- package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
- package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
- package/components/containers/accordion/fesm2022/index.mjs +49 -2
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +13 -0
- package/components/containers/panel/esm2022/panel.component.mjs +14 -1
- package/components/containers/panel/fesm2022/index.mjs +13 -0
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/panel.component.d.ts +3 -2
- package/components/containers/tabs/bundles/index.umd.js +54 -2
- package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
- package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
- package/components/containers/tabs/fesm2022/index.mjs +54 -2
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
- package/components/containers/tabs/tabs.component.d.ts +5 -2
- package/components/containers/wizard/bundles/index.umd.js +47 -3
- package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
- package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
- package/components/containers/wizard/fesm2022/index.mjs +47 -3
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
- package/components/containers/wizard/wizard.component.d.ts +4 -2
- package/components/data/card/bundles/index.umd.js +17 -1
- package/components/data/card/card-content/card-content.component.d.ts +3 -2
- package/components/data/card/card.component.d.ts +4 -2
- package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
- package/components/data/card/esm2022/card.component.mjs +13 -2
- package/components/data/card/fesm2022/index.mjs +17 -1
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +92 -0
- package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
- package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
- package/components/data/form/esm2022/form.component.mjs +27 -1
- package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
- package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
- package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
- package/components/data/form/fesm2022/index.mjs +92 -0
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form-action/form-action.directive.d.ts +3 -2
- package/components/data/form/form-field/form-field.directive.d.ts +3 -2
- package/components/data/form/form-widget.directive.d.ts +3 -2
- package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
- package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
- package/components/data/form/live-form/live-form.directive.d.ts +3 -1
- package/components/data/list/bundles/index.umd.js +180 -17
- package/components/data/list/esm2022/list-item.directive.mjs +95 -11
- package/components/data/list/esm2022/list.component.mjs +87 -8
- package/components/data/list/fesm2022/index.mjs +180 -17
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/list-item.directive.d.ts +7 -2
- package/components/data/list/list.component.d.ts +3 -0
- package/components/data/live-table/bundles/index.umd.js +13 -1
- package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
- package/components/data/live-table/fesm2022/index.mjs +13 -1
- package/components/data/live-table/fesm2022/index.mjs.map +1 -1
- package/components/data/live-table/live-table.component.d.ts +4 -2
- package/components/data/pagination/bundles/index.umd.js +57 -4
- package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
- package/components/data/pagination/fesm2022/index.mjs +57 -4
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/pagination.component.d.ts +4 -2
- package/components/data/table/bundles/index.umd.js +311 -12
- package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
- package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
- package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
- package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
- package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
- package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table.component.mjs +159 -9
- package/components/data/table/fesm2022/index.mjs +311 -12
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table-action/table-action.directive.d.ts +3 -2
- package/components/data/table/table-column/table-column.directive.d.ts +3 -2
- package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
- package/components/data/table/table-cud.directive.d.ts +3 -1
- package/components/data/table/table-filter.directive.d.ts +3 -1
- package/components/data/table/table-row/table-row.directive.d.ts +3 -2
- package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
- package/components/data/table/table.component.d.ts +2 -2
- package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
- package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
- package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/bundles/index.umd.js +15 -2
- package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
- package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
- package/components/dialogs/default/fesm2022/index.mjs +15 -2
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
- package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
- package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
- package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
- package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
- package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
- package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
- package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
- package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
- package/components/input/base-form/base-form.component.d.ts +4 -2
- package/components/input/base-form/bundles/index.umd.js +16 -2
- package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
- package/components/input/base-form/fesm2022/index.mjs +16 -2
- package/components/input/base-form/fesm2022/index.mjs.map +1 -1
- package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
- package/components/input/base-form-custom/bundles/index.umd.js +13 -2
- package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
- package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
- package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +7 -0
- package/components/input/checkbox/checkbox.component.d.ts +3 -2
- package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
- package/components/input/checkbox/fesm2022/index.mjs +7 -0
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/bundles/index.umd.js +18 -2
- package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
- package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
- package/components/input/checkboxset/fesm2022/index.mjs +18 -2
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/chips/bundles/index.umd.js +45 -5
- package/components/input/chips/chips.component.d.ts +3 -2
- package/components/input/chips/esm2022/chips.component.mjs +46 -6
- package/components/input/chips/fesm2022/index.mjs +45 -5
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/bundles/index.umd.js +8 -0
- package/components/input/color-picker/color-picker.component.d.ts +3 -2
- package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
- package/components/input/color-picker/fesm2022/index.mjs +8 -0
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/components/input/composite/bundles/index.umd.js +10 -1
- package/components/input/composite/composite.directive.d.ts +3 -2
- package/components/input/composite/esm2022/composite.directive.mjs +11 -2
- package/components/input/composite/fesm2022/index.mjs +10 -1
- package/components/input/composite/fesm2022/index.mjs.map +1 -1
- package/components/input/currency/bundles/index.umd.js +7 -0
- package/components/input/currency/currency.component.d.ts +3 -2
- package/components/input/currency/esm2022/currency.component.mjs +8 -1
- package/components/input/currency/fesm2022/index.mjs +7 -0
- package/components/input/currency/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
- package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
- package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/bundles/index.umd.js +22 -0
- package/components/input/epoch/date/date.component.d.ts +1 -0
- package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
- package/components/input/epoch/date/fesm2022/index.mjs +22 -0
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +25 -8
- package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
- package/components/input/file-upload/fesm2022/index.mjs +25 -8
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/file-upload.component.d.ts +3 -0
- package/components/input/number/bundles/index.umd.js +8 -0
- package/components/input/number/esm2022/number.component.mjs +9 -1
- package/components/input/number/fesm2022/index.mjs +8 -0
- package/components/input/number/fesm2022/index.mjs.map +1 -1
- package/components/input/number/number.component.d.ts +3 -2
- package/components/input/radioset/bundles/index.umd.js +18 -2
- package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
- package/components/input/radioset/fesm2022/index.mjs +18 -2
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/radioset.component.d.ts +4 -2
- package/components/input/rating/bundles/index.umd.js +10 -0
- package/components/input/rating/esm2022/rating.component.mjs +11 -1
- package/components/input/rating/fesm2022/index.mjs +10 -0
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/rating.component.d.ts +3 -2
- package/components/input/select/bundles/index.umd.js +6 -0
- package/components/input/select/esm2022/select.component.mjs +7 -1
- package/components/input/select/fesm2022/index.mjs +6 -0
- package/components/input/select/fesm2022/index.mjs.map +1 -1
- package/components/input/select/select.component.d.ts +3 -2
- package/components/input/slider/bundles/index.umd.js +10 -0
- package/components/input/slider/esm2022/slider.component.mjs +11 -1
- package/components/input/slider/fesm2022/index.mjs +10 -0
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +3 -2
- package/components/input/switch/bundles/index.umd.js +22 -2
- package/components/input/switch/esm2022/switch.component.mjs +23 -3
- package/components/input/switch/fesm2022/index.mjs +22 -2
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/switch.component.d.ts +3 -2
- package/components/input/text/bundles/index.umd.js +36 -0
- package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
- package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
- package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
- package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
- package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
- package/components/input/text/fesm2022/index.mjs +36 -0
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
- package/components/input/text/input-color/input-color.component.d.ts +3 -2
- package/components/input/text/input-email/input-email.component.d.ts +3 -2
- package/components/input/text/input-number/input-number.component.d.ts +3 -2
- package/components/input/text/input-text/input-text.component.d.ts +3 -2
- package/components/input/textarea/bundles/index.umd.js +7 -0
- package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
- package/components/input/textarea/fesm2022/index.mjs +7 -0
- package/components/input/textarea/fesm2022/index.mjs.map +1 -1
- package/components/input/textarea/textarea.component.d.ts +3 -2
- package/components/navigation/menu/bundles/index.umd.js +55 -6
- package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
- package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
- package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
- package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
- package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
- package/components/navigation/menu/fesm2022/index.mjs +55 -6
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
- package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
- package/components/navigation/menu/nav/nav.component.d.ts +3 -2
- package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
- package/components/navigation/navbar/bundles/index.umd.js +5 -0
- package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
- package/components/navigation/navbar/fesm2022/index.mjs +5 -0
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/navbar.component.d.ts +3 -2
- package/components/navigation/popover/bundles/index.umd.js +65 -13
- package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
- package/components/navigation/popover/fesm2022/index.mjs +62 -10
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/popover.component.d.ts +11 -3
- package/components/page/default/bundles/index.umd.js +20 -2
- package/components/page/default/esm2022/layout.directive.mjs +9 -1
- package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
- package/components/page/default/fesm2022/index.mjs +20 -2
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/default/layout.directive.d.ts +3 -2
- package/components/page/default/page-content/page-content.component.d.ts +3 -2
- package/components/page/left-panel/bundles/index.umd.js +16 -0
- package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
- package/components/page/left-panel/fesm2022/index.mjs +16 -0
- package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- package/components/page/left-panel/left-panel.directive.d.ts +3 -2
- package/components/page/top-nav/bundles/index.umd.js +2 -1
- package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
- package/components/page/top-nav/fesm2022/index.mjs +2 -1
- package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- package/components/prefab/bundles/index.umd.js +4 -0
- package/components/prefab/esm2022/prefab.directive.mjs +5 -1
- package/components/prefab/fesm2022/index.mjs +4 -0
- package/components/prefab/fesm2022/index.mjs.map +1 -1
- package/core/bundles/index.umd.js +391 -94
- package/core/esm2022/public_api.mjs +3 -3
- package/core/esm2022/services/viewport.service.mjs +24 -10
- package/core/esm2022/types/types.mjs +1 -1
- package/core/esm2022/utils/dom.mjs +18 -2
- package/core/esm2022/utils/event-notifier.mjs +5 -2
- package/core/esm2022/utils/lru-cache.mjs +16 -2
- package/core/esm2022/utils/utils.mjs +6 -2
- package/core/esm2022/utils/watcher.mjs +323 -81
- package/core/fesm2022/index.mjs +390 -96
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/public_api.d.ts +2 -2
- package/core/services/viewport.service.d.ts +5 -2
- package/core/types/types.d.ts +1 -0
- package/core/utils/lru-cache.d.ts +6 -0
- package/core/utils/utils.d.ts +1 -0
- package/core/utils/watcher.d.ts +26 -5
- package/http/bundles/index.umd.js +31 -1
- package/http/esm2022/http.service.mjs +32 -2
- package/http/fesm2022/index.mjs +31 -1
- package/http/fesm2022/index.mjs.map +1 -1
- package/http/http.service.d.ts +6 -2
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/bundles/index.umd.js +9 -0
- package/oAuth/esm2022/oAuth.service.mjs +10 -1
- package/oAuth/fesm2022/index.mjs +9 -0
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/oAuth.service.d.ts +3 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +364 -30
- package/runtime/base/components/app-component/app.component.d.ts +4 -0
- package/runtime/base/components/prefab-preview.component.d.ts +5 -2
- package/runtime/base/directives/accessroles.directive.d.ts +4 -3
- package/runtime/base/directives/prefab.directive.d.ts +3 -2
- package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
- package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
- package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
- package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
- package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
- package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
- package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
- package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
- package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
- package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
- package/runtime/base/esm2022/services/app.manager.service.mjs +37 -10
- package/runtime/base/esm2022/services/app.service.mjs +34 -2
- package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
- package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
- package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
- package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
- package/runtime/base/fesm2022/index.mjs +365 -31
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/services/app.manager.service.d.ts +6 -1
- package/runtime/base/services/app.service.d.ts +12 -2
- package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
- package/runtime/base/services/spinner.service.d.ts +3 -1
- package/runtime/base/util/fragment-monitor.d.ts +6 -0
- package/runtime/dynamic/bundles/index.umd.js +5 -0
- package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
- package/runtime/dynamic/fesm2022/index.mjs +5 -0
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +100 -14
- package/security/bundles/index.umd.js +41 -2
- package/security/esm2022/security.service.mjs +42 -3
- package/security/fesm2022/index.mjs +41 -2
- package/security/fesm2022/index.mjs.map +1 -1
- package/security/security.service.d.ts +5 -2
- package/variables/bundles/index.umd.js +50 -6
- package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
- package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
- package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
- package/variables/esm2022/service/variables.service.mjs +8 -2
- package/variables/fesm2022/index.mjs +50 -6
- package/variables/fesm2022/index.mjs.map +1 -1
|
@@ -15,7 +15,7 @@ class DialogBodyDirective {
|
|
|
15
15
|
this.dialogRef = dialogRef;
|
|
16
16
|
this.renderer = renderer;
|
|
17
17
|
addClass(elRef.nativeElement, DEFAULT_CLS$1);
|
|
18
|
-
|
|
18
|
+
this.bsModalShownSubscription = bsModal.onShown.subscribe(() => {
|
|
19
19
|
const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];
|
|
20
20
|
const dialogContent = $(elRef.nativeElement).closest('.modal-content')[0];
|
|
21
21
|
let dialogRootContainer = $('body.wm-app')[0];
|
|
@@ -56,9 +56,22 @@ class DialogBodyDirective {
|
|
|
56
56
|
setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);
|
|
57
57
|
setAttr(dialogRoot, 'name', this.dialogRef.name);
|
|
58
58
|
}
|
|
59
|
-
subscription
|
|
59
|
+
// Clean up subscription after first use
|
|
60
|
+
if (this.bsModalShownSubscription) {
|
|
61
|
+
this.bsModalShownSubscription.unsubscribe();
|
|
62
|
+
this.bsModalShownSubscription = null;
|
|
63
|
+
}
|
|
60
64
|
});
|
|
61
65
|
}
|
|
66
|
+
ngOnDestroy() {
|
|
67
|
+
// MEMORY LEAK FIX: Unsubscribe from bsModal.onShown if not already unsubscribed
|
|
68
|
+
if (this.bsModalShownSubscription) {
|
|
69
|
+
this.bsModalShownSubscription.unsubscribe();
|
|
70
|
+
this.bsModalShownSubscription = null;
|
|
71
|
+
}
|
|
72
|
+
// MEMORY LEAK FIX: Clear dialogRef reference
|
|
73
|
+
this.dialogRef = null;
|
|
74
|
+
}
|
|
62
75
|
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 }); }
|
|
63
76
|
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 }); }
|
|
64
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/default/src/dialog-body/dialog-body.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.props.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/base-dialog.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.html","../../../../../projects/components/widgets/dialogs/default/src/index.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Inject, Renderer2 } from '@angular/core';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\nimport { addClass, getSheetPositionClass, setAttr, setCSS } from '@wm/core';\n\nimport { DialogRef } from '@wm/components/base';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-dialog-body modal-body';\n\n@Directive({\n standalone: true,\n selector: 'div[wmDialogBody]',\n})\nexport class DialogBodyDirective {\n @HostBinding('style.height') height;\n constructor(\n elRef: ElementRef,\n @Inject(DialogRef) private dialogRef,\n bsModal: BsModalService,\n private renderer: Renderer2\n ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n\n const subscription = bsModal.onShown.subscribe(() => {\n const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];\n const dialogContent = $(elRef.nativeElement).closest('.modal-content')[0];\n let dialogRootContainer = $('body.wm-app')[0];\n // To identify the microfrontend, if body tag doesn't have wm-app class then app loading as micro-frontend\n if(!dialogRootContainer) {\n const dialogBackrop = $('body > .modal-backdrop')[0];\n const parentContainer = $('body > modal-container')[0];\n dialogRootContainer = $('.wm-app')[0];\n if(dialogRootContainer && parentContainer ){\n if(dialogBackrop){\n this.renderer.appendChild(dialogRootContainer, dialogBackrop);\n }\n this.renderer.appendChild(dialogRootContainer, parentContainer);\n\n }\n }\n const isSheet = this.dialogRef.sheet;\n const sheetPosition = this.dialogRef.sheetPosition;\n if(isSheet) {\n $(dialogRoot).addClass('modal-sheet');\n $(dialogRoot).addClass(getSheetPositionClass(sheetPosition));\n }\n const animation = this.dialogRef.animation;\n if(animation) {\n $(dialogContent).addClass('animated');\n $(dialogContent).addClass(animation);\n }\n const width = this.dialogRef.width;\n const height = this.dialogRef.height;\n if(height){\n setTimeout(e=>{\n setCSS($(elRef.nativeElement)[0], 'height', height);\n });\n }\n if (dialogRoot) {\n if (width) {\n setCSS(dialogRoot, 'width', width);\n }\n setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);\n setAttr(dialogRoot, 'name', this.dialogRef.name);\n\n }\n subscription.unsubscribe();\n });\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-dialogfooter',\n new Map([\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ])\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './dialog-footer.props';\n\nconst WIDGET_INFO: IWidgetConfig = {\n widgetType: 'wm-dialogfooter',\n hostClass: 'app-dialog-footer modal-footer'\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmDialogFooter]',\n providers: [\n provideAsWidgetRef(DialogFooterDirective)\n ]\n})\nexport class DialogFooterDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n }\n}\n","import {Inject, Injectable, Injector, OnDestroy, Optional, TemplateRef} from '@angular/core';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {BsModalRef, BsModalService, ModalOptions} from 'ngx-bootstrap/modal';\n\nimport {Subscription} from 'rxjs';\n\nimport {AbstractDialogService, findRootContainer, generateGUId, isMobile} from '@wm/core';\n\nimport {BaseComponent, IDialog, IWidgetConfig, WidgetConfig} from '@wm/components/base';\n\nconst eventsRegistered = false;\n\nconst invokeOpenedCallback = (ref) => {\n if (ref) {\n setTimeout(() => {\n const root = findRootContainer(ref.$element);\n // if page styles have to be applied to dialog then dialog has to be child of page element.\n if (root) {\n $('body > modal-container > div').wrap('<' + root + '/>');\n }\n ref.invokeEventCallback('opened', { $event: { type: 'opened' } });\n // Focusing the first focusable element when the dialog is opened\n const container = $('[aria-labelledby= ' + ref.titleId + ']')[0];\n const keyboardFocusableElements = [container.querySelectorAll(\n 'a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => {\n return (\n !el[0].hasAttribute('disabled') && !el[0].hasAttribute('hidden'));\n })[0];\n $(keyboardFocusableElements[0]).focus();\n\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length > 1) {\n let zIndex = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 2].titleId + \"]\").css('z-index'));\n $('[aria-labelledby= ' + ref.dialogService.getLastOpenedDialog().titleId + ']').css('z-index', zIndex + 2);\n $('bs-modal-backdrop').css('z-index', zIndex + 1);\n }\n });\n }\n};\n\nconst invokeClosedCallback = (ref) => {\n if (ref) {\n ref.invokeEventCallback('close');\n ref.dialogRef = undefined;\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length >= 1) {\n let zIndex: any = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 1].titleId + \"]\").css('z-index'));\n $('bs-modal-backdrop').css('z-index', zIndex - 1);\n }\n }\n};\n\n@Injectable()\nexport abstract class BaseDialog extends BaseComponent implements IDialog, OnDestroy {\n\n public name: string;\n\n private readonly dialogService: AbstractDialogService;\n private readonly bsModal: BsModalService;\n\n private dialogRef: BsModalRef;\n private dialogId: number;\n public titleId: string = 'wmdialog-' + generateGUId();\n public sheet: string | boolean;\n public sheetPosition: string;\n private dialogOriginFocusStack: HTMLElement[] = [];\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n protected modalOptions: ModalOptions,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.dialogService = inj.get(AbstractDialogService);\n this.bsModal = inj.get(BsModalService);\n const router = inj.get(Router);\n\n const subscriptions: Subscription[] = [\n this.bsModal.onShown.subscribe(({ id }) => {\n const ref = this.dialogService.getLastOpenedDialog();\n if (ref === this && !this.dialogId) {\n // Always get the reference of last pushed dialog in the array for calling onOpen callback\n invokeOpenedCallback(ref);\n this.dialogId = id;\n }\n }),\n this.bsModal.onShow.subscribe(() => {}),\n this.bsModal.onHidden.subscribe((closeReason) => {\n let ref = this.dialogService.getDialogRefFromClosedDialogs();\n if (this.dialogId && closeReason?.id === this.dialogId) {\n ref = this;\n } else if (closeReason === 'esc' || closeReason === 'backdrop-click') {\n ref = this.dialogService.getLastOpenedDialog();\n }\n if (ref === this) {\n this.dialogId = null;\n // remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(ref);\n this.dialogService.removeFromClosedDialogs(ref);\n invokeClosedCallback(ref);\n if (ref.closeCallBackFn) {\n ref.closeCallBackFn();\n }\n }\n }),\n this.bsModal.onHide.subscribe(() => {}),\n router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.close();\n }\n })\n ];\n this.registerDestroyListener(() => {// remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(this);\n this.dialogService.removeFromClosedDialogs(this);\n subscriptions.forEach(s => s.unsubscribe());\n });\n }\n\n /**\n * Opens the dialog\n * Subscribe to the onShown event emitter of bsModal and trigger on-opened event callback\n */\n public open(initState?: any) {\n\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n\n // do not open the dialog again if it is already opened\n const duplicateDialogCheck = (openedDialog) => {\n return openedDialog === this;\n };\n\n if (this.dialogService.getOpenedDialogs().some(duplicateDialogCheck)) {\n return;\n }\n\n this.dialogService.addToOpenedDialogs(this);\n // extend the context with the initState\n Object.assign(this.context, initState);\n this.modalOptions.ariaLabelledBy = this.titleId;\n this.dialogOriginFocusStack.push(document.activeElement as HTMLElement);\n this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);\n // Fix for [WMS-23948]: Focus moving out of active Dialog widget\n if (this.dialogService.getOpenedDialogs().length === 1 && (isMobile())) {\n const parentSelector = $('body > app-root')[0];\n parentSelector.setAttribute('aria-hidden', 'true');\n }\n $('.cdk-focus-trap-anchor').removeAttr('aria-hidden');\n }\n\n /**\n * closes the dialog\n * invokes the on-close event callback\n */\n public close() {\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n if (this.dialogRef) {\n const lastDialogOrigin = this.dialogOriginFocusStack.pop();\n this.dialogService.addToClosedDialogs(this);\n this.dialogRef.hide();\n // Return focus to the originating element upon dialog closure\n lastDialogOrigin?.focus();\n }\n }\n\n /**\n * Register the dialog with the dialog service for programmatic access\n */\n protected register(scope) {\n // add scope along with name in the dialogRefsCollection Map while registering dialog\n // So that 2 dialogs having same name on different pages won't be overridden.\n this.dialogService.register(this.name, this, scope);\n }\n\n /**\n * De Register the dialog with the dialog service after dialog destruction\n */\n protected deRegister(scope) {\n this.dialogService.deRegister(this.name, scope);\n }\n\n /**\n * subclasses of BaseDialog must implement this method to return the proper template element ref\n * bsModal will use this refence to open the dialog\n * @returns {TemplateRef<any>}\n */\n protected abstract getTemplateRef(): TemplateRef<any>;\n\n protected onPropertyChange(key: string, nv: any, ov?: any) {\n // ignore the class attribute.\n // Prevent the framework from setting the class on the host element.\n if (key === 'class' || key === 'name' || key === 'tabindex') {\n return;\n } else if (key === 'animation') {\n this.modalOptions.class = this.modalOptions.class.replace(' animated ' + ov, '');\n if (nv) {\n this.modalOptions.class = this.modalOptions.class + ' animated ' + nv;\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n public ngOnDestroy() {\n this.close();\n this.deRegister(this.viewParent);\n super.ngOnDestroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ImagePipe, TextContentDirective } from \"@wm/components/base\";\nimport {Component, ElementRef, Inject, Input} from '@angular/core';\n\nimport {addClass, App, toBoolean} from '@wm/core';\n\nimport {DialogRef} from '@wm/components/base';\nimport {BaseDialog} from '../base-dialog';\n\nconst DEFAULT_CLS = 'app-dialog-header modal-header';\nconst DEFAULT_ICON_DIMENSIONS = '21px';\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, ImagePipe],\n selector: 'div[wmDialogHeader]',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent {\n\n @Input() public iconwidth = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconheight = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconmargin: string;\n @Input() public iconclass: string;\n @Input() public iconurl: string;\n @Input() public closable = true;\n @Input() public heading: string;\n @Input() public headinglevel?: string = 'h4';\n @Input() public subheading: string;\n @Input() public titleid:string;\n @Input() public title: string;\n isPrism: boolean;\n\n public get isClosable() {\n return toBoolean(this.closable);\n }\n\n constructor(elRef: ElementRef, @Inject(DialogRef) public dialogRef: BaseDialog, public app: App ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n this.isPrism = this.app.isPrism;\n }\n\n public closeDialog() {\n this.dialogRef.close();\n }\n}\n","@if (isClosable) {\n <button (click)=\"closeDialog();\"\n [attr.aria-label]=\"'Close ' + (title ? title : '') + ' dialog'\" class=\"app-dialog-close close\" [ngClass]=\"{'btn-text': isPrism}\" [attr.title]=\"title ? 'Close ' + title + ' dialog' : dialogRef.appLocale.LABEL_CLOSE\" >\n <span class=\"app-icon wi wi-clear\" aria-hidden=\"true\"></span>\n </button>\n}\n\n@switch (headinglevel) {\n @case ('h1') {\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n }\n @case ('h4') {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n @case ('h5') {\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n }\n @case ('h6') {\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n }\n @default {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n}\n\n<ng-template #headerTemplate>\n @if (iconclass && !iconurl) {\n <i [ngClass]=\"iconclass\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\"></i>\n }\n @if (iconurl) {\n <img data-identifier=\"img\" [src]=\"iconurl | image\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\"/>\n }\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n @if (subheading) {\n <span class=\"dialog-sub-heading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DEFAULT_CLS","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/default/src/dialog-body/dialog-body.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.props.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/base-dialog.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.html","../../../../../projects/components/widgets/dialogs/default/src/index.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Inject, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\nimport { addClass, getSheetPositionClass, setAttr, setCSS } from '@wm/core';\n\nimport { DialogRef } from '@wm/components/base';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-dialog-body modal-body';\n\n@Directive({\n standalone: true,\n selector: 'div[wmDialogBody]',\n})\nexport class DialogBodyDirective implements OnDestroy {\n @HostBinding('style.height') height;\n private bsModalShownSubscription: Subscription;\n\n constructor(\n elRef: ElementRef,\n @Inject(DialogRef) private dialogRef,\n bsModal: BsModalService,\n private renderer: Renderer2\n ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n\n this.bsModalShownSubscription = bsModal.onShown.subscribe(() => {\n const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];\n const dialogContent = $(elRef.nativeElement).closest('.modal-content')[0];\n let dialogRootContainer = $('body.wm-app')[0];\n // To identify the microfrontend, if body tag doesn't have wm-app class then app loading as micro-frontend\n if(!dialogRootContainer) {\n const dialogBackrop = $('body > .modal-backdrop')[0];\n const parentContainer = $('body > modal-container')[0];\n dialogRootContainer = $('.wm-app')[0];\n if(dialogRootContainer && parentContainer ){\n if(dialogBackrop){\n this.renderer.appendChild(dialogRootContainer, dialogBackrop);\n }\n this.renderer.appendChild(dialogRootContainer, parentContainer);\n\n }\n }\n const isSheet = this.dialogRef.sheet;\n const sheetPosition = this.dialogRef.sheetPosition;\n if(isSheet) {\n $(dialogRoot).addClass('modal-sheet');\n $(dialogRoot).addClass(getSheetPositionClass(sheetPosition));\n }\n const animation = this.dialogRef.animation;\n if(animation) {\n $(dialogContent).addClass('animated');\n $(dialogContent).addClass(animation);\n }\n const width = this.dialogRef.width;\n const height = this.dialogRef.height;\n if(height){\n setTimeout(e=>{\n setCSS($(elRef.nativeElement)[0], 'height', height);\n });\n }\n if (dialogRoot) {\n if (width) {\n setCSS(dialogRoot, 'width', width);\n }\n setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);\n setAttr(dialogRoot, 'name', this.dialogRef.name);\n\n }\n // Clean up subscription after first use\n if (this.bsModalShownSubscription) {\n this.bsModalShownSubscription.unsubscribe();\n this.bsModalShownSubscription = null;\n }\n });\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Unsubscribe from bsModal.onShown if not already unsubscribed\n if (this.bsModalShownSubscription) {\n this.bsModalShownSubscription.unsubscribe();\n this.bsModalShownSubscription = null;\n }\n\n // MEMORY LEAK FIX: Clear dialogRef reference\n this.dialogRef = null;\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-dialogfooter',\n new Map([\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ])\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './dialog-footer.props';\n\nconst WIDGET_INFO: IWidgetConfig = {\n widgetType: 'wm-dialogfooter',\n hostClass: 'app-dialog-footer modal-footer'\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmDialogFooter]',\n providers: [\n provideAsWidgetRef(DialogFooterDirective)\n ]\n})\nexport class DialogFooterDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n }\n}\n","import {Inject, Injectable, Injector, OnDestroy, Optional, TemplateRef} from '@angular/core';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {BsModalRef, BsModalService, ModalOptions} from 'ngx-bootstrap/modal';\n\nimport {Subscription} from 'rxjs';\n\nimport {AbstractDialogService, findRootContainer, generateGUId, isMobile} from '@wm/core';\n\nimport {BaseComponent, IDialog, IWidgetConfig, WidgetConfig} from '@wm/components/base';\n\nconst eventsRegistered = false;\n\nconst invokeOpenedCallback = (ref) => {\n if (ref) {\n setTimeout(() => {\n const root = findRootContainer(ref.$element);\n // if page styles have to be applied to dialog then dialog has to be child of page element.\n if (root) {\n $('body > modal-container > div').wrap('<' + root + '/>');\n }\n ref.invokeEventCallback('opened', { $event: { type: 'opened' } });\n // Focusing the first focusable element when the dialog is opened\n const container = $('[aria-labelledby= ' + ref.titleId + ']')[0];\n const keyboardFocusableElements = [container.querySelectorAll(\n 'a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => {\n return (\n !el[0].hasAttribute('disabled') && !el[0].hasAttribute('hidden'));\n })[0];\n $(keyboardFocusableElements[0]).focus();\n\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length > 1) {\n let zIndex = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 2].titleId + \"]\").css('z-index'));\n $('[aria-labelledby= ' + ref.dialogService.getLastOpenedDialog().titleId + ']').css('z-index', zIndex + 2);\n $('bs-modal-backdrop').css('z-index', zIndex + 1);\n }\n });\n }\n};\n\nconst invokeClosedCallback = (ref) => {\n if (ref) {\n ref.invokeEventCallback('close');\n ref.dialogRef = undefined;\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length >= 1) {\n let zIndex: any = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 1].titleId + \"]\").css('z-index'));\n $('bs-modal-backdrop').css('z-index', zIndex - 1);\n }\n }\n};\n\n@Injectable()\nexport abstract class BaseDialog extends BaseComponent implements IDialog, OnDestroy {\n\n public name: string;\n\n private readonly dialogService: AbstractDialogService;\n private readonly bsModal: BsModalService;\n\n private dialogRef: BsModalRef;\n private dialogId: number;\n public titleId: string = 'wmdialog-' + generateGUId();\n public sheet: string | boolean;\n public sheetPosition: string;\n private dialogOriginFocusStack: HTMLElement[] = [];\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n protected modalOptions: ModalOptions,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.dialogService = inj.get(AbstractDialogService);\n this.bsModal = inj.get(BsModalService);\n const router = inj.get(Router);\n\n const subscriptions: Subscription[] = [\n this.bsModal.onShown.subscribe(({ id }) => {\n const ref = this.dialogService.getLastOpenedDialog();\n if (ref === this && !this.dialogId) {\n // Always get the reference of last pushed dialog in the array for calling onOpen callback\n invokeOpenedCallback(ref);\n this.dialogId = id;\n }\n }),\n this.bsModal.onShow.subscribe(() => {}),\n this.bsModal.onHidden.subscribe((closeReason) => {\n let ref = this.dialogService.getDialogRefFromClosedDialogs();\n if (this.dialogId && closeReason?.id === this.dialogId) {\n ref = this;\n } else if (closeReason === 'esc' || closeReason === 'backdrop-click') {\n ref = this.dialogService.getLastOpenedDialog();\n }\n if (ref === this) {\n this.dialogId = null;\n // remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(ref);\n this.dialogService.removeFromClosedDialogs(ref);\n invokeClosedCallback(ref);\n if (ref.closeCallBackFn) {\n ref.closeCallBackFn();\n }\n }\n }),\n this.bsModal.onHide.subscribe(() => {}),\n router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.close();\n }\n })\n ];\n this.registerDestroyListener(() => {// remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(this);\n this.dialogService.removeFromClosedDialogs(this);\n subscriptions.forEach(s => s.unsubscribe());\n });\n }\n\n /**\n * Opens the dialog\n * Subscribe to the onShown event emitter of bsModal and trigger on-opened event callback\n */\n public open(initState?: any) {\n\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n\n // do not open the dialog again if it is already opened\n const duplicateDialogCheck = (openedDialog) => {\n return openedDialog === this;\n };\n\n if (this.dialogService.getOpenedDialogs().some(duplicateDialogCheck)) {\n return;\n }\n\n this.dialogService.addToOpenedDialogs(this);\n // extend the context with the initState\n Object.assign(this.context, initState);\n this.modalOptions.ariaLabelledBy = this.titleId;\n this.dialogOriginFocusStack.push(document.activeElement as HTMLElement);\n this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);\n // Fix for [WMS-23948]: Focus moving out of active Dialog widget\n if (this.dialogService.getOpenedDialogs().length === 1 && (isMobile())) {\n const parentSelector = $('body > app-root')[0];\n parentSelector.setAttribute('aria-hidden', 'true');\n }\n $('.cdk-focus-trap-anchor').removeAttr('aria-hidden');\n }\n\n /**\n * closes the dialog\n * invokes the on-close event callback\n */\n public close() {\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n if (this.dialogRef) {\n const lastDialogOrigin = this.dialogOriginFocusStack.pop();\n this.dialogService.addToClosedDialogs(this);\n this.dialogRef.hide();\n // Return focus to the originating element upon dialog closure\n lastDialogOrigin?.focus();\n }\n }\n\n /**\n * Register the dialog with the dialog service for programmatic access\n */\n protected register(scope) {\n // add scope along with name in the dialogRefsCollection Map while registering dialog\n // So that 2 dialogs having same name on different pages won't be overridden.\n this.dialogService.register(this.name, this, scope);\n }\n\n /**\n * De Register the dialog with the dialog service after dialog destruction\n */\n protected deRegister(scope) {\n this.dialogService.deRegister(this.name, scope);\n }\n\n /**\n * subclasses of BaseDialog must implement this method to return the proper template element ref\n * bsModal will use this refence to open the dialog\n * @returns {TemplateRef<any>}\n */\n protected abstract getTemplateRef(): TemplateRef<any>;\n\n protected onPropertyChange(key: string, nv: any, ov?: any) {\n // ignore the class attribute.\n // Prevent the framework from setting the class on the host element.\n if (key === 'class' || key === 'name' || key === 'tabindex') {\n return;\n } else if (key === 'animation') {\n this.modalOptions.class = this.modalOptions.class.replace(' animated ' + ov, '');\n if (nv) {\n this.modalOptions.class = this.modalOptions.class + ' animated ' + nv;\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n public ngOnDestroy() {\n this.close();\n this.deRegister(this.viewParent);\n super.ngOnDestroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ImagePipe, TextContentDirective } from \"@wm/components/base\";\nimport {Component, ElementRef, Inject, Input} from '@angular/core';\n\nimport {addClass, App, toBoolean} from '@wm/core';\n\nimport {DialogRef} from '@wm/components/base';\nimport {BaseDialog} from '../base-dialog';\n\nconst DEFAULT_CLS = 'app-dialog-header modal-header';\nconst DEFAULT_ICON_DIMENSIONS = '21px';\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, ImagePipe],\n selector: 'div[wmDialogHeader]',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent {\n\n @Input() public iconwidth = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconheight = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconmargin: string;\n @Input() public iconclass: string;\n @Input() public iconurl: string;\n @Input() public closable = true;\n @Input() public heading: string;\n @Input() public headinglevel?: string = 'h4';\n @Input() public subheading: string;\n @Input() public titleid:string;\n @Input() public title: string;\n isPrism: boolean;\n\n public get isClosable() {\n return toBoolean(this.closable);\n }\n\n constructor(elRef: ElementRef, @Inject(DialogRef) public dialogRef: BaseDialog, public app: App ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n this.isPrism = this.app.isPrism;\n }\n\n public closeDialog() {\n this.dialogRef.close();\n }\n}\n","@if (isClosable) {\n <button (click)=\"closeDialog();\"\n [attr.aria-label]=\"'Close ' + (title ? title : '') + ' dialog'\" class=\"app-dialog-close close\" [ngClass]=\"{'btn-text': isPrism}\" [attr.title]=\"title ? 'Close ' + title + ' dialog' : dialogRef.appLocale.LABEL_CLOSE\" >\n <span class=\"app-icon wi wi-clear\" aria-hidden=\"true\"></span>\n </button>\n}\n\n@switch (headinglevel) {\n @case ('h1') {\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n }\n @case ('h4') {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n @case ('h5') {\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n }\n @case ('h6') {\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n }\n @default {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n}\n\n<ng-template #headerTemplate>\n @if (iconclass && !iconurl) {\n <i [ngClass]=\"iconclass\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\"></i>\n }\n @if (iconurl) {\n <img data-identifier=\"img\" [src]=\"iconurl | image\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\"/>\n }\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n @if (subheading) {\n <span class=\"dialog-sub-heading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DEFAULT_CLS","i1"],"mappings":"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"}
|
|
@@ -87,6 +87,13 @@
|
|
|
87
87
|
this.nativeElement.setAttribute('title', nv);
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
+
ngOnDestroy() {
|
|
91
|
+
// MEMORY LEAK FIX: Clear ViewChild and ContentChild references
|
|
92
|
+
this.dialogTemplate = null;
|
|
93
|
+
this.dialogBody = null;
|
|
94
|
+
this.dialogFooter = null;
|
|
95
|
+
super.ngOnDestroy();
|
|
96
|
+
}
|
|
90
97
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: DialogComponent, deps: [{ token: i0__namespace.Injector }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'sheet', attribute: true }, { token: 'sheetposition', attribute: true }, { token: base.Context, self: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
91
98
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DialogComponent, isStandalone: true, selector: "div[wmDialog]", providers: [
|
|
92
99
|
base.provideAsWidgetRef(DialogComponent),
|
|
@@ -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 DialogComponent extends BaseDialog implements OnInit {
|
|
4
|
+
export declare class DialogComponent extends BaseDialog implements OnInit, OnDestroy {
|
|
5
5
|
static initializeProps: void;
|
|
6
6
|
isDialogComponent: boolean;
|
|
7
7
|
dialogTemplate: TemplateRef<any>;
|
|
@@ -11,6 +11,7 @@ export declare class DialogComponent extends BaseDialog implements OnInit {
|
|
|
11
11
|
protected getTemplateRef(): TemplateRef<any>;
|
|
12
12
|
ngOnInit(): void;
|
|
13
13
|
protected onPropertyChange(key: string, nv: any, ov?: any): void;
|
|
14
|
+
ngOnDestroy(): void;
|
|
14
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<DialogComponent, [null, { attribute: "class"; }, { attribute: "modal"; }, { attribute: "closable"; }, { attribute: "sheet"; }, { attribute: "sheetposition"; }, { self: true; }, { optional: true; }]>;
|
|
15
16
|
static ɵcmp: i0.ɵɵComponentDeclaration<DialogComponent, "div[wmDialog]", never, {}, {}, ["dialogBody", "dialogFooter"], never, true, never>;
|
|
16
17
|
}
|
|
@@ -49,6 +49,13 @@ export class DialogComponent extends BaseDialog {
|
|
|
49
49
|
this.nativeElement.setAttribute('title', nv);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
ngOnDestroy() {
|
|
53
|
+
// MEMORY LEAK FIX: Clear ViewChild and ContentChild references
|
|
54
|
+
this.dialogTemplate = null;
|
|
55
|
+
this.dialogBody = null;
|
|
56
|
+
this.dialogFooter = null;
|
|
57
|
+
super.ngOnDestroy();
|
|
58
|
+
}
|
|
52
59
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogComponent, deps: [{ token: i0.Injector }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'sheet', attribute: true }, { token: 'sheetposition', attribute: true }, { token: Context, self: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
60
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DialogComponent, isStandalone: true, selector: "div[wmDialog]", providers: [
|
|
54
61
|
provideAsWidgetRef(DialogComponent),
|
|
@@ -98,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
98
105
|
type: ContentChild,
|
|
99
106
|
args: ['dialogFooter', /* TODO: add static flag */ { read: TemplateRef }]
|
|
100
107
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kaWFsb2dzL2Rlc2lnbi1kaWFsb2cvc3JjL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGlhbG9ncy9kZXNpZ24tZGlhbG9nL3NyYy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBRVIsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRW5ELE1BQU0sVUFBVSxHQUFHLHlCQUF5QixDQUFDO0FBRTdDLE1BQU0sV0FBVyxHQUFHLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBQyxDQUFDO0FBYTlDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7YUFDcEMsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFPekMsWUFDSSxHQUFhLEVBQ08sV0FBbUIsRUFDbkIsS0FBdUIsRUFDcEIsUUFBMEIsRUFDN0IsS0FBdUIsRUFDZixhQUFxQixFQUN4QixRQUFv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QUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO3FCQUNuRTs7MEJBWUksU0FBUzsyQkFBQyxPQUFPOzswQkFDakIsU0FBUzsyQkFBQyxPQUFPOzswQkFDakIsU0FBUzsyQkFBQyxVQUFVOzswQkFDcEIsU0FBUzsyQkFBQyxPQUFPOzswQkFDakIsU0FBUzsyQkFBQyxlQUFlOzswQkFDekIsSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxPQUFPOzswQkFDdEIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUFHLFFBQVE7eUNBWnlCLGNBQWM7c0JBQS9FLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ2UsVUFBVTtzQkFBeEYsWUFBWTt1QkFBQyxZQUFZLEVBQUUsMkJBQTJCLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNJLFlBQVk7c0JBQTVGLFlBQVk7dUJBQUMsY0FBYyxFQUFFLDJCQUEyQixDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQXR0cmlidXRlLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHt0b0Jvb2xlYW59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IENvbnRleHQsIHByb3ZpZGVBc0RpYWxvZ1JlZiwgcHJvdmlkZUFzV2lkZ2V0UmVmIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBCYXNlRGlhbG9nLCBEaWFsb2dCb2R5RGlyZWN0aXZlLCBEaWFsb2dIZWFkZXJDb21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9kaWFsb2dzJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vZGlhbG9nLnByb3BzJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jb25zdCBESUFMT0dfQ0xTID0gJ2FwcC1kaWFsb2cgbW9kYWwtZGlhbG9nJztcblxuY29uc3QgV0lER0VUX0lORk8gPSB7d2lkZ2V0VHlwZTogJ3dtLWRpYWxvZyd9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtEaWFsb2dCb2R5RGlyZWN0aXZlLCBEaWFsb2dIZWFkZXJDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHNlbGVjdG9yOiAnZGl2W3dtRGlhbG9nXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihEaWFsb2dDb21wb25lbnQpLFxuICAgICAgICBwcm92aWRlQXNEaWFsb2dSZWYoRGlhbG9nQ29tcG9uZW50KSxcbiAgICAgICAge3Byb3ZpZGU6IENvbnRleHQsIHVzZUZhY3Rvcnk6ICgpID0+IHsgcmV0dXJuIHt9IH0sIG11bHRpOiB0cnVlfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQmFzZURpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICBpc0RpYWxvZ0NvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBAVmlld0NoaWxkKCdkaWFsb2dUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdkaWFsb2dCb2R5JywgLyogVE9ETzogYWRkIHN0YXRpYyBmbGFnICovIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgZGlhbG9nQm9keTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdkaWFsb2dGb290ZXInLCAvKiBUT0RPOiBhZGQgc3RhdGljIGZsYWcgKi8geyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBkaWFsb2dGb290ZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgQEF0dHJpYnV0ZSgnY2xhc3MnKSBkaWFsb2dDbGFzczogc3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCdtb2RhbCcpIG1vZGFsOiBzdHJpbmcgfCBib29sZWFuLFxuICAgICAgICBAQXR0cmlidXRlKCdjbG9zYWJsZScpIGNsb3NhYmxlOiBzdHJpbmcgfCBib29sZWFuLFxuICAgICAgICBAQXR0cmlidXRlKCdzaGVldCcpIHNoZWV0OiBzdHJpbmcgfCBib29sZWFuLFxuICAgICAgICBAQXR0cmlidXRlKCdzaGVldHBvc2l0aW9uJykgc2hlZXRQb3NpdGlvbjogc3RyaW5nLFxuICAgICAgICBAU2VsZigpIEBJbmplY3QoQ29udGV4dCkgY29udGV4dHM6IEFycmF5PGFueT4sXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICBpZiAobW9kYWwgPT09IG51bGwgfHwgbW9kYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbW9kYWwgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsb3NhYmxlID09PSBudWxsIHx8IGNsb3NhYmxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNsb3NhYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnRleHRzWzBdIHdpbGwgcmVmZXIgdG8gdGhlIHNlbGYgY29udGV4dCBwcm92aWRlZCBieSB0aGlzIGNvbXBvbmVudFxuICAgICAgICBjb250ZXh0c1swXS5jbG9zZURpYWxvZyA9ICgpID0+IHRoaXMuY2xvc2UoKTtcblxuICAgICAgICAvLyBzZXR0aW5nIHRoZSBiYWNrZHJvcCB0byAnc3RhdGljJyB3aWxsIG5vdCBjbG9zZSB0aGUgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgICAgIGNvbnN0IGJhY2tkcm9wOiBib29sZWFuIHwgJ3N0YXRpYycgPSB0b0Jvb2xlYW4obW9kYWwpID8gJ3N0YXRpYycgOiB0cnVlO1xuXG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgaW5qLFxuICAgICAgICAgICAgV0lER0VUX0lORk8sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3M6IGAke0RJQUxPR19DTFN9ICR7ZGlhbG9nQ2xhc3MgfHwgJyd9YCxcbiAgICAgICAgICAgICAgICBiYWNrZHJvcCxcbiAgICAgICAgICAgICAgICBrZXlib2FyZDogdG9Cb29sZWFuKGNsb3NhYmxlKSA/IHRydWUgOiAhdG9Cb29sZWFuKG1vZGFsKSxcbiAgICAgICAgICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0b0Jvb2xlYW4obW9kYWwpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhwbGljaXRDb250ZXh0XG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gYWRkaW5nIHByb3BzIHRvIHJlbmRlciBkaWFsb2cgYXMgc2hlZXRcbiAgICAgICAgdGhpcy5zaGVldCA9IHNoZWV0O1xuICAgICAgICB0aGlzLnNoZWV0UG9zaXRpb24gPSBzaGVldFBvc2l0aW9uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRUZW1wbGF0ZVJlZigpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nVGVtcGxhdGU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXIodGhpcy52aWV3UGFyZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYoa2V5ID09PSAnc2hlZXQnKSB7XG4gICAgICAgICAgICB0aGlzLnNoZWV0ID0gbnY7XG4gICAgICAgIH1cbiAgICAgICAgaWYoa2V5ID09PSAnc2hlZXRwb3NpdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuc2hlZXRQb3NpdGlvbiA9IG52O1xuICAgICAgICB9XG4gICAgICAgIGlmKGtleSA9PT0gJ3RpdGxlJykge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgndGl0bGUnLCBudik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2RpYWxvZ1RlbXBsYXRlPlxuICBAaWYgKHNob3doZWFkZXIpIHtcbiAgICA8ZGl2IHdtRGlhbG9nSGVhZGVyIFtjbG9zYWJsZV09XCJjbG9zYWJsZVwiXG4gICAgICBbaWNvbmNsYXNzXT1cImljb25jbGFzc1wiXG4gICAgICBbaWNvbnVybF09XCJpY29udXJsXCJcbiAgICAgIFtpY29ud2lkdGhdPVwiaWNvbndpZHRoXCJcbiAgICAgIFtpY29uaGVpZ2h0XT1cImljb25oZWlnaHRcIlxuICAgICAgW2ljb25tYXJnaW5dPVwiaWNvbm1hcmdpblwiXG4gICAgICBbaGVhZGluZ109XCJ0aXRsZVwiXG4gICAgICBbaGVhZGluZ2xldmVsXT1cImhlYWRpbmdsZXZlbFwiXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgW3RpdGxlaWRdPVwidGl0bGVJZFwiXG4gICAgPjwvZGl2PlxuICB9IEBlbHNlIGlmICghc2hvd2hlYWRlciAmJiB0aXRsZSkge1xuICAgICAgPGg0IFtpZF09XCJ0aXRsZUlkXCIgY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvaDQ+XG4gIH1cbiAgPGRpdiB3bURpYWxvZ0JvZHk+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpYWxvZ0JvZHlcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaWFsb2dGb290ZXJcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kaWFsb2dzL2Rlc2lnbi1kaWFsb2cvc3JjL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGlhbG9ncy9kZXNpZ24tZGlhbG9nL3NyYy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBR1IsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRW5ELE1BQU0sVUFBVSxHQUFHLHlCQUF5QixDQUFDO0FBRTdDLE1BQU0sV0FBVyxHQUFHLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBQyxDQUFDO0FBYTlDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7YUFDcEMsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFPekMsWUFDSSxHQUFhLEVBQ08sV0FBbUIsRUFDbkIsS0FBdUIsRUFDcEIsUUFBMEIsRUFDN0IsS0FBdUIsRUFDZixhQUFxQixFQUN4QixRQUFv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QWU7a0JBWDNCLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLENBQUMsWUFDN0QsZUFBZSxhQUVkO3dCQUNQLGtCQUFrQixpQkFBaUI7d0JBQ25DLGtCQUFrQixpQkFBaUI7d0JBQ25DLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztxQkFDbkU7OzBCQVlJLFNBQVM7MkJBQUMsT0FBTzs7MEJBQ2pCLFNBQVM7MkJBQUMsT0FBTzs7MEJBQ2pCLFNBQVM7MkJBQUMsVUFBVTs7MEJBQ3BCLFNBQVM7MkJBQUMsT0FBTzs7MEJBQ2pCLFNBQVM7MkJBQUMsZUFBZTs7MEJBQ3pCLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsT0FBTzs7MEJBQ3RCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRO3lDQVp5QixjQUFjO3NCQUEvRSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNlLFVBQVU7c0JBQXhGLFlBQVk7dUJBQUMsWUFBWSxFQUFFLDJCQUEyQixDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDSSxZQUFZO3NCQUE1RixZQUFZO3VCQUFDLGNBQWMsRUFBRSwyQkFBMkIsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEF0dHJpYnV0ZSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge3RvQm9vbGVhbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dCwgcHJvdmlkZUFzRGlhbG9nUmVmLCBwcm92aWRlQXNXaWRnZXRSZWYgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IEJhc2VEaWFsb2csIERpYWxvZ0JvZHlEaXJlY3RpdmUsIERpYWxvZ0hlYWRlckNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RpYWxvZ3MnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9kaWFsb2cucHJvcHMnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmNvbnN0IERJQUxPR19DTFMgPSAnYXBwLWRpYWxvZyBtb2RhbC1kaWFsb2cnO1xuXG5jb25zdCBXSURHRVRfSU5GTyA9IHt3aWRnZXRUeXBlOiAnd20tZGlhbG9nJ307XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0RpYWxvZ0JvZHlEaXJlY3RpdmUsIERpYWxvZ0hlYWRlckNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF0sXG4gICAgc2VsZWN0b3I6ICdkaXZbd21EaWFsb2ddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKERpYWxvZ0NvbXBvbmVudCksXG4gICAgICAgIHByb3ZpZGVBc0RpYWxvZ1JlZihEaWFsb2dDb21wb25lbnQpLFxuICAgICAgICB7cHJvdmlkZTogQ29udGV4dCwgdXNlRmFjdG9yeTogKCkgPT4geyByZXR1cm4ge30gfSwgbXVsdGk6IHRydWV9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGlhbG9nIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgaXNEaWFsb2dDb21wb25lbnQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVGVtcGxhdGVSZWYgfSkgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnZGlhbG9nQm9keScsIC8qIFRPRE86IGFkZCBzdGF0aWMgZmxhZyAqLyB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGRpYWxvZ0JvZHk6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnZGlhbG9nRm9vdGVyJywgLyogVE9ETzogYWRkIHN0YXRpYyBmbGFnICovIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgZGlhbG9nRm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2NsYXNzJykgZGlhbG9nQ2xhc3M6IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgnbW9kYWwnKSBtb2RhbDogc3RyaW5nIHwgYm9vbGVhbixcbiAgICAgICAgQEF0dHJpYnV0ZSgnY2xvc2FibGUnKSBjbG9zYWJsZTogc3RyaW5nIHwgYm9vbGVhbixcbiAgICAgICAgQEF0dHJpYnV0ZSgnc2hlZXQnKSBzaGVldDogc3RyaW5nIHwgYm9vbGVhbixcbiAgICAgICAgQEF0dHJpYnV0ZSgnc2hlZXRwb3NpdGlvbicpIHNoZWV0UG9zaXRpb246IHN0cmluZyxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KENvbnRleHQpIGNvbnRleHRzOiBBcnJheTxhbnk+LFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgaWYgKG1vZGFsID09PSBudWxsIHx8IG1vZGFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG1vZGFsID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjbG9zYWJsZSA9PT0gbnVsbCB8fCBjbG9zYWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjbG9zYWJsZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb250ZXh0c1swXSB3aWxsIHJlZmVyIHRvIHRoZSBzZWxmIGNvbnRleHQgcHJvdmlkZWQgYnkgdGhpcyBjb21wb25lbnRcbiAgICAgICAgY29udGV4dHNbMF0uY2xvc2VEaWFsb2cgPSAoKSA9PiB0aGlzLmNsb3NlKCk7XG5cbiAgICAgICAgLy8gc2V0dGluZyB0aGUgYmFja2Ryb3AgdG8gJ3N0YXRpYycgd2lsbCBub3QgY2xvc2UgdGhlIGRpYWxvZyBvbiBiYWNrZHJvcCBjbGlja1xuICAgICAgICBjb25zdCBiYWNrZHJvcDogYm9vbGVhbiB8ICdzdGF0aWMnID0gdG9Cb29sZWFuKG1vZGFsKSA/ICdzdGF0aWMnIDogdHJ1ZTtcblxuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIGluaixcbiAgICAgICAgICAgIFdJREdFVF9JTkZPLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzOiBgJHtESUFMT0dfQ0xTfSAke2RpYWxvZ0NsYXNzIHx8ICcnfWAsXG4gICAgICAgICAgICAgICAgYmFja2Ryb3AsXG4gICAgICAgICAgICAgICAga2V5Ym9hcmQ6IHRvQm9vbGVhbihjbG9zYWJsZSkgPyB0cnVlIDogIXRvQm9vbGVhbihtb2RhbCksXG4gICAgICAgICAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdG9Cb29sZWFuKG1vZGFsKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cGxpY2l0Q29udGV4dFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIGFkZGluZyBwcm9wcyB0byByZW5kZXIgZGlhbG9nIGFzIHNoZWV0XG4gICAgICAgIHRoaXMuc2hlZXQgPSBzaGVldDtcbiAgICAgICAgdGhpcy5zaGVldFBvc2l0aW9uID0gc2hlZXRQb3NpdGlvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VGVtcGxhdGVSZWYoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1RlbXBsYXRlO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyKHRoaXMudmlld1BhcmVudCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KTogdm9pZCB7XG4gICAgICAgIGlmKGtleSA9PT0gJ3NoZWV0Jykge1xuICAgICAgICAgICAgdGhpcy5zaGVldCA9IG52O1xuICAgICAgICB9XG4gICAgICAgIGlmKGtleSA9PT0gJ3NoZWV0cG9zaXRpb24nKSB7XG4gICAgICAgICAgICB0aGlzLnNoZWV0UG9zaXRpb24gPSBudjtcbiAgICAgICAgfVxuICAgICAgICBpZihrZXkgPT09ICd0aXRsZScpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgbnYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgVmlld0NoaWxkIGFuZCBDb250ZW50Q2hpbGQgcmVmZXJlbmNlc1xuICAgICAgICB0aGlzLmRpYWxvZ1RlbXBsYXRlID0gbnVsbDtcbiAgICAgICAgdGhpcy5kaWFsb2dCb2R5ID0gbnVsbDtcbiAgICAgICAgdGhpcy5kaWFsb2dGb290ZXIgPSBudWxsO1xuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNkaWFsb2dUZW1wbGF0ZT5cbiAgQGlmIChzaG93aGVhZGVyKSB7XG4gICAgPGRpdiB3bURpYWxvZ0hlYWRlciBbY2xvc2FibGVdPVwiY2xvc2FibGVcIlxuICAgICAgW2ljb25jbGFzc109XCJpY29uY2xhc3NcIlxuICAgICAgW2ljb251cmxdPVwiaWNvbnVybFwiXG4gICAgICBbaWNvbndpZHRoXT1cImljb253aWR0aFwiXG4gICAgICBbaWNvbmhlaWdodF09XCJpY29uaGVpZ2h0XCJcbiAgICAgIFtpY29ubWFyZ2luXT1cImljb25tYXJnaW5cIlxuICAgICAgW2hlYWRpbmddPVwidGl0bGVcIlxuICAgICAgW2hlYWRpbmdsZXZlbF09XCJoZWFkaW5nbGV2ZWxcIlxuICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgIFt0aXRsZWlkXT1cInRpdGxlSWRcIlxuICAgID48L2Rpdj5cbiAgfSBAZWxzZSBpZiAoIXNob3doZWFkZXIgJiYgdGl0bGUpIHtcbiAgICAgIDxoNCBbaWRdPVwidGl0bGVJZFwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICA8L2g0PlxuICB9XG4gIDxkaXYgd21EaWFsb2dCb2R5PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaWFsb2dCb2R5XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGlhbG9nRm9vdGVyXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -69,6 +69,13 @@ class DialogComponent extends BaseDialog {
|
|
|
69
69
|
this.nativeElement.setAttribute('title', nv);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
+
ngOnDestroy() {
|
|
73
|
+
// MEMORY LEAK FIX: Clear ViewChild and ContentChild references
|
|
74
|
+
this.dialogTemplate = null;
|
|
75
|
+
this.dialogBody = null;
|
|
76
|
+
this.dialogFooter = null;
|
|
77
|
+
super.ngOnDestroy();
|
|
78
|
+
}
|
|
72
79
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogComponent, deps: [{ token: i0.Injector }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'sheet', attribute: true }, { token: 'sheetposition', attribute: true }, { token: Context, self: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
80
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DialogComponent, isStandalone: true, selector: "div[wmDialog]", providers: [
|
|
74
81
|
provideAsWidgetRef(DialogComponent),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/design-dialog/src/dialog.props.ts","../../../../../projects/components/widgets/dialogs/design-dialog/src/dialog.component.ts","../../../../../projects/components/widgets/dialogs/design-dialog/src/dialog.component.html","../../../../../projects/components/widgets/dialogs/design-dialog/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-dialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, ...PROP_BOOLEAN}],\n ['iconclass', {value: 'wi wi-file-text', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: true, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['showheader', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', {value: 'Information', ...PROP_STRING}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['eventsource', PROP_ANY]\n ]\n )\n );\n};\n","import {\n Attribute,\n Component,\n ContentChild,\n Inject,\n Injector,\n OnInit,\n Optional,\n Self,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {toBoolean} from '@wm/core';\nimport { Context, provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './dialog.props';\nimport { NgTemplateOutlet } from '@angular/common';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog';\n\nconst WIDGET_INFO = {widgetType: 'wm-dialog'};\n\n@Component({\n standalone: true,\n imports: [DialogBodyDirective, DialogHeaderComponent, NgTemplateOutlet],\n selector: 'div[wmDialog]',\n templateUrl: './dialog.component.html',\n providers: [\n provideAsWidgetRef(DialogComponent),\n provideAsDialogRef(DialogComponent),\n {provide: Context, useFactory: () => { return {} }, multi: true}\n ]\n})\nexport class DialogComponent extends BaseDialog implements OnInit {\n static initializeProps = registerProps();\n isDialogComponent: boolean = true;\n\n @ViewChild('dialogTemplate', { static: true, read: TemplateRef }) dialogTemplate: TemplateRef<any>;\n @ContentChild('dialogBody', /* TODO: add static flag */ { read: TemplateRef }) dialogBody: TemplateRef<any>;\n @ContentChild('dialogFooter', /* TODO: add static flag */ { read: TemplateRef }) dialogFooter: 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 @Attribute('sheet') sheet: string | boolean,\n @Attribute('sheetposition') sheetPosition: string,\n @Self() @Inject(Context) contexts: Array<any>,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n if (modal === null || modal === undefined) {\n modal = true;\n }\n\n if (closable === null || closable === undefined) {\n closable = true;\n }\n\n // contexts[0] will refer to the self context provided by this component\n contexts[0].closeDialog = () => this.close();\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(closable) ? true : !toBoolean(modal),\n ignoreBackdropClick: toBoolean(modal)\n },\n explicitContext\n );\n\n // adding props to render dialog as sheet\n this.sheet = sheet;\n this.sheetPosition = sheetPosition;\n }\n\n protected getTemplateRef(): TemplateRef<any> {\n return this.dialogTemplate;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\n }\n\n protected onPropertyChange(key: string, nv: any, ov?: any): void {\n if(key === 'sheet') {\n this.sheet = nv;\n }\n if(key === 'sheetposition') {\n this.sheetPosition = nv;\n }\n if(key === 'title') {\n this.nativeElement.setAttribute('title', nv);\n }\n }\n}\n","<ng-template #dialogTemplate>\n @if (showheader) {\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [headinglevel]=\"headinglevel\"\n [title]=\"title\"\n [titleid]=\"titleId\"\n ></div>\n } @else if (!showheader && title) {\n <h4 [id]=\"titleId\" class=\"sr-only\">\n {{ title }}\n </h4>\n }\n <div wmDialogBody>\n <ng-container *ngTemplateOutlet=\"dialogBody\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"dialogFooter\"></ng-container>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/design-dialog/src/dialog.props.ts","../../../../../projects/components/widgets/dialogs/design-dialog/src/dialog.component.ts","../../../../../projects/components/widgets/dialogs/design-dialog/src/dialog.component.html","../../../../../projects/components/widgets/dialogs/design-dialog/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-dialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, ...PROP_BOOLEAN}],\n ['iconclass', {value: 'wi wi-file-text', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: true, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['showheader', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', {value: 'Information', ...PROP_STRING}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['eventsource', PROP_ANY]\n ]\n )\n );\n};\n","import {\n Attribute,\n Component,\n ContentChild,\n Inject,\n Injector,\n OnInit,\n OnDestroy,\n Optional,\n Self,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {toBoolean} from '@wm/core';\nimport { Context, provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './dialog.props';\nimport { NgTemplateOutlet } from '@angular/common';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog';\n\nconst WIDGET_INFO = {widgetType: 'wm-dialog'};\n\n@Component({\n standalone: true,\n imports: [DialogBodyDirective, DialogHeaderComponent, NgTemplateOutlet],\n selector: 'div[wmDialog]',\n templateUrl: './dialog.component.html',\n providers: [\n provideAsWidgetRef(DialogComponent),\n provideAsDialogRef(DialogComponent),\n {provide: Context, useFactory: () => { return {} }, multi: true}\n ]\n})\nexport class DialogComponent extends BaseDialog implements OnInit, OnDestroy {\n static initializeProps = registerProps();\n isDialogComponent: boolean = true;\n\n @ViewChild('dialogTemplate', { static: true, read: TemplateRef }) dialogTemplate: TemplateRef<any>;\n @ContentChild('dialogBody', /* TODO: add static flag */ { read: TemplateRef }) dialogBody: TemplateRef<any>;\n @ContentChild('dialogFooter', /* TODO: add static flag */ { read: TemplateRef }) dialogFooter: 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 @Attribute('sheet') sheet: string | boolean,\n @Attribute('sheetposition') sheetPosition: string,\n @Self() @Inject(Context) contexts: Array<any>,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n if (modal === null || modal === undefined) {\n modal = true;\n }\n\n if (closable === null || closable === undefined) {\n closable = true;\n }\n\n // contexts[0] will refer to the self context provided by this component\n contexts[0].closeDialog = () => this.close();\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(closable) ? true : !toBoolean(modal),\n ignoreBackdropClick: toBoolean(modal)\n },\n explicitContext\n );\n\n // adding props to render dialog as sheet\n this.sheet = sheet;\n this.sheetPosition = sheetPosition;\n }\n\n protected getTemplateRef(): TemplateRef<any> {\n return this.dialogTemplate;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\n }\n\n protected onPropertyChange(key: string, nv: any, ov?: any): void {\n if(key === 'sheet') {\n this.sheet = nv;\n }\n if(key === 'sheetposition') {\n this.sheetPosition = nv;\n }\n if(key === 'title') {\n this.nativeElement.setAttribute('title', nv);\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild and ContentChild references\n this.dialogTemplate = null;\n this.dialogBody = null;\n this.dialogFooter = null;\n\n super.ngOnDestroy();\n }\n}\n","<ng-template #dialogTemplate>\n @if (showheader) {\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [headinglevel]=\"headinglevel\"\n [title]=\"title\"\n [titleid]=\"titleId\"\n ></div>\n } @else if (!showheader && title) {\n <h4 [id]=\"titleId\" class=\"sr-only\">\n {{ title }}\n </h4>\n }\n <div wmDialogBody>\n <ng-container *ngTemplateOutlet=\"dialogBody\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"dialogFooter\"></ng-container>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,11 @@
|
|
|
78
78
|
super.ngOnInit();
|
|
79
79
|
this.register(this.viewParent);
|
|
80
80
|
}
|
|
81
|
+
ngOnDestroy() {
|
|
82
|
+
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
83
|
+
this.dialogTemplate = null;
|
|
84
|
+
super.ngOnDestroy();
|
|
85
|
+
}
|
|
81
86
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: IframeDialogComponent, 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 }); }
|
|
82
87
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: IframeDialogComponent, isStandalone: true, selector: "div[wmIframeDialog]", providers: [
|
|
83
88
|
base.provideAsWidgetRef(IframeDialogComponent),
|
|
@@ -40,6 +40,11 @@ export class IframeDialogComponent extends BaseDialog {
|
|
|
40
40
|
super.ngOnInit();
|
|
41
41
|
this.register(this.viewParent);
|
|
42
42
|
}
|
|
43
|
+
ngOnDestroy() {
|
|
44
|
+
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
45
|
+
this.dialogTemplate = null;
|
|
46
|
+
super.ngOnDestroy();
|
|
47
|
+
}
|
|
43
48
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IframeDialogComponent, 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 }); }
|
|
44
49
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: IframeDialogComponent, isStandalone: true, selector: "div[wmIframeDialog]", providers: [
|
|
45
50
|
provideAsWidgetRef(IframeDialogComponent),
|
|
@@ -70,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
70
75
|
type: ViewChild,
|
|
71
76
|
args: ['dialogTemplate', { static: true }]
|
|
72
77
|
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGlhbG9ncy9pZnJhbWUtZGlhbG9nL3NyYy9pZnJhbWUtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kaWFsb2dzL2lmcmFtZS1kaWFsb2cvc3JjL2lmcmFtZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFHUixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFOUQsTUFBTSxVQUFVLEdBQUcsMkNBQTJDLENBQUM7QUFDL0QsTUFBTSxXQUFXLEdBQUcsRUFBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQztBQVlwRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBVTthQUMxQyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQUl6QyxZQUNJLEdBQWEsRUFDTyxXQUFtQixFQUNuQixLQUF1QixFQUNwQixRQUEwQixFQUNULGVBQW9CO1FBRTVELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixDQUFDO1FBRUQsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLENBQUM7UUFFRCwrRUFBK0U7UUFDL0UsTUFBTSxRQUFRLEdBQXVCLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFeEUsS0FBSyxDQUNELEdBQUcsRUFDSCxXQUFXLEVBQ1g7WUFDSSxLQUFLLEVBQUUsR0FBRyxVQUFVLElBQUksV0FBVyxJQUFJLEVBQUUsRUFBRTtZQUMzQyxRQUFRO1lBQ1IsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztTQUM5QixFQUNELGVBQWUsQ0FDbEIsQ0FBQztJQUNOLENBQUM7SUFFUyxjQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxNQUFhO1FBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDUCw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBMURRLHFCQUFxQiwwQ0FPZixPQUFPLDhCQUNQLE9BQU8sOEJBQ1AsVUFBVSw4QkFDYixrQkFBa0I7bUdBVnJCLHFCQUFxQixrRUFMbkI7WUFDUCxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztZQUN6QyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztTQUM1QyxpTEMvQkwsczZCQTRCQSw0Q0RIYyxlQUFlLHVEQUFFLG1CQUFtQiw4REFBRSxxQkFBcUIsZ0VBQUUscUJBQXFCLG9OQUFFLGVBQWU7OzRGQVFwRyxxQkFBcUI7a0JBVmpDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxZQUNwRyxxQkFBcUIsYUFFcEI7d0JBQ1Asa0JBQWtCLHVCQUF1Qjt3QkFDekMsa0JBQWtCLHVCQUF1QjtxQkFDNUM7OzBCQVNJLFNBQVM7MkJBQUMsT0FBTzs7MEJBQ2pCLFNBQVM7MkJBQUMsT0FBTzs7MEJBQ2pCLFNBQVM7MkJBQUMsVUFBVTs7MEJBQ3BCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRO3lDQVBPLGNBQWM7c0JBQTdELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHt0b0Jvb2xlYW59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVBc0RpYWxvZ1JlZiwgcHJvdmlkZUFzV2lkZ2V0UmVmIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBCYXNlRGlhbG9nLCBEaWFsb2dCb2R5RGlyZWN0aXZlLCBEaWFsb2dGb290ZXJEaXJlY3RpdmUsIERpYWxvZ0hlYWRlckNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RpYWxvZ3MnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9pZnJhbWUtZGlhbG9nLnByb3BzJztcbmltcG9ydCB7IElmcmFtZUNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2ljL2lmcmFtZSc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dC9idXR0b24nO1xuXG5jb25zdCBESUFMT0dfQ0xTID0gJ2FwcC1kaWFsb2cgbW9kYWwtZGlhbG9nIGFwcC1pZnJhbWUtZGlhbG9nJztcbmNvbnN0IFdJREdFVF9JTkZPID0ge3dpZGdldFR5cGU6ICd3bS1pZnJhbWVkaWFsb2cnfTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbSWZyYW1lQ29tcG9uZW50LCBEaWFsb2dCb2R5RGlyZWN0aXZlLCBEaWFsb2dGb290ZXJEaXJlY3RpdmUsIERpYWxvZ0hlYWRlckNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50XSxcbiAgICBzZWxlY3RvcjogJ2Rpdlt3bUlmcmFtZURpYWxvZ10nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pZnJhbWUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKElmcmFtZURpYWxvZ0NvbXBvbmVudCksXG4gICAgICAgIHByb3ZpZGVBc0RpYWxvZ1JlZihJZnJhbWVEaWFsb2dDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJZnJhbWVEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGlhbG9nIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBAVmlld0NoaWxkKCdkaWFsb2dUZW1wbGF0ZScgLCB7IHN0YXRpYzogdHJ1ZSB9KSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBAQXR0cmlidXRlKCdjbGFzcycpIGRpYWxvZ0NsYXNzOiBzdHJpbmcsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ21vZGFsJykgbW9kYWw6IHN0cmluZyB8IGJvb2xlYW4sXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Nsb3NhYmxlJykgY2xvc2FibGU6IHN0cmluZyB8IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICBpZiAobW9kYWwgPT09IG51bGwgfHwgbW9kYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbW9kYWwgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjbG9zYWJsZSA9PT0gbnVsbCB8fCBjbG9zYWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjbG9zYWJsZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXR0aW5nIHRoZSBiYWNrZHJvcCB0byAnc3RhdGljJyB3aWxsIG5vdCBjbG9zZSB0aGUgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgICAgIGNvbnN0IGJhY2tkcm9wOiBib29sZWFuIHwgJ3N0YXRpYycgPSB0b0Jvb2xlYW4obW9kYWwpID8gJ3N0YXRpYycgOiB0cnVlO1xuXG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgaW5qLFxuICAgICAgICAgICAgV0lER0VUX0lORk8sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3M6IGAke0RJQUxPR19DTFN9ICR7ZGlhbG9nQ2xhc3MgfHwgJyd9YCxcbiAgICAgICAgICAgICAgICBiYWNrZHJvcCxcbiAgICAgICAgICAgICAgICBrZXlib2FyZDogIXRvQm9vbGVhbihtb2RhbClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleHBsaWNpdENvbnRleHRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VGVtcGxhdGVSZWYoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1RlbXBsYXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsaWNrIGV2ZW50IGhhbmRsZXIgZm9yIHRoZSBvayBidXR0b25cbiAgICAgKiBpbnZva2VzIG9uLW9rIGV2ZW50IGNhbGxiYWNrXG4gICAgICogQHBhcmFtIHtFdmVudH0gJGV2ZW50XG4gICAgICovXG4gICAgb25PaygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnb2snLCB7JGV2ZW50fSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXIodGhpcy52aWV3UGFyZW50KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBWaWV3Q2hpbGQgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuZGlhbG9nVGVtcGxhdGUgPSBudWxsO1xuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNkaWFsb2dUZW1wbGF0ZT5cbiAgQGlmIChzaG93aGVhZGVyKSB7XG4gICAgPGRpdiB3bURpYWxvZ0hlYWRlciBbY2xvc2FibGVdPVwiY2xvc2FibGVcIlxuICAgICAgW2ljb25jbGFzc109XCJpY29uY2xhc3NcIlxuICAgICAgW2ljb251cmxdPVwiaWNvbnVybFwiXG4gICAgICBbaWNvbndpZHRoXT1cImljb253aWR0aFwiXG4gICAgICBbaWNvbmhlaWdodF09XCJpY29uaGVpZ2h0XCJcbiAgICAgIFtpY29ubWFyZ2luXT1cImljb25tYXJnaW5cIlxuICAgICAgW2hlYWRpbmddPVwidGl0bGVcIlxuICAgICAgW2hlYWRpbmdsZXZlbF09XCJoZWFkaW5nbGV2ZWxcIlxuICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgIFt0aXRsZWlkXT1cInRpdGxlSWRcIlxuICAgID48L2Rpdj5cbiAgfUBlbHNlIGlmICghc2hvd2hlYWRlciAmJiB0aXRsZSkge1xuICAgICAgPGg0IFtpZF09XCJ0aXRsZUlkXCIgY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvaDQ+XG4gIH1cbiAgPGRpdiB3bURpYWxvZ0JvZHk+XG4gICAgPGRpdiB3bUlmcmFtZSBlbmNvZGV1cmwuYmluZD1cImVuY29kZXVybFwiIGlmcmFtZXNyYy5iaW5kPVwidXJsXCIgaGVpZ2h0LmJpbmQ9XCJoZWlnaHRcIiB3aWR0aC5iaW5kPVwid2lkdGhcIiBoaW50LmJpbmQ9XCJoaW50XCI+PC9kaXY+XG4gIDwvZGl2PlxuICBAaWYgKHNob3dhY3Rpb25zKSB7XG4gICAgPGRpdiB3bURpYWxvZ0Zvb3Rlcj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9uT2soJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwib2t0ZXh0XCIgY2FwdGlvbi5iaW5kPVwib2t0ZXh0XCIgY2xhc3M9XCJidG4tcHJpbWFyeSBvay1hY3Rpb25cIlxuICAgICAgd21CdXR0b24+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -64,6 +64,11 @@ class IframeDialogComponent extends BaseDialog {
|
|
|
64
64
|
super.ngOnInit();
|
|
65
65
|
this.register(this.viewParent);
|
|
66
66
|
}
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
69
|
+
this.dialogTemplate = null;
|
|
70
|
+
super.ngOnDestroy();
|
|
71
|
+
}
|
|
67
72
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IframeDialogComponent, 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 }); }
|
|
68
73
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: IframeDialogComponent, isStandalone: true, selector: "div[wmIframeDialog]", providers: [
|
|
69
74
|
provideAsWidgetRef(IframeDialogComponent),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.props.ts","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.component.ts","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.component.html","../../../../../projects/components/widgets/dialogs/iframe-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-iframedialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['encodeurl', {value: false, ...PROP_BOOLEAN}],\n ['height', {value: '400px', ...PROP_STRING}],\n ['iconclass', {value: 'wi wi-globe', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['showactions', {value: true, ...PROP_BOOLEAN}],\n ['showheader', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'External Content', ...PROP_STRING}],\n ['url', {value: '//www.wavemaker.com', ...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 { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './iframe-dialog.props';\nimport { IframeComponent } from '@wm/components/basic/iframe';\nimport { ButtonComponent } from '@wm/components/input/button';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-iframe-dialog';\nconst WIDGET_INFO = {widgetType: 'wm-iframedialog'};\n\n@Component({\n standalone: true,\n imports: [IframeComponent, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent],\n selector: 'div[wmIframeDialog]',\n templateUrl: './iframe-dialog.component.html',\n providers: [\n provideAsWidgetRef(IframeDialogComponent),\n provideAsDialogRef(IframeDialogComponent)\n ]\n})\nexport class IframeDialogComponent 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 @if (showheader) {\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [headinglevel]=\"headinglevel\"\n [title]=\"title\"\n [titleid]=\"titleId\"\n ></div>\n }@else if (!showheader && title) {\n <h4 [id]=\"titleId\" class=\"sr-only\">\n {{ title }}\n </h4>\n }\n <div wmDialogBody>\n <div wmIframe encodeurl.bind=\"encodeurl\" iframesrc.bind=\"url\" height.bind=\"height\" width.bind=\"width\" hint.bind=\"hint\"></div>\n </div>\n @if (showactions) {\n <div wmDialogFooter>\n <button (click)=\"onOk($event)\" [attr.aria-label]=\"oktext\" caption.bind=\"oktext\" class=\"btn-primary ok-action\"\n wmButton></button>\n </div>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,iBAAiB,EACjB,IAAI,GAAG,CACH;QACI,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,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;QAC9C,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,EAAC,CAAC;QAC5C,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAC,CAAC;QAClD,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,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,aAAa,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QAC/C,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QAC9C,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,kBAAkB,EAAE,GAAG,WAAW,EAAC,CAAC;QACtD,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,WAAW,EAAC;AACzD,KAAA,CACJ,CACJ;AACL,CAAC;;
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.props.ts","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.component.ts","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.component.html","../../../../../projects/components/widgets/dialogs/iframe-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-iframedialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['encodeurl', {value: false, ...PROP_BOOLEAN}],\n ['height', {value: '400px', ...PROP_STRING}],\n ['iconclass', {value: 'wi wi-globe', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['showactions', {value: true, ...PROP_BOOLEAN}],\n ['showheader', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'External Content', ...PROP_STRING}],\n ['url', {value: '//www.wavemaker.com', ...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 { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './iframe-dialog.props';\nimport { IframeComponent } from '@wm/components/basic/iframe';\nimport { ButtonComponent } from '@wm/components/input/button';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-iframe-dialog';\nconst WIDGET_INFO = {widgetType: 'wm-iframedialog'};\n\n@Component({\n standalone: true,\n imports: [IframeComponent, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent],\n selector: 'div[wmIframeDialog]',\n templateUrl: './iframe-dialog.component.html',\n providers: [\n provideAsWidgetRef(IframeDialogComponent),\n provideAsDialogRef(IframeDialogComponent)\n ]\n})\nexport class IframeDialogComponent 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 @if (showheader) {\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [headinglevel]=\"headinglevel\"\n [title]=\"title\"\n [titleid]=\"titleId\"\n ></div>\n }@else if (!showheader && title) {\n <h4 [id]=\"titleId\" class=\"sr-only\">\n {{ title }}\n </h4>\n }\n <div wmDialogBody>\n <div wmIframe encodeurl.bind=\"encodeurl\" iframesrc.bind=\"url\" height.bind=\"height\" width.bind=\"width\" hint.bind=\"hint\"></div>\n </div>\n @if (showactions) {\n <div wmDialogFooter>\n <button (click)=\"onOk($event)\" [attr.aria-label]=\"oktext\" caption.bind=\"oktext\" class=\"btn-primary ok-action\"\n wmButton></button>\n </div>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,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 IframeDialogComponent extends BaseDialog implements OnInit {
|
|
4
|
+
export declare class IframeDialogComponent 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 IframeDialogComponent 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<IframeDialogComponent, [null, { attribute: "class"; }, { attribute: "modal"; }, { attribute: "closable"; }, { optional: true; }]>;
|
|
17
18
|
static ɵcmp: i0.ɵɵComponentDeclaration<IframeDialogComponent, "div[wmIframeDialog]", never, {}, {}, never, never, true, never>;
|
|
18
19
|
}
|
|
@@ -78,8 +78,13 @@
|
|
|
78
78
|
this.register(this.viewParent);
|
|
79
79
|
}
|
|
80
80
|
setPartialLoadListener() {
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
// Clean up existing subscription if any
|
|
82
|
+
if (this.partialLoadedSubscription) {
|
|
83
|
+
this.partialLoadedSubscription();
|
|
84
|
+
this.partialLoadedSubscription = null;
|
|
85
|
+
}
|
|
86
|
+
this.partialLoadedSubscription = this.app.subscribe('partialLoaded', () => {
|
|
87
|
+
const parEle = this.partialRef?.nativeElement;
|
|
83
88
|
let partialScope;
|
|
84
89
|
if (parEle) {
|
|
85
90
|
partialScope = parEle.widget;
|
|
@@ -87,7 +92,11 @@
|
|
|
87
92
|
this.Variables = partialScope.Variables;
|
|
88
93
|
this.Actions = partialScope.Actions;
|
|
89
94
|
}
|
|
90
|
-
|
|
95
|
+
// Clean up subscription after use
|
|
96
|
+
if (this.partialLoadedSubscription) {
|
|
97
|
+
this.partialLoadedSubscription();
|
|
98
|
+
this.partialLoadedSubscription = null;
|
|
99
|
+
}
|
|
91
100
|
});
|
|
92
101
|
}
|
|
93
102
|
open(initState) {
|
|
@@ -95,6 +104,17 @@
|
|
|
95
104
|
// WMS-19410 - Set the partial load listener to access widgets, variables and actions of page dialog
|
|
96
105
|
this.setPartialLoadListener();
|
|
97
106
|
}
|
|
107
|
+
ngOnDestroy() {
|
|
108
|
+
// MEMORY LEAK FIX: Unsubscribe from partialLoaded event
|
|
109
|
+
if (this.partialLoadedSubscription) {
|
|
110
|
+
this.partialLoadedSubscription();
|
|
111
|
+
this.partialLoadedSubscription = null;
|
|
112
|
+
}
|
|
113
|
+
// MEMORY LEAK FIX: Clear ContentChild references
|
|
114
|
+
this.partialRef = null;
|
|
115
|
+
this.dialogContent = null;
|
|
116
|
+
super.ngOnDestroy();
|
|
117
|
+
}
|
|
98
118
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: PartialDialogComponent, deps: [{ token: i0__namespace.Injector }, { token: i1__namespace.App }, { token: 'class', attribute: true }, { token: 'modal', attribute: true }, { token: 'closable', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
99
119
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PartialDialogComponent, isStandalone: true, selector: "div[wmPartialDialog]", providers: [
|
|
100
120
|
base.provideAsWidgetRef(PartialDialogComponent),
|