@wavemaker/app-ng-runtime 11.14.1-rc.6310 → 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 +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
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, Injector, OnInit } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { Observable, Subject } from 'rxjs';
|
|
3
3
|
import { App } from '@wm/core';
|
|
4
4
|
import { ListComponent } from './list.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class ListItemDirective implements OnInit, AfterViewInit {
|
|
6
|
+
export declare class ListItemDirective implements OnInit, AfterViewInit, OnDestroy {
|
|
7
7
|
private inj;
|
|
8
8
|
private app;
|
|
9
9
|
item: any;
|
|
@@ -34,9 +34,14 @@ export declare class ListItemDirective implements OnInit, AfterViewInit {
|
|
|
34
34
|
private registerWatch;
|
|
35
35
|
private itemClassWatcher;
|
|
36
36
|
private disableItemWatcher;
|
|
37
|
+
private boundEditHandler;
|
|
38
|
+
private boundDeleteHandler;
|
|
39
|
+
private boundMouseEnterHandler;
|
|
40
|
+
private boundMouseLeaveHandler;
|
|
37
41
|
private setUpCUDHandlers;
|
|
38
42
|
ngOnInit(): void;
|
|
39
43
|
ngAfterViewInit(): void;
|
|
44
|
+
ngOnDestroy(): void;
|
|
40
45
|
static ɵfac: i0.ɵɵFactoryDeclaration<ListItemDirective, never>;
|
|
41
46
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ListItemDirective, "[wmListItem]", ["listItemRef"], { "wmListItem": { "alias": "wmListItem"; "required": false; }; }, {}, never, never, true, never>;
|
|
42
47
|
}
|
|
@@ -57,6 +57,7 @@ export declare class ListComponent extends StylableComponent implements OnInit,
|
|
|
57
57
|
titleId: string;
|
|
58
58
|
allowpagesizechange: boolean;
|
|
59
59
|
pagesizeoptions: string;
|
|
60
|
+
private prevPagesizeoptions;
|
|
60
61
|
updatedPageSize: any;
|
|
61
62
|
actualPageSize: any;
|
|
62
63
|
_isDependent: any;
|
|
@@ -92,6 +93,8 @@ export declare class ListComponent extends StylableComponent implements OnInit,
|
|
|
92
93
|
private ariaText;
|
|
93
94
|
private _pageLoad;
|
|
94
95
|
private _selectedItemsExist;
|
|
96
|
+
private listItemsChangesSubscription;
|
|
97
|
+
private boundClickHandler;
|
|
95
98
|
private touching;
|
|
96
99
|
private touched;
|
|
97
100
|
constructor(inj: Injector, cdRef: ChangeDetectorRef, datePipe: ToDatePipe, app: App, appDefaults: AppDefaults, ngZone: NgZone, binditemclass: string, binddisableitem: string, binddataset: string, binddatasource: string, mouseEnterCB: string, mouseLeaveCB: string, statePersistence: StatePersistence, paginationService: PaginationService, explicitContext: any);
|
|
@@ -124,6 +127,9 @@ export declare class ListComponent extends StylableComponent implements OnInit,
|
|
|
124
127
|
getActualPageSize(): any;
|
|
125
128
|
onPropertyChange(key: string, nv: any, ov?: any): void;
|
|
126
129
|
setDefaultPageSize(nv: any): void;
|
|
130
|
+
isPageSizeOptionsChanged(): boolean;
|
|
131
|
+
selectPageSize(pagesize: number): void;
|
|
132
|
+
sanitizeCommaSeparatedIntegers(input: string): string;
|
|
127
133
|
onItemClick(evt: any, $listItem: ListItemDirective): void;
|
|
128
134
|
clear(): void;
|
|
129
135
|
/**
|
|
@@ -208,6 +214,7 @@ export declare class ListComponent extends StylableComponent implements OnInit,
|
|
|
208
214
|
private beforePaginationChange;
|
|
209
215
|
trackByFn($index: number): number;
|
|
210
216
|
private subscribeToPullToRefresh;
|
|
217
|
+
private boundAddItemHandler;
|
|
211
218
|
private setUpCUDHandlers;
|
|
212
219
|
static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, [null, null, null, null, null, null, { attribute: "itemclass.bind"; }, { attribute: "disableitem.bind"; }, { attribute: "dataset.bind"; }, { attribute: "datasource.bind"; }, { attribute: "mouseenter.event"; }, { attribute: "mouseleave.event"; }, null, null, { optional: true; }]>;
|
|
213
220
|
static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "div[wmList]", never, {}, {}, ["listTemplate", "listLeftActionTemplate", "listRightActionTemplate", "btnComponents"], never, true, never>;
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
if (this.table) {
|
|
58
58
|
this.table._liveTableParent = this;
|
|
59
59
|
this.table.datagridElement.datatable('option', this.tableOptions);
|
|
60
|
-
this.table.selectedItemChange$
|
|
60
|
+
this.selectedItemChangeSubscription = this.table.selectedItemChange$
|
|
61
61
|
.pipe(operators.debounceTime(250))
|
|
62
62
|
.subscribe(this.onSelectedItemChange.bind(this));
|
|
63
63
|
if (!this.isLayoutDialog && !this.form) {
|
|
@@ -230,6 +230,18 @@
|
|
|
230
230
|
i1.triggerFn(this.$queue.pop());
|
|
231
231
|
});
|
|
232
232
|
}
|
|
233
|
+
ngOnDestroy() {
|
|
234
|
+
// MEMORY LEAK FIX: Unsubscribe from selectedItemChange$
|
|
235
|
+
if (this.selectedItemChangeSubscription) {
|
|
236
|
+
this.selectedItemChangeSubscription.unsubscribe();
|
|
237
|
+
this.selectedItemChangeSubscription = null;
|
|
238
|
+
}
|
|
239
|
+
// MEMORY LEAK FIX: Clear ContentChild reference
|
|
240
|
+
this.table = null;
|
|
241
|
+
// MEMORY LEAK FIX: Clear queue array
|
|
242
|
+
this.$queue = [];
|
|
243
|
+
super.ngOnDestroy();
|
|
244
|
+
}
|
|
233
245
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: LiveTableComponent, deps: [{ token: i0__namespace.Injector }, { token: i0__namespace.ElementRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace.AbstractDialogService }, { token: i1__namespace.App }, { token: 'formlayout', attribute: true }, { token: 'dialogid', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
234
246
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LiveTableComponent, isStandalone: true, selector: "[wmLiveTable]", providers: [
|
|
235
247
|
base.provideAsWidgetRef(LiveTableComponent)
|
|
@@ -30,7 +30,7 @@ export class LiveTableComponent extends StylableComponent {
|
|
|
30
30
|
if (this.table) {
|
|
31
31
|
this.table._liveTableParent = this;
|
|
32
32
|
this.table.datagridElement.datatable('option', this.tableOptions);
|
|
33
|
-
this.table.selectedItemChange$
|
|
33
|
+
this.selectedItemChangeSubscription = this.table.selectedItemChange$
|
|
34
34
|
.pipe(debounceTime(250))
|
|
35
35
|
.subscribe(this.onSelectedItemChange.bind(this));
|
|
36
36
|
if (!this.isLayoutDialog && !this.form) {
|
|
@@ -203,6 +203,18 @@ export class LiveTableComponent extends StylableComponent {
|
|
|
203
203
|
triggerFn(this.$queue.pop());
|
|
204
204
|
});
|
|
205
205
|
}
|
|
206
|
+
ngOnDestroy() {
|
|
207
|
+
// MEMORY LEAK FIX: Unsubscribe from selectedItemChange$
|
|
208
|
+
if (this.selectedItemChangeSubscription) {
|
|
209
|
+
this.selectedItemChangeSubscription.unsubscribe();
|
|
210
|
+
this.selectedItemChangeSubscription = null;
|
|
211
|
+
}
|
|
212
|
+
// MEMORY LEAK FIX: Clear ContentChild reference
|
|
213
|
+
this.table = null;
|
|
214
|
+
// MEMORY LEAK FIX: Clear queue array
|
|
215
|
+
this.$queue = [];
|
|
216
|
+
super.ngOnDestroy();
|
|
217
|
+
}
|
|
206
218
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LiveTableComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AbstractDialogService }, { token: i1.App }, { token: 'formlayout', attribute: true }, { token: 'dialogid', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
207
219
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LiveTableComponent, isStandalone: true, selector: "[wmLiveTable]", providers: [
|
|
208
220
|
provideAsWidgetRef(LiveTableComponent)
|
|
@@ -228,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
228
240
|
type: ContentChild,
|
|
229
241
|
args: [TableComponent]
|
|
230
242
|
}] } });
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9saXZlLXRhYmxlL3NyYy9saXZlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2xpdmUtdGFibGUvc3JjL2xpdmUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixRQUFRLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxVQUFVLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7QUFJakQsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDO0FBQ25DLE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLENBQUM7QUFVM0UsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjthQUM5QyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQWN6QyxZQUNJLEdBQWEsRUFDYixLQUFpQixFQUNqQixHQUFzQixFQUNk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LGtCQUFrQixDQUFDLGtCQUFrQixDQUFDO1NBQ3pDLDZEQUlhLGNBQWMsdUVDbkNoQywyQkFBeUI7OzRGRGlDWixrQkFBa0I7a0JBUjlCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGVBQWUsYUFFZDt3QkFDUCxrQkFBa0Isb0JBQW9CO3FCQUN6Qzs7MEJBdUJJLFNBQVM7MkJBQUMsWUFBWTs7MEJBQ3RCLFNBQVM7MkJBQUMsVUFBVTs7MEJBQ3BCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRO3lDQXJCWCxLQUFLO3NCQUFsQyxZQUFZO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7ZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7JGFwcERpZ2VzdCwgQWJzdHJhY3REaWFsb2dTZXJ2aWNlLCBBcHAsIGdldENsb25lZE9iamVjdCwgaXNEZWZpbmVkLCB0cmlnZ2VyRm59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7cHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7VGFibGVDb21wb25lbnR9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RhdGEvdGFibGUnO1xuXG5pbXBvcnQge3JlZ2lzdGVyUHJvcHN9IGZyb20gJy4vbGl2ZS10YWJsZS5wcm9wcyc7XG5cbmRlY2xhcmUgdmFyICQ6IGFueTtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWxpdmVncmlkJztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLWxpdmV0YWJsZScsIGhvc3RDbGFzczogREVGQVVMVF9DTFN9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dtTGl2ZVRhYmxlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpdmUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoTGl2ZVRhYmxlQ29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTGl2ZVRhYmxlQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuICAgIEBDb250ZW50Q2hpbGQoVGFibGVDb21wb25lbnQpIHRhYmxlOiBUYWJsZUNvbXBvbmVudDtcblxuICAgIGZvcm07XG4gICAgaXNMYXlvdXREaWFsb2c6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIGRpYWxvZ0lkO1xuICAgIHByaXZhdGUgJHF1ZXVlID0gW107XG5cbiAgICBwcml2YXRlIHRhYmxlT3B0aW9uczogYW55ID0ge1xuICAgICAgICAnbXVsdGlzZWxlY3QnOiBmYWxzZSxcbiAgICAgICAgJ3NldEdyaWRFZGl0TW9kZSc6ICcnXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Zvcm1sYXlvdXQnKSBsYXlvdXRUeXBlOiBzdHJpbmcsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2RpYWxvZ2lkJykgZGlhbG9nSWQ6IHN0cmluZyxcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgICAgIGlmIChsYXlvdXRUeXBlID09PSAnZGlhbG9nJykge1xuICAgICAgICAgICAgdGhpcy5pc0xheW91dERpYWxvZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0lkID0gZGlhbG9nSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy50YWJsZSkge1xuICAgICAgICAgICAgdGhpcy50YWJsZS5fbGl2ZVRhYmxlUGFyZW50ID0gdGhpcztcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YWdyaWRFbGVtZW50LmRhdGF0YWJsZSgnb3B0aW9uJywgdGhpcy50YWJsZU9wdGlvbnMpO1xuXG4gICAgICAgICAgICB0aGlzLnRhYmxlLnNlbGVjdGVkSXRlbUNoYW5nZSRcbiAgICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjUwKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMub25TZWxlY3RlZEl0ZW1DaGFuZ2UuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc0xheW91dERpYWxvZyAmJiAhdGhpcy5mb3JtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhZ3JpZEVsZW1lbnQuZGF0YXRhYmxlKCdvcHRpb24nLCB7XG4gICAgICAgICAgICAgICAgICAgICdiZWZvcmVSb3dVcGRhdGUnIDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3JNZXNzYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICdiZWZvcmVSb3dEZWxldGUnIDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3JNZXNzYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICdiZWZvcmVSb3dJbnNlcnQnIDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3JNZXNzYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5EaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nSWQsIHRoaXMudmlld1BhcmVudCk7XG4gICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICB9XG5cbiAgICBjbG9zZURpYWxvZygpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNsb3NlKHRoaXMuZGlhbG9nSWQsIHRoaXMudmlld1BhcmVudCk7XG4gICAgfVxuXG4gICAgZm9jdXNGaXJzdElucHV0KCkge1xuICAgICAgICBjb25zdCAkZmlyc3RJbnB1dCA9ICQodGhpcy5mb3JtLiRlbGVtZW50KS5maW5kKCdpbnB1dCcpLmZpcnN0KCk7XG4gICAgICAgICRmaXJzdElucHV0LmZvY3VzKCk7XG4gICAgICAgICRmaXJzdElucHV0LnNlbGVjdCgpO1xuICAgIH1cblxuICAgIG9uRGlhbG9nT3BlbihhY3Rpb24pIHtcbiAgICAgICAgY29uc3QgYXR0cnM6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSB0aGlzPy5mb3JtPy5mb3JtRmllbGRzPy5bMF0/LiRhdHRycyA/PyBuZXcgTWFwKCk7XG4gICAgICAgIGNvbnN0IGhhc0RlZmF1bHQgPSBbXCJkZWZhdWx0dmFsdWVcIiwgXCJkZWZhdWx0dmFsdWUuYmluZFwiXS5zb21lKGtleSA9PiBhdHRycy5oYXMoa2V5KSk7XG4gICAgICAgIGlmIChhY3Rpb24gPT0gJ3VwZGF0ZSd8fCEhaGFzRGVmYXVsdCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RGb3JtRmllbGQgPSAkKFwiZm9ybSBbd21mb3JtZmllbGRdXCIpLmZpcnN0KCk7XG4gICAgICAgICAgICBpZiAoZmlyc3RGb3JtRmllbGQuZmluZChcImRpdlt3aWRnZXQ9J2F1dG9jb21wbGV0ZSddXCIpLmxlbmd0aCAhPSAxICYmIHRoaXM/LmZvcm0/LmZvcm1GaWVsZHM/LlswXT8ud2lkZ2V0dHlwZSAhPSAnYXV0b2NvbXBsZXRlJykgeyAvLyBwcmV2ZW50IGZvY3VzaW5nIGZpcnN0IGZvcm0gZmllbGQgaWYgd2lkZ2V0IGlzICBhdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzRmlyc3RJbnB1dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0ZpcnN0SW5wdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEZvcm1EYXRhKHZhbCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybS5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldFdpZGdldCgpLmZvcm1kYXRhID0gdmFsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWRkTmV3Um93KCkge1xuICAgICAgICB0aGlzLmZvcm0uaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0Rm9ybURhdGEoJycpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5uZXcoKTtcblxuICAgICAgICBpZiAodGhpcy5pc0xheW91dERpYWxvZykge1xuICAgICAgICAgICAgdGhpcy5vbkRpYWxvZ09wZW4oJ2FkZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkTmV3Um93KCkge1xuICAgICAgICBpZiAodGhpcy5pc0xheW91dERpYWxvZykge1xuICAgICAgICAgICAgdGhpcy5vcGVuRGlhbG9nKCk7XG4gICAgICAgICAgICB0aGlzLiRxdWV1ZS5wdXNoKHRoaXMuX2FkZE5ld1Jvdy5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgdGhpcy5fYWRkTmV3Um93KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlUm93KHJvdywgZXZlbnROYW1lKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybURhdGEocm93KTtcbiAgICAgICAgdGhpcy5mb3JtLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZvcm0uZWRpdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTGF5b3V0RGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uaXNVcGRhdGVNb2RlID0gKGV2ZW50TmFtZSA9PT0gJ2RibGNsaWNrJykgPyB0aGlzLmZvcm0udXBkYXRlTW9kZSA6IHRydWU7XG4gICAgICAgICAgICB0aGlzLm9uRGlhbG9nT3BlbigndXBkYXRlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVSb3cocm93LCBldmVudE5hbWUpIHtcblxuICAgICAgICBpZiAodGhpcy5pc0xheW91dERpYWxvZykge1xuICAgICAgICAgICAgdGhpcy5vcGVuRGlhbG9nKCk7XG4gICAgICAgICAgICB0aGlzLiRxdWV1ZS5wdXNoKHRoaXMuX3VwZGF0ZVJvdy5iaW5kKHRoaXMsIHJvdywgZXZlbnROYW1lKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl91cGRhdGVSb3cocm93LCBldmVudE5hbWUpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0ZWRJdGVtQ2hhbmdlKG5ld1ZhbHVlKSB7XG4gICAgICAgIGxldCByb3dEYXRhO1xuICAgICAgICBpZiAoIXRoaXMuZm9ybSB8fCAhdGhpcy50YWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5ld1ZhbHVlICYmIG5ld1ZhbHVlLmxlbmd0aCA+IDAgJiYgIXRoaXMuZm9ybS5pc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvKlVwZGF0ZSB0aGUgcm93ZGF0YSBvZiBvbmx5IHRoYXQgZ3JpZCBmb3JtIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpYyBncmlkIG9uIHdoaWNoIHJvdyBzZWxlY3Rpb24gaXMgYmVpbmcgcGVyZm9ybWVkLi4uXG4gICAgICAgICAqIFNpbmNlIGJvdGggdGhlIGdyaWQgJiBncmlkZm9ybSBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIFwicGFyZW50Z3JpZFwiLCBtYXRjaCB0aGUgc2FtZSovXG4gICAgICAgIGlmIChuZXdWYWx1ZSAmJiBuZXdWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5tdWx0aXNlbGVjdCkge1xuICAgICAgICAgICAgICAgIHJvd0RhdGEgPSBuZXdWYWx1ZVswXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcm93RGF0YSA9IG5ld1ZhbHVlW25ld1ZhbHVlLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNldEZvcm1EYXRhKGdldENsb25lZE9iamVjdChyb3dEYXRhKSk7XG4gICAgICAgICAgICAvKklmIHRoZSBmb3JtIGlzIGFscmVhZHkgaW4gdXBkYXRlIG1vZGUsIGNhbGwgdGhlIGZvcm0gdXBkYXRlIGZ1bmN0aW9uKi9cbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0uaXNVcGRhdGVNb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmVkaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNldEZvcm1EYXRhKCcnKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jbGVhckRhdGEoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2FuY2VsKCkge1xuICAgICAgICB0aGlzLmZvcm0uaXNVcGRhdGVNb2RlID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmlzTGF5b3V0RGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlc3VsdChvcGVyYXRpb24sIHJlc3BvbnNlLCBuZXdGb3JtLCB1cGRhdGVNb2RlKSB7XG4gICAgICAgIHRoaXMuZm9ybS5pc1VwZGF0ZU1vZGUgPSBpc0RlZmluZWQodXBkYXRlTW9kZSkgPyB1cGRhdGVNb2RlIDogbmV3Rm9ybSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2luc2VydCc6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuZ3JpZE9wdGlvbnMuaXNOYXZUeXBlU2Nyb2xsT3JPbmRlbWFuZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuaXNOZXdSb3dJbnNlcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChuZXdGb3JtKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qaWYgbmV3IGZvcm0gaXMgdG8gYmUgc2hvd24gYWZ0ZXIgaW5zZXJ0LCBza2lwIHRoZSBoaWdobGlnaHQgb2YgdGhlIHJvdyovXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuZ3JpZGZpcnN0cm93c2VsZWN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuaW5pdGlhdGVTZWxlY3RJdGVtKHRoaXMudGFibGUuZ2V0TmF2aWdhdGlvblRhcmdldEJ5U29ydEluZm8oKSwgcmVzcG9uc2UsIHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8qVGhlIG5ldyByb3cgd291bGQgYWx3YXlzIGJlIGluc2VydGVkIGF0IHRoZSBlbmQgb2YgYWxsIGV4aXN0aW5nIHJlY29yZHMuIEhlbmNlIG5hdmlnYXRlIHRvIHRoZSBsYXN0IHBhZ2UgYW5kIGhpZ2hsaWdodCB0aGUgaW5zZXJ0ZWQgcm93LiovXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuaW5pdGlhdGVTZWxlY3RJdGVtKHRoaXMudGFibGUuZ2V0TmF2aWdhdGlvblRhcmdldEJ5U29ydEluZm8oKSwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VwZGF0ZSc6XG4gICAgICAgICAgICAgICAgLypUaGUgdXBkYXRlZCByb3cgd291bGQgYmUgZm91bmQgaW4gdGhlIGN1cnJlbnQgcGFnZSBpdHNlbGYuIEhlbmNlIHNpbXBseSBoaWdobGlnaHQgdGhlIHJvdyBpbiB0aGUgY3VycmVudCBwYWdlLiovXG4gICAgICAgICAgICAgICAgaWYgKG5ld0Zvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5ncmlkZmlyc3Ryb3dzZWxlY3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pbml0aWF0ZVNlbGVjdEl0ZW0oJ2N1cnJlbnQnLCByZXNwb25zZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pbml0aWF0ZVNlbGVjdEl0ZW0oJ2N1cnJlbnQnLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLm9uUmVjb3JkRGVsZXRlKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50YWJsZS51cGRhdGVWYXJpYWJsZSgpO1xuICAgICAgICBpZiAodGhpcy5pc0xheW91dERpYWxvZykge1xuICAgICAgICAgICAgLyppZiBuZXcgZm9ybSBpcyB0byBiZSBzaG93biBhZnRlciB1cGRhdGUgb3IgaW5zZXJ0LCBkb24ndCBjbG9zZSB0aGUgZGlhbG9nKi9cbiAgICAgICAgICAgIGlmIChuZXdGb3JtKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJ2luc2VydCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLm5ldygpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZWRpdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd0Vycm9yTWVzc2FnZSgpIHtcbiAgICAgICAgdGhpcy5hcHAubm90aWZ5QXBwKHRoaXMuYXBwTG9jYWxlLkxBQkVMX0FDQ0VTU19ERU5JRUQsICdlcnJvcicpO1xuICAgIH1cblxuICAgIC8vIEluIGRpYWxvZyBtb2RlLCBvbiBmb3JtIHJlbmRlciBjYWxsIHRoZSBxdWV1ZWQgZnVuY3Rpb25zXG4gICAgb25Gb3JtUmVhZHkoZm9ybSkge1xuICAgICAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRyaWdnZXJGbih0aGlzLiRxdWV1ZS5wb3AoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD4iXX0=
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9saXZlLXRhYmxlL3NyYy9saXZlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2xpdmUtdGFibGUvc3JjL2xpdmUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFFUixRQUFRLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE9BQU8sRUFBQyxVQUFVLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7QUFJakQsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDO0FBQ25DLE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLENBQUM7QUFVM0UsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjthQUM5QyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQWV6QyxZQUNJLEdBQWEsRUFDYixLQUFpQixFQUNqQixHQUFzQixFQUNk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LENBQUM7WUFDdEMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUM7UUFDL0MsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFakIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBclBRLGtCQUFrQiw2SkFzQlosWUFBWSw4QkFDWixVQUFVLDhCQUNiLGtCQUFrQjttR0F4QnJCLGtCQUFrQiw0REFKaEI7WUFDUCxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQztTQUN6Qyw2REFJYSxjQUFjLHVFQ3JDaEMsMkJBQXlCOzs0RkRtQ1osa0JBQWtCO2tCQVI5QixTQUFTO2lDQUNNLElBQUksWUFDTixlQUFlLGFBRWQ7d0JBQ1Asa0JBQWtCLG9CQUFvQjtxQkFDekM7OzBCQXdCSSxTQUFTOzJCQUFDLFlBQVk7OzBCQUN0QixTQUFTOzJCQUFDLFVBQVU7OzBCQUNwQixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTt5Q0F0QlgsS0FBSztzQkFBbEMsWUFBWTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHskYXBwRGlnZXN0LCBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsIEFwcCwgZ2V0Q2xvbmVkT2JqZWN0LCBpc0RlZmluZWQsIHRyaWdnZXJGbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50LCBzdHlsZXJ9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHtUYWJsZUNvbXBvbmVudH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGF0YS90YWJsZSc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9saXZlLXRhYmxlLnByb3BzJztcblxuZGVjbGFyZSB2YXIgJDogYW55O1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtbGl2ZWdyaWQnO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tbGl2ZXRhYmxlJywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbd21MaXZlVGFibGVdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGl2ZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihMaXZlVGFibGVDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaXZlVGFibGVDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICBAQ29udGVudENoaWxkKFRhYmxlQ29tcG9uZW50KSB0YWJsZTogVGFibGVDb21wb25lbnQ7XG5cbiAgICBmb3JtO1xuICAgIGlzTGF5b3V0RGlhbG9nOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBkaWFsb2dJZDtcbiAgICBwcml2YXRlICRxdWV1ZSA9IFtdO1xuICAgIHByaXZhdGUgc2VsZWN0ZWRJdGVtQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIHRhYmxlT3B0aW9uczogYW55ID0ge1xuICAgICAgICAnbXVsdGlzZWxlY3QnOiBmYWxzZSxcbiAgICAgICAgJ3NldEdyaWRFZGl0TW9kZSc6ICcnXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Zvcm1sYXlvdXQnKSBsYXlvdXRUeXBlOiBzdHJpbmcsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2RpYWxvZ2lkJykgZGlhbG9nSWQ6IHN0cmluZyxcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgICAgIGlmIChsYXlvdXRUeXBlID09PSAnZGlhbG9nJykge1xuICAgICAgICAgICAgdGhpcy5pc0xheW91dERpYWxvZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0lkID0gZGlhbG9nSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy50YWJsZSkge1xuICAgICAgICAgICAgdGhpcy50YWJsZS5fbGl2ZVRhYmxlUGFyZW50ID0gdGhpcztcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YWdyaWRFbGVtZW50LmRhdGF0YWJsZSgnb3B0aW9uJywgdGhpcy50YWJsZU9wdGlvbnMpO1xuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbUNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMudGFibGUuc2VsZWN0ZWRJdGVtQ2hhbmdlJFxuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyNTApKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5vblNlbGVjdGVkSXRlbUNoYW5nZS5iaW5kKHRoaXMpKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzTGF5b3V0RGlhbG9nICYmICF0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmRhdGFncmlkRWxlbWVudC5kYXRhdGFibGUoJ29wdGlvbicsIHtcbiAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZVJvd1VwZGF0ZScgOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvck1lc3NhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZVJvd0RlbGV0ZScgOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvck1lc3NhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZVJvd0luc2VydCcgOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvck1lc3NhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlbkRpYWxvZygpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4odGhpcy5kaWFsb2dJZCwgdGhpcy52aWV3UGFyZW50KTtcbiAgICAgICAgJGFwcERpZ2VzdCgpO1xuICAgIH1cblxuICAgIGNsb3NlRGlhbG9nKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2xvc2UodGhpcy5kaWFsb2dJZCwgdGhpcy52aWV3UGFyZW50KTtcbiAgICB9XG5cbiAgICBmb2N1c0ZpcnN0SW5wdXQoKSB7XG4gICAgICAgIGNvbnN0ICRmaXJzdElucHV0ID0gJCh0aGlzLmZvcm0uJGVsZW1lbnQpLmZpbmQoJ2lucHV0JykuZmlyc3QoKTtcbiAgICAgICAgJGZpcnN0SW5wdXQuZm9jdXMoKTtcbiAgICAgICAgJGZpcnN0SW5wdXQuc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgb25EaWFsb2dPcGVuKGFjdGlvbikge1xuICAgICAgICBjb25zdCBhdHRyczogTWFwPHN0cmluZywgc3RyaW5nPiA9IHRoaXM/LmZvcm0/LmZvcm1GaWVsZHM/LlswXT8uJGF0dHJzID8/IG5ldyBNYXAoKTtcbiAgICAgICAgY29uc3QgaGFzRGVmYXVsdCA9IFtcImRlZmF1bHR2YWx1ZVwiLCBcImRlZmF1bHR2YWx1ZS5iaW5kXCJdLnNvbWUoa2V5ID0+IGF0dHJzLmhhcyhrZXkpKTtcbiAgICAgICAgaWYgKGFjdGlvbiA9PSAndXBkYXRlJ3x8ISFoYXNEZWZhdWx0KSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdEZvcm1GaWVsZCA9ICQoXCJmb3JtIFt3bWZvcm1maWVsZF1cIikuZmlyc3QoKTtcbiAgICAgICAgICAgIGlmIChmaXJzdEZvcm1GaWVsZC5maW5kKFwiZGl2W3dpZGdldD0nYXV0b2NvbXBsZXRlJ11cIikubGVuZ3RoICE9IDEgJiYgdGhpcz8uZm9ybT8uZm9ybUZpZWxkcz8uWzBdPy53aWRnZXR0eXBlICE9ICdhdXRvY29tcGxldGUnKSB7IC8vIHByZXZlbnQgZm9jdXNpbmcgZmlyc3QgZm9ybSBmaWVsZCBpZiB3aWRnZXQgaXMgIGF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNGaXJzdElucHV0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzRmlyc3RJbnB1dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0Rm9ybURhdGEodmFsKSB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0V2lkZ2V0KCkuZm9ybWRhdGEgPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9hZGROZXdSb3coKSB7XG4gICAgICAgIHRoaXMuZm9ybS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRGF0YSgnJyk7XG5cbiAgICAgICAgdGhpcy5mb3JtLm5ldygpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTGF5b3V0RGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLm9uRGlhbG9nT3BlbignYWRkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGROZXdSb3coKSB7XG4gICAgICAgIGlmICh0aGlzLmlzTGF5b3V0RGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5EaWFsb2coKTtcbiAgICAgICAgICAgIHRoaXMuJHF1ZXVlLnB1c2godGhpcy5fYWRkTmV3Um93LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICB0aGlzLl9hZGROZXdSb3coKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVSb3cocm93LCBldmVudE5hbWUpIHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRGF0YShyb3cpO1xuICAgICAgICB0aGlzLmZvcm0uaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZm9ybS5lZGl0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMYXlvdXREaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pc1VwZGF0ZU1vZGUgPSAoZXZlbnROYW1lID09PSAnZGJsY2xpY2snKSA/IHRoaXMuZm9ybS51cGRhdGVNb2RlIDogdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMub25EaWFsb2dPcGVuKCd1cGRhdGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVJvdyhyb3csIGV2ZW50TmFtZSkge1xuXG4gICAgICAgIGlmICh0aGlzLmlzTGF5b3V0RGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5EaWFsb2coKTtcbiAgICAgICAgICAgIHRoaXMuJHF1ZXVlLnB1c2godGhpcy5fdXBkYXRlUm93LmJpbmQodGhpcywgcm93LCBldmVudE5hbWUpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3VwZGF0ZVJvdyhyb3csIGV2ZW50TmFtZSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RlZEl0ZW1DaGFuZ2UobmV3VmFsdWUpIHtcbiAgICAgICAgbGV0IHJvd0RhdGE7XG4gICAgICAgIGlmICghdGhpcy5mb3JtIHx8ICF0aGlzLnRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV3VmFsdWUgJiYgbmV3VmFsdWUubGVuZ3RoID4gMCAmJiAhdGhpcy5mb3JtLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qVXBkYXRlIHRoZSByb3dkYXRhIG9mIG9ubHkgdGhhdCBncmlkIGZvcm0gdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmljIGdyaWQgb24gd2hpY2ggcm93IHNlbGVjdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQuLi5cbiAgICAgICAgICogU2luY2UgYm90aCB0aGUgZ3JpZCAmIGdyaWRmb3JtIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgXCJwYXJlbnRncmlkXCIsIG1hdGNoIHRoZSBzYW1lKi9cbiAgICAgICAgaWYgKG5ld1ZhbHVlICYmIG5ld1ZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLm11bHRpc2VsZWN0KSB7XG4gICAgICAgICAgICAgICAgcm93RGF0YSA9IG5ld1ZhbHVlWzBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByb3dEYXRhID0gbmV3VmFsdWVbbmV3VmFsdWUubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybURhdGEoZ2V0Q2xvbmVkT2JqZWN0KHJvd0RhdGEpKTtcbiAgICAgICAgICAgIC8qSWYgdGhlIGZvcm0gaXMgYWxyZWFkeSBpbiB1cGRhdGUgbW9kZSwgY2FsbCB0aGUgZm9ybSB1cGRhdGUgZnVuY3Rpb24qL1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybS5pc1VwZGF0ZU1vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZWRpdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybURhdGEoJycpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLmNsZWFyRGF0YSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuZm9ybS5pc1VwZGF0ZU1vZGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaXNMYXlvdXREaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVzdWx0KG9wZXJhdGlvbiwgcmVzcG9uc2UsIG5ld0Zvcm0sIHVwZGF0ZU1vZGUpIHtcbiAgICAgICAgdGhpcy5mb3JtLmlzVXBkYXRlTW9kZSA9IGlzRGVmaW5lZCh1cGRhdGVNb2RlKSA/IHVwZGF0ZU1vZGUgOiBuZXdGb3JtID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICBzd2l0Y2ggKG9wZXJhdGlvbikge1xuICAgICAgICAgICAgY2FzZSAnaW5zZXJ0JzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YWJsZS5ncmlkT3B0aW9ucy5pc05hdlR5cGVTY3JvbGxPck9uZGVtYW5kKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pc05ld1Jvd0luc2VydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5ld0Zvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgLyppZiBuZXcgZm9ybSBpcyB0byBiZSBzaG93biBhZnRlciBpbnNlcnQsIHNraXAgdGhlIGhpZ2hsaWdodCBvZiB0aGUgcm93Ki9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5ncmlkZmlyc3Ryb3dzZWxlY3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pbml0aWF0ZVNlbGVjdEl0ZW0odGhpcy50YWJsZS5nZXROYXZpZ2F0aW9uVGFyZ2V0QnlTb3J0SW5mbygpLCByZXNwb25zZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLypUaGUgbmV3IHJvdyB3b3VsZCBhbHdheXMgYmUgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiBhbGwgZXhpc3RpbmcgcmVjb3Jkcy4gSGVuY2UgbmF2aWdhdGUgdG8gdGhlIGxhc3QgcGFnZSBhbmQgaGlnaGxpZ2h0IHRoZSBpbnNlcnRlZCByb3cuKi9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pbml0aWF0ZVNlbGVjdEl0ZW0odGhpcy50YWJsZS5nZXROYXZpZ2F0aW9uVGFyZ2V0QnlTb3J0SW5mbygpLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndXBkYXRlJzpcbiAgICAgICAgICAgICAgICAvKlRoZSB1cGRhdGVkIHJvdyB3b3VsZCBiZSBmb3VuZCBpbiB0aGUgY3VycmVudCBwYWdlIGl0c2VsZi4gSGVuY2Ugc2ltcGx5IGhpZ2hsaWdodCB0aGUgcm93IGluIHRoZSBjdXJyZW50IHBhZ2UuKi9cbiAgICAgICAgICAgICAgICBpZiAobmV3Rm9ybSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmdyaWRmaXJzdHJvd3NlbGVjdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmluaXRpYXRlU2VsZWN0SXRlbSgnY3VycmVudCcsIHJlc3BvbnNlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmluaXRpYXRlU2VsZWN0SXRlbSgnY3VycmVudCcsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUub25SZWNvcmREZWxldGUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRhYmxlLnVwZGF0ZVZhcmlhYmxlKCk7XG4gICAgICAgIGlmICh0aGlzLmlzTGF5b3V0RGlhbG9nKSB7XG4gICAgICAgICAgICAvKmlmIG5ldyBmb3JtIGlzIHRvIGJlIHNob3duIGFmdGVyIHVwZGF0ZSBvciBpbnNlcnQsIGRvbid0IGNsb3NlIHRoZSBkaWFsb2cqL1xuICAgICAgICAgICAgaWYgKG5ld0Zvcm0pIHtcbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0aW9uID09PSAnaW5zZXJ0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ubmV3KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5lZGl0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93RXJyb3JNZXNzYWdlKCkge1xuICAgICAgICB0aGlzLmFwcC5ub3RpZnlBcHAodGhpcy5hcHBMb2NhbGUuTEFCRUxfQUNDRVNTX0RFTklFRCwgJ2Vycm9yJyk7XG4gICAgfVxuXG4gICAgLy8gSW4gZGlhbG9nIG1vZGUsIG9uIGZvcm0gcmVuZGVyIGNhbGwgdGhlIHF1ZXVlZCBmdW5jdGlvbnNcbiAgICBvbkZvcm1SZWFkeShmb3JtKSB7XG4gICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdHJpZ2dlckZuKHRoaXMuJHF1ZXVlLnBvcCgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogVW5zdWJzY3JpYmUgZnJvbSBzZWxlY3RlZEl0ZW1DaGFuZ2UkXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbUNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1DaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgQ29udGVudENoaWxkIHJlZmVyZW5jZVxuICAgICAgICB0aGlzLnRhYmxlID0gbnVsbDtcblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIHF1ZXVlIGFycmF5XG4gICAgICAgIHRoaXMuJHF1ZXVlID0gW107XG5cbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+Il19
|
|
@@ -39,7 +39,7 @@ class LiveTableComponent extends StylableComponent {
|
|
|
39
39
|
if (this.table) {
|
|
40
40
|
this.table._liveTableParent = this;
|
|
41
41
|
this.table.datagridElement.datatable('option', this.tableOptions);
|
|
42
|
-
this.table.selectedItemChange$
|
|
42
|
+
this.selectedItemChangeSubscription = this.table.selectedItemChange$
|
|
43
43
|
.pipe(debounceTime(250))
|
|
44
44
|
.subscribe(this.onSelectedItemChange.bind(this));
|
|
45
45
|
if (!this.isLayoutDialog && !this.form) {
|
|
@@ -212,6 +212,18 @@ class LiveTableComponent extends StylableComponent {
|
|
|
212
212
|
triggerFn(this.$queue.pop());
|
|
213
213
|
});
|
|
214
214
|
}
|
|
215
|
+
ngOnDestroy() {
|
|
216
|
+
// MEMORY LEAK FIX: Unsubscribe from selectedItemChange$
|
|
217
|
+
if (this.selectedItemChangeSubscription) {
|
|
218
|
+
this.selectedItemChangeSubscription.unsubscribe();
|
|
219
|
+
this.selectedItemChangeSubscription = null;
|
|
220
|
+
}
|
|
221
|
+
// MEMORY LEAK FIX: Clear ContentChild reference
|
|
222
|
+
this.table = null;
|
|
223
|
+
// MEMORY LEAK FIX: Clear queue array
|
|
224
|
+
this.$queue = [];
|
|
225
|
+
super.ngOnDestroy();
|
|
226
|
+
}
|
|
215
227
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LiveTableComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AbstractDialogService }, { token: i1.App }, { token: 'formlayout', attribute: true }, { token: 'dialogid', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
216
228
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LiveTableComponent, isStandalone: true, selector: "[wmLiveTable]", providers: [
|
|
217
229
|
provideAsWidgetRef(LiveTableComponent)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/data/live-table/src/live-table.props.ts","../../../../../projects/components/widgets/data/live-table/src/live-table.component.ts","../../../../../projects/components/widgets/data/live-table/src/live-table.component.html","../../../../../projects/components/widgets/data/live-table/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-livetable',\n new Map(\n [\n ['class', PROP_STRING],\n ['formlayout', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ]\n )\n );\n};\n","import {\n AfterContentInit,\n Attribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Inject,\n Injector,\n Optional\n} from '@angular/core';\n\nimport {debounceTime} from 'rxjs/operators';\n\nimport {$appDigest, AbstractDialogService, App, getClonedObject, isDefined, triggerFn} from '@wm/core';\nimport {provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\nimport {TableComponent} from '@wm/components/data/table';\n\nimport {registerProps} from './live-table.props';\n\ndeclare var $: any;\n\nconst DEFAULT_CLS = 'app-livegrid';\nconst WIDGET_CONFIG = {widgetType: 'wm-livetable', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n selector: '[wmLiveTable]',\n templateUrl: './live-table.component.html',\n providers: [\n provideAsWidgetRef(LiveTableComponent)\n ]\n})\nexport class LiveTableComponent extends StylableComponent implements AfterContentInit {\n static initializeProps = registerProps();\n @ContentChild(TableComponent) table: TableComponent;\n\n form;\n isLayoutDialog: boolean;\n\n private dialogId;\n private $queue = [];\n\n private tableOptions: any = {\n 'multiselect': false,\n 'setGridEditMode': ''\n };\n\n constructor(\n inj: Injector,\n elRef: ElementRef,\n cdr: ChangeDetectorRef,\n private dialogService: AbstractDialogService,\n private app: App,\n @Attribute('formlayout') layoutType: string,\n @Attribute('dialogid') dialogId: string,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n if (layoutType === 'dialog') {\n this.isLayoutDialog = true;\n this.dialogId = dialogId;\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n if (this.table) {\n this.table._liveTableParent = this;\n this.table.datagridElement.datatable('option', this.tableOptions);\n\n this.table.selectedItemChange$\n .pipe(debounceTime(250))\n .subscribe(this.onSelectedItemChange.bind(this));\n\n if (!this.isLayoutDialog && !this.form) {\n this.table.datagridElement.datatable('option', {\n 'beforeRowUpdate' : () => {\n this.showErrorMessage();\n },\n 'beforeRowDelete' : () => {\n this.showErrorMessage();\n },\n 'beforeRowInsert' : () => {\n this.showErrorMessage();\n }\n });\n }\n }\n }\n\n openDialog() {\n this.dialogService.open(this.dialogId, this.viewParent);\n $appDigest();\n }\n\n closeDialog() {\n this.dialogService.close(this.dialogId, this.viewParent);\n }\n\n focusFirstInput() {\n const $firstInput = $(this.form.$element).find('input').first();\n $firstInput.focus();\n $firstInput.select();\n }\n\n onDialogOpen(action) {\n const attrs: Map<string, string> = this?.form?.formFields?.[0]?.$attrs ?? new Map();\n const hasDefault = [\"defaultvalue\", \"defaultvalue.bind\"].some(key => attrs.has(key));\n if (action == 'update'||!!hasDefault) {\n const firstFormField = $(\"form [wmformfield]\").first();\n if (firstFormField.find(\"div[widget='autocomplete']\").length != 1 && this?.form?.formFields?.[0]?.widgettype != 'autocomplete') { // prevent focusing first form field if widget is autocomplete\n this.focusFirstInput();\n }\n } else {\n this.focusFirstInput();\n }\n }\n\n setFormData(val) {\n if (!this.form.isDestroyed) {\n this.form.getWidget().formdata = val;\n }\n }\n\n private _addNewRow() {\n this.form.isSelected = true;\n this.setFormData('');\n\n this.form.new();\n\n if (this.isLayoutDialog) {\n this.onDialogOpen('add');\n }\n }\n\n addNewRow() {\n if (this.isLayoutDialog) {\n this.openDialog();\n this.$queue.push(this._addNewRow.bind(this));\n return;\n }\n\n this._addNewRow();\n }\n\n private _updateRow(row, eventName) {\n this.setFormData(row);\n this.form.isSelected = true;\n this.form.edit();\n\n if (this.isLayoutDialog) {\n this.form.isUpdateMode = (eventName === 'dblclick') ? this.form.updateMode : true;\n this.onDialogOpen('update');\n }\n }\n\n updateRow(row, eventName) {\n\n if (this.isLayoutDialog) {\n this.openDialog();\n this.$queue.push(this._updateRow.bind(this, row, eventName));\n return;\n }\n\n this._updateRow(row, eventName);\n }\n\n onSelectedItemChange(newValue) {\n let rowData;\n if (!this.form || !this.table) {\n return;\n }\n\n if (newValue && newValue.length > 0 && !this.form.isSelected) {\n this.form.isSelected = true;\n }\n\n /*Update the rowdata of only that grid form that is associated with the specific grid on which row selection is being performed...\n * Since both the grid & gridform are associated with the same \"parentgrid\", match the same*/\n if (newValue && newValue.length > 0) {\n if (this.table.multiselect) {\n rowData = newValue[0];\n } else {\n rowData = newValue[newValue.length - 1];\n }\n\n this.setFormData(getClonedObject(rowData));\n /*If the form is already in update mode, call the form update function*/\n if (this.form.isUpdateMode) {\n this.form.edit();\n }\n } else {\n this.form.isSelected = false;\n this.setFormData('');\n this.form.clearData();\n }\n }\n\n onCancel() {\n this.form.isUpdateMode = false;\n if (this.isLayoutDialog) {\n this.closeDialog();\n }\n }\n\n onResult(operation, response, newForm, updateMode) {\n this.form.isUpdateMode = isDefined(updateMode) ? updateMode : newForm ? true : false;\n switch (operation) {\n case 'insert':\n if (this.table.gridOptions.isNavTypeScrollOrOndemand()) {\n this.table.isNewRowInserted = true;\n }\n if (newForm) {\n /*if new form is to be shown after insert, skip the highlight of the row*/\n this.table.gridfirstrowselect = false;\n this.table.initiateSelectItem(this.table.getNavigationTargetBySortInfo(), response, true);\n } else {\n /*The new row would always be inserted at the end of all existing records. Hence navigate to the last page and highlight the inserted row.*/\n this.table.initiateSelectItem(this.table.getNavigationTargetBySortInfo(), response);\n }\n break;\n case 'update':\n /*The updated row would be found in the current page itself. Hence simply highlight the row in the current page.*/\n if (newForm) {\n this.table.gridfirstrowselect = false;\n this.table.initiateSelectItem('current', response, true);\n } else {\n this.table.initiateSelectItem('current', response);\n }\n break;\n case 'delete':\n this.table.onRecordDelete();\n break;\n }\n this.table.updateVariable();\n if (this.isLayoutDialog) {\n /*if new form is to be shown after update or insert, don't close the dialog*/\n if (newForm) {\n if (operation === 'insert') {\n this.form.new();\n } else if (operation === 'update') {\n this.form.edit();\n }\n } else {\n this.closeDialog();\n }\n }\n }\n\n showErrorMessage() {\n this.app.notifyApp(this.appLocale.LABEL_ACCESS_DENIED, 'error');\n }\n\n // In dialog mode, on form render call the queued functions\n onFormReady(form) {\n this.form = form;\n setTimeout(() => {\n triggerFn(this.$queue.pop());\n });\n }\n}\n","<ng-content></ng-content>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/data/live-table/src/live-table.props.ts","../../../../../projects/components/widgets/data/live-table/src/live-table.component.ts","../../../../../projects/components/widgets/data/live-table/src/live-table.component.html","../../../../../projects/components/widgets/data/live-table/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-livetable',\n new Map(\n [\n ['class', PROP_STRING],\n ['formlayout', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ]\n )\n );\n};\n","import {\n AfterContentInit,\n Attribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Inject,\n Injector,\n OnDestroy,\n Optional\n} from '@angular/core';\n\nimport {debounceTime} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\n\nimport {$appDigest, AbstractDialogService, App, getClonedObject, isDefined, triggerFn} from '@wm/core';\nimport {provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\nimport {TableComponent} from '@wm/components/data/table';\n\nimport {registerProps} from './live-table.props';\n\ndeclare var $: any;\n\nconst DEFAULT_CLS = 'app-livegrid';\nconst WIDGET_CONFIG = {widgetType: 'wm-livetable', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n selector: '[wmLiveTable]',\n templateUrl: './live-table.component.html',\n providers: [\n provideAsWidgetRef(LiveTableComponent)\n ]\n})\nexport class LiveTableComponent extends StylableComponent implements AfterContentInit, OnDestroy {\n static initializeProps = registerProps();\n @ContentChild(TableComponent) table: TableComponent;\n\n form;\n isLayoutDialog: boolean;\n\n private dialogId;\n private $queue = [];\n private selectedItemChangeSubscription: Subscription;\n\n private tableOptions: any = {\n 'multiselect': false,\n 'setGridEditMode': ''\n };\n\n constructor(\n inj: Injector,\n elRef: ElementRef,\n cdr: ChangeDetectorRef,\n private dialogService: AbstractDialogService,\n private app: App,\n @Attribute('formlayout') layoutType: string,\n @Attribute('dialogid') dialogId: string,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n if (layoutType === 'dialog') {\n this.isLayoutDialog = true;\n this.dialogId = dialogId;\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n if (this.table) {\n this.table._liveTableParent = this;\n this.table.datagridElement.datatable('option', this.tableOptions);\n\n this.selectedItemChangeSubscription = this.table.selectedItemChange$\n .pipe(debounceTime(250))\n .subscribe(this.onSelectedItemChange.bind(this));\n\n if (!this.isLayoutDialog && !this.form) {\n this.table.datagridElement.datatable('option', {\n 'beforeRowUpdate' : () => {\n this.showErrorMessage();\n },\n 'beforeRowDelete' : () => {\n this.showErrorMessage();\n },\n 'beforeRowInsert' : () => {\n this.showErrorMessage();\n }\n });\n }\n }\n }\n\n openDialog() {\n this.dialogService.open(this.dialogId, this.viewParent);\n $appDigest();\n }\n\n closeDialog() {\n this.dialogService.close(this.dialogId, this.viewParent);\n }\n\n focusFirstInput() {\n const $firstInput = $(this.form.$element).find('input').first();\n $firstInput.focus();\n $firstInput.select();\n }\n\n onDialogOpen(action) {\n const attrs: Map<string, string> = this?.form?.formFields?.[0]?.$attrs ?? new Map();\n const hasDefault = [\"defaultvalue\", \"defaultvalue.bind\"].some(key => attrs.has(key));\n if (action == 'update'||!!hasDefault) {\n const firstFormField = $(\"form [wmformfield]\").first();\n if (firstFormField.find(\"div[widget='autocomplete']\").length != 1 && this?.form?.formFields?.[0]?.widgettype != 'autocomplete') { // prevent focusing first form field if widget is autocomplete\n this.focusFirstInput();\n }\n } else {\n this.focusFirstInput();\n }\n }\n\n setFormData(val) {\n if (!this.form.isDestroyed) {\n this.form.getWidget().formdata = val;\n }\n }\n\n private _addNewRow() {\n this.form.isSelected = true;\n this.setFormData('');\n\n this.form.new();\n\n if (this.isLayoutDialog) {\n this.onDialogOpen('add');\n }\n }\n\n addNewRow() {\n if (this.isLayoutDialog) {\n this.openDialog();\n this.$queue.push(this._addNewRow.bind(this));\n return;\n }\n\n this._addNewRow();\n }\n\n private _updateRow(row, eventName) {\n this.setFormData(row);\n this.form.isSelected = true;\n this.form.edit();\n\n if (this.isLayoutDialog) {\n this.form.isUpdateMode = (eventName === 'dblclick') ? this.form.updateMode : true;\n this.onDialogOpen('update');\n }\n }\n\n updateRow(row, eventName) {\n\n if (this.isLayoutDialog) {\n this.openDialog();\n this.$queue.push(this._updateRow.bind(this, row, eventName));\n return;\n }\n\n this._updateRow(row, eventName);\n }\n\n onSelectedItemChange(newValue) {\n let rowData;\n if (!this.form || !this.table) {\n return;\n }\n\n if (newValue && newValue.length > 0 && !this.form.isSelected) {\n this.form.isSelected = true;\n }\n\n /*Update the rowdata of only that grid form that is associated with the specific grid on which row selection is being performed...\n * Since both the grid & gridform are associated with the same \"parentgrid\", match the same*/\n if (newValue && newValue.length > 0) {\n if (this.table.multiselect) {\n rowData = newValue[0];\n } else {\n rowData = newValue[newValue.length - 1];\n }\n\n this.setFormData(getClonedObject(rowData));\n /*If the form is already in update mode, call the form update function*/\n if (this.form.isUpdateMode) {\n this.form.edit();\n }\n } else {\n this.form.isSelected = false;\n this.setFormData('');\n this.form.clearData();\n }\n }\n\n onCancel() {\n this.form.isUpdateMode = false;\n if (this.isLayoutDialog) {\n this.closeDialog();\n }\n }\n\n onResult(operation, response, newForm, updateMode) {\n this.form.isUpdateMode = isDefined(updateMode) ? updateMode : newForm ? true : false;\n switch (operation) {\n case 'insert':\n if (this.table.gridOptions.isNavTypeScrollOrOndemand()) {\n this.table.isNewRowInserted = true;\n }\n if (newForm) {\n /*if new form is to be shown after insert, skip the highlight of the row*/\n this.table.gridfirstrowselect = false;\n this.table.initiateSelectItem(this.table.getNavigationTargetBySortInfo(), response, true);\n } else {\n /*The new row would always be inserted at the end of all existing records. Hence navigate to the last page and highlight the inserted row.*/\n this.table.initiateSelectItem(this.table.getNavigationTargetBySortInfo(), response);\n }\n break;\n case 'update':\n /*The updated row would be found in the current page itself. Hence simply highlight the row in the current page.*/\n if (newForm) {\n this.table.gridfirstrowselect = false;\n this.table.initiateSelectItem('current', response, true);\n } else {\n this.table.initiateSelectItem('current', response);\n }\n break;\n case 'delete':\n this.table.onRecordDelete();\n break;\n }\n this.table.updateVariable();\n if (this.isLayoutDialog) {\n /*if new form is to be shown after update or insert, don't close the dialog*/\n if (newForm) {\n if (operation === 'insert') {\n this.form.new();\n } else if (operation === 'update') {\n this.form.edit();\n }\n } else {\n this.closeDialog();\n }\n }\n }\n\n showErrorMessage() {\n this.app.notifyApp(this.appLocale.LABEL_ACCESS_DENIED, 'error');\n }\n\n // In dialog mode, on form render call the queued functions\n onFormReady(form) {\n this.form = form;\n setTimeout(() => {\n triggerFn(this.$queue.pop());\n });\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Unsubscribe from selectedItemChange$\n if (this.selectedItemChangeSubscription) {\n this.selectedItemChangeSubscription.unsubscribe();\n this.selectedItemChangeSubscription = null;\n }\n\n // MEMORY LEAK FIX: Clear ContentChild reference\n this.table = null;\n\n // MEMORY LEAK FIX: Clear queue array\n this.$queue = [];\n\n super.ngOnDestroy();\n }\n}\n","<ng-content></ng-content>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AfterContentInit, ChangeDetectorRef, ElementRef, Injector } from '@angular/core';
|
|
1
|
+
import { AfterContentInit, ChangeDetectorRef, ElementRef, Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { AbstractDialogService, App } from '@wm/core';
|
|
3
3
|
import { StylableComponent } from '@wm/components/base';
|
|
4
4
|
import { TableComponent } from '@wm/components/data/table';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class LiveTableComponent extends StylableComponent implements AfterContentInit {
|
|
6
|
+
export declare class LiveTableComponent extends StylableComponent implements AfterContentInit, OnDestroy {
|
|
7
7
|
private dialogService;
|
|
8
8
|
private app;
|
|
9
9
|
static initializeProps: void;
|
|
@@ -12,6 +12,7 @@ export declare class LiveTableComponent extends StylableComponent implements Aft
|
|
|
12
12
|
isLayoutDialog: boolean;
|
|
13
13
|
private dialogId;
|
|
14
14
|
private $queue;
|
|
15
|
+
private selectedItemChangeSubscription;
|
|
15
16
|
private tableOptions;
|
|
16
17
|
constructor(inj: Injector, elRef: ElementRef, cdr: ChangeDetectorRef, dialogService: AbstractDialogService, app: App, layoutType: string, dialogId: string, explicitContext: any);
|
|
17
18
|
ngAfterContentInit(): void;
|
|
@@ -29,6 +30,7 @@ export declare class LiveTableComponent extends StylableComponent implements Aft
|
|
|
29
30
|
onResult(operation: any, response: any, newForm: any, updateMode: any): void;
|
|
30
31
|
showErrorMessage(): void;
|
|
31
32
|
onFormReady(form: any): void;
|
|
33
|
+
ngOnDestroy(): void;
|
|
32
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<LiveTableComponent, [null, null, null, null, null, { attribute: "formlayout"; }, { attribute: "dialogid"; }, { optional: true; }]>;
|
|
33
35
|
static ɵcmp: i0.ɵɵComponentDeclaration<LiveTableComponent, "[wmLiveTable]", never, {}, {}, ["table"], ["*"], true, never>;
|
|
34
36
|
}
|
|
@@ -115,7 +115,11 @@
|
|
|
115
115
|
}
|
|
116
116
|
}, base.DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);
|
|
117
117
|
base.styler(this.nativeElement, this);
|
|
118
|
-
setTimeout(() => {
|
|
118
|
+
this._initTimeoutId = setTimeout(() => {
|
|
119
|
+
// Guard against component destruction or parent being null
|
|
120
|
+
if (this.isDestroyed || !this.parent) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
119
123
|
this.allowpagesizechange = this.parent.allowpagesizechange;
|
|
120
124
|
if (this.allowpagesizechange)
|
|
121
125
|
this.defaultPageSizeOptions = this.parent?.pagesizeoptions ? this.parent.pagesizeoptions?.split(',').map(Number).sort((a, b) => a - b) : [];
|
|
@@ -518,7 +522,9 @@
|
|
|
518
522
|
}
|
|
519
523
|
if (!binddatasource && dataset && !datasetBoundExpr) {
|
|
520
524
|
this.dataset = dataset;
|
|
521
|
-
this._debouncedApplyDataset
|
|
525
|
+
if (this._debouncedApplyDataset) {
|
|
526
|
+
this._debouncedApplyDataset();
|
|
527
|
+
}
|
|
522
528
|
return;
|
|
523
529
|
}
|
|
524
530
|
this.binddataset = binddataset;
|
|
@@ -529,7 +535,9 @@
|
|
|
529
535
|
this.registerDestroyListener(core.$watch(binddataset, parent, datasetBoundExpr ? dataSource : {}, nv => {
|
|
530
536
|
if (nv) {
|
|
531
537
|
this.dataset = nv;
|
|
532
|
-
this._debouncedApplyDataset
|
|
538
|
+
if (this._debouncedApplyDataset) {
|
|
539
|
+
this._debouncedApplyDataset();
|
|
540
|
+
}
|
|
533
541
|
}
|
|
534
542
|
else {
|
|
535
543
|
// WMS-19285: Setting dataset on proxy only to handle propertychange handler call for undefined cases
|
|
@@ -541,7 +549,11 @@
|
|
|
541
549
|
return;
|
|
542
550
|
}
|
|
543
551
|
//[Todo-CSP]: either generate watch expr fn or register an event from the datasource itself
|
|
544
|
-
this.registerDestroyListener(core.$watch(bindPagingOptions, parent, {}, () =>
|
|
552
|
+
this.registerDestroyListener(core.$watch(bindPagingOptions, parent, {}, () => {
|
|
553
|
+
if (this._debouncedApplyDataset) {
|
|
554
|
+
this._debouncedApplyDataset();
|
|
555
|
+
}
|
|
556
|
+
}));
|
|
545
557
|
});
|
|
546
558
|
// apply datasource only when dataset is not bound to "item.FIELD"
|
|
547
559
|
if (!datasetBoundExpr) {
|
|
@@ -729,6 +741,10 @@
|
|
|
729
741
|
}
|
|
730
742
|
this.navigatePage('first', $event, true);
|
|
731
743
|
this.calculatePagingValues();
|
|
744
|
+
if (this.nativeElement.closest('popover-container, .popover')) {
|
|
745
|
+
$event.stopPropagation();
|
|
746
|
+
this.bsDropdown.hide();
|
|
747
|
+
}
|
|
732
748
|
}
|
|
733
749
|
ngAfterViewInit() {
|
|
734
750
|
const paginationElem = this.nativeElement;
|
|
@@ -736,6 +752,43 @@
|
|
|
736
752
|
event.stopPropagation();
|
|
737
753
|
};
|
|
738
754
|
}
|
|
755
|
+
ngOnDestroy() {
|
|
756
|
+
// MEMORY LEAK FIX: Clear initialization timeout if still pending
|
|
757
|
+
if (this._initTimeoutId) {
|
|
758
|
+
clearTimeout(this._initTimeoutId);
|
|
759
|
+
this._initTimeoutId = null;
|
|
760
|
+
}
|
|
761
|
+
// MEMORY LEAK FIX: Complete EventEmitters
|
|
762
|
+
if (this.resultEmitter) {
|
|
763
|
+
this.resultEmitter.complete();
|
|
764
|
+
}
|
|
765
|
+
if (this.maxResultsEmitter) {
|
|
766
|
+
this.maxResultsEmitter.complete();
|
|
767
|
+
}
|
|
768
|
+
// MEMORY LEAK FIX: Nullify debounced function closures
|
|
769
|
+
this._debouncedApplyDataset = null;
|
|
770
|
+
this._debouncedPageChanged = null;
|
|
771
|
+
// MEMORY LEAK FIX: Clear data arrays and objects
|
|
772
|
+
this.dataset = null;
|
|
773
|
+
this.__fullData = null;
|
|
774
|
+
this.result = null;
|
|
775
|
+
this.filterFields = null;
|
|
776
|
+
this.sortOptions = null;
|
|
777
|
+
this.options = null;
|
|
778
|
+
// MEMORY LEAK FIX: Clear page size options array
|
|
779
|
+
if (this.pageSizeOptions) {
|
|
780
|
+
this.pageSizeOptions = [];
|
|
781
|
+
}
|
|
782
|
+
if (this.defaultPageSizeOptions) {
|
|
783
|
+
this.defaultPageSizeOptions = [];
|
|
784
|
+
}
|
|
785
|
+
// MEMORY LEAK FIX: Clear datasource reference
|
|
786
|
+
this.datasource = null;
|
|
787
|
+
// MEMORY LEAK FIX: Clear parent reference
|
|
788
|
+
this.parent = null;
|
|
789
|
+
// Call parent ngOnDestroy (sets isDestroyed = true)
|
|
790
|
+
super.ngOnDestroy();
|
|
791
|
+
}
|
|
739
792
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: PaginationComponent, deps: [{ token: i0__namespace.Injector }, { token: base.WidgetRef, skipSelf: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
740
793
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PaginationComponent, isStandalone: true, selector: "[wmPagination]", outputs: { resultEmitter: "resultEmitter", maxResultsEmitter: "maxResultsEmitter" }, providers: [
|
|
741
794
|
base.provideAsWidgetRef(PaginationComponent)
|