@wavemaker/app-ng-runtime 11.14.1-rc.6311 → 11.14.2-1.245
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/advanced/carousel/bundles/index.umd.js +15 -1
- package/components/advanced/carousel/carousel.directive.d.ts +1 -0
- package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
- package/components/advanced/carousel/fesm2022/index.mjs +15 -1
- package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/bundles/index.umd.js +24 -3
- package/components/advanced/login/esm2022/login.component.mjs +25 -4
- package/components/advanced/login/fesm2022/index.mjs +24 -3
- package/components/advanced/login/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/login.component.d.ts +5 -2
- package/components/base/bundles/index.umd.js +323 -28
- package/components/base/directives/show-in-device.directive.d.ts +2 -1
- package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
- package/components/base/esm2022/pipes/custom-pipes.mjs +1 -1
- package/components/base/esm2022/utils/widget-utils.mjs +3 -3
- package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
- package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
- package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
- package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
- package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
- package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
- package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
- package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
- package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
- package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
- package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
- package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
- package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
- package/components/base/fesm2022/index.mjs +319 -26
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
- package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
- package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
- package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
- package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
- package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
- package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
- package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
- package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
- package/components/basic/anchor/bundles/index.umd.js +13 -1
- package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
- package/components/basic/anchor/fesm2022/index.mjs +13 -1
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/html/bundles/index.umd.js +13 -1
- package/components/basic/html/esm2022/html.directive.mjs +14 -2
- package/components/basic/html/fesm2022/index.mjs +13 -1
- package/components/basic/html/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/bundles/index.umd.js +17 -1
- package/components/basic/label/esm2022/label.directive.mjs +18 -2
- package/components/basic/label/fesm2022/index.mjs +17 -1
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/label.directive.d.ts +3 -2
- package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
- package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
- package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
- package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
- package/components/basic/search/bundles/index.umd.js +40 -12
- package/components/basic/search/esm2022/scrollable.directive.mjs +11 -2
- package/components/basic/search/esm2022/search.component.mjs +31 -12
- package/components/basic/search/fesm2022/index.mjs +40 -12
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/scrollable.directive.d.ts +4 -2
- package/components/basic/search/search.component.d.ts +3 -2
- package/components/basic/spinner/bundles/index.umd.js +9 -1
- package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
- package/components/basic/spinner/fesm2022/index.mjs +9 -1
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/spinner.component.d.ts +4 -2
- package/components/chart/bundles/index.umd.js +21 -3
- package/components/chart/esm2022/chart.component.mjs +22 -4
- package/components/chart/fesm2022/index.mjs +21 -3
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
- package/components/containers/accordion/accordion.directive.d.ts +5 -2
- package/components/containers/accordion/bundles/index.umd.js +49 -2
- package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
- package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
- package/components/containers/accordion/fesm2022/index.mjs +49 -2
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +13 -0
- package/components/containers/panel/esm2022/panel.component.mjs +14 -1
- package/components/containers/panel/fesm2022/index.mjs +13 -0
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/panel.component.d.ts +3 -2
- package/components/containers/tabs/bundles/index.umd.js +54 -2
- package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
- package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
- package/components/containers/tabs/fesm2022/index.mjs +54 -2
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
- package/components/containers/tabs/tabs.component.d.ts +5 -2
- package/components/containers/wizard/bundles/index.umd.js +47 -3
- package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
- package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
- package/components/containers/wizard/fesm2022/index.mjs +47 -3
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
- package/components/containers/wizard/wizard.component.d.ts +4 -2
- package/components/data/card/bundles/index.umd.js +17 -1
- package/components/data/card/card-content/card-content.component.d.ts +3 -2
- package/components/data/card/card.component.d.ts +4 -2
- package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
- package/components/data/card/esm2022/card.component.mjs +13 -2
- package/components/data/card/fesm2022/index.mjs +17 -1
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +92 -0
- package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
- package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
- package/components/data/form/esm2022/form.component.mjs +27 -1
- package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
- package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
- package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
- package/components/data/form/fesm2022/index.mjs +92 -0
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form-action/form-action.directive.d.ts +3 -2
- package/components/data/form/form-field/form-field.directive.d.ts +3 -2
- package/components/data/form/form-widget.directive.d.ts +3 -2
- package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
- package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
- package/components/data/form/live-form/live-form.directive.d.ts +3 -1
- package/components/data/list/bundles/index.umd.js +180 -17
- package/components/data/list/esm2022/list-item.directive.mjs +95 -11
- package/components/data/list/esm2022/list.component.mjs +87 -8
- package/components/data/list/fesm2022/index.mjs +180 -17
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/list-item.directive.d.ts +7 -2
- package/components/data/list/list.component.d.ts +3 -0
- package/components/data/live-table/bundles/index.umd.js +13 -1
- package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
- package/components/data/live-table/fesm2022/index.mjs +13 -1
- package/components/data/live-table/fesm2022/index.mjs.map +1 -1
- package/components/data/live-table/live-table.component.d.ts +4 -2
- package/components/data/pagination/bundles/index.umd.js +57 -4
- package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
- package/components/data/pagination/fesm2022/index.mjs +57 -4
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/pagination.component.d.ts +4 -2
- package/components/data/table/bundles/index.umd.js +311 -12
- package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
- package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
- package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
- package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
- package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
- package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table.component.mjs +159 -9
- package/components/data/table/fesm2022/index.mjs +311 -12
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table-action/table-action.directive.d.ts +3 -2
- package/components/data/table/table-column/table-column.directive.d.ts +3 -2
- package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
- package/components/data/table/table-cud.directive.d.ts +3 -1
- package/components/data/table/table-filter.directive.d.ts +3 -1
- package/components/data/table/table-row/table-row.directive.d.ts +3 -2
- package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
- package/components/data/table/table.component.d.ts +2 -2
- package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
- package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
- package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/bundles/index.umd.js +15 -2
- package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
- package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
- package/components/dialogs/default/fesm2022/index.mjs +15 -2
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
- package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
- package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
- package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
- package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
- package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
- package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
- package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
- package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
- package/components/input/base-form/base-form.component.d.ts +4 -2
- package/components/input/base-form/bundles/index.umd.js +16 -2
- package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
- package/components/input/base-form/fesm2022/index.mjs +16 -2
- package/components/input/base-form/fesm2022/index.mjs.map +1 -1
- package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
- package/components/input/base-form-custom/bundles/index.umd.js +13 -2
- package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
- package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
- package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +7 -0
- package/components/input/checkbox/checkbox.component.d.ts +3 -2
- package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
- package/components/input/checkbox/fesm2022/index.mjs +7 -0
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/bundles/index.umd.js +18 -2
- package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
- package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
- package/components/input/checkboxset/fesm2022/index.mjs +18 -2
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/chips/bundles/index.umd.js +45 -5
- package/components/input/chips/chips.component.d.ts +3 -2
- package/components/input/chips/esm2022/chips.component.mjs +46 -6
- package/components/input/chips/fesm2022/index.mjs +45 -5
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/bundles/index.umd.js +8 -0
- package/components/input/color-picker/color-picker.component.d.ts +3 -2
- package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
- package/components/input/color-picker/fesm2022/index.mjs +8 -0
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/components/input/composite/bundles/index.umd.js +10 -1
- package/components/input/composite/composite.directive.d.ts +3 -2
- package/components/input/composite/esm2022/composite.directive.mjs +11 -2
- package/components/input/composite/fesm2022/index.mjs +10 -1
- package/components/input/composite/fesm2022/index.mjs.map +1 -1
- package/components/input/currency/bundles/index.umd.js +7 -0
- package/components/input/currency/currency.component.d.ts +3 -2
- package/components/input/currency/esm2022/currency.component.mjs +8 -1
- package/components/input/currency/fesm2022/index.mjs +7 -0
- package/components/input/currency/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
- package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
- package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/bundles/index.umd.js +22 -0
- package/components/input/epoch/date/date.component.d.ts +1 -0
- package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
- package/components/input/epoch/date/fesm2022/index.mjs +22 -0
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +25 -8
- package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
- package/components/input/file-upload/fesm2022/index.mjs +25 -8
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/file-upload.component.d.ts +3 -0
- package/components/input/number/bundles/index.umd.js +8 -0
- package/components/input/number/esm2022/number.component.mjs +9 -1
- package/components/input/number/fesm2022/index.mjs +8 -0
- package/components/input/number/fesm2022/index.mjs.map +1 -1
- package/components/input/number/number.component.d.ts +3 -2
- package/components/input/radioset/bundles/index.umd.js +18 -2
- package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
- package/components/input/radioset/fesm2022/index.mjs +18 -2
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/radioset.component.d.ts +4 -2
- package/components/input/rating/bundles/index.umd.js +10 -0
- package/components/input/rating/esm2022/rating.component.mjs +11 -1
- package/components/input/rating/fesm2022/index.mjs +10 -0
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/rating.component.d.ts +3 -2
- package/components/input/select/bundles/index.umd.js +6 -0
- package/components/input/select/esm2022/select.component.mjs +7 -1
- package/components/input/select/fesm2022/index.mjs +6 -0
- package/components/input/select/fesm2022/index.mjs.map +1 -1
- package/components/input/select/select.component.d.ts +3 -2
- package/components/input/slider/bundles/index.umd.js +10 -0
- package/components/input/slider/esm2022/slider.component.mjs +11 -1
- package/components/input/slider/fesm2022/index.mjs +10 -0
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +3 -2
- package/components/input/switch/bundles/index.umd.js +22 -2
- package/components/input/switch/esm2022/switch.component.mjs +23 -3
- package/components/input/switch/fesm2022/index.mjs +22 -2
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/switch.component.d.ts +3 -2
- package/components/input/text/bundles/index.umd.js +36 -0
- package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
- package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
- package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
- package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
- package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
- package/components/input/text/fesm2022/index.mjs +36 -0
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
- package/components/input/text/input-color/input-color.component.d.ts +3 -2
- package/components/input/text/input-email/input-email.component.d.ts +3 -2
- package/components/input/text/input-number/input-number.component.d.ts +3 -2
- package/components/input/text/input-text/input-text.component.d.ts +3 -2
- package/components/input/textarea/bundles/index.umd.js +7 -0
- package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
- package/components/input/textarea/fesm2022/index.mjs +7 -0
- package/components/input/textarea/fesm2022/index.mjs.map +1 -1
- package/components/input/textarea/textarea.component.d.ts +3 -2
- package/components/navigation/menu/bundles/index.umd.js +55 -6
- package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
- package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
- package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
- package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
- package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
- package/components/navigation/menu/fesm2022/index.mjs +55 -6
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
- package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
- package/components/navigation/menu/nav/nav.component.d.ts +3 -2
- package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
- package/components/navigation/navbar/bundles/index.umd.js +5 -0
- package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
- package/components/navigation/navbar/fesm2022/index.mjs +5 -0
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/navbar.component.d.ts +3 -2
- package/components/navigation/popover/bundles/index.umd.js +65 -13
- package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
- package/components/navigation/popover/fesm2022/index.mjs +62 -10
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/popover.component.d.ts +11 -3
- package/components/page/default/bundles/index.umd.js +20 -2
- package/components/page/default/esm2022/layout.directive.mjs +9 -1
- package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
- package/components/page/default/fesm2022/index.mjs +20 -2
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/default/layout.directive.d.ts +3 -2
- package/components/page/default/page-content/page-content.component.d.ts +3 -2
- package/components/page/left-panel/bundles/index.umd.js +16 -0
- package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
- package/components/page/left-panel/fesm2022/index.mjs +16 -0
- package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- package/components/page/left-panel/left-panel.directive.d.ts +3 -2
- package/components/page/top-nav/bundles/index.umd.js +2 -1
- package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
- package/components/page/top-nav/fesm2022/index.mjs +2 -1
- package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- package/components/prefab/bundles/index.umd.js +4 -0
- package/components/prefab/esm2022/prefab.directive.mjs +5 -1
- package/components/prefab/fesm2022/index.mjs +4 -0
- package/components/prefab/fesm2022/index.mjs.map +1 -1
- package/core/bundles/index.umd.js +391 -94
- package/core/esm2022/public_api.mjs +3 -3
- package/core/esm2022/services/viewport.service.mjs +24 -10
- package/core/esm2022/types/types.mjs +1 -1
- package/core/esm2022/utils/dom.mjs +18 -2
- package/core/esm2022/utils/event-notifier.mjs +5 -2
- package/core/esm2022/utils/lru-cache.mjs +16 -2
- package/core/esm2022/utils/utils.mjs +6 -2
- package/core/esm2022/utils/watcher.mjs +323 -81
- package/core/fesm2022/index.mjs +390 -96
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/public_api.d.ts +2 -2
- package/core/services/viewport.service.d.ts +5 -2
- package/core/types/types.d.ts +1 -0
- package/core/utils/lru-cache.d.ts +6 -0
- package/core/utils/utils.d.ts +1 -0
- package/core/utils/watcher.d.ts +26 -5
- package/http/bundles/index.umd.js +31 -1
- package/http/esm2022/http.service.mjs +32 -2
- package/http/fesm2022/index.mjs +31 -1
- package/http/fesm2022/index.mjs.map +1 -1
- package/http/http.service.d.ts +6 -2
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/bundles/index.umd.js +9 -0
- package/oAuth/esm2022/oAuth.service.mjs +10 -1
- package/oAuth/fesm2022/index.mjs +9 -0
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/oAuth.service.d.ts +3 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +364 -30
- package/runtime/base/components/app-component/app.component.d.ts +4 -0
- package/runtime/base/components/prefab-preview.component.d.ts +5 -2
- package/runtime/base/directives/accessroles.directive.d.ts +4 -3
- package/runtime/base/directives/prefab.directive.d.ts +3 -2
- package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
- package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
- package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
- package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
- package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
- package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
- package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
- package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
- package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
- package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
- package/runtime/base/esm2022/services/app.manager.service.mjs +37 -10
- package/runtime/base/esm2022/services/app.service.mjs +34 -2
- package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
- package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
- package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
- package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
- package/runtime/base/fesm2022/index.mjs +365 -31
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/services/app.manager.service.d.ts +6 -1
- package/runtime/base/services/app.service.d.ts +12 -2
- package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
- package/runtime/base/services/spinner.service.d.ts +3 -1
- package/runtime/base/util/fragment-monitor.d.ts +6 -0
- package/runtime/dynamic/bundles/index.umd.js +5 -0
- package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
- package/runtime/dynamic/fesm2022/index.mjs +5 -0
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +100 -14
- package/security/bundles/index.umd.js +41 -2
- package/security/esm2022/security.service.mjs +42 -3
- package/security/fesm2022/index.mjs +41 -2
- package/security/fesm2022/index.mjs.map +1 -1
- package/security/security.service.d.ts +5 -2
- package/variables/bundles/index.umd.js +50 -6
- package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
- package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
- package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
- package/variables/esm2022/service/variables.service.mjs +8 -2
- package/variables/fesm2022/index.mjs +50 -6
- package/variables/fesm2022/index.mjs.map +1 -1
|
@@ -44,7 +44,9 @@ export class CompositeDirective extends StylableComponent {
|
|
|
44
44
|
assignRequiredToSubComponents() {
|
|
45
45
|
if (this.required && this.componentRefs) {
|
|
46
46
|
setTimeout(() => {
|
|
47
|
-
this.componentRefs
|
|
47
|
+
if (this.componentRefs) {
|
|
48
|
+
this.componentRefs.forEach(componentRef => componentRef.widget.required = true);
|
|
49
|
+
}
|
|
48
50
|
}, 50);
|
|
49
51
|
}
|
|
50
52
|
}
|
|
@@ -53,6 +55,13 @@ export class CompositeDirective extends StylableComponent {
|
|
|
53
55
|
addForIdAttributes(this.nativeElement);
|
|
54
56
|
this.assignRequiredToSubComponents();
|
|
55
57
|
}
|
|
58
|
+
ngOnDestroy() {
|
|
59
|
+
// MEMORY LEAK FIX: Clear ContentChildren QueryList reference
|
|
60
|
+
if (this.componentRefs) {
|
|
61
|
+
this.componentRefs = null;
|
|
62
|
+
}
|
|
63
|
+
super.ngOnDestroy();
|
|
64
|
+
}
|
|
56
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompositeDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
57
66
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CompositeDirective, isStandalone: true, selector: "div[wmComposite]", providers: [
|
|
58
67
|
provideAsWidgetRef(CompositeDirective)
|
|
@@ -76,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
76
85
|
type: ContentChildren,
|
|
77
86
|
args: [WidgetRef, { descendants: true }]
|
|
78
87
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9jb21wb3NpdGUvc3JjL2NvbXBvc2l0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9HLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUlsRCxNQUFNLFdBQVcsR0FBRywwQ0FBMEMsQ0FBQztBQUMvRCxNQUFNLGFBQWEsR0FBa0I7SUFDakMsVUFBVSxFQUFFLGVBQWU7SUFDM0IsU0FBUyxFQUFFLFdBQVc7Q0FDekIsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsS0FBSyxFQUFFLGVBQWU7SUFDdEIsR0FBRyxFQUFFLGFBQWE7SUFDbEIsUUFBUSxFQUFFLGtCQUFrQjtDQUMvQixDQUFDO0FBU0YsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjthQUM5QyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQU96QyxZQUFZLEdBQWEsRUFBMEMsZUFBb0I7UUFDbkYsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUN4QixJQUFJLEdBQUcsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVCLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEYsQ0FBQzthQUFNLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBQ3pDLENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNPLDZCQUE2QjtRQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3RDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ3BGLENBQUM7WUFDTCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1AsNkRBQTZEO1FBQzdELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFFRCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0F6RFEsa0JBQWtCLDBDQVFRLGtCQUFrQjttR0FSNUMsa0JBQWtCLCtEQUpoQjtZQUNQLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDO1NBQ3pDLHdEQU1nQixTQUFTOzs0RkFKakIsa0JBQWtCO2tCQVA5QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRTt3QkFDUCxrQkFBa0Isb0JBQW9CO3FCQUN6QztpQkFDSjs7MEJBUytCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRO3lDQUpmLGFBQWE7c0JBQTdELGVBQWU7dUJBQUMsU0FBUyxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge2FkZEZvcklkQXR0cmlidXRlcywgc3dpdGNoQ2xhc3N9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgQVBQTFlfU1RZTEVTX1RZUEUsIElXaWRnZXRDb25maWcsIHByb3ZpZGVBc1dpZGdldFJlZiwgU3R5bGFibGVDb21wb25lbnQsIHN0eWxlciwgV2lkZ2V0UmVmIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2NvbXBvc2l0ZS5wcm9wcyc7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnZm9ybS1ncm91cCBhcHAtY29tcG9zaXRlLXdpZGdldCBjbGVhcmZpeCc7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1mb3JtLWdyb3VwJyxcbiAgICBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTXG59O1xuXG5jb25zdCBDQVBUSU9OX1BPU0lUSU9OID0ge1xuICAgIGxlZnQ6ICdjYXB0aW9uLWxlZnQnLFxuICAgIHJpZ2h0OiAnY2FwdGlvbi1yaWdodCcsXG4gICAgdG9wOiAnY2FwdGlvbi10b3AnLFxuICAgIGZsb2F0aW5nOiAnY2FwdGlvbi1mbG9hdGluZydcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnZGl2W3dtQ29tcG9zaXRlXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDb21wb3NpdGVEaXJlY3RpdmUpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wb3NpdGVEaXJlY3RpdmUgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIC8vIHRoaXMgaXMgdGhlIHJlZmVyZW5jZSB0byB0aGUgY29tcG9uZW50IHJlZnMgaW5zaWRlIHRoZSBmb3JtLWdyb3VwXG4gICAgQENvbnRlbnRDaGlsZHJlbihXaWRnZXRSZWYsIHtkZXNjZW5kYW50czogdHJ1ZX0pIGNvbXBvbmVudFJlZnM7XG5cbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLCBBUFBMWV9TVFlMRVNfVFlQRS5DT05UQUlORVIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoaXMgaXMgb25Qcm9wZXJ0eUNoYW5nZSBoYW5kbGVyIGZvciB0aGUgZm9ybS1ncm91cCBjb21wb25lbnRcbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHBhcmFtIG52XG4gICAgICogQHBhcmFtIG92XG4gICAgICovXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICBpZiAoa2V5ID09PSAnY2FwdGlvbnBvc2l0aW9uJykge1xuICAgICAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBDQVBUSU9OX1BPU0lUSU9OW252XSwgQ0FQVElPTl9QT1NJVElPTltvdl0pO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3JlcXVpcmVkJykge1xuICAgICAgICAgICAgdGhpcy5yZXF1aXJlZCA9IG52O1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25SZXF1aXJlZFRvU3ViQ29tcG9uZW50cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aGlzIG1ldGhvZCBhc3NpZ25zIHRoZSByZXF1aXJlZCBvbiB0aGUgY29tcG9uZW50L2RpcmVjdGl2ZSBiYXNlZCBvbiB0aGUgcmVxdWlyZWQgYXR0cmlidXRlIG9mIHRoZSBmb3JtLWdyb3VwXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzc2lnblJlcXVpcmVkVG9TdWJDb21wb25lbnRzKCkge1xuICAgICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiB0aGlzLmNvbXBvbmVudFJlZnMpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZnMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWZzLmZvckVhY2goY29tcG9uZW50UmVmID0+IGNvbXBvbmVudFJlZi53aWRnZXQucmVxdWlyZWQgPSB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCA1MCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBhZGRGb3JJZEF0dHJpYnV0ZXModGhpcy5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICB0aGlzLmFzc2lnblJlcXVpcmVkVG9TdWJDb21wb25lbnRzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgQ29udGVudENoaWxkcmVuIFF1ZXJ5TGlzdCByZWZlcmVuY2VcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmcykge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWZzID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIl19
|
|
@@ -53,7 +53,9 @@ class CompositeDirective extends StylableComponent {
|
|
|
53
53
|
assignRequiredToSubComponents() {
|
|
54
54
|
if (this.required && this.componentRefs) {
|
|
55
55
|
setTimeout(() => {
|
|
56
|
-
this.componentRefs
|
|
56
|
+
if (this.componentRefs) {
|
|
57
|
+
this.componentRefs.forEach(componentRef => componentRef.widget.required = true);
|
|
58
|
+
}
|
|
57
59
|
}, 50);
|
|
58
60
|
}
|
|
59
61
|
}
|
|
@@ -62,6 +64,13 @@ class CompositeDirective extends StylableComponent {
|
|
|
62
64
|
addForIdAttributes(this.nativeElement);
|
|
63
65
|
this.assignRequiredToSubComponents();
|
|
64
66
|
}
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
// MEMORY LEAK FIX: Clear ContentChildren QueryList reference
|
|
69
|
+
if (this.componentRefs) {
|
|
70
|
+
this.componentRefs = null;
|
|
71
|
+
}
|
|
72
|
+
super.ngOnDestroy();
|
|
73
|
+
}
|
|
65
74
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompositeDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
66
75
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CompositeDirective, isStandalone: true, selector: "div[wmComposite]", providers: [
|
|
67
76
|
provideAsWidgetRef(CompositeDirective)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/composite/src/composite.props.ts","../../../../../projects/components/widgets/input/composite/src/composite.directive.ts","../../../../../projects/components/widgets/input/composite/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-form-group',\n new Map(\n [\n ['captionposition', PROP_STRING],\n ['name', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {AfterViewInit, ContentChildren, Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {addForIdAttributes, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, WidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './composite.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'form-group app-composite-widget clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-form-group',\n hostClass: DEFAULT_CLS\n};\n\nconst CAPTION_POSITION = {\n left: 'caption-left',\n right: 'caption-right',\n top: 'caption-top',\n floating: 'caption-floating'\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmComposite]',\n providers: [\n provideAsWidgetRef(CompositeDirective)\n ]\n})\nexport class CompositeDirective extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n // this is the reference to the component refs inside the form-group\n @ContentChildren(WidgetRef, {descendants: true}) componentRefs;\n\n public required: boolean;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n /**\n * this is onPropertyChange handler for the form-group component\n * @param key\n * @param nv\n * @param ov\n */\n onPropertyChange(key, nv, ov) {\n if (key === 'captionposition') {\n switchClass(this.nativeElement, CAPTION_POSITION[nv], CAPTION_POSITION[ov]);\n } else if (key === 'required') {\n this.required = nv;\n this.assignRequiredToSubComponents();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /**\n * this method assigns the required on the component/directive based on the required attribute of the form-group\n */\n protected assignRequiredToSubComponents() {\n if (this.required && this.componentRefs) {\n setTimeout(() => {\n this.componentRefs.forEach(componentRef => componentRef.widget.required = true);\n }, 50);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n addForIdAttributes(this.nativeElement);\n\n this.assignRequiredToSubComponents();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,eAAe,EACf,IAAI,GAAG,CACH;QACI,CAAC,iBAAiB,EAAE,WAAW,CAAC;QAChC,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,UAAU,EAAE,YAAY,CAAC;QAC1B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC;AAC1C,KAAA,CACJ,CACJ;AACL,CAAC;;ACJD,MAAM,WAAW,GAAG,0CAA0C;AAC9D,MAAM,aAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,SAAS,EAAE;CACd;AAED,MAAM,gBAAgB,GAAG;AACrB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,KAAK,EAAE,eAAe;AACtB,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,QAAQ,EAAE;CACb;AASK,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;AAC9C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB;IAOzC,WAAA,CAAY,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;IACjE;AAEA;;;;;AAKG;AACH,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAA;AACxB,QAAA,IAAI,GAAG,KAAK,iBAAiB,EAAE;AAC3B,YAAA,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC/E;AAAO,aAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;YAClB,IAAI,CAAC,6BAA6B,EAAE;QACxC;aAAO;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACvC;IACJ;AAEA;;AAEG;IACO,6BAA6B,GAAA;QACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;YACrC,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/composite/src/composite.props.ts","../../../../../projects/components/widgets/input/composite/src/composite.directive.ts","../../../../../projects/components/widgets/input/composite/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-form-group',\n new Map(\n [\n ['captionposition', PROP_STRING],\n ['name', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {AfterViewInit, ContentChildren, Directive, Inject, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport {addForIdAttributes, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, WidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './composite.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'form-group app-composite-widget clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-form-group',\n hostClass: DEFAULT_CLS\n};\n\nconst CAPTION_POSITION = {\n left: 'caption-left',\n right: 'caption-right',\n top: 'caption-top',\n floating: 'caption-floating'\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmComposite]',\n providers: [\n provideAsWidgetRef(CompositeDirective)\n ]\n})\nexport class CompositeDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n // this is the reference to the component refs inside the form-group\n @ContentChildren(WidgetRef, {descendants: true}) componentRefs;\n\n public required: boolean;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n /**\n * this is onPropertyChange handler for the form-group component\n * @param key\n * @param nv\n * @param ov\n */\n onPropertyChange(key, nv, ov) {\n if (key === 'captionposition') {\n switchClass(this.nativeElement, CAPTION_POSITION[nv], CAPTION_POSITION[ov]);\n } else if (key === 'required') {\n this.required = nv;\n this.assignRequiredToSubComponents();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /**\n * this method assigns the required on the component/directive based on the required attribute of the form-group\n */\n protected assignRequiredToSubComponents() {\n if (this.required && this.componentRefs) {\n setTimeout(() => {\n if (this.componentRefs) {\n this.componentRefs.forEach(componentRef => componentRef.widget.required = true);\n }\n }, 50);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n addForIdAttributes(this.nativeElement);\n\n this.assignRequiredToSubComponents();\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n if (this.componentRefs) {\n this.componentRefs = null;\n }\n\n super.ngOnDestroy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -73,6 +73,13 @@
|
|
|
73
73
|
super.onPropertyChange(key, nv, ov);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
+
ngOnDestroy() {
|
|
77
|
+
// MEMORY LEAK FIX: Clear ViewChild references
|
|
78
|
+
this.ngModel = null;
|
|
79
|
+
this.inputEl = null;
|
|
80
|
+
// Call parent ngOnDestroy (NumberLocale → StylableComponent → BaseComponent)
|
|
81
|
+
super.ngOnDestroy();
|
|
82
|
+
}
|
|
76
83
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: CurrencyComponent, deps: [{ token: i0__namespace.Injector }, { token: i1__namespace.AppDefaults }, { token: i1__namespace.AbstractI18nService }, { token: i2__namespace.TrailingZeroDecimalPipe }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
77
84
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CurrencyComponent, isStandalone: true, selector: "[wmCurrency]", providers: [
|
|
78
85
|
i2.provideAs(CurrencyComponent, i3.NG_VALUE_ACCESSOR, true),
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ElementRef, Injector } from '@angular/core';
|
|
1
|
+
import { ElementRef, Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { NgModel } from '@angular/forms';
|
|
3
3
|
import { AbstractI18nService, AppDefaults } from '@wm/core';
|
|
4
4
|
import { TrailingZeroDecimalPipe } from '@wm/components/base';
|
|
5
5
|
import { NumberLocale } from '@wm/components/input/text';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class CurrencyComponent extends NumberLocale {
|
|
7
|
+
export declare class CurrencyComponent extends NumberLocale implements OnDestroy {
|
|
8
8
|
private appDefaults;
|
|
9
9
|
static initializeProps: void;
|
|
10
10
|
currencyCode: string;
|
|
@@ -22,6 +22,7 @@ export declare class CurrencyComponent extends NumberLocale {
|
|
|
22
22
|
inputEl: ElementRef;
|
|
23
23
|
constructor(inj: Injector, appDefaults: AppDefaults, i18nService: AbstractI18nService, trailingZeroDecimalPipe: TrailingZeroDecimalPipe, explicitContext: any);
|
|
24
24
|
onPropertyChange(key: string, nv: any, ov?: any): void;
|
|
25
|
+
ngOnDestroy(): void;
|
|
25
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<CurrencyComponent, [null, null, null, null, { optional: true; }]>;
|
|
26
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<CurrencyComponent, "[wmCurrency]", never, {}, {}, never, never, true, never>;
|
|
27
28
|
}
|
|
@@ -31,6 +31,13 @@ export class CurrencyComponent extends NumberLocale {
|
|
|
31
31
|
super.onPropertyChange(key, nv, ov);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
ngOnDestroy() {
|
|
35
|
+
// MEMORY LEAK FIX: Clear ViewChild references
|
|
36
|
+
this.ngModel = null;
|
|
37
|
+
this.inputEl = null;
|
|
38
|
+
// Call parent ngOnDestroy (NumberLocale → StylableComponent → BaseComponent)
|
|
39
|
+
super.ngOnDestroy();
|
|
40
|
+
}
|
|
34
41
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CurrencyComponent, deps: [{ token: i0.Injector }, { token: i1.AppDefaults }, { token: i1.AbstractI18nService }, { token: i2.TrailingZeroDecimalPipe }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
42
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CurrencyComponent, isStandalone: true, selector: "[wmCurrency]", providers: [
|
|
36
43
|
provideAs(CurrencyComponent, NG_VALUE_ACCESSOR, true),
|
|
@@ -57,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
57
64
|
type: ViewChild,
|
|
58
65
|
args: ['input', { static: true, read: ElementRef }]
|
|
59
66
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2N1cnJlbmN5L3NyYy9jdXJyZW5jeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY3VycmVuY3kvc3JjL2N1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFhLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN6RSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2hJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBRS9DLE1BQU0sV0FBVyxHQUFHLDBCQUEwQixDQUFDO0FBRS9DLE1BQU0sYUFBYSxHQUFrQjtJQUNqQyxVQUFVLEVBQUUsYUFBYTtJQUN6QixTQUFTLEVBQUUsV0FBVztDQUN6QixDQUFDO0FBYUYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFlBQVk7YUFDeEMsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFpQnpDLFlBQVksR0FBYSxFQUFXLFdBQXdCLEVBQUUsV0FBZ0MsRUFBRSx1QkFBZ0QsRUFBMEMsZUFBb0I7UUFDMU0sS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRGpELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRXhELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDO1FBQzNELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2RixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFRO1FBQzNDLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbEcsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsNkVBQTZFO1FBQzdFLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQXhDUSxpQkFBaUIsK0lBa0JnSSxrQkFBa0I7bUdBbEJuSyxpQkFBaUIsMkRBTmY7WUFDUCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO1lBQ3JELFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDO1lBQ2pELGtCQUFrQixDQUFDLGlCQUFpQixDQUFDO1NBQ3hDLG1FQWlCVSxPQUFPLDRIQUN3QixVQUFVLGtFQzVDeEQscXBDQTZCQSw0Q0RWWSxvQkFBb0Isa0ZBQUUsV0FBVzs7NEZBU2hDLGlCQUFpQjtrQkFYN0IsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsWUFDaEMsY0FBYyxhQUViO3dCQUNQLFNBQVMsb0JBQW9CLGlCQUFpQixFQUFFLElBQUksQ0FBQzt3QkFDckQsU0FBUyxvQkFBb0IsYUFBYSxFQUFFLElBQUksQ0FBQzt3QkFDakQsa0JBQWtCLG1CQUFtQjtxQkFDeEM7OzBCQW9Ca0osTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUFHLFFBQVE7eUNBSG5KLE9BQU87c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDc0IsT0FBTztzQkFBOUQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdNb2RlbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0Fic3RyYWN0STE4blNlcnZpY2UsIEFwcERlZmF1bHRzLCBDVVJSRU5DWV9JTkZPfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge0lXaWRnZXRDb25maWcsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBUZXh0Q29udGVudERpcmVjdGl2ZSwgVHJhaWxpbmdaZXJvRGVjaW1hbFBpcGV9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgTnVtYmVyTG9jYWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvaW5wdXQvdGV4dCc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9jdXJyZW5jeS5wcm9wcyc7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2lucHV0LWdyb3VwIGFwcC1jdXJyZW5jeSc7XG5cbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLWN1cnJlbmN5JyxcbiAgICBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RleHRDb250ZW50RGlyZWN0aXZlLCBGb3Jtc01vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdbd21DdXJyZW5jeV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jdXJyZW5jeS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhDdXJyZW5jeUNvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXMoQ3VycmVuY3lDb21wb25lbnQsIE5HX1ZBTElEQVRPUlMsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoQ3VycmVuY3lDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUNvbXBvbmVudCBleHRlbmRzIE51bWJlckxvY2FsZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIGN1cnJlbmN5Q29kZTogc3RyaW5nO1xuICAgIGN1cnJlbmN5U3ltYm9sOiBzdHJpbmc7XG4gICAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHB1YmxpYyByZWdleHA6IGFueTtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGF1dG9mb2N1czogYm9vbGVhbjtcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyB0YWJpbmRleDogYW55O1xuICAgIHB1YmxpYyBzaG9ydGN1dGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBoaW50OiBzdHJpbmc7XG4gICAgcHVibGljIGFyaWFsYWJlbDogc3RyaW5nO1xuXG4gICAgQFZpZXdDaGlsZChOZ01vZGVsLCB7c3RhdGljOiB0cnVlfSkgbmdNb2RlbDogTmdNb2RlbDtcbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pIGlucHV0RWw6IEVsZW1lbnRSZWY7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCAgcHJpdmF0ZSBhcHBEZWZhdWx0czogQXBwRGVmYXVsdHMsIGkxOG5TZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlLCB0cmFpbGluZ1plcm9EZWNpbWFsUGlwZTogVHJhaWxpbmdaZXJvRGVjaW1hbFBpcGUsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGkxOG5TZXJ2aWNlLCB0cmFpbGluZ1plcm9EZWNpbWFsUGlwZSwgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgdGhpcy5jdXJyZW5jeUNvZGUgPSB0aGlzLmFwcERlZmF1bHRzLmN1cnJlbmN5Q29kZSB8fCAnVVNEJztcbiAgICAgICAgdGhpcy5jdXJyZW5jeVN5bWJvbCA9IENVUlJFTkNZX0lORk9bdGhpcy5hcHBEZWZhdWx0cy5jdXJyZW5jeUNvZGUgfHwgXCJVU0RcIl0uc3ltYm9sO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdjdXJyZW5jeScpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVuY3lDb2RlID0gbnY7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5U3ltYm9sID0gQ1VSUkVOQ1lfSU5GT1t0aGlzLmN1cnJlbmN5Q29kZXx8IHRoaXMuYXBwRGVmYXVsdHMuY3VycmVuY3lDb2RlXS5zeW1ib2w7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIFZpZXdDaGlsZCByZWZlcmVuY2VzXG4gICAgICAgIHRoaXMubmdNb2RlbCA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5wdXRFbCA9IG51bGw7XG5cbiAgICAgICAgLy8gQ2FsbCBwYXJlbnQgbmdPbkRlc3Ryb3kgKE51bWJlckxvY2FsZSDihpIgU3R5bGFibGVDb21wb25lbnQg4oaSIEJhc2VDb21wb25lbnQpXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvblwiIFt0ZXh0Q29udGVudF09XCJjdXJyZW5jeVN5bWJvbFwiPjwvc3Bhbj5cbjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdGV4dGJveCBhcHAtY3VycmVuY3ktaW5wdXRcIlxuICAgICAgICNpbnB1dFxuICAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgaW5wdXRtb2RlPVwiZGVjaW1hbFwiXG4gICAgICAgZm9jdXMtdGFyZ2V0XG4gICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgIFtwYXR0ZXJuXT1cInJlZ2V4cFwiXG4gICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFsYWJlbCB8fCBjdXJyZW5jeUNvZGVcIlxuICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgW2F0dHIuYWNjZXNza2V5XT1cInNob3J0Y3V0a2V5XCJcbiAgICAgICBbbmdNb2RlbF09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJuZ01vZGVsT3B0aW9uc1wiXG5cbiAgICAgICAoZm9jdXMpPVwiY2hlY2tGb3JUcmFpbGluZ1plcm9zKCRldmVudClcIlxuICAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICAgICAoYmx1cik9XCJoYW5kbGVCbHVyKCRldmVudCk7IGNoZWNrRm9yVHJhaWxpbmdaZXJvcygkZXZlbnQpO1wiXG4gICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAoa2V5ZG93bik9XCJ2YWxpZGF0ZUlucHV0RW50cnkoJGV2ZW50KTtcIlxuICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgKGtleWRvd24uQXJyb3dVcCk9XCJvbkFycm93UHJlc3MoJGV2ZW50LCAnVVAnKVwiXG4gICAgICAgKGtleWRvd24uQXJyb3dEb3duKT1cIm9uQXJyb3dQcmVzcygkZXZlbnQsICdET1dOJylcIj5cbiJdfQ==
|
|
@@ -55,6 +55,13 @@ class CurrencyComponent extends NumberLocale {
|
|
|
55
55
|
super.onPropertyChange(key, nv, ov);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
+
ngOnDestroy() {
|
|
59
|
+
// MEMORY LEAK FIX: Clear ViewChild references
|
|
60
|
+
this.ngModel = null;
|
|
61
|
+
this.inputEl = null;
|
|
62
|
+
// Call parent ngOnDestroy (NumberLocale → StylableComponent → BaseComponent)
|
|
63
|
+
super.ngOnDestroy();
|
|
64
|
+
}
|
|
58
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CurrencyComponent, deps: [{ token: i0.Injector }, { token: i1.AppDefaults }, { token: i1.AbstractI18nService }, { token: i2.TrailingZeroDecimalPipe }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
66
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CurrencyComponent, isStandalone: true, selector: "[wmCurrency]", providers: [
|
|
60
67
|
provideAs(CurrencyComponent, NG_VALUE_ACCESSOR, true),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/currency/src/currency.props.ts","../../../../../projects/components/widgets/input/currency/src/currency.component.ts","../../../../../projects/components/widgets/input/currency/src/currency.component.html","../../../../../projects/components/widgets/input/currency/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const currencyProps = new Map(\n [\n ['class', PROP_STRING],\n ['currency', PROP_STRING],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter value', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', {value: 1, ...PROP_NUMBER}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['trailingzero', {value: false, ...PROP_BOOLEAN}],\n ['inputmode', {value: 'natural', ...PROP_STRING}]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-currency',\n currencyProps\n );\n registerFormWidget(\n FormWidgetType.CURRENCY,\n new Map(currencyProps)\n );\n};\n","import { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {AbstractI18nService, AppDefaults, CURRENCY_INFO} from '@wm/core';\nimport {IWidgetConfig, provideAs, provideAsWidgetRef, TextContentDirective, TrailingZeroDecimalPipe} from '@wm/components/base';\nimport { NumberLocale } from '@wm/components/input/text';\n\nimport {registerProps} from './currency.props';\n\nconst DEFAULT_CLS = 'input-group app-currency';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-currency',\n hostClass: DEFAULT_CLS\n};\n\n@Component({\n standalone: true,\n imports: [TextContentDirective, FormsModule],\n selector: '[wmCurrency]',\n templateUrl: './currency.component.html',\n providers: [\n provideAs(CurrencyComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CurrencyComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CurrencyComponent)\n ]\n})\nexport class CurrencyComponent extends NumberLocale {\n static initializeProps = registerProps();\n\n currencyCode: string;\n currencySymbol: string;\n public required: boolean;\n public regexp: any;\n public disabled: boolean;\n public autofocus: boolean;\n public name: string;\n public tabindex: any;\n public shortcutkey: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild(NgModel, {static: true}) ngModel: NgModel;\n @ViewChild('input', { static: true, read: ElementRef }) inputEl: ElementRef;\n\n constructor(inj: Injector, private appDefaults: AppDefaults, i18nService: AbstractI18nService, trailingZeroDecimalPipe: TrailingZeroDecimalPipe, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, i18nService, trailingZeroDecimalPipe, explicitContext);\n this.currencyCode = this.appDefaults.currencyCode || 'USD';\n this.currencySymbol = CURRENCY_INFO[this.appDefaults.currencyCode || \"USD\"].symbol;\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'currency') {\n this.currencyCode = nv;\n this.currencySymbol = CURRENCY_INFO[this.currencyCode|| this.appDefaults.currencyCode].symbol;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","<span class=\"input-group-addon\" [textContent]=\"currencySymbol\"></span>\n<input class=\"form-control app-textbox app-currency-input\"\n #input\n role=\"textbox\"\n type=\"text\"\n inputmode=\"decimal\"\n focus-target\n [autofocus]=\"autofocus\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [pattern]=\"regexp\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel || currencyCode\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [ngModel]=\"displayValue\"\n [ngModelOptions]=\"ngModelOptions\"\n\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n (paste)=\"onPaste($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (ngModelChange)=\"onModelChange($event)\"\n (keydown)=\"validateInputEntry($event);\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\">\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;AAGO,MAAM,aAAa,GAAG,IAAI,GAAG,CAChC;IACI,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,GAAG,WAAW,EAAC,CAAC;IACvD,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACpC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;IACjD,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,EAAC;AACnD,CAAA,CACJ;AAEM,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,aAAa,EACb,aAAa,CAChB;IACD,kBAAkB,CACd,cAAc,CAAC,QAAQ,EACvB,IAAI,GAAG,CAAC,aAAa,CAAC,CACzB;AACL,CAAC;;ACzBD,MAAM,WAAW,GAAG,0BAA0B;AAE9C,MAAM,aAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,SAAS,EAAE;CACd;AAaK,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AACxC,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB;IAiBzC,WAAA,CAAY,GAAa,EAAW,WAAwB,EAAE,WAAgC,EAAE,uBAAgD,EAA0C,eAAoB,EAAA;QAC1M,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,uBAAuB,EAAE,eAAe,CAAC;QADhD,IAAA,CAAA,WAAW,GAAX,WAAW;QAE3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,KAAK;AAC1D,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC,MAAM;IACtF;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;AAC3C,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AACtB,YAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,IAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM;QACjG;aAAO;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACvC;IACJ;
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/currency/src/currency.props.ts","../../../../../projects/components/widgets/input/currency/src/currency.component.ts","../../../../../projects/components/widgets/input/currency/src/currency.component.html","../../../../../projects/components/widgets/input/currency/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const currencyProps = new Map(\n [\n ['class', PROP_STRING],\n ['currency', PROP_STRING],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter value', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', {value: 1, ...PROP_NUMBER}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['trailingzero', {value: false, ...PROP_BOOLEAN}],\n ['inputmode', {value: 'natural', ...PROP_STRING}]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-currency',\n currencyProps\n );\n registerFormWidget(\n FormWidgetType.CURRENCY,\n new Map(currencyProps)\n );\n};\n","import { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {AbstractI18nService, AppDefaults, CURRENCY_INFO} from '@wm/core';\nimport {IWidgetConfig, provideAs, provideAsWidgetRef, TextContentDirective, TrailingZeroDecimalPipe} from '@wm/components/base';\nimport { NumberLocale } from '@wm/components/input/text';\n\nimport {registerProps} from './currency.props';\n\nconst DEFAULT_CLS = 'input-group app-currency';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-currency',\n hostClass: DEFAULT_CLS\n};\n\n@Component({\n standalone: true,\n imports: [TextContentDirective, FormsModule],\n selector: '[wmCurrency]',\n templateUrl: './currency.component.html',\n providers: [\n provideAs(CurrencyComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CurrencyComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CurrencyComponent)\n ]\n})\nexport class CurrencyComponent extends NumberLocale implements OnDestroy {\n static initializeProps = registerProps();\n\n currencyCode: string;\n currencySymbol: string;\n public required: boolean;\n public regexp: any;\n public disabled: boolean;\n public autofocus: boolean;\n public name: string;\n public tabindex: any;\n public shortcutkey: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild(NgModel, {static: true}) ngModel: NgModel;\n @ViewChild('input', { static: true, read: ElementRef }) inputEl: ElementRef;\n\n constructor(inj: Injector, private appDefaults: AppDefaults, i18nService: AbstractI18nService, trailingZeroDecimalPipe: TrailingZeroDecimalPipe, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, i18nService, trailingZeroDecimalPipe, explicitContext);\n this.currencyCode = this.appDefaults.currencyCode || 'USD';\n this.currencySymbol = CURRENCY_INFO[this.appDefaults.currencyCode || \"USD\"].symbol;\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'currency') {\n this.currencyCode = nv;\n this.currencySymbol = CURRENCY_INFO[this.currencyCode|| this.appDefaults.currencyCode].symbol;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.ngModel = null;\n this.inputEl = null;\n\n // Call parent ngOnDestroy (NumberLocale → StylableComponent → BaseComponent)\n super.ngOnDestroy();\n }\n}\n","<span class=\"input-group-addon\" [textContent]=\"currencySymbol\"></span>\n<input class=\"form-control app-textbox app-currency-input\"\n #input\n role=\"textbox\"\n type=\"text\"\n inputmode=\"decimal\"\n focus-target\n [autofocus]=\"autofocus\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [pattern]=\"regexp\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel || currencyCode\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [ngModel]=\"displayValue\"\n [ngModelOptions]=\"ngModelOptions\"\n\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n (paste)=\"onPaste($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (ngModelChange)=\"onModelChange($event)\"\n (keydown)=\"validateInputEntry($event);\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\">\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
this.acceptsArray = false; // set to true if proxyModel on widget accepts array type.
|
|
58
58
|
this.dataset$ = new rxjs.Subject();
|
|
59
59
|
this.datavalue$ = new rxjs.Subject();
|
|
60
|
+
this._debouncedInitDatasetItems = null;
|
|
60
61
|
this.allowempty = true;
|
|
61
62
|
this._debounceDatavalueUpdation = lodashEs.debounce((values) => {
|
|
62
63
|
// if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.
|
|
@@ -85,7 +86,9 @@
|
|
|
85
86
|
}, 150);
|
|
86
87
|
this.handleHeaderClick = core.noop;
|
|
87
88
|
this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe("locale-changed", () => {
|
|
88
|
-
this._debouncedInitDatasetItems
|
|
89
|
+
if (this._debouncedInitDatasetItems) {
|
|
90
|
+
this._debouncedInitDatasetItems();
|
|
91
|
+
}
|
|
89
92
|
});
|
|
90
93
|
}
|
|
91
94
|
/**
|
|
@@ -275,7 +278,9 @@
|
|
|
275
278
|
case 'displayexpression':
|
|
276
279
|
case 'orderby':
|
|
277
280
|
case 'usekeys':
|
|
278
|
-
this._debouncedInitDatasetItems
|
|
281
|
+
if (this._debouncedInitDatasetItems) {
|
|
282
|
+
this._debouncedInitDatasetItems();
|
|
283
|
+
}
|
|
279
284
|
break;
|
|
280
285
|
case 'required':
|
|
281
286
|
case 'datavalue':
|
|
@@ -304,6 +309,25 @@
|
|
|
304
309
|
if (this.cancelLocaleChangeSubscription) {
|
|
305
310
|
this.cancelLocaleChangeSubscription();
|
|
306
311
|
}
|
|
312
|
+
// MEMORY LEAK FIX: Complete and clear Subject observables
|
|
313
|
+
if (this.dataset$) {
|
|
314
|
+
this.dataset$.complete();
|
|
315
|
+
}
|
|
316
|
+
if (this.datavalue$) {
|
|
317
|
+
this.datavalue$.complete();
|
|
318
|
+
}
|
|
319
|
+
// MEMORY LEAK FIX: Clear datasetItems array
|
|
320
|
+
this.datasetItems = [];
|
|
321
|
+
// MEMORY LEAK FIX: Clear grouped data
|
|
322
|
+
if (this.groupedData) {
|
|
323
|
+
this.groupedData = [];
|
|
324
|
+
}
|
|
325
|
+
// MEMORY LEAK FIX: Clear model references
|
|
326
|
+
this._modelByKey = null;
|
|
327
|
+
this._modelByValue = null;
|
|
328
|
+
this.toBeProcessedDatavalue = null;
|
|
329
|
+
// Call parent ngOnDestroy
|
|
330
|
+
super.ngOnDestroy();
|
|
307
331
|
}
|
|
308
332
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: DatasetAwareFormComponent, deps: [{ token: i0__namespace.Injector }, { token: base.WidgetConfig }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: 'groupby', attribute: true }, { token: Promise }], target: i0__namespace.ɵɵFactoryTarget.Injectable }); }
|
|
309
333
|
static { this.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: DatasetAwareFormComponent }); }
|
|
@@ -39,6 +39,7 @@ export class DatasetAwareFormComponent extends BaseFormCustomComponent {
|
|
|
39
39
|
this.acceptsArray = false; // set to true if proxyModel on widget accepts array type.
|
|
40
40
|
this.dataset$ = new Subject();
|
|
41
41
|
this.datavalue$ = new Subject();
|
|
42
|
+
this._debouncedInitDatasetItems = null;
|
|
42
43
|
this.allowempty = true;
|
|
43
44
|
this._debounceDatavalueUpdation = _debounce((values) => {
|
|
44
45
|
// if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.
|
|
@@ -67,7 +68,9 @@ export class DatasetAwareFormComponent extends BaseFormCustomComponent {
|
|
|
67
68
|
}, 150);
|
|
68
69
|
this.handleHeaderClick = noop;
|
|
69
70
|
this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe("locale-changed", () => {
|
|
70
|
-
this._debouncedInitDatasetItems
|
|
71
|
+
if (this._debouncedInitDatasetItems) {
|
|
72
|
+
this._debouncedInitDatasetItems();
|
|
73
|
+
}
|
|
71
74
|
});
|
|
72
75
|
}
|
|
73
76
|
/**
|
|
@@ -257,7 +260,9 @@ export class DatasetAwareFormComponent extends BaseFormCustomComponent {
|
|
|
257
260
|
case 'displayexpression':
|
|
258
261
|
case 'orderby':
|
|
259
262
|
case 'usekeys':
|
|
260
|
-
this._debouncedInitDatasetItems
|
|
263
|
+
if (this._debouncedInitDatasetItems) {
|
|
264
|
+
this._debouncedInitDatasetItems();
|
|
265
|
+
}
|
|
261
266
|
break;
|
|
262
267
|
case 'required':
|
|
263
268
|
case 'datavalue':
|
|
@@ -286,6 +291,25 @@ export class DatasetAwareFormComponent extends BaseFormCustomComponent {
|
|
|
286
291
|
if (this.cancelLocaleChangeSubscription) {
|
|
287
292
|
this.cancelLocaleChangeSubscription();
|
|
288
293
|
}
|
|
294
|
+
// MEMORY LEAK FIX: Complete and clear Subject observables
|
|
295
|
+
if (this.dataset$) {
|
|
296
|
+
this.dataset$.complete();
|
|
297
|
+
}
|
|
298
|
+
if (this.datavalue$) {
|
|
299
|
+
this.datavalue$.complete();
|
|
300
|
+
}
|
|
301
|
+
// MEMORY LEAK FIX: Clear datasetItems array
|
|
302
|
+
this.datasetItems = [];
|
|
303
|
+
// MEMORY LEAK FIX: Clear grouped data
|
|
304
|
+
if (this.groupedData) {
|
|
305
|
+
this.groupedData = [];
|
|
306
|
+
}
|
|
307
|
+
// MEMORY LEAK FIX: Clear model references
|
|
308
|
+
this._modelByKey = null;
|
|
309
|
+
this._modelByValue = null;
|
|
310
|
+
this.toBeProcessedDatavalue = null;
|
|
311
|
+
// Call parent ngOnDestroy
|
|
312
|
+
super.ngOnDestroy();
|
|
289
313
|
}
|
|
290
314
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatasetAwareFormComponent, deps: [{ token: i0.Injector }, { token: WidgetConfig }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: 'groupby', attribute: true }, { token: Promise }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
291
315
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatasetAwareFormComponent }); }
|
|
@@ -304,4 +328,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
304
328
|
type: Attribute,
|
|
305
329
|
args: ['groupby']
|
|
306
330
|
}] }, { type: Promise }] });
|
|
307
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1hd2FyZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kYXRhc2V0LWF3YXJlLWZvcm0vc3JjL2RhdGFzZXQtYXdhcmUtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBcUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQWUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBaUIsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcFIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLFFBQVEsSUFBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDOztBQUc3RyxNQUFNLE9BQWdCLHlCQUEwQixTQUFRLHVCQUF1QjtJQThDM0UsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLElBQVcsVUFBVSxDQUFD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QjtrQkFEOUMsVUFBVTs7MEJBaUZnQyxNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQyxNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTs7MEJBQ3BDLFNBQVM7MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlLCBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7JGFwcERpZ2VzdCwgQXBwRGVmYXVsdHMsIGRlYm91bmNlLCBpc0RlZmluZWQsIGlzRXF1YWxXaXRoRmllbGRzLCBub29wLCB0b0Jvb2xlYW59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEFMTEZJRUxEUywgY29udmVydERhdGFUb09iamVjdCwgRGF0YVNldEl0ZW0sIGV4dHJhY3REYXRhQXNBcnJheSwgZ2V0T3JkZXJlZERhdGFzZXQsIGdldFVuaXFPYmpzQnlEYXRhRmllbGQsIGhhbmRsZUhlYWRlckNsaWNrLCB0b2dnbGVBbGxIZWFkZXJzLCB0cmFuc2Zvcm1Gb3JtRGF0YSwgdHJhbnNmb3JtRGF0YVdpdGhLZXlzLCBncm91cERhdGEsIFRvRGF0ZVBpcGUsIElXaWRnZXRDb25maWcsIFdpZGdldENvbmZpZyB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgQmFzZUZvcm1DdXN0b21Db21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dC9iYXNlLWZvcm0tY3VzdG9tJztcbmltcG9ydCB7ZGVib3VuY2UgYXMgX2RlYm91bmNlLCBmaW5kLCBpc0FycmF5LCBpc0VtcHR5LCBpc0VxdWFsLCBpc051bGwsIGlzT2JqZWN0LCB0b1N0cmluZ30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBkYXRhc2V0OiBhbnk7XG4gICAgcHVibGljIGRhdGFmaWVsZDogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5ZmllbGQ6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzcGxheWxhYmVsOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc3BsYXlpbWFnZXNyYzogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5ZXhwcmVzc2lvbjogc3RyaW5nO1xuICAgIHB1YmxpYyB1c2VrZXlzOiBib29sZWFuO1xuICAgIHB1YmxpYyBvcmRlcmJ5OiBzdHJpbmc7XG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcbiAgICBwdWJsaWMgY29udGVudDogc3RyaW5nO1xuICAgIHB1YmxpYyBjb2xsYXBzaWJsZTogYm9vbGVhbjtcbiAgICBwdWJsaWMgZGF0ZVBpcGU7XG5cbiAgICBwdWJsaWMgaGFuZGxlSGVhZGVyQ2xpY2s6ICgkZXZlbnQpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSB0b2dnbGVBbGxIZWFkZXJzOiB2b2lkO1xuICAgIHB1YmxpYyBhcHBEZWZhdWx0cztcblxuICAgIHB1YmxpYyBiaW5kZGlzcGxheWV4cHJlc3Npb246IHN0cmluZztcbiAgICBwdWJsaWMgYmluZGRpc3BsYXlpbWFnZXNyYzogc3RyaW5nO1xuICAgIHB1YmxpYyBiaW5kZGlzcGxheWxhYmVsOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZGlzcGxheVZhbHVlOiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nO1xuXG4gICAgcHVibGljIGRhdGFzZXRJdGVtczogRGF0YVNldEl0ZW1bXSA9IFtdO1xuICAgIHB1YmxpYyBhY2NlcHRzQXJyYXkgPSBmYWxzZTsgLy8gc2V0IHRvIHRydWUgaWYgcHJveHlNb2RlbCBvbiB3aWRnZXQgYWNjZXB0cyBhcnJheSB0eXBlLlxuICAgIHByb3RlY3RlZCBkYXRhc2V0JCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJvdGVjdGVkIGRhdGF2YWx1ZSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJvdGVjdGVkIG1hdGNoOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGRhdGVmb3JtYXQ6IHN0cmluZztcbiAgICBwdWJsaWMgZ3JvdXBlZERhdGE6IGFueVtdO1xuXG4gICAgcHJvdGVjdGVkIF9tb2RlbEJ5S2V5OiBhbnk7XG4gICAgcHVibGljIF9tb2RlbEJ5VmFsdWU6IGFueTtcbiAgICBwdWJsaWMgX2RlZmF1bHRRdWVyeUludm9rZWQ6IGJvb2xlYW47IC8vIGZvciBzZWFyY2gvY2hpcHMgaWYgZGF0YXZhbHVlIGlzIG9idGFpbmVkIGZyb20gdGhlIGRlZmF1bHQgbi93IGNhbGwgdGhlbiBzZXQgdG8gdHJ1ZSBhbmQgZG8gbm90IHVwZGF0ZSB0aGUgbW9kZWxCeUtleXMuXG5cbiAgICAvLyB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZSBpbml0aWFsIGRhdGF2YWx1ZSB3aGljaCBuZWVkcyB0byBiZSBwcm9jZXNzZWQgb25jZSB0aGUgZGF0YXNldCBpcyBhdmFpbGFibGVcbiAgICBwdWJsaWMgdG9CZVByb2Nlc3NlZERhdGF2YWx1ZTogYW55O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RlYm91bmNlZEluaXREYXRhc2V0SXRlbXM6IEZ1bmN0aW9uO1xuICAgIHByb3RlY3RlZCBhbGxvd2VtcHR5ID0gdHJ1ZTtcbiAgICBwdWJsaWMgY29tcGFyZWJ5OiBhbnk7XG5cbiAgICBwcml2YXRlIGNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbjtcblxuICAgIHB1YmxpYyBnZXQgbW9kZWxCeUtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsQnlLZXk7XG4gICAgfVxuXG4gICAgLy8gdHJpZ2dlcnMgb24gbmdNb2RlbCBjaGFuZ2UuIFRoaXMgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIGRhdGF2YWx1ZSB2YWx1ZS5cbiAgICBwdWJsaWMgc2V0IG1vZGVsQnlLZXkodmFsOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RCeUtleSh2YWwpO1xuXG4gICAgICAgIC8vIGludm9rZSBvbiBkYXRhdmFsdWUgY2hhbmdlLlxuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHRoaXMuX21vZGVsQnlWYWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHB1YmxpYyBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWxCeVZhbHVlO1xuICAgIH1cblxuICAgIC8vIHRyaWdnZXJzIG9uIHNldHRpbmcgdGhlIGRhdGF2YWx1ZS4gVGhpcyBmdW5jdGlvbiBleHRyYWN0cyB0aGUgbW9kZWwgdmFsdWUuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHB1YmxpYyBzZXQgZGF0YXZhbHVlKHZhbDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICB2YWwgPSBleHRyYWN0RGF0YUFzQXJyYXkodmFsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tb2RlbEJ5VmFsdWUgPSB2YWw7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RCeVZhbHVlKHZhbCk7XG5cbiAgICAgICAgLy8gY2hhbmdlcyBvbiB0aGUgZGF0YXZhbHVlIGNhbiBiZSBzdWJzY3JpYmVkIHVzaW5nIGxpc3RlblRvRGF0YXZhbHVlXG4gICAgICAgIHRoaXMuZGF0YXZhbHVlJC5uZXh0KHZhbCk7XG5cbiAgICAgICAgLy8gaW52b2tlIG9uIGRhdGF2YWx1ZSBjaGFuZ2UuXG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodmFsLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCAgQEluamVjdChXaWRnZXRDb25maWcpIGNvbmZpZzogSVdpZGdldENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAQXR0cmlidXRlKCdncm91cGJ5JykgcHVibGljIGdyb3VwYnk/OiBzdHJpbmcsIGluaXRQcm9taXNlPzogUHJvbWlzZTxhbnk+KSB7XG4gICAgICAgIHN1cGVyKGluaiwgY29uZmlnLCBleHBsaWNpdENvbnRleHQsIGluaXRQcm9taXNlKTtcbiAgICAgICAgdGhpcy5kYXRlUGlwZSA9IHRoaXMuaW5qLmdldChUb0RhdGVQaXBlKTtcbiAgICAgICAgdGhpcy5hcHBEZWZhdWx0cyA9IHRoaXMuaW5qLmdldChBcHBEZWZhdWx0cyk7XG4gICAgICAgIHRoaXMuYmluZGRpc3BsYXlleHByZXNzaW9uID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzcGxheWV4cHJlc3Npb24uYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRkaXNwbGF5aW1hZ2VzcmMgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNwbGF5aW1hZ2VzcmMuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRkaXNwbGF5bGFiZWwgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNwbGF5bGFiZWwuYmluZCcpO1xuXG4gICAgICAgIHRoaXMuX2RlYm91bmNlZEluaXREYXRhc2V0SXRlbXMgPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXREYXRhc2V0SXRlbXMoKTtcbiAgICAgICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICAgICAgfSwgMTUwKTtcbiAgICAgICAgdGhpcy5oYW5kbGVIZWFkZXJDbGljayA9IG5vb3A7XG5cbiAgICAgICAgdGhpcy5jYW5jZWxMb2NhbGVDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmdldEFwcEluc3RhbmNlKCkuc3Vic2NyaWJlKFwibG9jYWxlLWNoYW5nZWRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VkSW5pdERhdGFzZXRJdGVtcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIF9kYXRhdmFsdWUgdmFsdWUgZnJvbSB0aGUgbW9kZWwgYW5kIHNldHMgdGhlIHNlbGVjdGVkIGZsYWcgd2hlbiBpdGVtIGlzIGZvdW5kLlxuICAgICAqIEhlcmUgbW9kZWwgaXMgdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gbmdNb2RlbC5cbiAgICAgKiBAcGFyYW0ga2V5cyByZXByZXNlbnQgdGhlIG1vZGVsLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZWxlY3RCeUtleShrZXlzKSB7XG4gICAgICAgIHRoaXMucmVzZXREYXRhc2V0SXRlbXMoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZGF0YXNldEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgIWlzQXJyYXkoa2V5cykpIHtcbiAgICAgICAgICAgIGtleXMgPSBba2V5c107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIF9tb2RlbEJ5S2V5IHRvIHRoZSBtb2RpZmllZCBrZXlzLlxuICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0ga2V5cztcblxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gW107XG4gICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQnlLZXkgPSBmaW5kKHRoaXMuZGF0YXNldEl0ZW1zLCBpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbm90IHRyaXBsZSBlcXVhbCwgYXMgdGhlIGluc3RhbmNlIHR5cGUgY2FuIGJlIGRpZmZlcmVudC5cbiAgICAgICAgICAgICAgICAgICAgLy8gb25seSB2YWx1ZSBjb21wYXJpc29uIHNob3VsZCBiZSBkb25lLlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9TdHJpbmcoaXRlbS5rZXkpID09PSB0b1N0cmluZyhrZXkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtQnlLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbUJ5S2V5LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gWy4uLnRoaXMuX21vZGVsQnlWYWx1ZSwgaXRlbUJ5S2V5LnZhbHVlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgY29uc3QgaXRlbUJ5S2V5ID0gZmluZCh0aGlzLmRhdGFzZXRJdGVtcywgaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gbm90IHRyaXBsZSBlcXVhbCwgYXMgdGhlIGluc3RhbmNlIHR5cGUgY2FuIGJlIGRpZmZlcmVudC5cbiAgICAgICAgICAgICAgICAvLyBvbmx5IHZhbHVlIGNvbXBhcmlzb24gc2hvdWxkIGJlIGRvbmUuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvU3RyaW5nKGl0ZW0ua2V5KSA9PT0gdG9TdHJpbmcoa2V5cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChpdGVtQnlLZXkpIHtcbiAgICAgICAgICAgICAgICBpdGVtQnlLZXkuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IGl0ZW1CeUtleS52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXREaXNwbGF5VmFsdWVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBfbW9kZWwgdmFsdWUgZnJvbSB0aGUgZGF0YXZhbHVlIChzZWxlY3RlZHZhbHVlcykgYW5kIHNldHMgdGhlIHNlbGVjdGVkIGZsYWcgd2hlbiBpdGVtIGlzIGZvdW5kLlxuICAgICAqIGRhdGF2YWx1ZSBpcyB0aGUgZGVmYXVsdCB2YWx1ZSBvciBhIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgZGlzcGxheUZpZWxkIChmb3Igc3VwcG9zZTogb2JqZWN0IGluIGNhc2Ugb2YgQUxMRklFTERTKS5cbiAgICAgKiBJZiBhY2NlcHRzQXJyYXkgaXMgdHJ1ZSwgdGhlIG1vZGVsIGFsd2F5cyBhY2NlcHRzIGFuIGFycmF5LlxuICAgICAqIEZvciBleGFtcGxlLCBzZWxlY3QgYWx3YXlzIGFjY2VwdHMgbW9kZWwgYXMgYXJyYXkgd2hldGhlciBtdWx0aXBsZSBzZWxlY3QgaXMgdHJ1ZSBvciBmYWxzZS5cbiAgICAgKiBAcGFyYW0gdmFsdWVzIHJlcHJlc2VudCB0aGUgZGF0YXZhbHVlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZWxlY3RCeVZhbHVlKHZhbHVlczogQXJyYXk8YW55PiB8IGFueSkge1xuICAgICAgICB0aGlzLnJlc2V0RGF0YXNldEl0ZW1zKCk7XG5cbiAgICAgICAgLy8gaWYgZGF0YXZhbHVlIGlzIG5vdCBkZWZpbmVkIG9yIGVtcHR5IHRoZW4gc2V0IHRoZSBtb2RlbCBhcyB1bmRlZmluZWQuXG4gICAgICAgIGlmICghaXNEZWZpbmVkKHZhbHVlcykgfHwgdmFsdWVzID09PSAnJyB8fCBpc051bGwodmFsdWVzKSB8fCAodmFsdWVzIGluc3RhbmNlb2YgQXJyYXkgJiYgIXZhbHVlcy5sZW5ndGgpKSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgLy8gZG8gbm90IHJldHVybiB3aGVuIGFsbG93ZW1wdHkgaXMgc2V0IHRvIHRydWUuXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWxsb3dlbXB0eSB8fCAhaXNEZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY2NlcHRzQXJyYXkgJiYgIWlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdmFsdWVzID0gdGhpcy5hbGxvd2VtcHR5ID8gW3ZhbHVlc10gOiBleHRyYWN0RGF0YUFzQXJyYXkodmFsdWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHByZXNlcnZlIHRoZSBkYXRhdmFsdWUgaWYgZGF0YXNldEl0ZW1zIGFyZSBlbXB0eS5cbiAgICAgICAgaWYgKCF0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGggJiYgaXNEZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IHZhbHVlcztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbHRlckZpZWxkID0gdGhpcy5kYXRhZmllbGQgPT09IEFMTEZJRUxEUyA/ICdkYXRhT2JqZWN0JyA6ICdrZXknO1xuXG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlLZXkgPSBbXTtcbiAgICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUJ5VmFsdWUgPSBmaW5kKHRoaXMuZGF0YXNldEl0ZW1zLCBpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlckZpZWxkID09PSAnZGF0YU9iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhcmVieSAmJiB0aGlzLmNvbXBhcmVieS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNFcXVhbFdpdGhGaWVsZHMoaXRlbVtmaWx0ZXJGaWVsZF0sIHZhbCwgdGhpcy5jb21wYXJlYnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoaXNPYmplY3QoaXRlbS52YWx1ZSkgPyBpc0VxdWFsKGl0ZW0udmFsdWUsIHZhbCkgOiAodG9TdHJpbmcoaXRlbS52YWx1ZSkpLnRvTG93ZXJDYXNlKCkgPT09ICh0b1N0cmluZyh2YWwpKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUJ5VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbUJ5VmFsdWUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5LnB1c2goaXRlbUJ5VmFsdWUua2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlLZXkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBpdGVtQnlWYWx1ZSA9IGZpbmQodGhpcy5kYXRhc2V0SXRlbXMsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gJ2RhdGFPYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhcmVieSAmJiB0aGlzLmNvbXBhcmVieS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0VxdWFsV2l0aEZpZWxkcyhpdGVtW2ZpbHRlckZpZWxkXSwgdmFsdWVzLCB0aGlzLmNvbXBhcmVieSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIChpc09iamVjdChpdGVtLnZhbHVlKSA/IGlzRXF1YWwoaXRlbS52YWx1ZSwgdmFsdWVzKSA6ICh0b1N0cmluZyhpdGVtLnZhbHVlKSkudG9Mb3dlckNhc2UoKSA9PT0gKHRvU3RyaW5nKHZhbHVlcykpLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXRlbUJ5VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpdGVtQnlWYWx1ZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kZWxCeUtleSA9IGl0ZW1CeVZhbHVlLmtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBkZWxheWluZyB0aGUgZGF0YXZhbHVlIHVwZGF0ZSBhcyB0aGUgd2lkZ2V0cyBpbiBsaXZlZm9ybSBhcmUgaGF2aW5nIGRhdGF2YWx1ZSBhcyB1bmRlZmluZWQgYW5kIG5vdCB0aGUgZGVmYXVsdCBwcm92aWRlZCB2YWx1ZVxuICAgICAgICAvLyBiZWNhdXNlIGRhdGF2YWx1ZSBpcyB1cGRhdGVkIGxhdGVyIHdoZW4gbmV3IGRhdGFzZXQgaXMgYXZhaWxhYmxlLlxuICAgICAgICB0aGlzLl9kZWJvdW5jZURhdGF2YWx1ZVVwZGF0aW9uKHZhbHVlcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZWJvdW5jZURhdGF2YWx1ZVVwZGF0aW9uID0gX2RlYm91bmNlKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgLy8gaWYgbm8gaXRlbSBpcyBmb3VuZCBpbiBkYXRhc2V0SXRlbXMsIHdhaXQgdW50aWxsIHRoZSBkYXRhc2V0IHVwZGF0ZXMgYnkgcHJlc2VydmluZyB0aGUgZGF0YXZhbHVlIGluIHRvQmVQcm9jZXNzZWREYXRhdmFsdWUuXG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX21vZGVsQnlLZXkpIHx8IChpc0FycmF5KHRoaXMuX21vZGVsQnlLZXkpICYmICF0aGlzLl9tb2RlbEJ5S2V5Lmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IHZhbHVlcztcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVmaW5lZCh0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBvYnRhaW4gdGhlIGZpcnN0IGFycmF5IHZhbHVlIHdoZW4gbXVsdGlwbGUgaXMgc2V0IHRvIGZhbHNlLlxuICAgICAgICAgICAgLy8gc2V0IHRoZSBtb2RlbEJ5VmFsdWUgb25seSB3aGVuIHVuZGVmaW5lZC5cbiAgICAgICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX21vZGVsQnlWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbEJ5VmFsdWUgPSAoIXRoaXMubXVsdGlwbGUgJiYgaXNBcnJheSh0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUpKSA/IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZVswXSA6IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdERpc3BsYXlWYWx1ZXMoKTtcbiAgICB9LCAxNTApO1xuXG4gICAgLy8gVXBkYXRlcyB0aGUgZGlzcGxheVZhbHVlIHByb3BlcnR5LlxuICAgIHByb3RlY3RlZCBpbml0RGlzcGxheVZhbHVlcygpIHtcbiAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlcyA9IFtdO1xuICAgICAgICB0aGlzLmRhdGFzZXRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWVzLnB1c2goaXRlbS5sYWJlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IGRpc3BsYXlWYWx1ZXMgOiBkaXNwbGF5VmFsdWVzWzBdIHx8ICcnO1xuICAgICAgICBpZih0aGlzLnZpZXdQYXJlbnQuY29udGFpbmVyV2lkZ2V0ICYmIHRoaXMudmlld1BhcmVudC5jb250YWluZXJXaWRnZXQuX2lzQ3VzdG9tKVxuICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldC5kaXNwbGF5VmFsdWUgPSB0aGlzLmRpc3BsYXlWYWx1ZS5sZW5ndGggPyB0aGlzLmRpc3BsYXlWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoZSBkYXRhc2V0IGFuZCBleHRyYWN0cyB0aGUgZGlzcGxheU9wdGlvbnMgZnJvbSBwYXJzZWQgZGF0YXNldC5cbiAgICBwcm90ZWN0ZWQgaW5pdERhdGFzZXRJdGVtcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGFzZXQgfHwgaXNFbXB0eSh0aGlzLmRhdGFzZXQpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgLy8gbm90aWZ5IHRoZSBkYXRhc2V0IGxpc3RlbmVyc1xuICAgICAgICAgICAgdGhpcy5kYXRhc2V0JC5uZXh0KHRoaXMuZGF0YXNldEl0ZW1zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnZlcnQgYW55IGRhdGFzZXQgdG8gdGhlIG9iamVjdCBmb3JtYXQuXG4gICAgICAgIGNvbnN0IG9yZGVyZWREYXRhc2V0ID0gZ2V0T3JkZXJlZERhdGFzZXQoY29udmVydERhdGFUb09iamVjdCh0aGlzLmRhdGFzZXQpLCB0aGlzLm9yZGVyYnkpO1xuXG4gICAgICAgIGlmICh0aGlzLnVzZWtleXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXNldEl0ZW1zID0gdHJhbnNmb3JtRGF0YVdpdGhLZXlzKG9yZGVyZWREYXRhc2V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlPcHRpb25zID0gdHJhbnNmb3JtRm9ybURhdGEodGhpcy52aWV3UGFyZW50LCBvcmRlcmVkRGF0YXNldCwgdGhpcy5kYXRhZmllbGQsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGQ6IHRoaXMuZGlzcGxheWZpZWxkIHx8IHRoaXMuZGlzcGxheWxhYmVsLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByOiB0aGlzLmRpc3BsYXlleHByZXNzaW9uLFxuICAgICAgICAgICAgICAgIGJpbmREaXNwbGF5RXhwcjogdGhpcy5iaW5kZGlzcGxheWV4cHJlc3Npb24gfHwgdGhpcy5iaW5kZGlzcGxheWxhYmVsLFxuICAgICAgICAgICAgICAgIGJpbmREaXNwbGF5SW1nU3JjOiB0aGlzLmJpbmRkaXNwbGF5aW1hZ2VzcmMsXG4gICAgICAgICAgICAgICAgZGlzcGxheUltZ1NyYzogdGhpcy5kaXNwbGF5aW1hZ2VzcmNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gZ2V0IHRoZSB1bmlxdWUgb2JqZWN0cyBvdXQgb2YgdGhlIGV4dHJhY3RlZCBkYXRhLiBOb3RpZnkgY2hhbmdlIGluIGRhdGFzZXRJdGVtcyB1c2luZyBbLi4uZGF0YXNldEl0ZW1zXSBub3RhdGlvblxuICAgICAgICAgICAgdGhpcy5kYXRhc2V0SXRlbXMgPSBbLi4uZ2V0VW5pcU9ianNCeURhdGFGaWVsZChkaXNwbGF5T3B0aW9ucywgdGhpcy5kYXRhZmllbGQsIHRoaXMuZGlzcGxheWZpZWxkIHx8IHRoaXMuZGlzcGxheWxhYmVsLCB0b0Jvb2xlYW4odGhpcy5hbGxvd2VtcHR5KSldO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wb3N0RGF0YXNldEl0ZW1zSW5pdCgpO1xuICAgIH1cblxuICAgIC8vIE9uY2UgdGhlIGRhdGFzZXRJdGVtcyBhcmUgcmVhZHksIHNldCB0aGUgcHJveHlNb2RlbCBieSB1c2luZyBkYXRhdmFsdWUuXG4gICAgcHJvdGVjdGVkIHBvc3REYXRhc2V0SXRlbXNJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoICYmICF0aGlzLl9kZWZhdWx0UXVlcnlJbnZva2VkKSB7XG4gICAgICAgICAgICAvLyB1c2UgdGhlIGxhdGVzdCBvZiB0b0JlUHJvY2Vzc2VkRGF0YXZhbHVlLCBkYXRhdmFsdWVcbiAgICAgICAgICAgIGNvbnN0IF9kYXRhdmFsdWUgPSBpc0VtcHR5KHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSkgPyB0aGlzLmRhdGF2YWx1ZSA6IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QnlWYWx1ZShfZGF0YXZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBub3RpZnkgdGhlIGRhdGFzZXQgbGlzdGVuZXJzXG4gICAgICAgIHRoaXMuZGF0YXNldCQubmV4dCh0aGlzLmRhdGFzZXRJdGVtcyk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgdGhlIHNlbGVjdGVkIGZsYWcgb24gZGF0YXNldEl0ZW1zIHRvIGZhbHNlLlxuICAgIHByb3RlY3RlZCByZXNldERhdGFzZXRJdGVtcygpIHtcbiAgICAgICAgdGhpcy5kYXRhc2V0SXRlbXMuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldFRlbXBsYXRlKHBhcnRpYWxOYW1lKSB7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHBhcnRpYWxOYW1lO1xuICAgICAgICBpZiAodGhpcy52aWV3UGFyZW50ICYmIHRoaXMudmlld1BhcmVudC5wcmVmYWJOYW1lKSB7XG4gICAgICAgICAgICB0aGlzWydwcmVmYWJOYW1lJ10gPSB0aGlzLnZpZXdQYXJlbnQucHJlZmFiTmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXRHcm91cGVkRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YXNldEl0ZW1zLmxlbmd0aCA/IGdyb3VwRGF0YSh0aGlzLCBjb252ZXJ0RGF0YVRvT2JqZWN0KHRoaXMuZGF0YXNldEl0ZW1zKSwgdGhpcy5ncm91cGJ5LCB0aGlzLm1hdGNoLCB0aGlzLm9yZGVyYnksIHRoaXMuZGF0ZWZvcm1hdCwgdGhpcy5kYXRlUGlwZSwgJ2RhdGFPYmplY3QnLCB0aGlzLmFwcERlZmF1bHRzKSA6IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGF0YXNldFN1YnNjcmlwdGlvbigpIHtcbiAgICAgICAgY29uc3QgZGF0YXNldFN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YXNldCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBlZERhdGEgPSB0aGlzLmdldEdyb3VwZWREYXRhKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGRhdGFzZXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEdyb3VwRGF0YSgpIHtcbiAgICAgICAgdGhpcy5kYXRhc2V0U3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIC8vIElmIGdyb3VwYnkgaXMgc2V0LCBnZXQgdGhlIGdyb3VwZWREYXRhIGZyb20gdGhlIGRhdGFzZXRJdGVtcy5cbiAgICAgICAgdGhpcy5ncm91cGVkRGF0YSA9IHRoaXMuZ2V0R3JvdXBlZERhdGEoKTtcbiAgICB9XG5cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnZGF0YXNldCc6XG4gICAgICAgICAgICBjYXNlICdkYXRhZmllbGQnOlxuICAgICAgICAgICAgY2FzZSAnZGlzcGxheWZpZWxkJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rpc3BsYXlsYWJlbCc6XG4gICAgICAgICAgICBjYXNlICdkaXNwbGF5ZXhwcmVzc2lvbic6XG4gICAgICAgICAgICBjYXNlICdvcmRlcmJ5JzpcbiAgICAgICAgICAgIGNhc2UgJ3VzZWtleXMnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlZEluaXREYXRhc2V0SXRlbXMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgICAgIGNhc2UgJ2RhdGF2YWx1ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5kYXRhdmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZ3JvdXBieSc6XG4gICAgICAgICAgICBjYXNlICdtYXRjaCc6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMud2lkZ2V0VHlwZSAhPT0gJ3dtLXNlYXJjaCcgJiYgdGhpcy53aWRnZXRUeXBlICE9PSAnd20tY2hpcHMnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0R3JvdXBEYXRhKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXBieSAmJiAodGhpcy53aWRnZXRUeXBlICE9PSAnd20tc2VhcmNoJyAmJiB0aGlzLndpZGdldFR5cGUgIT09ICd3bS1jaGlwcycpKSB7XG4gICAgICAgICAgICB0aGlzLnNldEdyb3VwRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGFkZGluZyB0aGUgaGFuZGxlciBmb3IgaGVhZGVyIGNsaWNrIGFuZCB0b2dnbGUgaGVhZGVycy5cbiAgICAgICAgaWYgKHRoaXMuZ3JvdXBieSAmJiB0aGlzLmNvbGxhcHNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUhlYWRlckNsaWNrID0gaGFuZGxlSGVhZGVyQ2xpY2s7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUFsbEhlYWRlcnMgPSB0b2dnbGVBbGxIZWFkZXJzLmJpbmQodW5kZWZpbmVkLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZih0aGlzLmNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxMb2NhbGVDaGFuZ2VTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1hd2FyZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kYXRhc2V0LWF3YXJlLWZvcm0vc3JjL2RhdGFzZXQtYXdhcmUtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBcUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQWUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBaUIsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcFIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLFFBQVEsSUFBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDOztBQUc3RyxNQUFNLE9BQWdCLHlCQUEwQixTQUFRLHVCQUF1QjtJQThDM0UsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLElBQVcsVUFBVSxDQUFD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LElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQzFDLENBQUM7UUFFRCwwREFBMEQ7UUFDMUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixDQUFDO1FBRUQsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXZCLHNDQUFzQztRQUN0QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBRUQsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFFbkMsMEJBQTBCO1FBQzFCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQWxZaUIseUJBQXlCLDBDQWdGRyxZQUFZLGFBQzVCLGtCQUFrQiw2QkFDZixTQUFTO21IQWxGeEIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUQ5QyxVQUFVOzswQkFpRmdDLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25DLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFROzswQkFDcEMsU0FBUzsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHskYXBwRGlnZXN0LCBBcHBEZWZhdWx0cywgZGVib3VuY2UsIGlzRGVmaW5lZCwgaXNFcXVhbFdpdGhGaWVsZHMsIG5vb3AsIHRvQm9vbGVhbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQUxMRklFTERTLCBjb252ZXJ0RGF0YVRvT2JqZWN0LCBEYXRhU2V0SXRlbSwgZXh0cmFjdERhdGFBc0FycmF5LCBnZXRPcmRlcmVkRGF0YXNldCwgZ2V0VW5pcU9ianNCeURhdGFGaWVsZCwgaGFuZGxlSGVhZGVyQ2xpY2ssIHRvZ2dsZUFsbEhlYWRlcnMsIHRyYW5zZm9ybUZvcm1EYXRhLCB0cmFuc2Zvcm1EYXRhV2l0aEtleXMsIGdyb3VwRGF0YSwgVG9EYXRlUGlwZSwgSVdpZGdldENvbmZpZywgV2lkZ2V0Q29uZmlnIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUN1c3RvbUNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2lucHV0L2Jhc2UtZm9ybS1jdXN0b20nO1xuaW1wb3J0IHtkZWJvdW5jZSBhcyBfZGVib3VuY2UsIGZpbmQsIGlzQXJyYXksIGlzRW1wdHksIGlzRXF1YWwsIGlzTnVsbCwgaXNPYmplY3QsIHRvU3RyaW5nfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1DdXN0b21Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGRhdGFzZXQ6IGFueTtcbiAgICBwdWJsaWMgZGF0YWZpZWxkOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc3BsYXlmaWVsZDogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5bGFiZWw6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzcGxheWltYWdlc3JjOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc3BsYXlleHByZXNzaW9uOiBzdHJpbmc7XG4gICAgcHVibGljIHVzZWtleXM6IGJvb2xlYW47XG4gICAgcHVibGljIG9yZGVyYnk6IHN0cmluZztcbiAgICBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW47XG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIHB1YmxpYyBjb250ZW50OiBzdHJpbmc7XG4gICAgcHVibGljIGNvbGxhcHNpYmxlOiBib29sZWFuO1xuICAgIHB1YmxpYyBkYXRlUGlwZTtcblxuICAgIHB1YmxpYyBoYW5kbGVIZWFkZXJDbGljazogKCRldmVudCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIHRvZ2dsZUFsbEhlYWRlcnM6IHZvaWQ7XG4gICAgcHVibGljIGFwcERlZmF1bHRzO1xuXG4gICAgcHVibGljIGJpbmRkaXNwbGF5ZXhwcmVzc2lvbjogc3RyaW5nO1xuICAgIHB1YmxpYyBiaW5kZGlzcGxheWltYWdlc3JjOiBzdHJpbmc7XG4gICAgcHVibGljIGJpbmRkaXNwbGF5bGFiZWw6IHN0cmluZztcblxuICAgIHB1YmxpYyBkaXNwbGF5VmFsdWU6IEFycmF5PHN0cmluZz4gfCBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZGF0YXNldEl0ZW1zOiBEYXRhU2V0SXRlbVtdID0gW107XG4gICAgcHVibGljIGFjY2VwdHNBcnJheSA9IGZhbHNlOyAvLyBzZXQgdG8gdHJ1ZSBpZiBwcm94eU1vZGVsIG9uIHdpZGdldCBhY2NlcHRzIGFycmF5IHR5cGUuXG4gICAgcHJvdGVjdGVkIGRhdGFzZXQkID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcm90ZWN0ZWQgZGF0YXZhbHVlJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcm90ZWN0ZWQgbWF0Y2g6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgZGF0ZWZvcm1hdDogc3RyaW5nO1xuICAgIHB1YmxpYyBncm91cGVkRGF0YTogYW55W107XG5cbiAgICBwcm90ZWN0ZWQgX21vZGVsQnlLZXk6IGFueTtcbiAgICBwdWJsaWMgX21vZGVsQnlWYWx1ZTogYW55O1xuICAgIHB1YmxpYyBfZGVmYXVsdFF1ZXJ5SW52b2tlZDogYm9vbGVhbjsgLy8gZm9yIHNlYXJjaC9jaGlwcyBpZiBkYXRhdmFsdWUgaXMgb2J0YWluZWQgZnJvbSB0aGUgZGVmYXVsdCBuL3cgY2FsbCB0aGVuIHNldCB0byB0cnVlIGFuZCBkbyBub3QgdXBkYXRlIHRoZSBtb2RlbEJ5S2V5cy5cblxuICAgIC8vIHRoaXMgZmllbGQgY29udGFpbnMgdGhlIGluaXRpYWwgZGF0YXZhbHVlIHdoaWNoIG5lZWRzIHRvIGJlIHByb2Nlc3NlZCBvbmNlIHRoZSBkYXRhc2V0IGlzIGF2YWlsYWJsZVxuICAgIHB1YmxpYyB0b0JlUHJvY2Vzc2VkRGF0YXZhbHVlOiBhbnk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVib3VuY2VkSW5pdERhdGFzZXRJdGVtczogRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcbiAgICBwcm90ZWN0ZWQgYWxsb3dlbXB0eSA9IHRydWU7XG4gICAgcHVibGljIGNvbXBhcmVieTogYW55O1xuXG4gICAgcHJpdmF0ZSBjYW5jZWxMb2NhbGVDaGFuZ2VTdWJzY3JpcHRpb247XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsQnlLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbEJ5S2V5O1xuICAgIH1cblxuICAgIC8vIHRyaWdnZXJzIG9uIG5nTW9kZWwgY2hhbmdlLiBUaGlzIGZ1bmN0aW9uIGV4dHJhY3RzIHRoZSBkYXRhdmFsdWUgdmFsdWUuXG4gICAgcHVibGljIHNldCBtb2RlbEJ5S2V5KHZhbDogYW55KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QnlLZXkodmFsKTtcblxuICAgICAgICAvLyBpbnZva2Ugb24gZGF0YXZhbHVlIGNoYW5nZS5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLl9tb2RlbEJ5VmFsdWUpO1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBwdWJsaWMgZ2V0IGRhdGF2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsQnlWYWx1ZTtcbiAgICB9XG5cbiAgICAvLyB0cmlnZ2VycyBvbiBzZXR0aW5nIHRoZSBkYXRhdmFsdWUuIFRoaXMgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIG1vZGVsIHZhbHVlLlxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBwdWJsaWMgc2V0IGRhdGF2YWx1ZSh2YWw6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdmFsID0gZXh0cmFjdERhdGFBc0FycmF5KHZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gdmFsO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0QnlWYWx1ZSh2YWwpO1xuXG4gICAgICAgIC8vIGNoYW5nZXMgb24gdGhlIGRhdGF2YWx1ZSBjYW4gYmUgc3Vic2NyaWJlZCB1c2luZyBsaXN0ZW5Ub0RhdGF2YWx1ZVxuICAgICAgICB0aGlzLmRhdGF2YWx1ZSQubmV4dCh2YWwpO1xuXG4gICAgICAgIC8vIGludm9rZSBvbiBkYXRhdmFsdWUgY2hhbmdlLlxuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHZhbCwgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgIEBJbmplY3QoV2lkZ2V0Q29uZmlnKSBjb25maWc6IElXaWRnZXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQEF0dHJpYnV0ZSgnZ3JvdXBieScpIHB1YmxpYyBncm91cGJ5Pzogc3RyaW5nLCBpbml0UHJvbWlzZT86IFByb21pc2U8YW55Pikge1xuICAgICAgICBzdXBlcihpbmosIGNvbmZpZywgZXhwbGljaXRDb250ZXh0LCBpbml0UHJvbWlzZSk7XG4gICAgICAgIHRoaXMuZGF0ZVBpcGUgPSB0aGlzLmluai5nZXQoVG9EYXRlUGlwZSk7XG4gICAgICAgIHRoaXMuYXBwRGVmYXVsdHMgPSB0aGlzLmluai5nZXQoQXBwRGVmYXVsdHMpO1xuICAgICAgICB0aGlzLmJpbmRkaXNwbGF5ZXhwcmVzc2lvbiA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rpc3BsYXlleHByZXNzaW9uLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzcGxheWltYWdlc3JjLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kZGlzcGxheWxhYmVsID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzcGxheWxhYmVsLmJpbmQnKTtcblxuICAgICAgICB0aGlzLl9kZWJvdW5jZWRJbml0RGF0YXNldEl0ZW1zID0gZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0RGF0YXNldEl0ZW1zKCk7XG4gICAgICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgICAgIH0sIDE1MCk7XG4gICAgICAgIHRoaXMuaGFuZGxlSGVhZGVyQ2xpY2sgPSBub29wO1xuXG4gICAgICAgIHRoaXMuY2FuY2VsTG9jYWxlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5nZXRBcHBJbnN0YW5jZSgpLnN1YnNjcmliZShcImxvY2FsZS1jaGFuZ2VkXCIsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9kZWJvdW5jZWRJbml0RGF0YXNldEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VkSW5pdERhdGFzZXRJdGVtcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIF9kYXRhdmFsdWUgdmFsdWUgZnJvbSB0aGUgbW9kZWwgYW5kIHNldHMgdGhlIHNlbGVjdGVkIGZsYWcgd2hlbiBpdGVtIGlzIGZvdW5kLlxuICAgICAqIEhlcmUgbW9kZWwgaXMgdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gbmdNb2RlbC5cbiAgICAgKiBAcGFyYW0ga2V5cyByZXByZXNlbnQgdGhlIG1vZGVsLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZWxlY3RCeUtleShrZXlzKSB7XG4gICAgICAgIHRoaXMucmVzZXREYXRhc2V0SXRlbXMoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZGF0YXNldEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgIWlzQXJyYXkoa2V5cykpIHtcbiAgICAgICAgICAgIGtleXMgPSBba2V5c107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIF9tb2RlbEJ5S2V5IHRvIHRoZSBtb2RpZmllZCBrZXlzLlxuICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0ga2V5cztcblxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gW107XG4gICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQnlLZXkgPSBmaW5kKHRoaXMuZGF0YXNldEl0ZW1zLCBpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbm90IHRyaXBsZSBlcXVhbCwgYXMgdGhlIGluc3RhbmNlIHR5cGUgY2FuIGJlIGRpZmZlcmVudC5cbiAgICAgICAgICAgICAgICAgICAgLy8gb25seSB2YWx1ZSBjb21wYXJpc29uIHNob3VsZCBiZSBkb25lLlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9TdHJpbmcoaXRlbS5rZXkpID09PSB0b1N0cmluZyhrZXkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtQnlLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbUJ5S2V5LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gWy4uLnRoaXMuX21vZGVsQnlWYWx1ZSwgaXRlbUJ5S2V5LnZhbHVlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgY29uc3QgaXRlbUJ5S2V5ID0gZmluZCh0aGlzLmRhdGFzZXRJdGVtcywgaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gbm90IHRyaXBsZSBlcXVhbCwgYXMgdGhlIGluc3RhbmNlIHR5cGUgY2FuIGJlIGRpZmZlcmVudC5cbiAgICAgICAgICAgICAgICAvLyBvbmx5IHZhbHVlIGNvbXBhcmlzb24gc2hvdWxkIGJlIGRvbmUuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvU3RyaW5nKGl0ZW0ua2V5KSA9PT0gdG9TdHJpbmcoa2V5cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChpdGVtQnlLZXkpIHtcbiAgICAgICAgICAgICAgICBpdGVtQnlLZXkuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IGl0ZW1CeUtleS52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXREaXNwbGF5VmFsdWVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBfbW9kZWwgdmFsdWUgZnJvbSB0aGUgZGF0YXZhbHVlIChzZWxlY3RlZHZhbHVlcykgYW5kIHNldHMgdGhlIHNlbGVjdGVkIGZsYWcgd2hlbiBpdGVtIGlzIGZvdW5kLlxuICAgICAqIGRhdGF2YWx1ZSBpcyB0aGUgZGVmYXVsdCB2YWx1ZSBvciBhIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgZGlzcGxheUZpZWxkIChmb3Igc3VwcG9zZTogb2JqZWN0IGluIGNhc2Ugb2YgQUxMRklFTERTKS5cbiAgICAgKiBJZiBhY2NlcHRzQXJyYXkgaXMgdHJ1ZSwgdGhlIG1vZGVsIGFsd2F5cyBhY2NlcHRzIGFuIGFycmF5LlxuICAgICAqIEZvciBleGFtcGxlLCBzZWxlY3QgYWx3YXlzIGFjY2VwdHMgbW9kZWwgYXMgYXJyYXkgd2hldGhlciBtdWx0aXBsZSBzZWxlY3QgaXMgdHJ1ZSBvciBmYWxzZS5cbiAgICAgKiBAcGFyYW0gdmFsdWVzIHJlcHJlc2VudCB0aGUgZGF0YXZhbHVlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZWxlY3RCeVZhbHVlKHZhbHVlczogQXJyYXk8YW55PiB8IGFueSkge1xuICAgICAgICB0aGlzLnJlc2V0RGF0YXNldEl0ZW1zKCk7XG5cbiAgICAgICAgLy8gaWYgZGF0YXZhbHVlIGlzIG5vdCBkZWZpbmVkIG9yIGVtcHR5IHRoZW4gc2V0IHRoZSBtb2RlbCBhcyB1bmRlZmluZWQuXG4gICAgICAgIGlmICghaXNEZWZpbmVkKHZhbHVlcykgfHwgdmFsdWVzID09PSAnJyB8fCBpc051bGwodmFsdWVzKSB8fCAodmFsdWVzIGluc3RhbmNlb2YgQXJyYXkgJiYgIXZhbHVlcy5sZW5ndGgpKSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgLy8gZG8gbm90IHJldHVybiB3aGVuIGFsbG93ZW1wdHkgaXMgc2V0IHRvIHRydWUuXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWxsb3dlbXB0eSB8fCAhaXNEZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY2NlcHRzQXJyYXkgJiYgIWlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdmFsdWVzID0gdGhpcy5hbGxvd2VtcHR5ID8gW3ZhbHVlc10gOiBleHRyYWN0RGF0YUFzQXJyYXkodmFsdWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHByZXNlcnZlIHRoZSBkYXRhdmFsdWUgaWYgZGF0YXNldEl0ZW1zIGFyZSBlbXB0eS5cbiAgICAgICAgaWYgKCF0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGggJiYgaXNEZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IHZhbHVlcztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbHRlckZpZWxkID0gdGhpcy5kYXRhZmllbGQgPT09IEFMTEZJRUxEUyA/ICdkYXRhT2JqZWN0JyA6ICdrZXknO1xuXG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlLZXkgPSBbXTtcbiAgICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUJ5VmFsdWUgPSBmaW5kKHRoaXMuZGF0YXNldEl0ZW1zLCBpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlckZpZWxkID09PSAnZGF0YU9iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhcmVieSAmJiB0aGlzLmNvbXBhcmVieS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNFcXVhbFdpdGhGaWVsZHMoaXRlbVtmaWx0ZXJGaWVsZF0sIHZhbCwgdGhpcy5jb21wYXJlYnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoaXNPYmplY3QoaXRlbS52YWx1ZSkgPyBpc0VxdWFsKGl0ZW0udmFsdWUsIHZhbCkgOiAodG9TdHJpbmcoaXRlbS52YWx1ZSkpLnRvTG93ZXJDYXNlKCkgPT09ICh0b1N0cmluZyh2YWwpKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUJ5VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbUJ5VmFsdWUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5LnB1c2goaXRlbUJ5VmFsdWUua2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlLZXkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBpdGVtQnlWYWx1ZSA9IGZpbmQodGhpcy5kYXRhc2V0SXRlbXMsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gJ2RhdGFPYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhcmVieSAmJiB0aGlzLmNvbXBhcmVieS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0VxdWFsV2l0aEZpZWxkcyhpdGVtW2ZpbHRlckZpZWxkXSwgdmFsdWVzLCB0aGlzLmNvbXBhcmVieSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIChpc09iamVjdChpdGVtLnZhbHVlKSA/IGlzRXF1YWwoaXRlbS52YWx1ZSwgdmFsdWVzKSA6ICh0b1N0cmluZyhpdGVtLnZhbHVlKSkudG9Mb3dlckNhc2UoKSA9PT0gKHRvU3RyaW5nKHZhbHVlcykpLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXRlbUJ5VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpdGVtQnlWYWx1ZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kZWxCeUtleSA9IGl0ZW1CeVZhbHVlLmtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBkZWxheWluZyB0aGUgZGF0YXZhbHVlIHVwZGF0ZSBhcyB0aGUgd2lkZ2V0cyBpbiBsaXZlZm9ybSBhcmUgaGF2aW5nIGRhdGF2YWx1ZSBhcyB1bmRlZmluZWQgYW5kIG5vdCB0aGUgZGVmYXVsdCBwcm92aWRlZCB2YWx1ZVxuICAgICAgICAvLyBiZWNhdXNlIGRhdGF2YWx1ZSBpcyB1cGRhdGVkIGxhdGVyIHdoZW4gbmV3IGRhdGFzZXQgaXMgYXZhaWxhYmxlLlxuICAgICAgICB0aGlzLl9kZWJvdW5jZURhdGF2YWx1ZVVwZGF0aW9uKHZhbHVlcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZWJvdW5jZURhdGF2YWx1ZVVwZGF0aW9uID0gX2RlYm91bmNlKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgLy8gaWYgbm8gaXRlbSBpcyBmb3VuZCBpbiBkYXRhc2V0SXRlbXMsIHdhaXQgdW50aWxsIHRoZSBkYXRhc2V0IHVwZGF0ZXMgYnkgcHJlc2VydmluZyB0aGUgZGF0YXZhbHVlIGluIHRvQmVQcm9jZXNzZWREYXRhdmFsdWUuXG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX21vZGVsQnlLZXkpIHx8IChpc0FycmF5KHRoaXMuX21vZGVsQnlLZXkpICYmICF0aGlzLl9tb2RlbEJ5S2V5Lmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IHZhbHVlcztcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVmaW5lZCh0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBvYnRhaW4gdGhlIGZpcnN0IGFycmF5IHZhbHVlIHdoZW4gbXVsdGlwbGUgaXMgc2V0IHRvIGZhbHNlLlxuICAgICAgICAgICAgLy8gc2V0IHRoZSBtb2RlbEJ5VmFsdWUgb25seSB3aGVuIHVuZGVmaW5lZC5cbiAgICAgICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX21vZGVsQnlWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbEJ5VmFsdWUgPSAoIXRoaXMubXVsdGlwbGUgJiYgaXNBcnJheSh0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUpKSA/IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZVswXSA6IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdERpc3BsYXlWYWx1ZXMoKTtcbiAgICB9LCAxNTApO1xuXG4gICAgLy8gVXBkYXRlcyB0aGUgZGlzcGxheVZhbHVlIHByb3BlcnR5LlxuICAgIHByb3RlY3RlZCBpbml0RGlzcGxheVZhbHVlcygpIHtcbiAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlcyA9IFtdO1xuICAgICAgICB0aGlzLmRhdGFzZXRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWVzLnB1c2goaXRlbS5sYWJlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IGRpc3BsYXlWYWx1ZXMgOiBkaXNwbGF5VmFsdWVzWzBdIHx8ICcnO1xuICAgICAgICBpZih0aGlzLnZpZXdQYXJlbnQuY29udGFpbmVyV2lkZ2V0ICYmIHRoaXMudmlld1BhcmVudC5jb250YWluZXJXaWRnZXQuX2lzQ3VzdG9tKVxuICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldC5kaXNwbGF5VmFsdWUgPSB0aGlzLmRpc3BsYXlWYWx1ZS5sZW5ndGggPyB0aGlzLmRpc3BsYXlWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoZSBkYXRhc2V0IGFuZCBleHRyYWN0cyB0aGUgZGlzcGxheU9wdGlvbnMgZnJvbSBwYXJzZWQgZGF0YXNldC5cbiAgICBwcm90ZWN0ZWQgaW5pdERhdGFzZXRJdGVtcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGFzZXQgfHwgaXNFbXB0eSh0aGlzLmRhdGFzZXQpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgLy8gbm90aWZ5IHRoZSBkYXRhc2V0IGxpc3RlbmVyc1xuICAgICAgICAgICAgdGhpcy5kYXRhc2V0JC5uZXh0KHRoaXMuZGF0YXNldEl0ZW1zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnZlcnQgYW55IGRhdGFzZXQgdG8gdGhlIG9iamVjdCBmb3JtYXQuXG4gICAgICAgIGNvbnN0IG9yZGVyZWREYXRhc2V0ID0gZ2V0T3JkZXJlZERhdGFzZXQoY29udmVydERhdGFUb09iamVjdCh0aGlzLmRhdGFzZXQpLCB0aGlzLm9yZGVyYnkpO1xuXG4gICAgICAgIGlmICh0aGlzLnVzZWtleXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXNldEl0ZW1zID0gdHJhbnNmb3JtRGF0YVdpdGhLZXlzKG9yZGVyZWREYXRhc2V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlPcHRpb25zID0gdHJhbnNmb3JtRm9ybURhdGEodGhpcy52aWV3UGFyZW50LCBvcmRlcmVkRGF0YXNldCwgdGhpcy5kYXRhZmllbGQsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGQ6IHRoaXMuZGlzcGxheWZpZWxkIHx8IHRoaXMuZGlzcGxheWxhYmVsLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByOiB0aGlzLmRpc3BsYXlleHByZXNzaW9uLFxuICAgICAgICAgICAgICAgIGJpbmREaXNwbGF5RXhwcjogdGhpcy5iaW5kZGlzcGxheWV4cHJlc3Npb24gfHwgdGhpcy5iaW5kZGlzcGxheWxhYmVsLFxuICAgICAgICAgICAgICAgIGJpbmREaXNwbGF5SW1nU3JjOiB0aGlzLmJpbmRkaXNwbGF5aW1hZ2VzcmMsXG4gICAgICAgICAgICAgICAgZGlzcGxheUltZ1NyYzogdGhpcy5kaXNwbGF5aW1hZ2VzcmNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gZ2V0IHRoZSB1bmlxdWUgb2JqZWN0cyBvdXQgb2YgdGhlIGV4dHJhY3RlZCBkYXRhLiBOb3RpZnkgY2hhbmdlIGluIGRhdGFzZXRJdGVtcyB1c2luZyBbLi4uZGF0YXNldEl0ZW1zXSBub3RhdGlvblxuICAgICAgICAgICAgdGhpcy5kYXRhc2V0SXRlbXMgPSBbLi4uZ2V0VW5pcU9ianNCeURhdGFGaWVsZChkaXNwbGF5T3B0aW9ucywgdGhpcy5kYXRhZmllbGQsIHRoaXMuZGlzcGxheWZpZWxkIHx8IHRoaXMuZGlzcGxheWxhYmVsLCB0b0Jvb2xlYW4odGhpcy5hbGxvd2VtcHR5KSldO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wb3N0RGF0YXNldEl0ZW1zSW5pdCgpO1xuICAgIH1cblxuICAgIC8vIE9uY2UgdGhlIGRhdGFzZXRJdGVtcyBhcmUgcmVhZHksIHNldCB0aGUgcHJveHlNb2RlbCBieSB1c2luZyBkYXRhdmFsdWUuXG4gICAgcHJvdGVjdGVkIHBvc3REYXRhc2V0SXRlbXNJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoICYmICF0aGlzLl9kZWZhdWx0UXVlcnlJbnZva2VkKSB7XG4gICAgICAgICAgICAvLyB1c2UgdGhlIGxhdGVzdCBvZiB0b0JlUHJvY2Vzc2VkRGF0YXZhbHVlLCBkYXRhdmFsdWVcbiAgICAgICAgICAgIGNvbnN0IF9kYXRhdmFsdWUgPSBpc0VtcHR5KHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSkgPyB0aGlzLmRhdGF2YWx1ZSA6IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QnlWYWx1ZShfZGF0YXZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBub3RpZnkgdGhlIGRhdGFzZXQgbGlzdGVuZXJzXG4gICAgICAgIHRoaXMuZGF0YXNldCQubmV4dCh0aGlzLmRhdGFzZXRJdGVtcyk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgdGhlIHNlbGVjdGVkIGZsYWcgb24gZGF0YXNldEl0ZW1zIHRvIGZhbHNlLlxuICAgIHByb3RlY3RlZCByZXNldERhdGFzZXRJdGVtcygpIHtcbiAgICAgICAgdGhpcy5kYXRhc2V0SXRlbXMuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldFRlbXBsYXRlKHBhcnRpYWxOYW1lKSB7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHBhcnRpYWxOYW1lO1xuICAgICAgICBpZiAodGhpcy52aWV3UGFyZW50ICYmIHRoaXMudmlld1BhcmVudC5wcmVmYWJOYW1lKSB7XG4gICAgICAgICAgICB0aGlzWydwcmVmYWJOYW1lJ10gPSB0aGlzLnZpZXdQYXJlbnQucHJlZmFiTmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXRHcm91cGVkRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YXNldEl0ZW1zLmxlbmd0aCA/IGdyb3VwRGF0YSh0aGlzLCBjb252ZXJ0RGF0YVRvT2JqZWN0KHRoaXMuZGF0YXNldEl0ZW1zKSwgdGhpcy5ncm91cGJ5LCB0aGlzLm1hdGNoLCB0aGlzLm9yZGVyYnksIHRoaXMuZGF0ZWZvcm1hdCwgdGhpcy5kYXRlUGlwZSwgJ2RhdGFPYmplY3QnLCB0aGlzLmFwcERlZmF1bHRzKSA6IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGF0YXNldFN1YnNjcmlwdGlvbigpIHtcbiAgICAgICAgY29uc3QgZGF0YXNldFN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YXNldCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBlZERhdGEgPSB0aGlzLmdldEdyb3VwZWREYXRhKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGRhdGFzZXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEdyb3VwRGF0YSgpIHtcbiAgICAgICAgdGhpcy5kYXRhc2V0U3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIC8vIElmIGdyb3VwYnkgaXMgc2V0LCBnZXQgdGhlIGdyb3VwZWREYXRhIGZyb20gdGhlIGRhdGFzZXRJdGVtcy5cbiAgICAgICAgdGhpcy5ncm91cGVkRGF0YSA9IHRoaXMuZ2V0R3JvdXBlZERhdGEoKTtcbiAgICB9XG5cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnZGF0YXNldCc6XG4gICAgICAgICAgICBjYXNlICdkYXRhZmllbGQnOlxuICAgICAgICAgICAgY2FzZSAnZGlzcGxheWZpZWxkJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rpc3BsYXlsYWJlbCc6XG4gICAgICAgICAgICBjYXNlICdkaXNwbGF5ZXhwcmVzc2lvbic6XG4gICAgICAgICAgICBjYXNlICdvcmRlcmJ5JzpcbiAgICAgICAgICAgIGNhc2UgJ3VzZWtleXMnOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kZWJvdW5jZWRJbml0RGF0YXNldEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlZEluaXREYXRhc2V0SXRlbXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyZXF1aXJlZCc6XG4gICAgICAgICAgICBjYXNlICdkYXRhdmFsdWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2dyb3VwYnknOlxuICAgICAgICAgICAgY2FzZSAnbWF0Y2gnOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLndpZGdldFR5cGUgIT09ICd3bS1zZWFyY2gnICYmIHRoaXMud2lkZ2V0VHlwZSAhPT0gJ3dtLWNoaXBzJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEdyb3VwRGF0YSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmdyb3VwYnkgJiYgKHRoaXMud2lkZ2V0VHlwZSAhPT0gJ3dtLXNlYXJjaCcgJiYgdGhpcy53aWRnZXRUeXBlICE9PSAnd20tY2hpcHMnKSkge1xuICAgICAgICAgICAgdGhpcy5zZXRHcm91cERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhZGRpbmcgdGhlIGhhbmRsZXIgZm9yIGhlYWRlciBjbGljayBhbmQgdG9nZ2xlIGhlYWRlcnMuXG4gICAgICAgIGlmICh0aGlzLmdyb3VwYnkgJiYgdGhpcy5jb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVIZWFkZXJDbGljayA9IGhhbmRsZUhlYWRlckNsaWNrO1xuICAgICAgICAgICAgdGhpcy50b2dnbGVBbGxIZWFkZXJzID0gdG9nZ2xlQWxsSGVhZGVycy5iaW5kKHVuZGVmaW5lZCwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYodGhpcy5jYW5jZWxMb2NhbGVDaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsTG9jYWxlQ2hhbmdlU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENvbXBsZXRlIGFuZCBjbGVhciBTdWJqZWN0IG9ic2VydmFibGVzXG4gICAgICAgIGlmICh0aGlzLmRhdGFzZXQkKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXQkLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlJCkge1xuICAgICAgICAgICAgdGhpcy5kYXRhdmFsdWUkLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIGRhdGFzZXRJdGVtcyBhcnJheVxuICAgICAgICB0aGlzLmRhdGFzZXRJdGVtcyA9IFtdO1xuXG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgZ3JvdXBlZCBkYXRhXG4gICAgICAgIGlmICh0aGlzLmdyb3VwZWREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmdyb3VwZWREYXRhID0gW107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIG1vZGVsIHJlZmVyZW5jZXNcbiAgICAgICAgdGhpcy5fbW9kZWxCeUtleSA9IG51bGw7XG4gICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZSA9IG51bGw7XG5cbiAgICAgICAgLy8gQ2FsbCBwYXJlbnQgbmdPbkRlc3Ryb3lcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -40,6 +40,7 @@ class DatasetAwareFormComponent extends BaseFormCustomComponent {
|
|
|
40
40
|
this.acceptsArray = false; // set to true if proxyModel on widget accepts array type.
|
|
41
41
|
this.dataset$ = new Subject();
|
|
42
42
|
this.datavalue$ = new Subject();
|
|
43
|
+
this._debouncedInitDatasetItems = null;
|
|
43
44
|
this.allowempty = true;
|
|
44
45
|
this._debounceDatavalueUpdation = debounce((values) => {
|
|
45
46
|
// if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.
|
|
@@ -68,7 +69,9 @@ class DatasetAwareFormComponent extends BaseFormCustomComponent {
|
|
|
68
69
|
}, 150);
|
|
69
70
|
this.handleHeaderClick = noop;
|
|
70
71
|
this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe("locale-changed", () => {
|
|
71
|
-
this._debouncedInitDatasetItems
|
|
72
|
+
if (this._debouncedInitDatasetItems) {
|
|
73
|
+
this._debouncedInitDatasetItems();
|
|
74
|
+
}
|
|
72
75
|
});
|
|
73
76
|
}
|
|
74
77
|
/**
|
|
@@ -258,7 +261,9 @@ class DatasetAwareFormComponent extends BaseFormCustomComponent {
|
|
|
258
261
|
case 'displayexpression':
|
|
259
262
|
case 'orderby':
|
|
260
263
|
case 'usekeys':
|
|
261
|
-
this._debouncedInitDatasetItems
|
|
264
|
+
if (this._debouncedInitDatasetItems) {
|
|
265
|
+
this._debouncedInitDatasetItems();
|
|
266
|
+
}
|
|
262
267
|
break;
|
|
263
268
|
case 'required':
|
|
264
269
|
case 'datavalue':
|
|
@@ -287,6 +292,25 @@ class DatasetAwareFormComponent extends BaseFormCustomComponent {
|
|
|
287
292
|
if (this.cancelLocaleChangeSubscription) {
|
|
288
293
|
this.cancelLocaleChangeSubscription();
|
|
289
294
|
}
|
|
295
|
+
// MEMORY LEAK FIX: Complete and clear Subject observables
|
|
296
|
+
if (this.dataset$) {
|
|
297
|
+
this.dataset$.complete();
|
|
298
|
+
}
|
|
299
|
+
if (this.datavalue$) {
|
|
300
|
+
this.datavalue$.complete();
|
|
301
|
+
}
|
|
302
|
+
// MEMORY LEAK FIX: Clear datasetItems array
|
|
303
|
+
this.datasetItems = [];
|
|
304
|
+
// MEMORY LEAK FIX: Clear grouped data
|
|
305
|
+
if (this.groupedData) {
|
|
306
|
+
this.groupedData = [];
|
|
307
|
+
}
|
|
308
|
+
// MEMORY LEAK FIX: Clear model references
|
|
309
|
+
this._modelByKey = null;
|
|
310
|
+
this._modelByValue = null;
|
|
311
|
+
this.toBeProcessedDatavalue = null;
|
|
312
|
+
// Call parent ngOnDestroy
|
|
313
|
+
super.ngOnDestroy();
|
|
290
314
|
}
|
|
291
315
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatasetAwareFormComponent, deps: [{ token: i0.Injector }, { token: WidgetConfig }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: 'groupby', attribute: true }, { token: Promise }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
292
316
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatasetAwareFormComponent }); }
|