@wavemaker/app-ng-runtime 11.14.1-rc.6311 → 11.14.2-rc.6311
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/advanced/carousel/bundles/index.umd.js +15 -1
- package/components/advanced/carousel/carousel.directive.d.ts +1 -0
- package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
- package/components/advanced/carousel/fesm2022/index.mjs +15 -1
- package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/bundles/index.umd.js +24 -3
- package/components/advanced/login/esm2022/login.component.mjs +25 -4
- package/components/advanced/login/fesm2022/index.mjs +24 -3
- package/components/advanced/login/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/login.component.d.ts +5 -2
- package/components/base/bundles/index.umd.js +323 -28
- package/components/base/directives/show-in-device.directive.d.ts +2 -1
- package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
- package/components/base/esm2022/pipes/custom-pipes.mjs +1 -1
- package/components/base/esm2022/utils/widget-utils.mjs +3 -3
- package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
- package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
- package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
- package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
- package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
- package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
- package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
- package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
- package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
- package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
- package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
- package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
- package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
- package/components/base/fesm2022/index.mjs +319 -26
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
- package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
- package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
- package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
- package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
- package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
- package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
- package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
- package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
- package/components/basic/anchor/bundles/index.umd.js +13 -1
- package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
- package/components/basic/anchor/fesm2022/index.mjs +13 -1
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/html/bundles/index.umd.js +13 -1
- package/components/basic/html/esm2022/html.directive.mjs +14 -2
- package/components/basic/html/fesm2022/index.mjs +13 -1
- package/components/basic/html/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/bundles/index.umd.js +17 -1
- package/components/basic/label/esm2022/label.directive.mjs +18 -2
- package/components/basic/label/fesm2022/index.mjs +17 -1
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/label.directive.d.ts +3 -2
- package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
- package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
- package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
- package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
- package/components/basic/search/bundles/index.umd.js +27 -1
- package/components/basic/search/esm2022/scrollable.directive.mjs +11 -2
- package/components/basic/search/esm2022/search.component.mjs +18 -1
- package/components/basic/search/fesm2022/index.mjs +27 -1
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/scrollable.directive.d.ts +4 -2
- package/components/basic/search/search.component.d.ts +3 -2
- package/components/basic/spinner/bundles/index.umd.js +9 -1
- package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
- package/components/basic/spinner/fesm2022/index.mjs +9 -1
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/spinner.component.d.ts +4 -2
- package/components/chart/bundles/index.umd.js +21 -3
- package/components/chart/esm2022/chart.component.mjs +22 -4
- package/components/chart/fesm2022/index.mjs +21 -3
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
- package/components/containers/accordion/accordion.directive.d.ts +5 -2
- package/components/containers/accordion/bundles/index.umd.js +49 -2
- package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
- package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
- package/components/containers/accordion/fesm2022/index.mjs +49 -2
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +13 -0
- package/components/containers/panel/esm2022/panel.component.mjs +14 -1
- package/components/containers/panel/fesm2022/index.mjs +13 -0
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/panel.component.d.ts +3 -2
- package/components/containers/tabs/bundles/index.umd.js +54 -2
- package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
- package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
- package/components/containers/tabs/fesm2022/index.mjs +54 -2
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
- package/components/containers/tabs/tabs.component.d.ts +5 -2
- package/components/containers/wizard/bundles/index.umd.js +47 -3
- package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
- package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
- package/components/containers/wizard/fesm2022/index.mjs +47 -3
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
- package/components/containers/wizard/wizard.component.d.ts +4 -2
- package/components/data/card/bundles/index.umd.js +17 -1
- package/components/data/card/card-content/card-content.component.d.ts +3 -2
- package/components/data/card/card.component.d.ts +4 -2
- package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
- package/components/data/card/esm2022/card.component.mjs +13 -2
- package/components/data/card/fesm2022/index.mjs +17 -1
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +92 -0
- package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
- package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
- package/components/data/form/esm2022/form.component.mjs +27 -1
- package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
- package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
- package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
- package/components/data/form/fesm2022/index.mjs +92 -0
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form-action/form-action.directive.d.ts +3 -2
- package/components/data/form/form-field/form-field.directive.d.ts +3 -2
- package/components/data/form/form-widget.directive.d.ts +3 -2
- package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
- package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
- package/components/data/form/live-form/live-form.directive.d.ts +3 -1
- package/components/data/list/bundles/index.umd.js +180 -17
- package/components/data/list/esm2022/list-item.directive.mjs +95 -11
- package/components/data/list/esm2022/list.component.mjs +87 -8
- package/components/data/list/fesm2022/index.mjs +180 -17
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/list-item.directive.d.ts +7 -2
- package/components/data/list/list.component.d.ts +3 -0
- package/components/data/live-table/bundles/index.umd.js +13 -1
- package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
- package/components/data/live-table/fesm2022/index.mjs +13 -1
- package/components/data/live-table/fesm2022/index.mjs.map +1 -1
- package/components/data/live-table/live-table.component.d.ts +4 -2
- package/components/data/pagination/bundles/index.umd.js +57 -4
- package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
- package/components/data/pagination/fesm2022/index.mjs +57 -4
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/pagination.component.d.ts +4 -2
- package/components/data/table/bundles/index.umd.js +311 -12
- package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
- package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
- package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
- package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
- package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
- package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table.component.mjs +159 -9
- package/components/data/table/fesm2022/index.mjs +311 -12
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table-action/table-action.directive.d.ts +3 -2
- package/components/data/table/table-column/table-column.directive.d.ts +3 -2
- package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
- package/components/data/table/table-cud.directive.d.ts +3 -1
- package/components/data/table/table-filter.directive.d.ts +3 -1
- package/components/data/table/table-row/table-row.directive.d.ts +3 -2
- package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
- package/components/data/table/table.component.d.ts +2 -2
- package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
- package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
- package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/bundles/index.umd.js +15 -2
- package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
- package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
- package/components/dialogs/default/fesm2022/index.mjs +15 -2
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
- package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
- package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
- package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
- package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
- package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
- package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
- package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
- package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
- package/components/input/base-form/base-form.component.d.ts +4 -2
- package/components/input/base-form/bundles/index.umd.js +16 -2
- package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
- package/components/input/base-form/fesm2022/index.mjs +16 -2
- package/components/input/base-form/fesm2022/index.mjs.map +1 -1
- package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
- package/components/input/base-form-custom/bundles/index.umd.js +13 -2
- package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
- package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
- package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +7 -0
- package/components/input/checkbox/checkbox.component.d.ts +3 -2
- package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
- package/components/input/checkbox/fesm2022/index.mjs +7 -0
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/bundles/index.umd.js +18 -2
- package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
- package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
- package/components/input/checkboxset/fesm2022/index.mjs +18 -2
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/chips/bundles/index.umd.js +45 -5
- package/components/input/chips/chips.component.d.ts +3 -2
- package/components/input/chips/esm2022/chips.component.mjs +46 -6
- package/components/input/chips/fesm2022/index.mjs +45 -5
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/bundles/index.umd.js +8 -0
- package/components/input/color-picker/color-picker.component.d.ts +3 -2
- package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
- package/components/input/color-picker/fesm2022/index.mjs +8 -0
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/components/input/composite/bundles/index.umd.js +10 -1
- package/components/input/composite/composite.directive.d.ts +3 -2
- package/components/input/composite/esm2022/composite.directive.mjs +11 -2
- package/components/input/composite/fesm2022/index.mjs +10 -1
- package/components/input/composite/fesm2022/index.mjs.map +1 -1
- package/components/input/currency/bundles/index.umd.js +7 -0
- package/components/input/currency/currency.component.d.ts +3 -2
- package/components/input/currency/esm2022/currency.component.mjs +8 -1
- package/components/input/currency/fesm2022/index.mjs +7 -0
- package/components/input/currency/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
- package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
- package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/bundles/index.umd.js +22 -0
- package/components/input/epoch/date/date.component.d.ts +1 -0
- package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
- package/components/input/epoch/date/fesm2022/index.mjs +22 -0
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +25 -8
- package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
- package/components/input/file-upload/fesm2022/index.mjs +25 -8
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/file-upload.component.d.ts +3 -0
- package/components/input/number/bundles/index.umd.js +8 -0
- package/components/input/number/esm2022/number.component.mjs +9 -1
- package/components/input/number/fesm2022/index.mjs +8 -0
- package/components/input/number/fesm2022/index.mjs.map +1 -1
- package/components/input/number/number.component.d.ts +3 -2
- package/components/input/radioset/bundles/index.umd.js +18 -2
- package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
- package/components/input/radioset/fesm2022/index.mjs +18 -2
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/radioset.component.d.ts +4 -2
- package/components/input/rating/bundles/index.umd.js +10 -0
- package/components/input/rating/esm2022/rating.component.mjs +11 -1
- package/components/input/rating/fesm2022/index.mjs +10 -0
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/rating.component.d.ts +3 -2
- package/components/input/select/bundles/index.umd.js +6 -0
- package/components/input/select/esm2022/select.component.mjs +7 -1
- package/components/input/select/fesm2022/index.mjs +6 -0
- package/components/input/select/fesm2022/index.mjs.map +1 -1
- package/components/input/select/select.component.d.ts +3 -2
- package/components/input/slider/bundles/index.umd.js +10 -0
- package/components/input/slider/esm2022/slider.component.mjs +11 -1
- package/components/input/slider/fesm2022/index.mjs +10 -0
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +3 -2
- package/components/input/switch/bundles/index.umd.js +22 -2
- package/components/input/switch/esm2022/switch.component.mjs +23 -3
- package/components/input/switch/fesm2022/index.mjs +22 -2
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/switch.component.d.ts +3 -2
- package/components/input/text/bundles/index.umd.js +36 -0
- package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
- package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
- package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
- package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
- package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
- package/components/input/text/fesm2022/index.mjs +36 -0
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
- package/components/input/text/input-color/input-color.component.d.ts +3 -2
- package/components/input/text/input-email/input-email.component.d.ts +3 -2
- package/components/input/text/input-number/input-number.component.d.ts +3 -2
- package/components/input/text/input-text/input-text.component.d.ts +3 -2
- package/components/input/textarea/bundles/index.umd.js +7 -0
- package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
- package/components/input/textarea/fesm2022/index.mjs +7 -0
- package/components/input/textarea/fesm2022/index.mjs.map +1 -1
- package/components/input/textarea/textarea.component.d.ts +3 -2
- package/components/navigation/menu/bundles/index.umd.js +55 -6
- package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
- package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
- package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
- package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
- package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
- package/components/navigation/menu/fesm2022/index.mjs +55 -6
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
- package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
- package/components/navigation/menu/nav/nav.component.d.ts +3 -2
- package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
- package/components/navigation/navbar/bundles/index.umd.js +5 -0
- package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
- package/components/navigation/navbar/fesm2022/index.mjs +5 -0
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/navbar.component.d.ts +3 -2
- package/components/navigation/popover/bundles/index.umd.js +65 -13
- package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
- package/components/navigation/popover/fesm2022/index.mjs +62 -10
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/popover.component.d.ts +11 -3
- package/components/page/default/bundles/index.umd.js +20 -2
- package/components/page/default/esm2022/layout.directive.mjs +9 -1
- package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
- package/components/page/default/fesm2022/index.mjs +20 -2
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/default/layout.directive.d.ts +3 -2
- package/components/page/default/page-content/page-content.component.d.ts +3 -2
- package/components/page/left-panel/bundles/index.umd.js +16 -0
- package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
- package/components/page/left-panel/fesm2022/index.mjs +16 -0
- package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- package/components/page/left-panel/left-panel.directive.d.ts +3 -2
- package/components/page/top-nav/bundles/index.umd.js +2 -1
- package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
- package/components/page/top-nav/fesm2022/index.mjs +2 -1
- package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- package/components/prefab/bundles/index.umd.js +4 -0
- package/components/prefab/esm2022/prefab.directive.mjs +5 -1
- package/components/prefab/fesm2022/index.mjs +4 -0
- package/components/prefab/fesm2022/index.mjs.map +1 -1
- package/core/bundles/index.umd.js +391 -94
- package/core/esm2022/public_api.mjs +3 -3
- package/core/esm2022/services/viewport.service.mjs +24 -10
- package/core/esm2022/types/types.mjs +1 -1
- package/core/esm2022/utils/dom.mjs +18 -2
- package/core/esm2022/utils/event-notifier.mjs +5 -2
- package/core/esm2022/utils/lru-cache.mjs +16 -2
- package/core/esm2022/utils/utils.mjs +6 -2
- package/core/esm2022/utils/watcher.mjs +323 -81
- package/core/fesm2022/index.mjs +390 -96
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/public_api.d.ts +2 -2
- package/core/services/viewport.service.d.ts +5 -2
- package/core/types/types.d.ts +1 -0
- package/core/utils/lru-cache.d.ts +6 -0
- package/core/utils/utils.d.ts +1 -0
- package/core/utils/watcher.d.ts +26 -5
- package/http/bundles/index.umd.js +31 -1
- package/http/esm2022/http.service.mjs +32 -2
- package/http/fesm2022/index.mjs +31 -1
- package/http/fesm2022/index.mjs.map +1 -1
- package/http/http.service.d.ts +6 -2
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/bundles/index.umd.js +9 -0
- package/oAuth/esm2022/oAuth.service.mjs +10 -1
- package/oAuth/fesm2022/index.mjs +9 -0
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/oAuth.service.d.ts +3 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +364 -30
- package/runtime/base/components/app-component/app.component.d.ts +4 -0
- package/runtime/base/components/prefab-preview.component.d.ts +5 -2
- package/runtime/base/directives/accessroles.directive.d.ts +4 -3
- package/runtime/base/directives/prefab.directive.d.ts +3 -2
- package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
- package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
- package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
- package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
- package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
- package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
- package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
- package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
- package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
- package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
- package/runtime/base/esm2022/services/app.manager.service.mjs +37 -10
- package/runtime/base/esm2022/services/app.service.mjs +34 -2
- package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
- package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
- package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
- package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
- package/runtime/base/fesm2022/index.mjs +365 -31
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/services/app.manager.service.d.ts +6 -1
- package/runtime/base/services/app.service.d.ts +12 -2
- package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
- package/runtime/base/services/spinner.service.d.ts +3 -1
- package/runtime/base/util/fragment-monitor.d.ts +6 -0
- package/runtime/dynamic/bundles/index.umd.js +5 -0
- package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
- package/runtime/dynamic/fesm2022/index.mjs +5 -0
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +100 -14
- package/security/bundles/index.umd.js +41 -2
- package/security/esm2022/security.service.mjs +42 -3
- package/security/fesm2022/index.mjs +41 -2
- package/security/fesm2022/index.mjs.map +1 -1
- package/security/security.service.d.ts +5 -2
- package/variables/bundles/index.umd.js +50 -6
- package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
- package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
- package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
- package/variables/esm2022/service/variables.service.mjs +8 -2
- package/variables/fesm2022/index.mjs +50 -6
- package/variables/fesm2022/index.mjs.map +1 -1
|
@@ -176,8 +176,15 @@ class TableComponent extends StylableComponent {
|
|
|
176
176
|
this.setDataGridOption('colDefs', getClonedObject(this.fieldDefs));
|
|
177
177
|
}
|
|
178
178
|
// If data and colDefs are present, call on before data render event
|
|
179
|
+
// Note: Errors in beforedatarender should not prevent table rendering
|
|
179
180
|
if (!this.isdynamictable && !isEmpty(newValue) && gridOptions.colDefs.length) {
|
|
180
|
-
|
|
181
|
+
try {
|
|
182
|
+
this.invokeEventCallback('beforedatarender', { $data: this._gridData, $columns: this.columns, data: this._gridData, columns: this.columns });
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
// Log error but continue with rendering - beforedatarender errors should not block table rendering
|
|
186
|
+
console.warn('Error in beforedatarender event callback, continuing with table rendering:', error);
|
|
187
|
+
}
|
|
181
188
|
}
|
|
182
189
|
this.setDataGridOption('data', getClonedObject(this._gridData));
|
|
183
190
|
}
|
|
@@ -570,7 +577,7 @@ class TableComponent extends StylableComponent {
|
|
|
570
577
|
this.prevData = getClonedObject(row);
|
|
571
578
|
},
|
|
572
579
|
afterRowUpdate: (row, e, callBack, options) => {
|
|
573
|
-
this.updateRecord(extend({}, options, { row, 'prevData': this.prevData, 'event': e, 'callBack': callBack }));
|
|
580
|
+
this.updateRecord(extend({}, options, { row, 'prevData': options.rowindex ? options.rowindex : this.prevData, 'event': e, 'callBack': callBack }));
|
|
574
581
|
},
|
|
575
582
|
onBeforeRowUpdate: (row, e, options) => {
|
|
576
583
|
return this.invokeEventCallback('beforerowupdate', { $event: e, $data: row, row, options: options });
|
|
@@ -1224,6 +1231,10 @@ class TableComponent extends StylableComponent {
|
|
|
1224
1231
|
return this.actualPageSize || 5;
|
|
1225
1232
|
}
|
|
1226
1233
|
watchVariableDataSet(newVal) {
|
|
1234
|
+
// Guard against component destruction
|
|
1235
|
+
if (this.isDestroyed) {
|
|
1236
|
+
return;
|
|
1237
|
+
}
|
|
1227
1238
|
let result;
|
|
1228
1239
|
// Check for Variable filters if applied
|
|
1229
1240
|
if (this.gridOptions.isNavTypeScrollOrOndemand()) {
|
|
@@ -1281,6 +1292,12 @@ class TableComponent extends StylableComponent {
|
|
|
1281
1292
|
}
|
|
1282
1293
|
/*Return if data is invalid.*/
|
|
1283
1294
|
if (!this.isDataValid()) {
|
|
1295
|
+
// If data is invalid and variableInflight is still true, clear loading state
|
|
1296
|
+
// This prevents tables from getting stuck in loading when data is invalid
|
|
1297
|
+
if (this.variableInflight) {
|
|
1298
|
+
this.variableInflight = false;
|
|
1299
|
+
this.setGridData([]);
|
|
1300
|
+
}
|
|
1284
1301
|
return;
|
|
1285
1302
|
}
|
|
1286
1303
|
// If value is empty or in studio mode, dont enable the navigation
|
|
@@ -1308,7 +1325,13 @@ class TableComponent extends StylableComponent {
|
|
|
1308
1325
|
// @ts-ignore
|
|
1309
1326
|
if (!isObject(newVal) || newVal === '' || (newVal && newVal.dataValue === '')) {
|
|
1310
1327
|
if (!this.variableInflight) {
|
|
1311
|
-
// If variable has finished loading and resultSet is empty,
|
|
1328
|
+
// If variable has finished loading and resultSet is empty, render empty data
|
|
1329
|
+
this.setGridData([]);
|
|
1330
|
+
}
|
|
1331
|
+
else {
|
|
1332
|
+
// If variableInflight is still true but we have invalid/empty data, clear loading state
|
|
1333
|
+
// This handles cases where data never arrives or is invalid
|
|
1334
|
+
this.variableInflight = false;
|
|
1312
1335
|
this.setGridData([]);
|
|
1313
1336
|
}
|
|
1314
1337
|
return;
|
|
@@ -1318,13 +1341,117 @@ class TableComponent extends StylableComponent {
|
|
|
1318
1341
|
}
|
|
1319
1342
|
}
|
|
1320
1343
|
ngOnDestroy() {
|
|
1344
|
+
// MEMORY LEAK FIX: Remove document click listener
|
|
1321
1345
|
document.removeEventListener('click', this.documentClickBind);
|
|
1346
|
+
// MEMORY LEAK FIX: Unsubscribe from navigator watches
|
|
1322
1347
|
if (this.navigatorResultWatch) {
|
|
1323
1348
|
this.navigatorResultWatch.unsubscribe();
|
|
1349
|
+
this.navigatorResultWatch = null;
|
|
1324
1350
|
}
|
|
1325
1351
|
if (this.navigatorMaxResultWatch) {
|
|
1326
1352
|
this.navigatorMaxResultWatch.unsubscribe();
|
|
1353
|
+
this.navigatorMaxResultWatch = null;
|
|
1354
|
+
}
|
|
1355
|
+
// MEMORY LEAK FIX: Clear all ViewContainerRef embedded views
|
|
1356
|
+
// These hold references to row data, custom expressions, and inline widgets
|
|
1357
|
+
if (this.customExprViewRef) {
|
|
1358
|
+
this.customExprViewRef.clear();
|
|
1359
|
+
}
|
|
1360
|
+
if (this.rowActionsViewRef) {
|
|
1361
|
+
this.rowActionsViewRef.clear();
|
|
1362
|
+
}
|
|
1363
|
+
if (this.filterViewRef) {
|
|
1364
|
+
this.filterViewRef.clear();
|
|
1327
1365
|
}
|
|
1366
|
+
if (this.inlineEditViewRef) {
|
|
1367
|
+
this.inlineEditViewRef.clear();
|
|
1368
|
+
}
|
|
1369
|
+
if (this.inlineEditNewViewRef) {
|
|
1370
|
+
this.inlineEditNewViewRef.clear();
|
|
1371
|
+
}
|
|
1372
|
+
if (this.rowDetailViewRef) {
|
|
1373
|
+
this.rowDetailViewRef.clear();
|
|
1374
|
+
}
|
|
1375
|
+
if (this.rowExpansionActionViewRef) {
|
|
1376
|
+
this.rowExpansionActionViewRef.clear();
|
|
1377
|
+
}
|
|
1378
|
+
if (this.dynamicTableRef) {
|
|
1379
|
+
this.dynamicTableRef.clear();
|
|
1380
|
+
}
|
|
1381
|
+
// MEMORY LEAK FIX: Clear compiled template caches
|
|
1382
|
+
this.rowActionsCompiledTl = {};
|
|
1383
|
+
this.rowFilterCompliedTl = {};
|
|
1384
|
+
this.inlineCompliedTl = {};
|
|
1385
|
+
this.inlineNewCompliedTl = {};
|
|
1386
|
+
this.customExprCompiledTl = {};
|
|
1387
|
+
this.customExprCompiledSummaryTl = {};
|
|
1388
|
+
this.rowDefInstances = {};
|
|
1389
|
+
this.rowDefMap = {};
|
|
1390
|
+
this.rowExpansionActionTl = {};
|
|
1391
|
+
// MEMORY LEAK FIX: Clear dynamic context
|
|
1392
|
+
if (this._dynamicContext) {
|
|
1393
|
+
Object.keys(this._dynamicContext).forEach(key => {
|
|
1394
|
+
delete this._dynamicContext[key];
|
|
1395
|
+
});
|
|
1396
|
+
this._dynamicContext = null;
|
|
1397
|
+
}
|
|
1398
|
+
// MEMORY LEAK FIX: Clear data arrays
|
|
1399
|
+
this._gridData = [];
|
|
1400
|
+
this.items = [];
|
|
1401
|
+
this.selectedItems = [];
|
|
1402
|
+
this.fieldDefs = [];
|
|
1403
|
+
this.fullFieldDefs = [];
|
|
1404
|
+
this.gridData = [];
|
|
1405
|
+
this.__fullData = null;
|
|
1406
|
+
// MEMORY LEAK FIX: Destroy jQuery datatable widget before clearing gridOptions
|
|
1407
|
+
if (this.datagridElement && this.datagridElement.datatable) {
|
|
1408
|
+
try {
|
|
1409
|
+
this.datagridElement.datatable('destroy');
|
|
1410
|
+
}
|
|
1411
|
+
catch (e) {
|
|
1412
|
+
// Ignore errors during destroy
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
// MEMORY LEAK FIX: Clear other data structures
|
|
1416
|
+
this.columns = {};
|
|
1417
|
+
this.formfields = {};
|
|
1418
|
+
this.rowFilter = {};
|
|
1419
|
+
this.actions = [];
|
|
1420
|
+
this._actions = { header: [], footer: [] };
|
|
1421
|
+
this.exportOptions = [];
|
|
1422
|
+
this.headerConfig = [];
|
|
1423
|
+
this.rowActions = [];
|
|
1424
|
+
// MEMORY LEAK FIX: Clear all @ContentChildren QueryLists holding template references
|
|
1425
|
+
// These QueryLists hold TemplateRef instances that create circular references to the parent LView
|
|
1426
|
+
if (this.rowActionTmpl) {
|
|
1427
|
+
this.rowActionTmpl.reset([]);
|
|
1428
|
+
}
|
|
1429
|
+
if (this.filterTmpl) {
|
|
1430
|
+
this.filterTmpl.reset([]);
|
|
1431
|
+
}
|
|
1432
|
+
if (this.inlineWidgetTmpl) {
|
|
1433
|
+
this.inlineWidgetTmpl.reset([]);
|
|
1434
|
+
}
|
|
1435
|
+
if (this.inlineWidgetNewTmpl) {
|
|
1436
|
+
this.inlineWidgetNewTmpl.reset([]);
|
|
1437
|
+
}
|
|
1438
|
+
if (this.customExprTmpl) {
|
|
1439
|
+
this.customExprTmpl.reset([]);
|
|
1440
|
+
}
|
|
1441
|
+
if (this.rowExpansionActionTmpl) {
|
|
1442
|
+
this.rowExpansionActionTmpl.reset([]);
|
|
1443
|
+
}
|
|
1444
|
+
// MEMORY LEAK FIX: Clear @ContentChild template reference
|
|
1445
|
+
this.rowExpansionTmpl = null;
|
|
1446
|
+
// MEMORY LEAK FIX: Complete and clear subjects
|
|
1447
|
+
if (this.selectedItemChange) {
|
|
1448
|
+
this.selectedItemChange.complete();
|
|
1449
|
+
this.selectedItemChange = null;
|
|
1450
|
+
}
|
|
1451
|
+
// MEMORY LEAK FIX: Clear ViewChild references
|
|
1452
|
+
this.dataNavigator = null;
|
|
1453
|
+
this._tableElement = null;
|
|
1454
|
+
// console.log("table component destroyed");
|
|
1328
1455
|
super.ngOnDestroy();
|
|
1329
1456
|
}
|
|
1330
1457
|
addRowIndex(row) {
|
|
@@ -1395,6 +1522,9 @@ class TableComponent extends StylableComponent {
|
|
|
1395
1522
|
if (!key.endsWith('_filter') && ((key.endsWith('_new') && newRow) || (!key.endsWith('_new') && !newRow))) {
|
|
1396
1523
|
ctrls[key].setValue('');
|
|
1397
1524
|
this.resetFormControl(ctrls[key]);
|
|
1525
|
+
// MEMORY LEAK FIX: Clear validators to release references
|
|
1526
|
+
ctrls[key].clearValidators();
|
|
1527
|
+
ctrls[key].clearAsyncValidators();
|
|
1398
1528
|
}
|
|
1399
1529
|
});
|
|
1400
1530
|
}
|
|
@@ -1714,7 +1844,14 @@ class TableComponent extends StylableComponent {
|
|
|
1714
1844
|
defaultFieldDefs.forEach(col => {
|
|
1715
1845
|
this.columns[col.field] = col;
|
|
1716
1846
|
});
|
|
1717
|
-
|
|
1847
|
+
// Note: Errors in beforedatarender should not prevent table rendering
|
|
1848
|
+
try {
|
|
1849
|
+
this.invokeEventCallback('beforedatarender', { $data: data, $columns: this.columns, data: data, columns: this.columns });
|
|
1850
|
+
}
|
|
1851
|
+
catch (error) {
|
|
1852
|
+
// Log error but continue with rendering - beforedatarender errors should not block table rendering
|
|
1853
|
+
console.warn('Error in beforedatarender event callback, continuing with table rendering:', error);
|
|
1854
|
+
}
|
|
1718
1855
|
defaultFieldDefs = [];
|
|
1719
1856
|
// Apply the changes made by the user
|
|
1720
1857
|
forEach(this.columns, val => {
|
|
@@ -1753,23 +1890,30 @@ class TableComponent extends StylableComponent {
|
|
|
1753
1890
|
return sortExp || '';
|
|
1754
1891
|
}
|
|
1755
1892
|
onPropertyChange(key, nv, ov) {
|
|
1893
|
+
// Guard against property changes after component destruction
|
|
1894
|
+
if (this.isDestroyed) {
|
|
1895
|
+
return;
|
|
1896
|
+
}
|
|
1756
1897
|
let enableNewRow, widgetState;
|
|
1757
1898
|
switch (key) {
|
|
1758
1899
|
case 'datasource':
|
|
1759
1900
|
// Fix for [WMS-23653] when startUpdate is false (request on page load property is unchecked),
|
|
1760
1901
|
// then set status msg as "No data found"
|
|
1761
|
-
if (this.allowpagesizechange) {
|
|
1902
|
+
if (this.allowpagesizechange && this.datasource) {
|
|
1762
1903
|
this.datasource.maxResults = this.pagesize || this.datasource.maxResults;
|
|
1763
1904
|
}
|
|
1764
|
-
if (nv.startUpdate === false) {
|
|
1905
|
+
if (nv && nv.startUpdate === false) {
|
|
1765
1906
|
this.variableInflight = false;
|
|
1766
1907
|
this.callDataGridMethod('setStatus', 'nodata', this.nodatamessage);
|
|
1767
1908
|
}
|
|
1768
|
-
if (get(this.datasource, 'category') !== 'wm.Variable') {
|
|
1909
|
+
if (this.datasource && get(this.datasource, 'category') !== 'wm.Variable') {
|
|
1769
1910
|
this.headerselectall = false;
|
|
1770
1911
|
this.setDataGridOption("headerselectall", false);
|
|
1771
1912
|
}
|
|
1772
|
-
|
|
1913
|
+
// Process dataset when datasource is set, especially if dataset was previously skipped
|
|
1914
|
+
if (this.datasource && this.dataset !== undefined) {
|
|
1915
|
+
this.watchVariableDataSet(this.dataset);
|
|
1916
|
+
}
|
|
1773
1917
|
this.onDataSourceChange();
|
|
1774
1918
|
break;
|
|
1775
1919
|
case 'dataset':
|
|
@@ -1777,6 +1921,12 @@ class TableComponent extends StylableComponent {
|
|
|
1777
1921
|
this.gridOptions.setIsNextPageData(false);
|
|
1778
1922
|
}
|
|
1779
1923
|
if (this.binddatasource && !this.datasource) {
|
|
1924
|
+
// If datasource is not set yet, clear loading state and show no data
|
|
1925
|
+
// This prevents tables from being stuck in loading state
|
|
1926
|
+
if (this.variableInflight) {
|
|
1927
|
+
this.variableInflight = false;
|
|
1928
|
+
this.callDataGridMethod('setStatus', 'nodata', this.nodatamessage);
|
|
1929
|
+
}
|
|
1780
1930
|
return;
|
|
1781
1931
|
}
|
|
1782
1932
|
// if table is inside list then table dataset will be set as "item.XXX" and there is no datasource.
|
|
@@ -2488,7 +2638,7 @@ class TableCUDDirective {
|
|
|
2488
2638
|
this.updateVariable(response, options.callBack);
|
|
2489
2639
|
}
|
|
2490
2640
|
else if (!this.table.datasource.execute(DataSource.Operation.IS_API_AWARE)) {
|
|
2491
|
-
this.table.initiateSelectItem('current', response, undefined,
|
|
2641
|
+
this.table.initiateSelectItem('current', response, undefined, this.table.datasource.category === 'wm.Variable', options.callBack);
|
|
2492
2642
|
}
|
|
2493
2643
|
triggerFn(options.success, response);
|
|
2494
2644
|
this.table.invokeEventCallback('rowupdate', { $event: options.event, $data: response, row: response });
|
|
@@ -2738,6 +2888,12 @@ class TableCUDDirective {
|
|
|
2738
2888
|
this.table.callDataGridMethod('cancelEdit', $row);
|
|
2739
2889
|
}
|
|
2740
2890
|
}
|
|
2891
|
+
ngOnDestroy() {
|
|
2892
|
+
// MEMORY LEAK FIX: Clear all references
|
|
2893
|
+
this.table = null;
|
|
2894
|
+
this.dialogService = null;
|
|
2895
|
+
this.app = null;
|
|
2896
|
+
}
|
|
2741
2897
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableCUDDirective, deps: [{ token: TableComponent, self: true }, { token: i2.AbstractDialogService }, { token: i2.App }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2742
2898
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableCUDDirective, isStandalone: true, selector: "[wmTableCUD]", ngImport: i0 }); }
|
|
2743
2899
|
}
|
|
@@ -3050,6 +3206,12 @@ class TableFilterSortDirective {
|
|
|
3050
3206
|
// Function that checks if a given string is a valid date and returns the timestamp if it is, or NaN if it's not.
|
|
3051
3207
|
parseDateString(dateString) {
|
|
3052
3208
|
const timestamp = Date.parse(dateString);
|
|
3209
|
+
// handling case when string starts with string and end with number
|
|
3210
|
+
const trimmed = dateString.trim();
|
|
3211
|
+
const monthRegex = /\b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:t(?:ember)?)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\b/i;
|
|
3212
|
+
if (/^[A-Za-z]+/.test(trimmed) && /\d+$/.test(trimmed) && !monthRegex.test(trimmed)) {
|
|
3213
|
+
return NaN;
|
|
3214
|
+
}
|
|
3053
3215
|
if (!isNaN(timestamp)) {
|
|
3054
3216
|
return timestamp;
|
|
3055
3217
|
}
|
|
@@ -3065,7 +3227,7 @@ class TableFilterSortDirective {
|
|
|
3065
3227
|
const fieldValue = get(find(data, sortObj.field), sortObj.field);
|
|
3066
3228
|
const isValidDateString = typeof fieldValue === 'string' ? this.parseDateString(fieldValue) : NaN;
|
|
3067
3229
|
if (!isNaN(isValidDateString)) { // if the field is a date string
|
|
3068
|
-
data = orderBy(data, [(item) => this.parseDateString(item
|
|
3230
|
+
data = orderBy(data, [(item) => this.parseDateString(get(item, sortObj.field))], [sortObj.direction]);
|
|
3069
3231
|
}
|
|
3070
3232
|
else if (sortObj.sortBy ? this.table.columns[sortObj.sortBy]?.caseinsensitive : this.table.columns[sortObj.field]?.caseinsensitive) {
|
|
3071
3233
|
//Fix for [WMS-27505]: Added case-insensitive sorting so that uppercase and lowercase letters are treated the same when sorting.
|
|
@@ -3427,6 +3589,10 @@ class TableFilterSortDirective {
|
|
|
3427
3589
|
condition: logicalOp
|
|
3428
3590
|
});
|
|
3429
3591
|
}
|
|
3592
|
+
ngOnDestroy() {
|
|
3593
|
+
// MEMORY LEAK FIX: Clear table reference
|
|
3594
|
+
this.table = null;
|
|
3595
|
+
}
|
|
3430
3596
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableFilterSortDirective, deps: [{ token: TableComponent, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3431
3597
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableFilterSortDirective, isStandalone: true, selector: "[wmTableFilterSort]", ngImport: i0 }); }
|
|
3432
3598
|
}
|
|
@@ -3513,6 +3679,13 @@ class TableActionDirective extends BaseComponent {
|
|
|
3513
3679
|
this.buttonDef[key] = nv;
|
|
3514
3680
|
}
|
|
3515
3681
|
}
|
|
3682
|
+
ngOnDestroy() {
|
|
3683
|
+
// MEMORY LEAK FIX: Clear table and buttonDef references
|
|
3684
|
+
this.table = null;
|
|
3685
|
+
this.buttonDef = null;
|
|
3686
|
+
// Call parent ngOnDestroy (BaseComponent has cleanup)
|
|
3687
|
+
super.ngOnDestroy();
|
|
3688
|
+
}
|
|
3516
3689
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableActionDirective, deps: [{ token: i0.Injector }, { token: TableComponent, optional: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3517
3690
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableActionDirective, isStandalone: true, selector: "[wmTableAction]", providers: [
|
|
3518
3691
|
provideAsWidgetRef(TableActionDirective)
|
|
@@ -3677,6 +3850,14 @@ class TableColumnGroupDirective extends BaseComponent {
|
|
|
3677
3850
|
const fieldName = this.group && this.group.name;
|
|
3678
3851
|
setHeaderConfigForTable(this.table.headerConfig, this.config, fieldName, fieldName ? colIndex : headerIndex);
|
|
3679
3852
|
}
|
|
3853
|
+
ngOnDestroy() {
|
|
3854
|
+
// MEMORY LEAK FIX: Clear table, group, and config references
|
|
3855
|
+
this.table = null;
|
|
3856
|
+
this.group = null;
|
|
3857
|
+
this.config = null;
|
|
3858
|
+
// Call parent ngOnDestroy (BaseComponent has cleanup)
|
|
3859
|
+
super.ngOnDestroy();
|
|
3860
|
+
}
|
|
3680
3861
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableColumnGroupDirective, deps: [{ token: i0.Injector }, { token: TableColumnGroupDirective, optional: true, skipSelf: true }, { token: TableComponent, optional: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3681
3862
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableColumnGroupDirective, isStandalone: true, selector: "[wmTableColumnGroup]", providers: [
|
|
3682
3863
|
provideAsWidgetRef(TableColumnGroupDirective)
|
|
@@ -3871,6 +4052,10 @@ class TableColumnDirective extends BaseComponent {
|
|
|
3871
4052
|
}
|
|
3872
4053
|
// Remove validators for the inline widget and set form to untouched
|
|
3873
4054
|
removeValidations() {
|
|
4055
|
+
// Guard against component destruction or table/ngform being null
|
|
4056
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4057
|
+
return;
|
|
4058
|
+
}
|
|
3874
4059
|
this.table.ngform.markAsUntouched();
|
|
3875
4060
|
const control = this.getFormControl();
|
|
3876
4061
|
if (!control) {
|
|
@@ -3882,6 +4067,10 @@ class TableColumnDirective extends BaseComponent {
|
|
|
3882
4067
|
}
|
|
3883
4068
|
// Apply default|sync|async|prop validators for QuickEdit new row form control
|
|
3884
4069
|
applyNewRowValidations() {
|
|
4070
|
+
// Guard against component destruction or table/ngform being null
|
|
4071
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4072
|
+
return;
|
|
4073
|
+
}
|
|
3885
4074
|
if (!this._checkNewEditableRowControl()) {
|
|
3886
4075
|
return;
|
|
3887
4076
|
}
|
|
@@ -3898,22 +4087,37 @@ class TableColumnDirective extends BaseComponent {
|
|
|
3898
4087
|
}
|
|
3899
4088
|
// Remove validators for the QuickEdit new row widget and set form to untouched
|
|
3900
4089
|
removeNewRowValidations() {
|
|
4090
|
+
// Guard against component destruction or table/ngform being null
|
|
4091
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4092
|
+
return;
|
|
4093
|
+
}
|
|
3901
4094
|
this.table.ngform.markAsUntouched();
|
|
3902
4095
|
if (!this._checkNewEditableRowControl()) {
|
|
3903
4096
|
return;
|
|
3904
4097
|
}
|
|
3905
4098
|
const control = this.getFormControl('_new');
|
|
4099
|
+
if (!control) {
|
|
4100
|
+
return;
|
|
4101
|
+
}
|
|
3906
4102
|
control.clearValidators();
|
|
3907
4103
|
control.clearAsyncValidators();
|
|
3908
4104
|
control.updateValueAndValidity();
|
|
3909
4105
|
}
|
|
3910
4106
|
addFormControl(suffix) {
|
|
4107
|
+
// Guard against component destruction or table/ngform being null
|
|
4108
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4109
|
+
return;
|
|
4110
|
+
}
|
|
3911
4111
|
const ctrlName = suffix ? (this.binding + suffix) : this.binding;
|
|
3912
4112
|
this.table.ngform.addControl(ctrlName, this.table.fb.control(''));
|
|
3913
4113
|
}
|
|
3914
4114
|
getFormControl(suffix) {
|
|
4115
|
+
// Guard against component destruction or table/ngform being null
|
|
4116
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4117
|
+
return null;
|
|
4118
|
+
}
|
|
3915
4119
|
const ctrlName = suffix ? (this.binding + suffix) : this.binding;
|
|
3916
|
-
return this.table.ngform.controls[ctrlName];
|
|
4120
|
+
return this.table.ngform.controls[ctrlName] || null;
|
|
3917
4121
|
}
|
|
3918
4122
|
_checkNewEditableRowControl() {
|
|
3919
4123
|
return this._isNewEditableRow && this.getFormControl('_new');
|
|
@@ -3987,12 +4191,16 @@ class TableColumnDirective extends BaseComponent {
|
|
|
3987
4191
|
}
|
|
3988
4192
|
// On field value change, apply cascading filter and set validation message
|
|
3989
4193
|
onValueChange(val, widget) {
|
|
4194
|
+
// Guard against component destruction or table being null
|
|
4195
|
+
if (this.isDestroyed || !this.table) {
|
|
4196
|
+
return;
|
|
4197
|
+
}
|
|
3990
4198
|
if (val !== null) {
|
|
3991
4199
|
applyFilterOnField(this.table.datasource, this.widget, this.table.fieldDefs, val, {
|
|
3992
4200
|
widget: 'edit-widget-type'
|
|
3993
4201
|
});
|
|
3994
4202
|
}
|
|
3995
|
-
if (this.table.ngform.touched) {
|
|
4203
|
+
if (this.table.ngform && this.table.ngform.touched) {
|
|
3996
4204
|
this.activeControlType = widget;
|
|
3997
4205
|
if (widget === 'inlineInstance') {
|
|
3998
4206
|
this.notifyChanges();
|
|
@@ -4283,6 +4491,83 @@ class TableColumnDirective extends BaseComponent {
|
|
|
4283
4491
|
this.table.redraw(true);
|
|
4284
4492
|
}
|
|
4285
4493
|
}
|
|
4494
|
+
ngOnDestroy() {
|
|
4495
|
+
// MEMORY LEAK FIX: Clear ContentChildren QueryLists
|
|
4496
|
+
if (this._filterInstances) {
|
|
4497
|
+
try {
|
|
4498
|
+
this._filterInstances.reset([]);
|
|
4499
|
+
}
|
|
4500
|
+
catch (e) {
|
|
4501
|
+
// Silently handle cleanup errors - QueryList might already be destroyed
|
|
4502
|
+
}
|
|
4503
|
+
}
|
|
4504
|
+
if (this._inlineInstances) {
|
|
4505
|
+
try {
|
|
4506
|
+
this._inlineInstances.reset([]);
|
|
4507
|
+
}
|
|
4508
|
+
catch (e) {
|
|
4509
|
+
// Silently handle cleanup errors - QueryList might already be destroyed
|
|
4510
|
+
}
|
|
4511
|
+
}
|
|
4512
|
+
if (this._inlineInstancesNew) {
|
|
4513
|
+
try {
|
|
4514
|
+
this._inlineInstancesNew.reset([]);
|
|
4515
|
+
}
|
|
4516
|
+
catch (e) {
|
|
4517
|
+
// Silently handle cleanup errors - QueryList might already be destroyed
|
|
4518
|
+
}
|
|
4519
|
+
}
|
|
4520
|
+
// MEMORY LEAK FIX: Clear all widget instance references
|
|
4521
|
+
this.filterInstance = null;
|
|
4522
|
+
this.inlineInstance = null;
|
|
4523
|
+
this.inlineInstanceNew = null;
|
|
4524
|
+
// MEMORY LEAK FIX: Clear template references
|
|
4525
|
+
this.customExprTmpl = null;
|
|
4526
|
+
this.inlineWidthTempRef = null;
|
|
4527
|
+
this.filterTemplateRef = null;
|
|
4528
|
+
// MEMORY LEAK FIX: Clear dataset references
|
|
4529
|
+
this._filterDataSet = null;
|
|
4530
|
+
this.dataset = null;
|
|
4531
|
+
this._dataoptions = null;
|
|
4532
|
+
this._datasource = null;
|
|
4533
|
+
// MEMORY LEAK FIX: Clear validation objects
|
|
4534
|
+
if (this.fieldValidations) {
|
|
4535
|
+
try {
|
|
4536
|
+
this.fieldValidations.destroy();
|
|
4537
|
+
}
|
|
4538
|
+
catch (e) {
|
|
4539
|
+
// Silently handle cleanup errors
|
|
4540
|
+
}
|
|
4541
|
+
this.fieldValidations = null;
|
|
4542
|
+
}
|
|
4543
|
+
if (this.fieldValidations_new) {
|
|
4544
|
+
try {
|
|
4545
|
+
this.fieldValidations_new.destroy();
|
|
4546
|
+
}
|
|
4547
|
+
catch (e) {
|
|
4548
|
+
// Silently handle cleanup errors
|
|
4549
|
+
}
|
|
4550
|
+
this.fieldValidations_new = null;
|
|
4551
|
+
}
|
|
4552
|
+
this.syncValidators = [];
|
|
4553
|
+
this.asyncValidators = [];
|
|
4554
|
+
// MEMORY LEAK FIX: Clear filter control reference
|
|
4555
|
+
this.filterControl = null;
|
|
4556
|
+
// MEMORY LEAK FIX: Clear notify fields array
|
|
4557
|
+
if (this.notifyForFields) {
|
|
4558
|
+
this.notifyForFields = [];
|
|
4559
|
+
}
|
|
4560
|
+
// MEMORY LEAK FIX: Clear observe fields array
|
|
4561
|
+
if (this.observeOnFields) {
|
|
4562
|
+
this.observeOnFields = [];
|
|
4563
|
+
}
|
|
4564
|
+
// MEMORY LEAK FIX: Clear table and group references
|
|
4565
|
+
// Note: These are injected dependencies, but clearing helps GC
|
|
4566
|
+
this.table = null;
|
|
4567
|
+
this.group = null;
|
|
4568
|
+
// Call parent ngOnDestroy
|
|
4569
|
+
super.ngOnDestroy();
|
|
4570
|
+
}
|
|
4286
4571
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableColumnDirective, deps: [{ token: i0.Injector }, { token: i2.AppDefaults }, { token: TableComponent, optional: true }, { token: TableColumnGroupDirective, optional: true }, { token: 'filterdataset.bind', attribute: true }, { token: 'dataset.bind', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4287
4572
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableColumnDirective, isStandalone: true, selector: "[wmTableColumn]", providers: [
|
|
4288
4573
|
provideAsWidgetRef(TableColumnDirective)
|
|
@@ -4377,6 +4662,13 @@ class TableRowDirective extends BaseComponent {
|
|
|
4377
4662
|
this.config.content = this.content;
|
|
4378
4663
|
}
|
|
4379
4664
|
}
|
|
4665
|
+
ngOnDestroy() {
|
|
4666
|
+
// MEMORY LEAK FIX: Clear table and config references
|
|
4667
|
+
this.table = null;
|
|
4668
|
+
this.config = null;
|
|
4669
|
+
// Call parent ngOnDestroy (BaseComponent has cleanup)
|
|
4670
|
+
super.ngOnDestroy();
|
|
4671
|
+
}
|
|
4380
4672
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableRowDirective, deps: [{ token: i0.Injector }, { token: TableComponent, optional: true, skipSelf: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4381
4673
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableRowDirective, isStandalone: true, selector: "[wmTableRow]", providers: [
|
|
4382
4674
|
provideAsWidgetRef(TableRowDirective)
|
|
@@ -4458,6 +4750,13 @@ class TableRowActionDirective extends BaseComponent {
|
|
|
4458
4750
|
this.populateAction();
|
|
4459
4751
|
this.table.registerRowActions(this.buttonDef);
|
|
4460
4752
|
}
|
|
4753
|
+
ngOnDestroy() {
|
|
4754
|
+
// MEMORY LEAK FIX: Clear table reference and button definition
|
|
4755
|
+
this.table = null;
|
|
4756
|
+
this.buttonDef = null;
|
|
4757
|
+
// Call parent ngOnDestroy (BaseComponent has cleanup)
|
|
4758
|
+
super.ngOnDestroy();
|
|
4759
|
+
}
|
|
4461
4760
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableRowActionDirective, deps: [{ token: i0.Injector }, { token: TableComponent, optional: true }, { token: Context, self: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4462
4761
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableRowActionDirective, isStandalone: true, selector: "[wmTableRowAction]", providers: [
|
|
4463
4762
|
provideAsWidgetRef(TableRowActionDirective),
|