@wavemaker/app-ng-runtime 11.14.1-rc.6310 → 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 +331 -36
- 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 +10 -10
- 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 +327 -34
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/pipes/custom-pipes.d.ts +5 -5
- 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 +31 -5
- package/components/basic/search/esm2022/scrollable.directive.mjs +13 -4
- package/components/basic/search/esm2022/search.component.mjs +20 -3
- package/components/basic/search/fesm2022/index.mjs +31 -5
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/scrollable.directive.d.ts +5 -3
- 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 +213 -19
- package/components/data/list/esm2022/list-item.directive.mjs +95 -11
- package/components/data/list/esm2022/list.component.mjs +120 -10
- package/components/data/list/fesm2022/index.mjs +213 -19
- 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 +7 -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 +345 -15
- 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 +193 -12
- package/components/data/table/fesm2022/index.mjs +345 -15
- 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 +6 -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 +30 -6
- 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/esm2022/router-outlet.directive.mjs +13 -6
- package/components/page/default/fesm2022/index.mjs +30 -6
- 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/default/router-outlet.directive.d.ts +5 -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 +367 -32
- 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 +40 -12
- 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 +368 -33
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/runtime-base.module.d.ts +2 -2
- 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/@wavemaker/nvd3/build/nv.d3.min.js +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
|
@@ -186,8 +186,15 @@
|
|
|
186
186
|
this.setDataGridOption('colDefs', i2.getClonedObject(this.fieldDefs));
|
|
187
187
|
}
|
|
188
188
|
// If data and colDefs are present, call on before data render event
|
|
189
|
+
// Note: Errors in beforedatarender should not prevent table rendering
|
|
189
190
|
if (!this.isdynamictable && !lodashEs.isEmpty(newValue) && gridOptions.colDefs.length) {
|
|
190
|
-
|
|
191
|
+
try {
|
|
192
|
+
this.invokeEventCallback('beforedatarender', { $data: this._gridData, $columns: this.columns, data: this._gridData, columns: this.columns });
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
// Log error but continue with rendering - beforedatarender errors should not block table rendering
|
|
196
|
+
console.warn('Error in beforedatarender event callback, continuing with table rendering:', error);
|
|
197
|
+
}
|
|
191
198
|
}
|
|
192
199
|
this.setDataGridOption('data', i2.getClonedObject(this._gridData));
|
|
193
200
|
}
|
|
@@ -580,7 +587,7 @@
|
|
|
580
587
|
this.prevData = i2.getClonedObject(row);
|
|
581
588
|
},
|
|
582
589
|
afterRowUpdate: (row, e, callBack, options) => {
|
|
583
|
-
this.updateRecord(lodashEs.extend({}, options, { row, 'prevData': this.prevData, 'event': e, 'callBack': callBack }));
|
|
590
|
+
this.updateRecord(lodashEs.extend({}, options, { row, 'prevData': options.rowindex ? options.rowindex : this.prevData, 'event': e, 'callBack': callBack }));
|
|
584
591
|
},
|
|
585
592
|
onBeforeRowUpdate: (row, e, options) => {
|
|
586
593
|
return this.invokeEventCallback('beforerowupdate', { $event: e, $data: row, row, options: options });
|
|
@@ -1234,6 +1241,10 @@
|
|
|
1234
1241
|
return this.actualPageSize || 5;
|
|
1235
1242
|
}
|
|
1236
1243
|
watchVariableDataSet(newVal) {
|
|
1244
|
+
// Guard against component destruction
|
|
1245
|
+
if (this.isDestroyed) {
|
|
1246
|
+
return;
|
|
1247
|
+
}
|
|
1237
1248
|
let result;
|
|
1238
1249
|
// Check for Variable filters if applied
|
|
1239
1250
|
if (this.gridOptions.isNavTypeScrollOrOndemand()) {
|
|
@@ -1291,6 +1302,12 @@
|
|
|
1291
1302
|
}
|
|
1292
1303
|
/*Return if data is invalid.*/
|
|
1293
1304
|
if (!this.isDataValid()) {
|
|
1305
|
+
// If data is invalid and variableInflight is still true, clear loading state
|
|
1306
|
+
// This prevents tables from getting stuck in loading when data is invalid
|
|
1307
|
+
if (this.variableInflight) {
|
|
1308
|
+
this.variableInflight = false;
|
|
1309
|
+
this.setGridData([]);
|
|
1310
|
+
}
|
|
1294
1311
|
return;
|
|
1295
1312
|
}
|
|
1296
1313
|
// If value is empty or in studio mode, dont enable the navigation
|
|
@@ -1318,7 +1335,13 @@
|
|
|
1318
1335
|
// @ts-ignore
|
|
1319
1336
|
if (!lodashEs.isObject(newVal) || newVal === '' || (newVal && newVal.dataValue === '')) {
|
|
1320
1337
|
if (!this.variableInflight) {
|
|
1321
|
-
// If variable has finished loading and resultSet is empty,
|
|
1338
|
+
// If variable has finished loading and resultSet is empty, render empty data
|
|
1339
|
+
this.setGridData([]);
|
|
1340
|
+
}
|
|
1341
|
+
else {
|
|
1342
|
+
// If variableInflight is still true but we have invalid/empty data, clear loading state
|
|
1343
|
+
// This handles cases where data never arrives or is invalid
|
|
1344
|
+
this.variableInflight = false;
|
|
1322
1345
|
this.setGridData([]);
|
|
1323
1346
|
}
|
|
1324
1347
|
return;
|
|
@@ -1328,13 +1351,117 @@
|
|
|
1328
1351
|
}
|
|
1329
1352
|
}
|
|
1330
1353
|
ngOnDestroy() {
|
|
1354
|
+
// MEMORY LEAK FIX: Remove document click listener
|
|
1331
1355
|
document.removeEventListener('click', this.documentClickBind);
|
|
1356
|
+
// MEMORY LEAK FIX: Unsubscribe from navigator watches
|
|
1332
1357
|
if (this.navigatorResultWatch) {
|
|
1333
1358
|
this.navigatorResultWatch.unsubscribe();
|
|
1359
|
+
this.navigatorResultWatch = null;
|
|
1334
1360
|
}
|
|
1335
1361
|
if (this.navigatorMaxResultWatch) {
|
|
1336
1362
|
this.navigatorMaxResultWatch.unsubscribe();
|
|
1363
|
+
this.navigatorMaxResultWatch = null;
|
|
1364
|
+
}
|
|
1365
|
+
// MEMORY LEAK FIX: Clear all ViewContainerRef embedded views
|
|
1366
|
+
// These hold references to row data, custom expressions, and inline widgets
|
|
1367
|
+
if (this.customExprViewRef) {
|
|
1368
|
+
this.customExprViewRef.clear();
|
|
1369
|
+
}
|
|
1370
|
+
if (this.rowActionsViewRef) {
|
|
1371
|
+
this.rowActionsViewRef.clear();
|
|
1372
|
+
}
|
|
1373
|
+
if (this.filterViewRef) {
|
|
1374
|
+
this.filterViewRef.clear();
|
|
1375
|
+
}
|
|
1376
|
+
if (this.inlineEditViewRef) {
|
|
1377
|
+
this.inlineEditViewRef.clear();
|
|
1378
|
+
}
|
|
1379
|
+
if (this.inlineEditNewViewRef) {
|
|
1380
|
+
this.inlineEditNewViewRef.clear();
|
|
1381
|
+
}
|
|
1382
|
+
if (this.rowDetailViewRef) {
|
|
1383
|
+
this.rowDetailViewRef.clear();
|
|
1384
|
+
}
|
|
1385
|
+
if (this.rowExpansionActionViewRef) {
|
|
1386
|
+
this.rowExpansionActionViewRef.clear();
|
|
1387
|
+
}
|
|
1388
|
+
if (this.dynamicTableRef) {
|
|
1389
|
+
this.dynamicTableRef.clear();
|
|
1390
|
+
}
|
|
1391
|
+
// MEMORY LEAK FIX: Clear compiled template caches
|
|
1392
|
+
this.rowActionsCompiledTl = {};
|
|
1393
|
+
this.rowFilterCompliedTl = {};
|
|
1394
|
+
this.inlineCompliedTl = {};
|
|
1395
|
+
this.inlineNewCompliedTl = {};
|
|
1396
|
+
this.customExprCompiledTl = {};
|
|
1397
|
+
this.customExprCompiledSummaryTl = {};
|
|
1398
|
+
this.rowDefInstances = {};
|
|
1399
|
+
this.rowDefMap = {};
|
|
1400
|
+
this.rowExpansionActionTl = {};
|
|
1401
|
+
// MEMORY LEAK FIX: Clear dynamic context
|
|
1402
|
+
if (this._dynamicContext) {
|
|
1403
|
+
Object.keys(this._dynamicContext).forEach(key => {
|
|
1404
|
+
delete this._dynamicContext[key];
|
|
1405
|
+
});
|
|
1406
|
+
this._dynamicContext = null;
|
|
1407
|
+
}
|
|
1408
|
+
// MEMORY LEAK FIX: Clear data arrays
|
|
1409
|
+
this._gridData = [];
|
|
1410
|
+
this.items = [];
|
|
1411
|
+
this.selectedItems = [];
|
|
1412
|
+
this.fieldDefs = [];
|
|
1413
|
+
this.fullFieldDefs = [];
|
|
1414
|
+
this.gridData = [];
|
|
1415
|
+
this.__fullData = null;
|
|
1416
|
+
// MEMORY LEAK FIX: Destroy jQuery datatable widget before clearing gridOptions
|
|
1417
|
+
if (this.datagridElement && this.datagridElement.datatable) {
|
|
1418
|
+
try {
|
|
1419
|
+
this.datagridElement.datatable('destroy');
|
|
1420
|
+
}
|
|
1421
|
+
catch (e) {
|
|
1422
|
+
// Ignore errors during destroy
|
|
1423
|
+
}
|
|
1337
1424
|
}
|
|
1425
|
+
// MEMORY LEAK FIX: Clear other data structures
|
|
1426
|
+
this.columns = {};
|
|
1427
|
+
this.formfields = {};
|
|
1428
|
+
this.rowFilter = {};
|
|
1429
|
+
this.actions = [];
|
|
1430
|
+
this._actions = { header: [], footer: [] };
|
|
1431
|
+
this.exportOptions = [];
|
|
1432
|
+
this.headerConfig = [];
|
|
1433
|
+
this.rowActions = [];
|
|
1434
|
+
// MEMORY LEAK FIX: Clear all @ContentChildren QueryLists holding template references
|
|
1435
|
+
// These QueryLists hold TemplateRef instances that create circular references to the parent LView
|
|
1436
|
+
if (this.rowActionTmpl) {
|
|
1437
|
+
this.rowActionTmpl.reset([]);
|
|
1438
|
+
}
|
|
1439
|
+
if (this.filterTmpl) {
|
|
1440
|
+
this.filterTmpl.reset([]);
|
|
1441
|
+
}
|
|
1442
|
+
if (this.inlineWidgetTmpl) {
|
|
1443
|
+
this.inlineWidgetTmpl.reset([]);
|
|
1444
|
+
}
|
|
1445
|
+
if (this.inlineWidgetNewTmpl) {
|
|
1446
|
+
this.inlineWidgetNewTmpl.reset([]);
|
|
1447
|
+
}
|
|
1448
|
+
if (this.customExprTmpl) {
|
|
1449
|
+
this.customExprTmpl.reset([]);
|
|
1450
|
+
}
|
|
1451
|
+
if (this.rowExpansionActionTmpl) {
|
|
1452
|
+
this.rowExpansionActionTmpl.reset([]);
|
|
1453
|
+
}
|
|
1454
|
+
// MEMORY LEAK FIX: Clear @ContentChild template reference
|
|
1455
|
+
this.rowExpansionTmpl = null;
|
|
1456
|
+
// MEMORY LEAK FIX: Complete and clear subjects
|
|
1457
|
+
if (this.selectedItemChange) {
|
|
1458
|
+
this.selectedItemChange.complete();
|
|
1459
|
+
this.selectedItemChange = null;
|
|
1460
|
+
}
|
|
1461
|
+
// MEMORY LEAK FIX: Clear ViewChild references
|
|
1462
|
+
this.dataNavigator = null;
|
|
1463
|
+
this._tableElement = null;
|
|
1464
|
+
// console.log("table component destroyed");
|
|
1338
1465
|
super.ngOnDestroy();
|
|
1339
1466
|
}
|
|
1340
1467
|
addRowIndex(row) {
|
|
@@ -1405,6 +1532,9 @@
|
|
|
1405
1532
|
if (!key.endsWith('_filter') && ((key.endsWith('_new') && newRow) || (!key.endsWith('_new') && !newRow))) {
|
|
1406
1533
|
ctrls[key].setValue('');
|
|
1407
1534
|
this.resetFormControl(ctrls[key]);
|
|
1535
|
+
// MEMORY LEAK FIX: Clear validators to release references
|
|
1536
|
+
ctrls[key].clearValidators();
|
|
1537
|
+
ctrls[key].clearAsyncValidators();
|
|
1408
1538
|
}
|
|
1409
1539
|
});
|
|
1410
1540
|
}
|
|
@@ -1724,7 +1854,14 @@
|
|
|
1724
1854
|
defaultFieldDefs.forEach(col => {
|
|
1725
1855
|
this.columns[col.field] = col;
|
|
1726
1856
|
});
|
|
1727
|
-
|
|
1857
|
+
// Note: Errors in beforedatarender should not prevent table rendering
|
|
1858
|
+
try {
|
|
1859
|
+
this.invokeEventCallback('beforedatarender', { $data: data, $columns: this.columns, data: data, columns: this.columns });
|
|
1860
|
+
}
|
|
1861
|
+
catch (error) {
|
|
1862
|
+
// Log error but continue with rendering - beforedatarender errors should not block table rendering
|
|
1863
|
+
console.warn('Error in beforedatarender event callback, continuing with table rendering:', error);
|
|
1864
|
+
}
|
|
1728
1865
|
defaultFieldDefs = [];
|
|
1729
1866
|
// Apply the changes made by the user
|
|
1730
1867
|
lodashEs.forEach(this.columns, val => {
|
|
@@ -1763,23 +1900,30 @@
|
|
|
1763
1900
|
return sortExp || '';
|
|
1764
1901
|
}
|
|
1765
1902
|
onPropertyChange(key, nv, ov) {
|
|
1903
|
+
// Guard against property changes after component destruction
|
|
1904
|
+
if (this.isDestroyed) {
|
|
1905
|
+
return;
|
|
1906
|
+
}
|
|
1766
1907
|
let enableNewRow;
|
|
1767
1908
|
switch (key) {
|
|
1768
1909
|
case 'datasource':
|
|
1769
1910
|
// Fix for [WMS-23653] when startUpdate is false (request on page load property is unchecked),
|
|
1770
1911
|
// then set status msg as "No data found"
|
|
1771
|
-
if (this.allowpagesizechange) {
|
|
1912
|
+
if (this.allowpagesizechange && this.datasource) {
|
|
1772
1913
|
this.datasource.maxResults = this.pagesize || this.datasource.maxResults;
|
|
1773
1914
|
}
|
|
1774
|
-
if (nv.startUpdate === false) {
|
|
1915
|
+
if (nv && nv.startUpdate === false) {
|
|
1775
1916
|
this.variableInflight = false;
|
|
1776
1917
|
this.callDataGridMethod('setStatus', 'nodata', this.nodatamessage);
|
|
1777
1918
|
}
|
|
1778
|
-
if (lodashEs.get(this.datasource, 'category') !== 'wm.Variable') {
|
|
1919
|
+
if (this.datasource && lodashEs.get(this.datasource, 'category') !== 'wm.Variable') {
|
|
1779
1920
|
this.headerselectall = false;
|
|
1780
1921
|
this.setDataGridOption("headerselectall", false);
|
|
1781
1922
|
}
|
|
1782
|
-
|
|
1923
|
+
// Process dataset when datasource is set, especially if dataset was previously skipped
|
|
1924
|
+
if (this.datasource && this.dataset !== undefined) {
|
|
1925
|
+
this.watchVariableDataSet(this.dataset);
|
|
1926
|
+
}
|
|
1783
1927
|
this.onDataSourceChange();
|
|
1784
1928
|
break;
|
|
1785
1929
|
case 'dataset':
|
|
@@ -1787,6 +1931,12 @@
|
|
|
1787
1931
|
this.gridOptions.setIsNextPageData(false);
|
|
1788
1932
|
}
|
|
1789
1933
|
if (this.binddatasource && !this.datasource) {
|
|
1934
|
+
// If datasource is not set yet, clear loading state and show no data
|
|
1935
|
+
// This prevents tables from being stuck in loading state
|
|
1936
|
+
if (this.variableInflight) {
|
|
1937
|
+
this.variableInflight = false;
|
|
1938
|
+
this.callDataGridMethod('setStatus', 'nodata', this.nodatamessage);
|
|
1939
|
+
}
|
|
1790
1940
|
return;
|
|
1791
1941
|
}
|
|
1792
1942
|
// if table is inside list then table dataset will be set as "item.XXX" and there is no datasource.
|
|
@@ -1890,9 +2040,11 @@
|
|
|
1890
2040
|
this.allowpagesizechange = nv;
|
|
1891
2041
|
break;
|
|
1892
2042
|
case 'pagesizeoptions':
|
|
1893
|
-
this.
|
|
1894
|
-
this.pagesizeoptions = nv;
|
|
1895
|
-
this.
|
|
2043
|
+
this.prevPagesizeoptions = this.sanitizeCommaSeparatedIntegers(ov);
|
|
2044
|
+
this.gridOptions.pagesizeoptions = this.sanitizeCommaSeparatedIntegers(nv);
|
|
2045
|
+
this.pagesizeoptions = this.sanitizeCommaSeparatedIntegers(nv);
|
|
2046
|
+
if (this.allowpagesizechange)
|
|
2047
|
+
this.setDefaultPageSize(nv);
|
|
1896
2048
|
break;
|
|
1897
2049
|
case 'multiselecttitle':
|
|
1898
2050
|
this.setDataGridOption('multiselecttitle', nv);
|
|
@@ -1936,12 +2088,41 @@
|
|
|
1936
2088
|
this.pagesize = nv;
|
|
1937
2089
|
}
|
|
1938
2090
|
this.updatedPageSize = nv;
|
|
2091
|
+
if (this.isPageSizeOptionsChanged()) {
|
|
2092
|
+
this.dataNavigator.defaultPageSizeOptions = this.pagesizeoptions?.split(',').map(Number).sort((a, b) => a - b) || [];
|
|
2093
|
+
this.dataNavigator.pageSizeOptions = [...this.dataNavigator.defaultPageSizeOptions];
|
|
2094
|
+
}
|
|
1939
2095
|
}
|
|
1940
2096
|
this.dataNavigator.options = {
|
|
1941
2097
|
maxResults: nv
|
|
1942
2098
|
};
|
|
1943
2099
|
this.dataNavigator.widget.maxResults = nv;
|
|
1944
2100
|
this.dataNavigator.maxResults = nv;
|
|
2101
|
+
if (this.datasource) {
|
|
2102
|
+
this.datasource.maxResults = this.pagesize || this.datasource.maxResults;
|
|
2103
|
+
}
|
|
2104
|
+
}
|
|
2105
|
+
isPageSizeOptionsChanged() {
|
|
2106
|
+
return !lodashEs.isEqual(this.prevPagesizeoptions, this.pagesizeoptions);
|
|
2107
|
+
}
|
|
2108
|
+
selectPageSize(pagesize) {
|
|
2109
|
+
if (!this.allowpagesizechange && !pagesize)
|
|
2110
|
+
return;
|
|
2111
|
+
if (pagesize < this.dataNavigator.pageSizeOptions[0] || pagesize > this.dataNavigator.pageSizeOptions[this.dataNavigator.pageSizeOptions.length - 1]
|
|
2112
|
+
|| !this.dataNavigator.pageSizeOptions.includes(Number(pagesize))) {
|
|
2113
|
+
pagesize = this.dataNavigator.pageSizeOptions[0];
|
|
2114
|
+
}
|
|
2115
|
+
this.dataNavigator.onPageSizeChange(undefined, pagesize);
|
|
2116
|
+
}
|
|
2117
|
+
sanitizeCommaSeparatedIntegers(input) {
|
|
2118
|
+
if (!input)
|
|
2119
|
+
return "";
|
|
2120
|
+
const uniqueNumbers = Array.from(new Set(input
|
|
2121
|
+
.split(",")
|
|
2122
|
+
.map(v => v.trim())
|
|
2123
|
+
.filter(v => /^-?\d+$/.test(v))
|
|
2124
|
+
.map(v => Math.abs(parseInt(v, 10)))));
|
|
2125
|
+
return uniqueNumbers.join(",");
|
|
1945
2126
|
}
|
|
1946
2127
|
onDataSourceChange() {
|
|
1947
2128
|
this.fieldDefs.forEach(col => {
|
|
@@ -2467,7 +2648,7 @@
|
|
|
2467
2648
|
this.updateVariable(response, options.callBack);
|
|
2468
2649
|
}
|
|
2469
2650
|
else if (!this.table.datasource.execute(i2.DataSource.Operation.IS_API_AWARE)) {
|
|
2470
|
-
this.table.initiateSelectItem('current', response, undefined,
|
|
2651
|
+
this.table.initiateSelectItem('current', response, undefined, this.table.datasource.category === 'wm.Variable', options.callBack);
|
|
2471
2652
|
}
|
|
2472
2653
|
i2.triggerFn(options.success, response);
|
|
2473
2654
|
this.table.invokeEventCallback('rowupdate', { $event: options.event, $data: response, row: response });
|
|
@@ -2717,6 +2898,12 @@
|
|
|
2717
2898
|
this.table.callDataGridMethod('cancelEdit', $row);
|
|
2718
2899
|
}
|
|
2719
2900
|
}
|
|
2901
|
+
ngOnDestroy() {
|
|
2902
|
+
// MEMORY LEAK FIX: Clear all references
|
|
2903
|
+
this.table = null;
|
|
2904
|
+
this.dialogService = null;
|
|
2905
|
+
this.app = null;
|
|
2906
|
+
}
|
|
2720
2907
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TableCUDDirective, deps: [{ token: TableComponent, self: true }, { token: i2__namespace.AbstractDialogService }, { token: i2__namespace.App }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
2721
2908
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableCUDDirective, isStandalone: true, selector: "[wmTableCUD]", ngImport: i0__namespace }); }
|
|
2722
2909
|
}
|
|
@@ -3029,6 +3216,12 @@
|
|
|
3029
3216
|
// Function that checks if a given string is a valid date and returns the timestamp if it is, or NaN if it's not.
|
|
3030
3217
|
parseDateString(dateString) {
|
|
3031
3218
|
const timestamp = Date.parse(dateString);
|
|
3219
|
+
// handling case when string starts with string and end with number
|
|
3220
|
+
const trimmed = dateString.trim();
|
|
3221
|
+
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;
|
|
3222
|
+
if (/^[A-Za-z]+/.test(trimmed) && /\d+$/.test(trimmed) && !monthRegex.test(trimmed)) {
|
|
3223
|
+
return NaN;
|
|
3224
|
+
}
|
|
3032
3225
|
if (!isNaN(timestamp)) {
|
|
3033
3226
|
return timestamp;
|
|
3034
3227
|
}
|
|
@@ -3043,7 +3236,7 @@
|
|
|
3043
3236
|
const fieldValue = lodashEs.get(lodashEs.find(data, sortObj.field), sortObj.field);
|
|
3044
3237
|
const isValidDateString = typeof fieldValue === 'string' ? this.parseDateString(fieldValue) : NaN;
|
|
3045
3238
|
if (!isNaN(isValidDateString)) { // if the field is a date string
|
|
3046
|
-
data = lodashEs.orderBy(data, [(item) => this.parseDateString(item
|
|
3239
|
+
data = lodashEs.orderBy(data, [(item) => this.parseDateString(lodashEs.get(item, sortObj.field))], [sortObj.direction]);
|
|
3047
3240
|
}
|
|
3048
3241
|
else if (sortObj.sortBy ? this.table.columns[sortObj.sortBy]?.caseinsensitive : this.table.columns[sortObj.field]?.caseinsensitive) {
|
|
3049
3242
|
//Fix for [WMS-27505]: Added case-insensitive sorting so that uppercase and lowercase letters are treated the same when sorting.
|
|
@@ -3405,6 +3598,10 @@
|
|
|
3405
3598
|
condition: logicalOp
|
|
3406
3599
|
});
|
|
3407
3600
|
}
|
|
3601
|
+
ngOnDestroy() {
|
|
3602
|
+
// MEMORY LEAK FIX: Clear table reference
|
|
3603
|
+
this.table = null;
|
|
3604
|
+
}
|
|
3408
3605
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TableFilterSortDirective, deps: [{ token: TableComponent, self: true }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
3409
3606
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableFilterSortDirective, isStandalone: true, selector: "[wmTableFilterSort]", ngImport: i0__namespace }); }
|
|
3410
3607
|
}
|
|
@@ -3491,6 +3688,13 @@
|
|
|
3491
3688
|
this.buttonDef[key] = nv;
|
|
3492
3689
|
}
|
|
3493
3690
|
}
|
|
3691
|
+
ngOnDestroy() {
|
|
3692
|
+
// MEMORY LEAK FIX: Clear table and buttonDef references
|
|
3693
|
+
this.table = null;
|
|
3694
|
+
this.buttonDef = null;
|
|
3695
|
+
// Call parent ngOnDestroy (BaseComponent has cleanup)
|
|
3696
|
+
super.ngOnDestroy();
|
|
3697
|
+
}
|
|
3494
3698
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TableActionDirective, deps: [{ token: i0__namespace.Injector }, { token: TableComponent, optional: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
3495
3699
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableActionDirective, isStandalone: true, selector: "[wmTableAction]", providers: [
|
|
3496
3700
|
i4.provideAsWidgetRef(TableActionDirective)
|
|
@@ -3655,6 +3859,14 @@
|
|
|
3655
3859
|
const fieldName = this.group && this.group.name;
|
|
3656
3860
|
i4.setHeaderConfigForTable(this.table.headerConfig, this.config, fieldName, fieldName ? colIndex : headerIndex);
|
|
3657
3861
|
}
|
|
3862
|
+
ngOnDestroy() {
|
|
3863
|
+
// MEMORY LEAK FIX: Clear table, group, and config references
|
|
3864
|
+
this.table = null;
|
|
3865
|
+
this.group = null;
|
|
3866
|
+
this.config = null;
|
|
3867
|
+
// Call parent ngOnDestroy (BaseComponent has cleanup)
|
|
3868
|
+
super.ngOnDestroy();
|
|
3869
|
+
}
|
|
3658
3870
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TableColumnGroupDirective, deps: [{ token: i0__namespace.Injector }, { token: TableColumnGroupDirective, optional: true, skipSelf: true }, { token: TableComponent, optional: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
3659
3871
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableColumnGroupDirective, isStandalone: true, selector: "[wmTableColumnGroup]", providers: [
|
|
3660
3872
|
i4.provideAsWidgetRef(TableColumnGroupDirective)
|
|
@@ -3849,6 +4061,10 @@
|
|
|
3849
4061
|
}
|
|
3850
4062
|
// Remove validators for the inline widget and set form to untouched
|
|
3851
4063
|
removeValidations() {
|
|
4064
|
+
// Guard against component destruction or table/ngform being null
|
|
4065
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4066
|
+
return;
|
|
4067
|
+
}
|
|
3852
4068
|
this.table.ngform.markAsUntouched();
|
|
3853
4069
|
const control = this.getFormControl();
|
|
3854
4070
|
if (!control) {
|
|
@@ -3860,6 +4076,10 @@
|
|
|
3860
4076
|
}
|
|
3861
4077
|
// Apply default|sync|async|prop validators for QuickEdit new row form control
|
|
3862
4078
|
applyNewRowValidations() {
|
|
4079
|
+
// Guard against component destruction or table/ngform being null
|
|
4080
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4081
|
+
return;
|
|
4082
|
+
}
|
|
3863
4083
|
if (!this._checkNewEditableRowControl()) {
|
|
3864
4084
|
return;
|
|
3865
4085
|
}
|
|
@@ -3876,22 +4096,37 @@
|
|
|
3876
4096
|
}
|
|
3877
4097
|
// Remove validators for the QuickEdit new row widget and set form to untouched
|
|
3878
4098
|
removeNewRowValidations() {
|
|
4099
|
+
// Guard against component destruction or table/ngform being null
|
|
4100
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4101
|
+
return;
|
|
4102
|
+
}
|
|
3879
4103
|
this.table.ngform.markAsUntouched();
|
|
3880
4104
|
if (!this._checkNewEditableRowControl()) {
|
|
3881
4105
|
return;
|
|
3882
4106
|
}
|
|
3883
4107
|
const control = this.getFormControl('_new');
|
|
4108
|
+
if (!control) {
|
|
4109
|
+
return;
|
|
4110
|
+
}
|
|
3884
4111
|
control.clearValidators();
|
|
3885
4112
|
control.clearAsyncValidators();
|
|
3886
4113
|
control.updateValueAndValidity();
|
|
3887
4114
|
}
|
|
3888
4115
|
addFormControl(suffix) {
|
|
4116
|
+
// Guard against component destruction or table/ngform being null
|
|
4117
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4118
|
+
return;
|
|
4119
|
+
}
|
|
3889
4120
|
const ctrlName = suffix ? (this.binding + suffix) : this.binding;
|
|
3890
4121
|
this.table.ngform.addControl(ctrlName, this.table.fb.control(''));
|
|
3891
4122
|
}
|
|
3892
4123
|
getFormControl(suffix) {
|
|
4124
|
+
// Guard against component destruction or table/ngform being null
|
|
4125
|
+
if (this.isDestroyed || !this.table || !this.table.ngform) {
|
|
4126
|
+
return null;
|
|
4127
|
+
}
|
|
3893
4128
|
const ctrlName = suffix ? (this.binding + suffix) : this.binding;
|
|
3894
|
-
return this.table.ngform.controls[ctrlName];
|
|
4129
|
+
return this.table.ngform.controls[ctrlName] || null;
|
|
3895
4130
|
}
|
|
3896
4131
|
_checkNewEditableRowControl() {
|
|
3897
4132
|
return this._isNewEditableRow && this.getFormControl('_new');
|
|
@@ -3965,12 +4200,16 @@
|
|
|
3965
4200
|
}
|
|
3966
4201
|
// On field value change, apply cascading filter and set validation message
|
|
3967
4202
|
onValueChange(val, widget) {
|
|
4203
|
+
// Guard against component destruction or table being null
|
|
4204
|
+
if (this.isDestroyed || !this.table) {
|
|
4205
|
+
return;
|
|
4206
|
+
}
|
|
3968
4207
|
if (val !== null) {
|
|
3969
4208
|
i4.applyFilterOnField(this.table.datasource, this.widget, this.table.fieldDefs, val, {
|
|
3970
4209
|
widget: 'edit-widget-type'
|
|
3971
4210
|
});
|
|
3972
4211
|
}
|
|
3973
|
-
if (this.table.ngform.touched) {
|
|
4212
|
+
if (this.table.ngform && this.table.ngform.touched) {
|
|
3974
4213
|
this.activeControlType = widget;
|
|
3975
4214
|
if (widget === 'inlineInstance') {
|
|
3976
4215
|
this.notifyChanges();
|
|
@@ -4261,6 +4500,83 @@
|
|
|
4261
4500
|
this.table.redraw(true);
|
|
4262
4501
|
}
|
|
4263
4502
|
}
|
|
4503
|
+
ngOnDestroy() {
|
|
4504
|
+
// MEMORY LEAK FIX: Clear ContentChildren QueryLists
|
|
4505
|
+
if (this._filterInstances) {
|
|
4506
|
+
try {
|
|
4507
|
+
this._filterInstances.reset([]);
|
|
4508
|
+
}
|
|
4509
|
+
catch (e) {
|
|
4510
|
+
// Silently handle cleanup errors - QueryList might already be destroyed
|
|
4511
|
+
}
|
|
4512
|
+
}
|
|
4513
|
+
if (this._inlineInstances) {
|
|
4514
|
+
try {
|
|
4515
|
+
this._inlineInstances.reset([]);
|
|
4516
|
+
}
|
|
4517
|
+
catch (e) {
|
|
4518
|
+
// Silently handle cleanup errors - QueryList might already be destroyed
|
|
4519
|
+
}
|
|
4520
|
+
}
|
|
4521
|
+
if (this._inlineInstancesNew) {
|
|
4522
|
+
try {
|
|
4523
|
+
this._inlineInstancesNew.reset([]);
|
|
4524
|
+
}
|
|
4525
|
+
catch (e) {
|
|
4526
|
+
// Silently handle cleanup errors - QueryList might already be destroyed
|
|
4527
|
+
}
|
|
4528
|
+
}
|
|
4529
|
+
// MEMORY LEAK FIX: Clear all widget instance references
|
|
4530
|
+
this.filterInstance = null;
|
|
4531
|
+
this.inlineInstance = null;
|
|
4532
|
+
this.inlineInstanceNew = null;
|
|
4533
|
+
// MEMORY LEAK FIX: Clear template references
|
|
4534
|
+
this.customExprTmpl = null;
|
|
4535
|
+
this.inlineWidthTempRef = null;
|
|
4536
|
+
this.filterTemplateRef = null;
|
|
4537
|
+
// MEMORY LEAK FIX: Clear dataset references
|
|
4538
|
+
this._filterDataSet = null;
|
|
4539
|
+
this.dataset = null;
|
|
4540
|
+
this._dataoptions = null;
|
|
4541
|
+
this._datasource = null;
|
|
4542
|
+
// MEMORY LEAK FIX: Clear validation objects
|
|
4543
|
+
if (this.fieldValidations) {
|
|
4544
|
+
try {
|
|
4545
|
+
this.fieldValidations.destroy();
|
|
4546
|
+
}
|
|
4547
|
+
catch (e) {
|
|
4548
|
+
// Silently handle cleanup errors
|
|
4549
|
+
}
|
|
4550
|
+
this.fieldValidations = null;
|
|
4551
|
+
}
|
|
4552
|
+
if (this.fieldValidations_new) {
|
|
4553
|
+
try {
|
|
4554
|
+
this.fieldValidations_new.destroy();
|
|
4555
|
+
}
|
|
4556
|
+
catch (e) {
|
|
4557
|
+
// Silently handle cleanup errors
|
|
4558
|
+
}
|
|
4559
|
+
this.fieldValidations_new = null;
|
|
4560
|
+
}
|
|
4561
|
+
this.syncValidators = [];
|
|
4562
|
+
this.asyncValidators = [];
|
|
4563
|
+
// MEMORY LEAK FIX: Clear filter control reference
|
|
4564
|
+
this.filterControl = null;
|
|
4565
|
+
// MEMORY LEAK FIX: Clear notify fields array
|
|
4566
|
+
if (this.notifyForFields) {
|
|
4567
|
+
this.notifyForFields = [];
|
|
4568
|
+
}
|
|
4569
|
+
// MEMORY LEAK FIX: Clear observe fields array
|
|
4570
|
+
if (this.observeOnFields) {
|
|
4571
|
+
this.observeOnFields = [];
|
|
4572
|
+
}
|
|
4573
|
+
// MEMORY LEAK FIX: Clear table and group references
|
|
4574
|
+
// Note: These are injected dependencies, but clearing helps GC
|
|
4575
|
+
this.table = null;
|
|
4576
|
+
this.group = null;
|
|
4577
|
+
// Call parent ngOnDestroy
|
|
4578
|
+
super.ngOnDestroy();
|
|
4579
|
+
}
|
|
4264
4580
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TableColumnDirective, deps: [{ token: i0__namespace.Injector }, { token: i2__namespace.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__namespace.ɵɵFactoryTarget.Directive }); }
|
|
4265
4581
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableColumnDirective, isStandalone: true, selector: "[wmTableColumn]", providers: [
|
|
4266
4582
|
i4.provideAsWidgetRef(TableColumnDirective)
|
|
@@ -4355,6 +4671,13 @@
|
|
|
4355
4671
|
this.config.content = this.content;
|
|
4356
4672
|
}
|
|
4357
4673
|
}
|
|
4674
|
+
ngOnDestroy() {
|
|
4675
|
+
// MEMORY LEAK FIX: Clear table and config references
|
|
4676
|
+
this.table = null;
|
|
4677
|
+
this.config = null;
|
|
4678
|
+
// Call parent ngOnDestroy (BaseComponent has cleanup)
|
|
4679
|
+
super.ngOnDestroy();
|
|
4680
|
+
}
|
|
4358
4681
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TableRowDirective, deps: [{ token: i0__namespace.Injector }, { token: TableComponent, optional: true, skipSelf: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
4359
4682
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableRowDirective, isStandalone: true, selector: "[wmTableRow]", providers: [
|
|
4360
4683
|
i4.provideAsWidgetRef(TableRowDirective)
|
|
@@ -4436,6 +4759,13 @@
|
|
|
4436
4759
|
this.populateAction();
|
|
4437
4760
|
this.table.registerRowActions(this.buttonDef);
|
|
4438
4761
|
}
|
|
4762
|
+
ngOnDestroy() {
|
|
4763
|
+
// MEMORY LEAK FIX: Clear table reference and button definition
|
|
4764
|
+
this.table = null;
|
|
4765
|
+
this.buttonDef = null;
|
|
4766
|
+
// Call parent ngOnDestroy (BaseComponent has cleanup)
|
|
4767
|
+
super.ngOnDestroy();
|
|
4768
|
+
}
|
|
4439
4769
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TableRowActionDirective, deps: [{ token: i0__namespace.Injector }, { token: TableComponent, optional: true }, { token: i4.Context, self: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
4440
4770
|
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableRowActionDirective, isStandalone: true, selector: "[wmTableRowAction]", providers: [
|
|
4441
4771
|
i4.provideAsWidgetRef(TableRowActionDirective),
|
|
@@ -51,6 +51,13 @@ export class TableActionDirective extends BaseComponent {
|
|
|
51
51
|
this.buttonDef[key] = nv;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
+
ngOnDestroy() {
|
|
55
|
+
// MEMORY LEAK FIX: Clear table and buttonDef references
|
|
56
|
+
this.table = null;
|
|
57
|
+
this.buttonDef = null;
|
|
58
|
+
// Call parent ngOnDestroy (BaseComponent has cleanup)
|
|
59
|
+
super.ngOnDestroy();
|
|
60
|
+
}
|
|
54
61
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableActionDirective, deps: [{ token: i0.Injector }, { token: i1.TableComponent, optional: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
55
62
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableActionDirective, isStandalone: true, selector: "[wmTableAction]", providers: [
|
|
56
63
|
provideAsWidgetRef(TableActionDirective)
|
|
@@ -73,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
73
80
|
}, {
|
|
74
81
|
type: Optional
|
|
75
82
|
}] }] });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL3RhYmxlL3NyYy90YWJsZS1hY3Rpb24vdGFibGUtYWN0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQXFCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7QUFFdEMsTUFBTSxhQUFhLEdBQUcsRUFBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBQyxDQUFDO0FBU3JFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO2FBQzVDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBd0J6QyxZQUFZLEdBQWEsRUFBcUIsS0FBcUIsRUFBMEMsZUFBb0I7UUFDN0gsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFERCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUVuRSxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRTtZQUN2RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUU7WUFDL0IsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUMxRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTtZQUN6QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLElBQUksRUFBRTtZQUM3QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLElBQUksRUFBRTtTQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLEdBQUcsS0FBSyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsc0RBQXNEO1FBQ3RELEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQTlFUSxvQkFBb0Isd0ZBeUJnRCxrQkFBa0I7bUdBekJ0RixvQkFBb0IsOERBSmxCO1lBQ1Asa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7U0FDM0M7OzRGQUVRLG9CQUFvQjtrQkFQaEMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDZCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixTQUFTLEVBQUU7d0JBQ1Asa0JBQWtCLHNCQUFzQjtxQkFDM0M7aUJBQ0o7OzBCQTBCK0IsUUFBUTs7MEJBQWtDLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIHByb3ZpZGVBc1dpZGdldFJlZiB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi90YWJsZS1hY3Rpb24ucHJvcHMnO1xuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtpc1VuZGVmaW5lZH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5jb25zdCBXSURHRVRfQ09ORklHID0ge3dpZGdldFR5cGU6ICd3bS10YWJsZS1hY3Rpb24nLCBob3N0Q2xhc3M6ICcnfTtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbd21UYWJsZUFjdGlvbl0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoVGFibGVBY3Rpb25EaXJlY3RpdmUpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUFjdGlvbkRpcmVjdGl2ZSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIGFjY2Vzc3JvbGVzO1xuICAgIGFjdGlvbjtcbiAgICBjYXB0aW9uO1xuICAgIGNsYXNzO1xuICAgIGRpc2FibGVkO1xuICAgIGRpc3BsYXlOYW1lO1xuICAgIGljb247XG4gICAgaWNvbmNsYXNzO1xuICAgIHBvc2l0aW9uO1xuICAgIHNob3J0Y3V0a2V5O1xuICAgIHNob3c7XG4gICAgdGFiaW5kZXg7XG4gICAgdGl0bGU7XG4gICAga2V5O1xuICAgIGh5cGVybGluaztcbiAgICB0YXJnZXQ7XG4gICAgYnV0dG9uRGVmO1xuICAgIGNvbmRpdGlvbmFsY2xhc3M7XG4gICAgY29uZGl0aW9uYWxzdHlsZTtcblxuICAgIHByaXZhdGUgX3Byb3BzSW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBAT3B0aW9uYWwoKSBwdWJsaWMgdGFibGU6IFRhYmxlQ29tcG9uZW50LCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cblxuICAgIHBvcHVsYXRlQWN0aW9uKCkge1xuICAgICAgICB0aGlzLmJ1dHRvbkRlZiA9IHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogdGhpc1snZGlzcGxheS1uYW1lJ10gfHwgdGhpcy5jYXB0aW9uIHx8ICcnLFxuICAgICAgICAgICAgc2hvdzogdGhpcy5zaG93LFxuICAgICAgICAgICAgY2xhc3M6IHRoaXMuY2xhc3MgfHwgJycsXG4gICAgICAgICAgICBpY29uY2xhc3M6IHRoaXMuaWNvbmNsYXNzIHx8ICcnLFxuICAgICAgICAgICAgdGl0bGU6IGlzVW5kZWZpbmVkKHRoaXMudGl0bGUpID8gKHRoaXNbJ2Rpc3BsYXktbmFtZSddIHx8ICcnKSA6IHRoaXMudGl0bGUsXG4gICAgICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9uLFxuICAgICAgICAgICAgYWNjZXNzcm9sZXM6IHRoaXMuYWNjZXNzcm9sZXMsXG4gICAgICAgICAgICBzaG9ydGN1dGtleTogdGhpcy5zaG9ydGN1dGtleSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgICAgICAgdGFiaW5kZXg6IHRoaXMudGFiaW5kZXgsXG4gICAgICAgICAgICBpY29uOiB0aGlzLmljb24sXG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHdpZGdldFR5cGU6IHRoaXNbJ3dpZGdldC10eXBlJ10sXG4gICAgICAgICAgICBoeXBlcmxpbms6IHRoaXMuaHlwZXJsaW5rLFxuICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLnRhcmdldCB8fCAnJyxcbiAgICAgICAgICAgIGNvbmRpdGlvbmFsY2xhc3M6IHRoaXMuY29uZGl0aW9uYWxjbGFzcyB8fCAnJyxcbiAgICAgICAgICAgIGNvbmRpdGlvbmFsc3R5bGU6IHRoaXMuY29uZGl0aW9uYWxzdHlsZSB8fCB7fVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9wcm9wc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZUFjdGlvbigpO1xuICAgICAgICB0aGlzLnRhYmxlLnJlZ2lzdGVyQWN0aW9ucyh0aGlzLmJ1dHRvbkRlZik7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52KSB7XG4gICAgICAgIGlmICghdGhpcy5fcHJvcHNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ2Rpc3BsYXktbmFtZScpIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uRGVmLmRpc3BsYXlOYW1lID0gbnY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkRlZltrZXldID0gbnY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciB0YWJsZSBhbmQgYnV0dG9uRGVmIHJlZmVyZW5jZXNcbiAgICAgICAgdGhpcy50YWJsZSA9IG51bGw7XG4gICAgICAgIHRoaXMuYnV0dG9uRGVmID0gbnVsbDtcblxuICAgICAgICAvLyBDYWxsIHBhcmVudCBuZ09uRGVzdHJveSAoQmFzZUNvbXBvbmVudCBoYXMgY2xlYW51cClcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
|