@wavemaker/app-ng-runtime 11.14.1-rc.6311 → 11.14.2-rc.6311
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/advanced/carousel/bundles/index.umd.js +15 -1
- package/components/advanced/carousel/carousel.directive.d.ts +1 -0
- package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
- package/components/advanced/carousel/fesm2022/index.mjs +15 -1
- package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/bundles/index.umd.js +24 -3
- package/components/advanced/login/esm2022/login.component.mjs +25 -4
- package/components/advanced/login/fesm2022/index.mjs +24 -3
- package/components/advanced/login/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/login.component.d.ts +5 -2
- package/components/base/bundles/index.umd.js +323 -28
- package/components/base/directives/show-in-device.directive.d.ts +2 -1
- package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
- package/components/base/esm2022/pipes/custom-pipes.mjs +1 -1
- package/components/base/esm2022/utils/widget-utils.mjs +3 -3
- package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
- package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
- package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
- package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
- package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
- package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
- package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
- package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
- package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
- package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
- package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
- package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
- package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
- package/components/base/fesm2022/index.mjs +319 -26
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
- package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
- package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
- package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
- package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
- package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
- package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
- package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
- package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
- package/components/basic/anchor/bundles/index.umd.js +13 -1
- package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
- package/components/basic/anchor/fesm2022/index.mjs +13 -1
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/html/bundles/index.umd.js +13 -1
- package/components/basic/html/esm2022/html.directive.mjs +14 -2
- package/components/basic/html/fesm2022/index.mjs +13 -1
- package/components/basic/html/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/bundles/index.umd.js +17 -1
- package/components/basic/label/esm2022/label.directive.mjs +18 -2
- package/components/basic/label/fesm2022/index.mjs +17 -1
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/label.directive.d.ts +3 -2
- package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
- package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
- package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
- package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
- package/components/basic/search/bundles/index.umd.js +27 -1
- package/components/basic/search/esm2022/scrollable.directive.mjs +11 -2
- package/components/basic/search/esm2022/search.component.mjs +18 -1
- package/components/basic/search/fesm2022/index.mjs +27 -1
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/scrollable.directive.d.ts +4 -2
- package/components/basic/search/search.component.d.ts +3 -2
- package/components/basic/spinner/bundles/index.umd.js +9 -1
- package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
- package/components/basic/spinner/fesm2022/index.mjs +9 -1
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/spinner.component.d.ts +4 -2
- package/components/chart/bundles/index.umd.js +21 -3
- package/components/chart/esm2022/chart.component.mjs +22 -4
- package/components/chart/fesm2022/index.mjs +21 -3
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
- package/components/containers/accordion/accordion.directive.d.ts +5 -2
- package/components/containers/accordion/bundles/index.umd.js +49 -2
- package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
- package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
- package/components/containers/accordion/fesm2022/index.mjs +49 -2
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +13 -0
- package/components/containers/panel/esm2022/panel.component.mjs +14 -1
- package/components/containers/panel/fesm2022/index.mjs +13 -0
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/panel.component.d.ts +3 -2
- package/components/containers/tabs/bundles/index.umd.js +54 -2
- package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
- package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
- package/components/containers/tabs/fesm2022/index.mjs +54 -2
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
- package/components/containers/tabs/tabs.component.d.ts +5 -2
- package/components/containers/wizard/bundles/index.umd.js +47 -3
- package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
- package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
- package/components/containers/wizard/fesm2022/index.mjs +47 -3
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
- package/components/containers/wizard/wizard.component.d.ts +4 -2
- package/components/data/card/bundles/index.umd.js +17 -1
- package/components/data/card/card-content/card-content.component.d.ts +3 -2
- package/components/data/card/card.component.d.ts +4 -2
- package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
- package/components/data/card/esm2022/card.component.mjs +13 -2
- package/components/data/card/fesm2022/index.mjs +17 -1
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +92 -0
- package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
- package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
- package/components/data/form/esm2022/form.component.mjs +27 -1
- package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
- package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
- package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
- package/components/data/form/fesm2022/index.mjs +92 -0
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form-action/form-action.directive.d.ts +3 -2
- package/components/data/form/form-field/form-field.directive.d.ts +3 -2
- package/components/data/form/form-widget.directive.d.ts +3 -2
- package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
- package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
- package/components/data/form/live-form/live-form.directive.d.ts +3 -1
- package/components/data/list/bundles/index.umd.js +180 -17
- package/components/data/list/esm2022/list-item.directive.mjs +95 -11
- package/components/data/list/esm2022/list.component.mjs +87 -8
- package/components/data/list/fesm2022/index.mjs +180 -17
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/list-item.directive.d.ts +7 -2
- package/components/data/list/list.component.d.ts +3 -0
- package/components/data/live-table/bundles/index.umd.js +13 -1
- package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
- package/components/data/live-table/fesm2022/index.mjs +13 -1
- package/components/data/live-table/fesm2022/index.mjs.map +1 -1
- package/components/data/live-table/live-table.component.d.ts +4 -2
- package/components/data/pagination/bundles/index.umd.js +57 -4
- package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
- package/components/data/pagination/fesm2022/index.mjs +57 -4
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/pagination.component.d.ts +4 -2
- package/components/data/table/bundles/index.umd.js +311 -12
- package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
- package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
- package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
- package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
- package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
- package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table.component.mjs +159 -9
- package/components/data/table/fesm2022/index.mjs +311 -12
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table-action/table-action.directive.d.ts +3 -2
- package/components/data/table/table-column/table-column.directive.d.ts +3 -2
- package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
- package/components/data/table/table-cud.directive.d.ts +3 -1
- package/components/data/table/table-filter.directive.d.ts +3 -1
- package/components/data/table/table-row/table-row.directive.d.ts +3 -2
- package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
- package/components/data/table/table.component.d.ts +2 -2
- package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
- package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
- package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/bundles/index.umd.js +15 -2
- package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
- package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
- package/components/dialogs/default/fesm2022/index.mjs +15 -2
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
- package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
- package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
- package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
- package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
- package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
- package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
- package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
- package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
- package/components/input/base-form/base-form.component.d.ts +4 -2
- package/components/input/base-form/bundles/index.umd.js +16 -2
- package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
- package/components/input/base-form/fesm2022/index.mjs +16 -2
- package/components/input/base-form/fesm2022/index.mjs.map +1 -1
- package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
- package/components/input/base-form-custom/bundles/index.umd.js +13 -2
- package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
- package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
- package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +7 -0
- package/components/input/checkbox/checkbox.component.d.ts +3 -2
- package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
- package/components/input/checkbox/fesm2022/index.mjs +7 -0
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/bundles/index.umd.js +18 -2
- package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
- package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
- package/components/input/checkboxset/fesm2022/index.mjs +18 -2
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/chips/bundles/index.umd.js +45 -5
- package/components/input/chips/chips.component.d.ts +3 -2
- package/components/input/chips/esm2022/chips.component.mjs +46 -6
- package/components/input/chips/fesm2022/index.mjs +45 -5
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/bundles/index.umd.js +8 -0
- package/components/input/color-picker/color-picker.component.d.ts +3 -2
- package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
- package/components/input/color-picker/fesm2022/index.mjs +8 -0
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/components/input/composite/bundles/index.umd.js +10 -1
- package/components/input/composite/composite.directive.d.ts +3 -2
- package/components/input/composite/esm2022/composite.directive.mjs +11 -2
- package/components/input/composite/fesm2022/index.mjs +10 -1
- package/components/input/composite/fesm2022/index.mjs.map +1 -1
- package/components/input/currency/bundles/index.umd.js +7 -0
- package/components/input/currency/currency.component.d.ts +3 -2
- package/components/input/currency/esm2022/currency.component.mjs +8 -1
- package/components/input/currency/fesm2022/index.mjs +7 -0
- package/components/input/currency/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
- package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
- package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/bundles/index.umd.js +22 -0
- package/components/input/epoch/date/date.component.d.ts +1 -0
- package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
- package/components/input/epoch/date/fesm2022/index.mjs +22 -0
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +25 -8
- package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
- package/components/input/file-upload/fesm2022/index.mjs +25 -8
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/file-upload.component.d.ts +3 -0
- package/components/input/number/bundles/index.umd.js +8 -0
- package/components/input/number/esm2022/number.component.mjs +9 -1
- package/components/input/number/fesm2022/index.mjs +8 -0
- package/components/input/number/fesm2022/index.mjs.map +1 -1
- package/components/input/number/number.component.d.ts +3 -2
- package/components/input/radioset/bundles/index.umd.js +18 -2
- package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
- package/components/input/radioset/fesm2022/index.mjs +18 -2
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/radioset.component.d.ts +4 -2
- package/components/input/rating/bundles/index.umd.js +10 -0
- package/components/input/rating/esm2022/rating.component.mjs +11 -1
- package/components/input/rating/fesm2022/index.mjs +10 -0
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/rating.component.d.ts +3 -2
- package/components/input/select/bundles/index.umd.js +6 -0
- package/components/input/select/esm2022/select.component.mjs +7 -1
- package/components/input/select/fesm2022/index.mjs +6 -0
- package/components/input/select/fesm2022/index.mjs.map +1 -1
- package/components/input/select/select.component.d.ts +3 -2
- package/components/input/slider/bundles/index.umd.js +10 -0
- package/components/input/slider/esm2022/slider.component.mjs +11 -1
- package/components/input/slider/fesm2022/index.mjs +10 -0
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +3 -2
- package/components/input/switch/bundles/index.umd.js +22 -2
- package/components/input/switch/esm2022/switch.component.mjs +23 -3
- package/components/input/switch/fesm2022/index.mjs +22 -2
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/switch.component.d.ts +3 -2
- package/components/input/text/bundles/index.umd.js +36 -0
- package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
- package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
- package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
- package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
- package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
- package/components/input/text/fesm2022/index.mjs +36 -0
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
- package/components/input/text/input-color/input-color.component.d.ts +3 -2
- package/components/input/text/input-email/input-email.component.d.ts +3 -2
- package/components/input/text/input-number/input-number.component.d.ts +3 -2
- package/components/input/text/input-text/input-text.component.d.ts +3 -2
- package/components/input/textarea/bundles/index.umd.js +7 -0
- package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
- package/components/input/textarea/fesm2022/index.mjs +7 -0
- package/components/input/textarea/fesm2022/index.mjs.map +1 -1
- package/components/input/textarea/textarea.component.d.ts +3 -2
- package/components/navigation/menu/bundles/index.umd.js +55 -6
- package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
- package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
- package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
- package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
- package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
- package/components/navigation/menu/fesm2022/index.mjs +55 -6
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
- package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
- package/components/navigation/menu/nav/nav.component.d.ts +3 -2
- package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
- package/components/navigation/navbar/bundles/index.umd.js +5 -0
- package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
- package/components/navigation/navbar/fesm2022/index.mjs +5 -0
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/navbar.component.d.ts +3 -2
- package/components/navigation/popover/bundles/index.umd.js +65 -13
- package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
- package/components/navigation/popover/fesm2022/index.mjs +62 -10
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/popover.component.d.ts +11 -3
- package/components/page/default/bundles/index.umd.js +20 -2
- package/components/page/default/esm2022/layout.directive.mjs +9 -1
- package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
- package/components/page/default/fesm2022/index.mjs +20 -2
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/default/layout.directive.d.ts +3 -2
- package/components/page/default/page-content/page-content.component.d.ts +3 -2
- package/components/page/left-panel/bundles/index.umd.js +16 -0
- package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
- package/components/page/left-panel/fesm2022/index.mjs +16 -0
- package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- package/components/page/left-panel/left-panel.directive.d.ts +3 -2
- package/components/page/top-nav/bundles/index.umd.js +2 -1
- package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
- package/components/page/top-nav/fesm2022/index.mjs +2 -1
- package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- package/components/prefab/bundles/index.umd.js +4 -0
- package/components/prefab/esm2022/prefab.directive.mjs +5 -1
- package/components/prefab/fesm2022/index.mjs +4 -0
- package/components/prefab/fesm2022/index.mjs.map +1 -1
- package/core/bundles/index.umd.js +391 -94
- package/core/esm2022/public_api.mjs +3 -3
- package/core/esm2022/services/viewport.service.mjs +24 -10
- package/core/esm2022/types/types.mjs +1 -1
- package/core/esm2022/utils/dom.mjs +18 -2
- package/core/esm2022/utils/event-notifier.mjs +5 -2
- package/core/esm2022/utils/lru-cache.mjs +16 -2
- package/core/esm2022/utils/utils.mjs +6 -2
- package/core/esm2022/utils/watcher.mjs +323 -81
- package/core/fesm2022/index.mjs +390 -96
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/public_api.d.ts +2 -2
- package/core/services/viewport.service.d.ts +5 -2
- package/core/types/types.d.ts +1 -0
- package/core/utils/lru-cache.d.ts +6 -0
- package/core/utils/utils.d.ts +1 -0
- package/core/utils/watcher.d.ts +26 -5
- package/http/bundles/index.umd.js +31 -1
- package/http/esm2022/http.service.mjs +32 -2
- package/http/fesm2022/index.mjs +31 -1
- package/http/fesm2022/index.mjs.map +1 -1
- package/http/http.service.d.ts +6 -2
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/bundles/index.umd.js +9 -0
- package/oAuth/esm2022/oAuth.service.mjs +10 -1
- package/oAuth/fesm2022/index.mjs +9 -0
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/oAuth.service.d.ts +3 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +364 -30
- package/runtime/base/components/app-component/app.component.d.ts +4 -0
- package/runtime/base/components/prefab-preview.component.d.ts +5 -2
- package/runtime/base/directives/accessroles.directive.d.ts +4 -3
- package/runtime/base/directives/prefab.directive.d.ts +3 -2
- package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
- package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
- package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
- package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
- package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
- package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
- package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
- package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
- package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
- package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
- package/runtime/base/esm2022/services/app.manager.service.mjs +37 -10
- package/runtime/base/esm2022/services/app.service.mjs +34 -2
- package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
- package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
- package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
- package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
- package/runtime/base/fesm2022/index.mjs +365 -31
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/services/app.manager.service.d.ts +6 -1
- package/runtime/base/services/app.service.d.ts +12 -2
- package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
- package/runtime/base/services/spinner.service.d.ts +3 -1
- package/runtime/base/util/fragment-monitor.d.ts +6 -0
- package/runtime/dynamic/bundles/index.umd.js +5 -0
- package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
- package/runtime/dynamic/fesm2022/index.mjs +5 -0
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +100 -14
- package/security/bundles/index.umd.js +41 -2
- package/security/esm2022/security.service.mjs +42 -3
- package/security/fesm2022/index.mjs +41 -2
- package/security/fesm2022/index.mjs.map +1 -1
- package/security/security.service.d.ts +5 -2
- package/variables/bundles/index.umd.js +50 -6
- package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
- package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
- package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
- package/variables/esm2022/service/variables.service.mjs +8 -2
- package/variables/fesm2022/index.mjs +50 -6
- package/variables/fesm2022/index.mjs.map +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Inject, Injector, Optional } from '@angular/core';
|
|
1
|
+
import { Inject, Injectable, Injector, Optional } from '@angular/core';
|
|
3
2
|
import { Subject } from 'rxjs';
|
|
4
3
|
import { $appDigest, findValueOf, isObject, validateAccessRoles } from '@wm/core';
|
|
5
4
|
import { SecurityService } from '@wm/security';
|
|
@@ -8,6 +7,7 @@ import { getEvaluatedData } from '../../../utils/widget-utils';
|
|
|
8
7
|
import { getOrderedDataset } from '../../../utils/form-utils';
|
|
9
8
|
import { StylableComponent } from './stylable.component';
|
|
10
9
|
import { debounce, first, get, isUndefined, omitBy, startsWith } from "lodash-es";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
11
|
const getValidLink = (link) => {
|
|
12
12
|
const routRegex = /^(\/|#\/|#)(?!\W).*/;
|
|
13
13
|
if (link) {
|
|
@@ -21,7 +21,7 @@ const getValidLink = (link) => {
|
|
|
21
21
|
return link;
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
|
-
|
|
24
|
+
export class DatasetAwareNavComponent extends StylableComponent {
|
|
25
25
|
constructor(inj, WIDGET_CONFIG, explicitContext) {
|
|
26
26
|
super(inj, WIDGET_CONFIG, explicitContext);
|
|
27
27
|
this.nodes = [];
|
|
@@ -179,11 +179,44 @@ let DatasetAwareNavComponent = class DatasetAwareNavComponent extends StylableCo
|
|
|
179
179
|
}
|
|
180
180
|
super.onPropertyChange(key, nv, ov);
|
|
181
181
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1hd2FyZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy93aWRnZXRzL2NvbW1vbi9iYXNlL2RhdGFzZXQtYXdhcmUtbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFhLG1CQUFtQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVoRixNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO0lBQzFCLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDO0lBQ3hDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENB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SyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixVQUFVLEVBQUUsQ0FBQztRQUNiLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBS0QsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3hCLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDVixLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssV0FBVyxDQUFDO1lBQ2pCLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssWUFBWSxDQUFDO1lBQ2xCLEtBQUssV0FBVyxDQUFDO1lBQ2pCLEtBQUssY0FBYyxDQUFDO1lBQ3BCLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssU0FBUztnQkFDViw2RUFBNkU7Z0JBQzdFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkIsTUFBTTtRQUNkLENBQUM7UUFDRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0osQ0FBQTtBQXpNWSx3QkFBd0I7SUFvQ1UsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUFFLFdBQUEsUUFBUSxFQUFFLENBQUE7cUNBQWhFLFFBQVE7R0FwQ2hCLHdCQUF3QixDQXlNcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyRhcHBEaWdlc3QsIGZpbmRWYWx1ZU9mLCBpc09iamVjdCwgaXNEZWZpbmVkLCB2YWxpZGF0ZUFjY2Vzc1JvbGVzfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2UgfSBmcm9tICdAd20vc2VjdXJpdHknO1xuXG5pbXBvcnQgeyBjcmVhdGVBcnJheUZyb20gfSBmcm9tICcuLi8uLi8uLi91dGlscy9kYXRhLXV0aWxzJztcbmltcG9ydCB7IGdldEV2YWx1YXRlZERhdGEgfSBmcm9tICcuLi8uLi8uLi91dGlscy93aWRnZXQtdXRpbHMnO1xuaW1wb3J0IHsgZ2V0T3JkZXJlZERhdGFzZXQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9mb3JtLXV0aWxzJztcbmltcG9ydCB7IFN0eWxhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zdHlsYWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtkZWJvdW5jZSwgZmlyc3QsIGdldCwgaXNVbmRlZmluZWQsIG9taXRCeSwgc3RhcnRzV2l0aH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5jb25zdCBnZXRWYWxpZExpbmsgPSAobGluaykgPT4ge1xuICAgIGNvbnN0IHJvdXRSZWdleCA9IC9eKFxcL3wjXFwvfCMpKD8hXFxXKS4qLztcbiAgICBpZiAobGluaykge1xuICAgICAgICBpZiAocm91dFJlZ2V4LnRlc3QobGluaykpIHtcbiAgICAgICAgICAgIGxpbmsgPSBmaXJzdChsaW5rLm1hdGNoKC9bXFx3XSsuKi9nKSkgfHwgJyc7XG4gICAgICAgICAgICByZXR1cm4gYCMvJHtsaW5rfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0c1dpdGgobGluaywgJ3d3dy4nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGAvLyR7bGlua31gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjbGFzcyBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCB7XG5cbiAgICBwdWJsaWMgbm9kZXM6IEFycmF5PE5hdk5vZGU+ID0gW107XG4gICAgcHVibGljIGRhdGFzZXQ6IGFueTtcbiAgICBwdWJsaWMgaXRlbWljb246IHN0cmluZztcbiAgICBwdWJsaWMgaXRlbWxhYmVsOiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW1oaW50OiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW1saW5rOiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW10YXJnZXQ6IHN0cmluZztcbiAgICBwdWJsaWMgaXRlbWJhZGdlOiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW1jaGlsZHJlbjogc3RyaW5nO1xuICAgIHB1YmxpYyBpdGVtYWN0aW9uOiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW1jbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBpdGVtaWQ6IHN0cmluZztcbiAgICBwdWJsaWMgaXNhY3RpdmU6IHN0cmluZztcbiAgICBwdWJsaWMgdXNlcnJvbGU6IHN0cmluZztcbiAgICBwdWJsaWMgb3JkZXJieTogc3RyaW5nO1xuICAgIHB1YmxpYyBkYXRhZmllbGQ6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzcGxheWZpZWxkOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIF9pdGVtRmllbGRNYXA7XG4gICAgcHJpdmF0ZSBiaW5kaXRlbWxhYmVsOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGl0ZW1oaW50OiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGl0ZW1pY29uOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGl0ZW1hY3Rpb246IHN0cmluZyB8IG51bGw7XG4gICAgcHJpdmF0ZSBiaW5kaXRlbWJhZGdlOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGl0ZW1jaGlsZHJlbjogc3RyaW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIGJpbmRpdGVtbGluazogc3RyaW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIGJpbmRpdGVtdGFyZ2V0OiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZHVzZXJyb2xlOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGlzYWN0aXZlOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgc2VjdXJpdHlTZXJ2aWNlOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgYmluZGl0ZW1pZDogc3RyaW5nIHwgbnVsbDtcbiAgICBwcm90ZWN0ZWQgbm9kZXMkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIFdJREdFVF9DT05GSUcsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHRoaXMuc2VjdXJpdHlTZXJ2aWNlID0gdGhpcy5pbmouZ2V0KFNlY3VyaXR5U2VydmljZSk7XG4gICAgICAgIHRoaXMuYmluZGl0ZW1sYWJlbCA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW1sYWJlbC5iaW5kJyk7XG4gICAgICAgIHRoaXMuYmluZGl0ZW1oaW50ID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnaXRlbWhpbnQuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtaWNvbiA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW1pY29uLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kaXRlbWFjdGlvbiA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW1hY3Rpb24uYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtYmFkZ2UgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpdGVtYmFkZ2UuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtY2hpbGRyZW4gPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpdGVtY2hpbGRyZW4uYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtaWQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpdGVtaWQuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtbGluayA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW1saW5rLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kaXRlbXRhcmdldCA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW10YXJnZXQuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmR1c2Vycm9sZSA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3VzZXJyb2xlLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kaXNhY3RpdmUgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpc2FjdGl2ZS5iaW5kJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29uc3RydWN0cyBpbmRpdmlkdWFsIG5vZGUgZm9yIHRoZSB3aWRnZXQgbW9kZWwuXG4gICAgICogQHBhcmFtIGZpZWxkc1xuICAgICAqIEBwYXJhbSBub2RlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXROb2RlKGZpZWxkcywgbm9kZSk6IE5hdk5vZGUge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy52aWV3UGFyZW50LnBhZ2VTY29wZSB8fCB0aGlzLnZpZXdQYXJlbnQ7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gZ2V0RXZhbHVhdGVkRGF0YShub2RlLCB7XG4gICAgICAgICAgICBmaWVsZDogdGhpcy5pdGVtY2hpbGRyZW4sXG4gICAgICAgICAgICBiaW5kRXhwcmVzc2lvbjogdGhpcy5iaW5kaXRlbWNoaWxkcmVuXG4gICAgICAgIH0sIGNvbnRleHQpIHx8IGdldChub2RlLCBmaWVsZHMuY2hpbGRyZW5GaWVsZCk7XG4gICAgICAgIGNvbnN0IG5hdk5vZGUgPSB7XG4gICAgICAgICAgICBhY3Rpb246IGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW1hY3Rpb24sXG4gICAgICAgICAgICAgICAgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGl0ZW1hY3Rpb25cbiAgICAgICAgICAgIH0sIGNvbnRleHQpIHx8IGdldChub2RlLCBmaWVsZHMuYWN0aW9uRmllbGQpLFxuICAgICAgICAgICAgYmFkZ2U6IGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW1iYWRnZSxcbiAgICAgICAgICAgICAgICBiaW5kRXhwcmVzc2lvbjogdGhpcy5iaW5kaXRlbWJhZGdlXG4gICAgICAgICAgICB9LCBjb250ZXh0KSB8fCBnZXQobm9kZSwgZmllbGRzLmJhZGdlRmllbGQpLFxuICAgICAgICAgICAgY2hpbGRyZW46IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gdGhpcy5nZXROb2RlcyhjaGlsZHJlbikgOiBbXSxcbiAgICAgICAgICAgIGNsYXNzOiBnZXQobm9kZSwgZmllbGRzLmNsYXNzRmllbGQpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IG5vZGUuZGlzYWJsZWQsXG4gICAgICAgICAgICBpY29uOiBnZXRFdmFsdWF0ZWREYXRhKG5vZGUsIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5pdGVtaWNvbixcbiAgICAgICAgICAgICAgICBiaW5kRXhwcmVzc2lvbjogdGhpcy5iaW5kaXRlbWljb25cbiAgICAgICAgICAgIH0sIGNvbnRleHQpIHx8IGdldChub2RlLCBmaWVsZHMuaWNvbkZpZWxkKSxcbiAgICAgICAgICAgIGlkOiBnZXRFdmFsdWF0ZWREYXRhKG5vZGUsIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5pdGVtaWQsXG4gICAgICAgICAgICAgICAgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGl0ZW1pZFxuICAgICAgICAgICAgfSwgY29udGV4dCkgfHwgZ2V0KG5vZGUsIGZpZWxkcy5pZEZpZWxkKSxcbiAgICAgICAgICAgIGxhYmVsOiBnZXRFdmFsdWF0ZWREYXRhKG5vZGUsIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5pdGVtbGFiZWwsXG4gICAgICAgICAgICAgICAgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGl0ZW1sYWJlbFxuICAgICAgICAgICAgfSwgY29udGV4dCkgfHwgZ2V0KG5vZGUsIGZpZWxkcy5sYWJlbEZpZWxkKSxcbiAgICAgICAgICAgIGhpbnQ6IGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW1oaW50LFxuICAgICAgICAgICAgICAgIGJpbmRFeHByZXNzaW9uOiB0aGlzLmJpbmRpdGVtaGludFxuICAgICAgICAgICAgfSwgY29udGV4dCkgfHwgZ2V0KG5vZGUsIGZpZWxkcy5oaW50RmllbGQpLFxuICAgICAgICAgICAgbGluazogZ2V0VmFsaWRMaW5rKGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW1saW5rLFxuICAgICAgICAgICAgICAgIGJpbmRFeHByZXNzaW9uOiB0aGlzLmJpbmRpdGVtbGlua1xuICAgICAgICAgICAgfSwgY29udGV4dCkgfHwgZ2V0KG5vZGUsIGZpZWxkcy5saW5rRmllbGQpKSxcbiAgICAgICAgICAgIHRhcmdldDogZ2V0VmFsaWRMaW5rKGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW10YXJnZXQsXG4gICAgICAgICAgICAgICAgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGl0ZW10YXJnZXRcbiAgICAgICAgICAgIH0sIGNvbnRleHQpIHx8IGdldChub2RlLCBmaWVsZHMudGFyZ2V0RmllbGQpKSxcbiAgICAgICAgICAgIHJvbGU6IGdldEV2YWx1YXRlZERhdGEobm9kZSwge2ZpZWxkOiB0aGlzLnVzZXJyb2xlLCBiaW5kRXhwcmVzc2lvbjogdGhpcy5iaW5kdXNlcnJvbGV9LCBjb250ZXh0KSxcbiAgICAgICAgICAgIGlzYWN0aXZlOiBnZXRFdmFsdWF0ZWREYXRhKG5vZGUsIHtmaWVsZDogdGhpcy5pc2FjdGl2ZSwgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGlzYWN0aXZlfSwgY29udGV4dCksXG4gICAgICAgICAgICAvLyBvbGRlciBwcm9qZWN0cyBoYXZlIGRpc3BsYXkgZmllbGQgJiBkYXRhIGZpZWxkIHByb3BlcnR5IGZvciBtZW51LlxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZGF0YWZpZWxkID8gKHRoaXMuZGF0YWZpZWxkID09PSAnQWxsIEZpZWxkcycgPyBub2RlIDogZmluZFZhbHVlT2Yobm9kZSwgdGhpcy5kYXRhZmllbGQpKSA6IG5vZGVcbiAgICAgICAgfTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gb21pdEJ5KG5hdk5vZGUsIGlzVW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICByZXNldEl0ZW1GaWVsZE1hcCgpIHtcbiAgICAgICAgdGhpcy5faXRlbUZpZWxkTWFwID0gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRJdGVtRmllbGRzTWFwKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1GaWVsZE1hcCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbUZpZWxkTWFwID0ge1xuICAgICAgICAgICAgICAgIGlkRmllbGQ6IHRoaXMuaXRlbWlkIHx8ICdpdGVtaWQnLFxuICAgICAgICAgICAgICAgIGljb25GaWVsZDogdGhpcy5pdGVtaWNvbiB8fCAnaWNvbicsXG4gICAgICAgICAgICAgICAgbGFiZWxGaWVsZDogdGhpcy5pdGVtbGFiZWwgfHwgJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICBoaW50RmllbGQ6IHRoaXMuaXRlbWhpbnQgfHwgJ2hpbnQnLFxuICAgICAgICAgICAgICAgIGxpbmtGaWVsZDogdGhpcy5pdGVtbGluayB8fCAnbGluaycsXG4gICAgICAgICAgICAgICAgdGFyZ2V0RmllbGQ6IHRoaXMuaXRlbXRhcmdldCB8fCAndGFyZ2V0JyxcbiAgICAgICAgICAgICAgICBiYWRnZUZpZWxkOiB0aGlzLml0ZW1iYWRnZSB8fCAnYmFkZ2UnLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuRmllbGQ6IHRoaXMuaXRlbWNoaWxkcmVuIHx8ICdjaGlsZHJlbicsXG4gICAgICAgICAgICAgICAgY2xhc3NGaWVsZDogdGhpcy5pdGVtY2xhc3MgfHwgJ2NsYXNzJyxcbiAgICAgICAgICAgICAgICBhY3Rpb25GaWVsZDogdGhpcy5pdGVtYWN0aW9uIHx8ICdhY3Rpb24nLFxuICAgICAgICAgICAgICAgIGlzYWN0aXZlRmllbGQ6IHRoaXMuaXNhY3RpdmUgfHwgJ2lzYWN0aXZlJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5faXRlbUZpZWxkTWFwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYXJyYXkgZm9yIHRoZSB2YWx1ZSBwYXNzZWQgYXMgbnYuXG4gICAgICogbnY6ICdhLGInID0+IFt7bGFiZWw6YSwgdmFsdWU6YX0sIHtsYWJlbDpiLCB2YWx1ZTpifV1cbiAgICAgKiBudjogWzEsMl0gPT4gW3tsYWJlbDoxLCB2YWx1ZToxfSwge2xhYmVsOjIsIHZhbHVlOjJ9XVxuICAgICAqIG52OiBbe29ian0sIHtvYmp9XSA9PiBbe29ian0sIHtvYmp9XVxuICAgICAqIEBwYXJhbSBudlxuICAgICAqL1xuICAgIHByaXZhdGUgcHJlcGFyZU5vZGVEYXRhU2V0KG52KSB7XG4gICAgICAgIG52ID0gIGNyZWF0ZUFycmF5RnJvbShudik7XG4gICAgICAgIHJldHVybiBudi5tYXAoKHZhbCkgPT4ge1xuICAgICAgICAgICBpZiAoIWlzT2JqZWN0KHZhbCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdmFsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgfVxuICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb25zdHJ1Y3RzIGRhdGFzZXQgZm9ybSB0aGUgbmF2IGVsZW1lbnRzLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Tm9kZXMobnYgPSB0aGlzLmRhdGFzZXQgfHwge30pOiBBcnJheTxOYXZOb2RlPiB7XG4gICAgICAgIGxldCBub2RlczogQXJyYXk8YW55PiA9IGdldE9yZGVyZWREYXRhc2V0KHRoaXMucHJlcGFyZU5vZGVEYXRhU2V0KG52KSwgdGhpcy5vcmRlcmJ5KSB8fCBbXTtcblxuICAgICAgICBpZiAobm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB1c2VyUm9sZSA9IHRoaXMudXNlcnJvbGU7XG4gICAgICAgICAgICBjb25zdCBub2RlRmllbGRzID0gdGhpcy5nZXRJdGVtRmllbGRzTWFwKCk7XG5cbiAgICAgICAgICAgIG5vZGVzID0gbm9kZXMucmVkdWNlKChyZXN1bHQsIG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBY2Nlc3NSb2xlcyhub2RlW3VzZXJSb2xlXSwgdGhpcy5zZWN1cml0eVNlcnZpY2UubG9nZ2VkSW5Vc2VyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLmdldE5vZGUobm9kZUZpZWxkcywgbm9kZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSwgW10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlcztcbiAgICB9XG5cbiAgICAvLyBlbmFibGUgdGhlIGluaGVyaXRlZCBjbGFzcyB0byBleHRlbmQgdGhpcyBtZXRob2QuXG4gICAgcHJvdGVjdGVkIHJlc2V0Tm9kZXMoKSB7XG4gICAgICAgIHRoaXMucmVzZXRJdGVtRmllbGRNYXAoKTtcbiAgICAgICAgdGhpcy5ub2RlcyA9IHRoaXMuZ2V0Tm9kZXMoKTtcbiAgICAgICAgJGFwcERpZ2VzdCgpO1xuICAgICAgICAvLyBub3RpZnkgdGhlIG5vZGUgbGlzdGVuZXJzXG4gICAgICAgIHRoaXMubm9kZXMkLm5leHQobnVsbCk7XG4gICAgfVxuXG4gICAgLy8gZGVib3VuY2UgZnVuY3Rpb24gZm9yIHJlc2V0IG5vZGVzIGZ1bmN0aW9ucy5cbiAgICBwcml2YXRlIF9yZXNldE5vZGVzID0gZGVib3VuY2UodGhpcy5yZXNldE5vZGVzLCA1MCk7XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdkYXRhc2V0JzpcbiAgICAgICAgICAgIGNhc2UgJ2l0ZW1pY29uJzpcbiAgICAgICAgICAgIGNhc2UgJ2l0ZW1sYWJlbCc6XG4gICAgICAgICAgICBjYXNlICdpdGVtaGludCc6XG4gICAgICAgICAgICBjYXNlICdpdGVtbGluayc6XG4gICAgICAgICAgICBjYXNlICdpdGVtdGFyZ2V0JzpcbiAgICAgICAgICAgIGNhc2UgJ2l0ZW1jbGFzcyc6XG4gICAgICAgICAgICBjYXNlICdpdGVtY2hpbGRyZW4nOlxuICAgICAgICAgICAgY2FzZSAnaXNhY3RpdmUnOlxuICAgICAgICAgICAgY2FzZSAnb3JkZXJieSc6XG4gICAgICAgICAgICAgICAgLy8gY2FsbHMgcmVzZXRub2RlcyBtZXRob2QgYWZ0ZXIgNTBtcy4gYW55IGNhbGxzIHdpdGhpbiA1MG1zIHdpbGwgYmUgaWdub3JlZC5cbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNldE5vZGVzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hdk5vZGUge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgYWN0aW9uPzogYW55O1xuICAgIGJhZGdlPzogc3RyaW5nO1xuICAgIGNoaWxkcmVuPzogQXJyYXk8TmF2Tm9kZT47XG4gICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgbGluaz86IHN0cmluZztcbiAgICByb2xlPzogc3RyaW5nO1xuICAgIHZhbHVlPzogYW55O1xufVxuIl19
|
|
182
|
+
ngOnDestroy() {
|
|
183
|
+
// MEMORY LEAK FIX: Cancel debounced function
|
|
184
|
+
if (this._resetNodes && this._resetNodes.cancel) {
|
|
185
|
+
this._resetNodes.cancel();
|
|
186
|
+
this._resetNodes = null;
|
|
187
|
+
}
|
|
188
|
+
// MEMORY LEAK FIX: Complete Subject to release subscriptions
|
|
189
|
+
if (this.nodes$) {
|
|
190
|
+
this.nodes$.complete();
|
|
191
|
+
this.nodes$ = null;
|
|
192
|
+
}
|
|
193
|
+
// MEMORY LEAK FIX: Clear nodes array to release references
|
|
194
|
+
this.nodes = [];
|
|
195
|
+
this.dataset = null;
|
|
196
|
+
this._itemFieldMap = null;
|
|
197
|
+
// MEMORY LEAK FIX: Clear bound attribute references
|
|
198
|
+
this.binditemlabel = null;
|
|
199
|
+
this.binditemhint = null;
|
|
200
|
+
this.binditemicon = null;
|
|
201
|
+
this.binditemaction = null;
|
|
202
|
+
this.binditembadge = null;
|
|
203
|
+
this.binditemchildren = null;
|
|
204
|
+
this.binditemlink = null;
|
|
205
|
+
this.binditemtarget = null;
|
|
206
|
+
this.binduserrole = null;
|
|
207
|
+
this.bindisactive = null;
|
|
208
|
+
this.binditemid = null;
|
|
209
|
+
super.ngOnDestroy();
|
|
210
|
+
}
|
|
211
|
+
static { this.ɵfac = function DatasetAwareNavComponent_Factory(__ngFactoryType__) { i0.ɵɵinvalidFactory(); }; }
|
|
212
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DatasetAwareNavComponent, factory: DatasetAwareNavComponent.ɵfac }); }
|
|
213
|
+
}
|
|
214
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DatasetAwareNavComponent, [{
|
|
215
|
+
type: Injectable
|
|
216
|
+
}], () => [{ type: i0.Injector }, { type: undefined }, { type: undefined, decorators: [{
|
|
217
|
+
type: Inject,
|
|
218
|
+
args: ['EXPLICIT_CONTEXT']
|
|
219
|
+
}, {
|
|
220
|
+
type: Optional
|
|
221
|
+
}] }], null); })();
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1hd2FyZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy93aWRnZXRzL2NvbW1vbi9iYXNlL2RhdGFzZXQtYXdhcmUtbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFhLG1CQUFtQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFFaEYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUMxQixNQUFNLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQztJQUN4QyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1AsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkIsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVB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aEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFFMUIsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7O3VFQTFPaUIsd0JBQXdCLFdBQXhCLHdCQUF3Qjs7aUZBQXhCLHdCQUF3QjtjQUQ3QyxVQUFVOztzQkFxQ29DLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyRhcHBEaWdlc3QsIGZpbmRWYWx1ZU9mLCBpc09iamVjdCwgaXNEZWZpbmVkLCB2YWxpZGF0ZUFjY2Vzc1JvbGVzfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2UgfSBmcm9tICdAd20vc2VjdXJpdHknO1xuXG5pbXBvcnQgeyBjcmVhdGVBcnJheUZyb20gfSBmcm9tICcuLi8uLi8uLi91dGlscy9kYXRhLXV0aWxzJztcbmltcG9ydCB7IGdldEV2YWx1YXRlZERhdGEgfSBmcm9tICcuLi8uLi8uLi91dGlscy93aWRnZXQtdXRpbHMnO1xuaW1wb3J0IHsgZ2V0T3JkZXJlZERhdGFzZXQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9mb3JtLXV0aWxzJztcbmltcG9ydCB7IFN0eWxhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zdHlsYWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtkZWJvdW5jZSwgZmlyc3QsIGdldCwgaXNVbmRlZmluZWQsIG9taXRCeSwgc3RhcnRzV2l0aH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5jb25zdCBnZXRWYWxpZExpbmsgPSAobGluaykgPT4ge1xuICAgIGNvbnN0IHJvdXRSZWdleCA9IC9eKFxcL3wjXFwvfCMpKD8hXFxXKS4qLztcbiAgICBpZiAobGluaykge1xuICAgICAgICBpZiAocm91dFJlZ2V4LnRlc3QobGluaykpIHtcbiAgICAgICAgICAgIGxpbmsgPSBmaXJzdChsaW5rLm1hdGNoKC9bXFx3XSsuKi9nKSkgfHwgJyc7XG4gICAgICAgICAgICByZXR1cm4gYCMvJHtsaW5rfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0c1dpdGgobGluaywgJ3d3dy4nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGAvLyR7bGlua31gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgbm9kZXM6IEFycmF5PE5hdk5vZGU+ID0gW107XG4gICAgcHVibGljIGRhdGFzZXQ6IGFueTtcbiAgICBwdWJsaWMgaXRlbWljb246IHN0cmluZztcbiAgICBwdWJsaWMgaXRlbWxhYmVsOiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW1oaW50OiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW1saW5rOiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW10YXJnZXQ6IHN0cmluZztcbiAgICBwdWJsaWMgaXRlbWJhZGdlOiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW1jaGlsZHJlbjogc3RyaW5nO1xuICAgIHB1YmxpYyBpdGVtYWN0aW9uOiBzdHJpbmc7XG4gICAgcHVibGljIGl0ZW1jbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBpdGVtaWQ6IHN0cmluZztcbiAgICBwdWJsaWMgaXNhY3RpdmU6IHN0cmluZztcbiAgICBwdWJsaWMgdXNlcnJvbGU6IHN0cmluZztcbiAgICBwdWJsaWMgb3JkZXJieTogc3RyaW5nO1xuICAgIHB1YmxpYyBkYXRhZmllbGQ6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzcGxheWZpZWxkOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIF9pdGVtRmllbGRNYXA7XG4gICAgcHJpdmF0ZSBiaW5kaXRlbWxhYmVsOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGl0ZW1oaW50OiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGl0ZW1pY29uOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGl0ZW1hY3Rpb246IHN0cmluZyB8IG51bGw7XG4gICAgcHJpdmF0ZSBiaW5kaXRlbWJhZGdlOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGl0ZW1jaGlsZHJlbjogc3RyaW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIGJpbmRpdGVtbGluazogc3RyaW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIGJpbmRpdGVtdGFyZ2V0OiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZHVzZXJyb2xlOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgYmluZGlzYWN0aXZlOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgc2VjdXJpdHlTZXJ2aWNlOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgYmluZGl0ZW1pZDogc3RyaW5nIHwgbnVsbDtcbiAgICBwcm90ZWN0ZWQgbm9kZXMkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIFdJREdFVF9DT05GSUcsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHRoaXMuc2VjdXJpdHlTZXJ2aWNlID0gdGhpcy5pbmouZ2V0KFNlY3VyaXR5U2VydmljZSk7XG4gICAgICAgIHRoaXMuYmluZGl0ZW1sYWJlbCA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW1sYWJlbC5iaW5kJyk7XG4gICAgICAgIHRoaXMuYmluZGl0ZW1oaW50ID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnaXRlbWhpbnQuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtaWNvbiA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW1pY29uLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kaXRlbWFjdGlvbiA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW1hY3Rpb24uYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtYmFkZ2UgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpdGVtYmFkZ2UuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtY2hpbGRyZW4gPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpdGVtY2hpbGRyZW4uYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtaWQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpdGVtaWQuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmRpdGVtbGluayA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW1saW5rLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kaXRlbXRhcmdldCA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2l0ZW10YXJnZXQuYmluZCcpO1xuICAgICAgICB0aGlzLmJpbmR1c2Vycm9sZSA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3VzZXJyb2xlLmJpbmQnKTtcbiAgICAgICAgdGhpcy5iaW5kaXNhY3RpdmUgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpc2FjdGl2ZS5iaW5kJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29uc3RydWN0cyBpbmRpdmlkdWFsIG5vZGUgZm9yIHRoZSB3aWRnZXQgbW9kZWwuXG4gICAgICogQHBhcmFtIGZpZWxkc1xuICAgICAqIEBwYXJhbSBub2RlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXROb2RlKGZpZWxkcywgbm9kZSk6IE5hdk5vZGUge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy52aWV3UGFyZW50LnBhZ2VTY29wZSB8fCB0aGlzLnZpZXdQYXJlbnQ7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gZ2V0RXZhbHVhdGVkRGF0YShub2RlLCB7XG4gICAgICAgICAgICBmaWVsZDogdGhpcy5pdGVtY2hpbGRyZW4sXG4gICAgICAgICAgICBiaW5kRXhwcmVzc2lvbjogdGhpcy5iaW5kaXRlbWNoaWxkcmVuXG4gICAgICAgIH0sIGNvbnRleHQpIHx8IGdldChub2RlLCBmaWVsZHMuY2hpbGRyZW5GaWVsZCk7XG4gICAgICAgIGNvbnN0IG5hdk5vZGUgPSB7XG4gICAgICAgICAgICBhY3Rpb246IGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW1hY3Rpb24sXG4gICAgICAgICAgICAgICAgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGl0ZW1hY3Rpb25cbiAgICAgICAgICAgIH0sIGNvbnRleHQpIHx8IGdldChub2RlLCBmaWVsZHMuYWN0aW9uRmllbGQpLFxuICAgICAgICAgICAgYmFkZ2U6IGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW1iYWRnZSxcbiAgICAgICAgICAgICAgICBiaW5kRXhwcmVzc2lvbjogdGhpcy5iaW5kaXRlbWJhZGdlXG4gICAgICAgICAgICB9LCBjb250ZXh0KSB8fCBnZXQobm9kZSwgZmllbGRzLmJhZGdlRmllbGQpLFxuICAgICAgICAgICAgY2hpbGRyZW46IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gdGhpcy5nZXROb2RlcyhjaGlsZHJlbikgOiBbXSxcbiAgICAgICAgICAgIGNsYXNzOiBnZXQobm9kZSwgZmllbGRzLmNsYXNzRmllbGQpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IG5vZGUuZGlzYWJsZWQsXG4gICAgICAgICAgICBpY29uOiBnZXRFdmFsdWF0ZWREYXRhKG5vZGUsIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5pdGVtaWNvbixcbiAgICAgICAgICAgICAgICBiaW5kRXhwcmVzc2lvbjogdGhpcy5iaW5kaXRlbWljb25cbiAgICAgICAgICAgIH0sIGNvbnRleHQpIHx8IGdldChub2RlLCBmaWVsZHMuaWNvbkZpZWxkKSxcbiAgICAgICAgICAgIGlkOiBnZXRFdmFsdWF0ZWREYXRhKG5vZGUsIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5pdGVtaWQsXG4gICAgICAgICAgICAgICAgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGl0ZW1pZFxuICAgICAgICAgICAgfSwgY29udGV4dCkgfHwgZ2V0KG5vZGUsIGZpZWxkcy5pZEZpZWxkKSxcbiAgICAgICAgICAgIGxhYmVsOiBnZXRFdmFsdWF0ZWREYXRhKG5vZGUsIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5pdGVtbGFiZWwsXG4gICAgICAgICAgICAgICAgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGl0ZW1sYWJlbFxuICAgICAgICAgICAgfSwgY29udGV4dCkgfHwgZ2V0KG5vZGUsIGZpZWxkcy5sYWJlbEZpZWxkKSxcbiAgICAgICAgICAgIGhpbnQ6IGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW1oaW50LFxuICAgICAgICAgICAgICAgIGJpbmRFeHByZXNzaW9uOiB0aGlzLmJpbmRpdGVtaGludFxuICAgICAgICAgICAgfSwgY29udGV4dCkgfHwgZ2V0KG5vZGUsIGZpZWxkcy5oaW50RmllbGQpLFxuICAgICAgICAgICAgbGluazogZ2V0VmFsaWRMaW5rKGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW1saW5rLFxuICAgICAgICAgICAgICAgIGJpbmRFeHByZXNzaW9uOiB0aGlzLmJpbmRpdGVtbGlua1xuICAgICAgICAgICAgfSwgY29udGV4dCkgfHwgZ2V0KG5vZGUsIGZpZWxkcy5saW5rRmllbGQpKSxcbiAgICAgICAgICAgIHRhcmdldDogZ2V0VmFsaWRMaW5rKGdldEV2YWx1YXRlZERhdGEobm9kZSwge1xuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLml0ZW10YXJnZXQsXG4gICAgICAgICAgICAgICAgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGl0ZW10YXJnZXRcbiAgICAgICAgICAgIH0sIGNvbnRleHQpIHx8IGdldChub2RlLCBmaWVsZHMudGFyZ2V0RmllbGQpKSxcbiAgICAgICAgICAgIHJvbGU6IGdldEV2YWx1YXRlZERhdGEobm9kZSwge2ZpZWxkOiB0aGlzLnVzZXJyb2xlLCBiaW5kRXhwcmVzc2lvbjogdGhpcy5iaW5kdXNlcnJvbGV9LCBjb250ZXh0KSxcbiAgICAgICAgICAgIGlzYWN0aXZlOiBnZXRFdmFsdWF0ZWREYXRhKG5vZGUsIHtmaWVsZDogdGhpcy5pc2FjdGl2ZSwgYmluZEV4cHJlc3Npb246IHRoaXMuYmluZGlzYWN0aXZlfSwgY29udGV4dCksXG4gICAgICAgICAgICAvLyBvbGRlciBwcm9qZWN0cyBoYXZlIGRpc3BsYXkgZmllbGQgJiBkYXRhIGZpZWxkIHByb3BlcnR5IGZvciBtZW51LlxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZGF0YWZpZWxkID8gKHRoaXMuZGF0YWZpZWxkID09PSAnQWxsIEZpZWxkcycgPyBub2RlIDogZmluZFZhbHVlT2Yobm9kZSwgdGhpcy5kYXRhZmllbGQpKSA6IG5vZGVcbiAgICAgICAgfTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gb21pdEJ5KG5hdk5vZGUsIGlzVW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICByZXNldEl0ZW1GaWVsZE1hcCgpIHtcbiAgICAgICAgdGhpcy5faXRlbUZpZWxkTWFwID0gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRJdGVtRmllbGRzTWFwKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1GaWVsZE1hcCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbUZpZWxkTWFwID0ge1xuICAgICAgICAgICAgICAgIGlkRmllbGQ6IHRoaXMuaXRlbWlkIHx8ICdpdGVtaWQnLFxuICAgICAgICAgICAgICAgIGljb25GaWVsZDogdGhpcy5pdGVtaWNvbiB8fCAnaWNvbicsXG4gICAgICAgICAgICAgICAgbGFiZWxGaWVsZDogdGhpcy5pdGVtbGFiZWwgfHwgJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICBoaW50RmllbGQ6IHRoaXMuaXRlbWhpbnQgfHwgJ2hpbnQnLFxuICAgICAgICAgICAgICAgIGxpbmtGaWVsZDogdGhpcy5pdGVtbGluayB8fCAnbGluaycsXG4gICAgICAgICAgICAgICAgdGFyZ2V0RmllbGQ6IHRoaXMuaXRlbXRhcmdldCB8fCAndGFyZ2V0JyxcbiAgICAgICAgICAgICAgICBiYWRnZUZpZWxkOiB0aGlzLml0ZW1iYWRnZSB8fCAnYmFkZ2UnLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuRmllbGQ6IHRoaXMuaXRlbWNoaWxkcmVuIHx8ICdjaGlsZHJlbicsXG4gICAgICAgICAgICAgICAgY2xhc3NGaWVsZDogdGhpcy5pdGVtY2xhc3MgfHwgJ2NsYXNzJyxcbiAgICAgICAgICAgICAgICBhY3Rpb25GaWVsZDogdGhpcy5pdGVtYWN0aW9uIHx8ICdhY3Rpb24nLFxuICAgICAgICAgICAgICAgIGlzYWN0aXZlRmllbGQ6IHRoaXMuaXNhY3RpdmUgfHwgJ2lzYWN0aXZlJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5faXRlbUZpZWxkTWFwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYXJyYXkgZm9yIHRoZSB2YWx1ZSBwYXNzZWQgYXMgbnYuXG4gICAgICogbnY6ICdhLGInID0+IFt7bGFiZWw6YSwgdmFsdWU6YX0sIHtsYWJlbDpiLCB2YWx1ZTpifV1cbiAgICAgKiBudjogWzEsMl0gPT4gW3tsYWJlbDoxLCB2YWx1ZToxfSwge2xhYmVsOjIsIHZhbHVlOjJ9XVxuICAgICAqIG52OiBbe29ian0sIHtvYmp9XSA9PiBbe29ian0sIHtvYmp9XVxuICAgICAqIEBwYXJhbSBudlxuICAgICAqL1xuICAgIHByaXZhdGUgcHJlcGFyZU5vZGVEYXRhU2V0KG52KSB7XG4gICAgICAgIG52ID0gIGNyZWF0ZUFycmF5RnJvbShudik7XG4gICAgICAgIHJldHVybiBudi5tYXAoKHZhbCkgPT4ge1xuICAgICAgICAgICBpZiAoIWlzT2JqZWN0KHZhbCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdmFsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgfVxuICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb25zdHJ1Y3RzIGRhdGFzZXQgZm9ybSB0aGUgbmF2IGVsZW1lbnRzLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Tm9kZXMobnYgPSB0aGlzLmRhdGFzZXQgfHwge30pOiBBcnJheTxOYXZOb2RlPiB7XG4gICAgICAgIGxldCBub2RlczogQXJyYXk8YW55PiA9IGdldE9yZGVyZWREYXRhc2V0KHRoaXMucHJlcGFyZU5vZGVEYXRhU2V0KG52KSwgdGhpcy5vcmRlcmJ5KSB8fCBbXTtcblxuICAgICAgICBpZiAobm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB1c2VyUm9sZSA9IHRoaXMudXNlcnJvbGU7XG4gICAgICAgICAgICBjb25zdCBub2RlRmllbGRzID0gdGhpcy5nZXRJdGVtRmllbGRzTWFwKCk7XG5cbiAgICAgICAgICAgIG5vZGVzID0gbm9kZXMucmVkdWNlKChyZXN1bHQsIG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBY2Nlc3NSb2xlcyhub2RlW3VzZXJSb2xlXSwgdGhpcy5zZWN1cml0eVNlcnZpY2UubG9nZ2VkSW5Vc2VyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLmdldE5vZGUobm9kZUZpZWxkcywgbm9kZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSwgW10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlcztcbiAgICB9XG5cbiAgICAvLyBlbmFibGUgdGhlIGluaGVyaXRlZCBjbGFzcyB0byBleHRlbmQgdGhpcyBtZXRob2QuXG4gICAgcHJvdGVjdGVkIHJlc2V0Tm9kZXMoKSB7XG4gICAgICAgIHRoaXMucmVzZXRJdGVtRmllbGRNYXAoKTtcbiAgICAgICAgdGhpcy5ub2RlcyA9IHRoaXMuZ2V0Tm9kZXMoKTtcbiAgICAgICAgJGFwcERpZ2VzdCgpO1xuICAgICAgICAvLyBub3RpZnkgdGhlIG5vZGUgbGlzdGVuZXJzXG4gICAgICAgIHRoaXMubm9kZXMkLm5leHQobnVsbCk7XG4gICAgfVxuXG4gICAgLy8gZGVib3VuY2UgZnVuY3Rpb24gZm9yIHJlc2V0IG5vZGVzIGZ1bmN0aW9ucy5cbiAgICBwcml2YXRlIF9yZXNldE5vZGVzID0gZGVib3VuY2UodGhpcy5yZXNldE5vZGVzLCA1MCk7XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdkYXRhc2V0JzpcbiAgICAgICAgICAgIGNhc2UgJ2l0ZW1pY29uJzpcbiAgICAgICAgICAgIGNhc2UgJ2l0ZW1sYWJlbCc6XG4gICAgICAgICAgICBjYXNlICdpdGVtaGludCc6XG4gICAgICAgICAgICBjYXNlICdpdGVtbGluayc6XG4gICAgICAgICAgICBjYXNlICdpdGVtdGFyZ2V0JzpcbiAgICAgICAgICAgIGNhc2UgJ2l0ZW1jbGFzcyc6XG4gICAgICAgICAgICBjYXNlICdpdGVtY2hpbGRyZW4nOlxuICAgICAgICAgICAgY2FzZSAnaXNhY3RpdmUnOlxuICAgICAgICAgICAgY2FzZSAnb3JkZXJieSc6XG4gICAgICAgICAgICAgICAgLy8gY2FsbHMgcmVzZXRub2RlcyBtZXRob2QgYWZ0ZXIgNTBtcy4gYW55IGNhbGxzIHdpdGhpbiA1MG1zIHdpbGwgYmUgaWdub3JlZC5cbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNldE5vZGVzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2FuY2VsIGRlYm91bmNlZCBmdW5jdGlvblxuICAgICAgICBpZiAodGhpcy5fcmVzZXROb2RlcyAmJiAodGhpcy5fcmVzZXROb2RlcyBhcyBhbnkpLmNhbmNlbCkge1xuICAgICAgICAgICAgKHRoaXMuX3Jlc2V0Tm9kZXMgYXMgYW55KS5jYW5jZWwoKTtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0Tm9kZXMgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDb21wbGV0ZSBTdWJqZWN0IHRvIHJlbGVhc2Ugc3Vic2NyaXB0aW9uc1xuICAgICAgICBpZiAodGhpcy5ub2RlcyQpIHtcbiAgICAgICAgICAgIHRoaXMubm9kZXMkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB0aGlzLm5vZGVzJCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIG5vZGVzIGFycmF5IHRvIHJlbGVhc2UgcmVmZXJlbmNlc1xuICAgICAgICB0aGlzLm5vZGVzID0gW107XG4gICAgICAgIHRoaXMuZGF0YXNldCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2l0ZW1GaWVsZE1hcCA9IG51bGw7XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBib3VuZCBhdHRyaWJ1dGUgcmVmZXJlbmNlc1xuICAgICAgICB0aGlzLmJpbmRpdGVtbGFiZWwgPSBudWxsO1xuICAgICAgICB0aGlzLmJpbmRpdGVtaGludCA9IG51bGw7XG4gICAgICAgIHRoaXMuYmluZGl0ZW1pY29uID0gbnVsbDtcbiAgICAgICAgdGhpcy5iaW5kaXRlbWFjdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuYmluZGl0ZW1iYWRnZSA9IG51bGw7XG4gICAgICAgIHRoaXMuYmluZGl0ZW1jaGlsZHJlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuYmluZGl0ZW1saW5rID0gbnVsbDtcbiAgICAgICAgdGhpcy5iaW5kaXRlbXRhcmdldCA9IG51bGw7XG4gICAgICAgIHRoaXMuYmluZHVzZXJyb2xlID0gbnVsbDtcbiAgICAgICAgdGhpcy5iaW5kaXNhY3RpdmUgPSBudWxsO1xuICAgICAgICB0aGlzLmJpbmRpdGVtaWQgPSBudWxsO1xuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hdk5vZGUge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgYWN0aW9uPzogYW55O1xuICAgIGJhZGdlPzogc3RyaW5nO1xuICAgIGNoaWxkcmVuPzogQXJyYXk8TmF2Tm9kZT47XG4gICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgbGluaz86IHN0cmluZztcbiAgICByb2xlPzogc3RyaW5nO1xuICAgIHZhbHVlPzogYW55O1xufVxuIl19
|
|
@@ -72,6 +72,25 @@ export class PartialContainerDirective {
|
|
|
72
72
|
// reload the partial content on partial param change
|
|
73
73
|
componentInstance.registerDestroyListener(() => subscription.unsubscribe());
|
|
74
74
|
}
|
|
75
|
+
ngOnDestroy() {
|
|
76
|
+
// MEMORY LEAK FIX: Clear ViewContainerRef to destroy dynamically created components
|
|
77
|
+
if (this.vcRef) {
|
|
78
|
+
this.vcRef.clear();
|
|
79
|
+
}
|
|
80
|
+
// MEMORY LEAK FIX: Nullify debounced function to break closure
|
|
81
|
+
// The debounced function captures 'this' and has internal timeouts
|
|
82
|
+
if (this.renderPartial && this.renderPartial.cancel) {
|
|
83
|
+
this.renderPartial.cancel();
|
|
84
|
+
}
|
|
85
|
+
this.renderPartial = null;
|
|
86
|
+
// MEMORY LEAK FIX: Clear DOM reference
|
|
87
|
+
this.$target = null;
|
|
88
|
+
// MEMORY LEAK FIX: Clear component instance reference
|
|
89
|
+
// Note: We don't null componentInstance as it's injected and managed by Angular
|
|
90
|
+
// but we clear our internal references
|
|
91
|
+
// Reset content flag
|
|
92
|
+
this.contentInitialized = false;
|
|
93
|
+
}
|
|
75
94
|
static { this.ɵfac = function PartialContainerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PartialContainerDirective)(i0.ɵɵdirectiveInject(WidgetRef, 2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.App), i0.ɵɵinjectAttribute('content'), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i1.PartialRefProvider)); }; }
|
|
76
95
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PartialContainerDirective, selectors: [["", "partialContainer", ""]], standalone: true }); }
|
|
77
96
|
}
|
|
@@ -90,4 +109,4 @@ export class PartialContainerDirective {
|
|
|
90
109
|
type: Attribute,
|
|
91
110
|
args: ['content']
|
|
92
111
|
}] }, { type: i0.ComponentFactoryResolver }, { type: i1.PartialRefProvider }], null); })();
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbC1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy93aWRnZXRzL2NvbW1vbi9iYXNlL3BhcnRpYWwtY29udGFpbmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7QUFNbkMsTUFBTSxPQUFPLHlCQUF5QjtJQUtsQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUNuQiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixpSEFBaUg7UUFDakgsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLHVIQUF1SDtRQUN2SCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEUsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLE1B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QztxQkFBTSxDQUFDO29CQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPO2FBQ3pDLElBQUksQ0FDRCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FDcEI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLHFEQUFxRDtRQUNyRCxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDOzBIQWpGUSx5QkFBeUIsdUJBa0RkLFNBQVMsNEtBS2QsU0FBUztvRUF2RGYseUJBQXlCOztpRkFBekIseUJBQXlCO2NBSnJDLFNBQVM7ZUFBQztnQkFDVCxVQUFVLEVBQUUsSUFBSTtnQkFDZCxRQUFRLEVBQUUsb0JBQW9CO2FBQ2pDOztzQkFtRFEsSUFBSTs7c0JBQUksTUFBTTt1QkFBQyxTQUFTOztzQkFLeEIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RvciwgU2VsZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXBwLCAkaW52b2tlV2F0Y2hlcnMsIG5vb3AsIENvbXBvbmVudFR5cGUsIFBhcnRpYWxSZWZQcm92aWRlciB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgV2lkZ2V0UmVmIH0gZnJvbSBcIi4uLy4uL2ZyYW1ld29yay90eXBlc1wiO1xuaW1wb3J0IHtkZWJvdW5jZX0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1twYXJ0aWFsQ29udGFpbmVyXSdcbn0pXG5leHBvcnQgY2xhc3MgUGFydGlhbENvbnRhaW5lckRpcmVjdGl2ZSB7XG5cbiAgICBwcml2YXRlIGNvbnRlbnRJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgJHRhcmdldDtcblxuICAgIGdldCBuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZS5uYW1lO1xuICAgIH1cblxuICAgIGFzeW5jIF9yZW5kZXJQYXJ0aWFsKG52KSB7XG4gICAgICAgIC8vIGRlc3Ryb3kgdGhlIGV4aXN0aW5nIHBhcnRpYWxcbiAgICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xuICAgICAgICAvLyB3aGVuIHRoZSBjb250YWluZXItdGFyZ2V0IGlzIGluc2lkZSB0aGUgY29tcG9uZW50IHRlbXBsYXRlLCBpdCBjYW4gYmUgcXVlcmllZCBhZnRlciB2aWV3SW5pdCBvZiB0aGUgY29tcG9uZW50LlxuICAgICAgICAkaW52b2tlV2F0Y2hlcnModHJ1ZSk7XG4gICAgICAgIC8vIGZvciBwYXJ0aWFscyB3aXRoIHBvcG92ZXJzIGFuZCBwYWdlIGRpYWxvZ3Mgd2hpY2ggYXJlIGluc2lkZSBhIHByZWZhYiwgcHJlZmFiIG5hbWUgbmVlZHMgdG8gYmUgY29tcHV0ZWQgYW5kIGFwcGVuZGVkXG4gICAgICAgIGNvbnN0IHByZWZhYiA9ICQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KS5jbG9zZXN0KCcuYXBwLXByZWZhYicpO1xuICAgICAgICBsZXQgcHJlZmFiTmFtZTtcbiAgICAgICAgaWYgKHByZWZhYi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHByZWZhYk5hbWUgPSBwcmVmYWIuYXR0cigncHJlZmFibmFtZScpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29tcG9uZW50SW5zdGFuY2Uudmlld1BhcmVudCkge1xuICAgICAgICAgICAgcHJlZmFiTmFtZSA9IHRoaXMuY29tcG9uZW50SW5zdGFuY2Uudmlld1BhcmVudC5wcmVmYWJOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IGF3YWl0IHRoaXMucGFydGlhbFJlZlByb3ZpZGVyLmdldENvbXBvbmVudEZhY3RvcnlSZWYobnYsIENvbXBvbmVudFR5cGUuUEFSVElBTCwge3ByZWZhYjogcHJlZmFiTmFtZX0pO1xuICAgICAgICBpZiAoY29tcG9uZW50RmFjdG9yeSkge1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2VSZWYgPSB0aGlzLnZjUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5LCAwLCB0aGlzLmluaik7XG4gICAgICAgICAgICBpZiAoaW5zdGFuY2VSZWYgJiYgaW5zdGFuY2VSZWZbJ2luc3RhbmNlJ10gJiYgcHJlZmFiTmFtZSkge1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBpbnN0YW5jZVJlZlsnaW5zdGFuY2UnXS5wcmVmYWJOYW1lID0gcHJlZmFiTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy4kdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kdGFyZ2V0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0aWFsLWNvbnRhaW5lci10YXJnZXRdJykgfHwgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLiR0YXJnZXQuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgICB0aGlzLiR0YXJnZXQuYXBwZW5kQ2hpbGQoaW5zdGFuY2VSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25Mb2FkU3VjY2VzcygpLCAyMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyUGFydGlhbCA9IGRlYm91bmNlKHRoaXMuX3JlbmRlclBhcnRpYWwsIDIwMCk7XG5cbiAgICBvbkxvYWRTdWNjZXNzKCkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudEluc3RhbmNlLmludm9rZUV2ZW50Q2FsbGJhY2soJ2xvYWQnKTtcblxuICAgICAgICB0aGlzLmFwcC5ub3RpZnkoJ3BhcnRpYWxMb2FkZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFdpZGdldFJlZikgcHVibGljIGNvbXBvbmVudEluc3RhbmNlLFxuICAgICAgICBwdWJsaWMgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHB1YmxpYyBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGluajogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2NvbnRlbnQnKSBfY29udGVudDogc3RyaW5nLFxuICAgICAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgcGFydGlhbFJlZlByb3ZpZGVyOiBQYXJ0aWFsUmVmUHJvdmlkZXJcbiAgICApIHtcblxuICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5yZWdpc3RlclByb3BlcnR5Q2hhbmdlTGlzdGVuZXIoKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2NvbnRlbnQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXBvbmVudEluc3RhbmNlLiRsYXp5TG9hZCkge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS4kbGF6eUxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclBhcnRpYWwobnYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50SW5zdGFuY2UuJGxhenlMb2FkID0gbm9vcDtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclBhcnRpYWwobnYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gY29tcG9uZW50SW5zdGFuY2UucGFyYW1zJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuY29udGVudEluaXRpYWxpemVkKSxcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlclBhcnRpYWwoY29tcG9uZW50SW5zdGFuY2UuY29udGVudCkpO1xuICAgICAgICAvLyByZWxvYWQgdGhlIHBhcnRpYWwgY29udGVudCBvbiBwYXJ0aWFsIHBhcmFtIGNoYW5nZVxuICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfVxufVxuIl19
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbC1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy93aWRnZXRzL2NvbW1vbi9iYXNlL3BhcnRpYWwtY29udGFpbmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBYSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7QUFNbkMsTUFBTSxPQUFPLHlCQUF5QjtJQUtsQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUNuQiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixpSEFBaUg7UUFDakgsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLHVIQUF1SDtRQUN2SCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEUsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLE1B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aUZBQXpCLHlCQUF5QjtjQUpyQyxTQUFTO2VBQUM7Z0JBQ1QsVUFBVSxFQUFFLElBQUk7Z0JBQ2QsUUFBUSxFQUFFLG9CQUFvQjthQUNqQzs7c0JBbURRLElBQUk7O3NCQUFJLE1BQU07dUJBQUMsU0FBUzs7c0JBS3hCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgU2VsZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXBwLCAkaW52b2tlV2F0Y2hlcnMsIG5vb3AsIENvbXBvbmVudFR5cGUsIFBhcnRpYWxSZWZQcm92aWRlciB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgV2lkZ2V0UmVmIH0gZnJvbSBcIi4uLy4uL2ZyYW1ld29yay90eXBlc1wiO1xuaW1wb3J0IHtkZWJvdW5jZX0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1twYXJ0aWFsQ29udGFpbmVyXSdcbn0pXG5leHBvcnQgY2xhc3MgUGFydGlhbENvbnRhaW5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIGNvbnRlbnRJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgJHRhcmdldDtcblxuICAgIGdldCBuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZS5uYW1lO1xuICAgIH1cblxuICAgIGFzeW5jIF9yZW5kZXJQYXJ0aWFsKG52KSB7XG4gICAgICAgIC8vIGRlc3Ryb3kgdGhlIGV4aXN0aW5nIHBhcnRpYWxcbiAgICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xuICAgICAgICAvLyB3aGVuIHRoZSBjb250YWluZXItdGFyZ2V0IGlzIGluc2lkZSB0aGUgY29tcG9uZW50IHRlbXBsYXRlLCBpdCBjYW4gYmUgcXVlcmllZCBhZnRlciB2aWV3SW5pdCBvZiB0aGUgY29tcG9uZW50LlxuICAgICAgICAkaW52b2tlV2F0Y2hlcnModHJ1ZSk7XG4gICAgICAgIC8vIGZvciBwYXJ0aWFscyB3aXRoIHBvcG92ZXJzIGFuZCBwYWdlIGRpYWxvZ3Mgd2hpY2ggYXJlIGluc2lkZSBhIHByZWZhYiwgcHJlZmFiIG5hbWUgbmVlZHMgdG8gYmUgY29tcHV0ZWQgYW5kIGFwcGVuZGVkXG4gICAgICAgIGNvbnN0IHByZWZhYiA9ICQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KS5jbG9zZXN0KCcuYXBwLXByZWZhYicpO1xuICAgICAgICBsZXQgcHJlZmFiTmFtZTtcbiAgICAgICAgaWYgKHByZWZhYi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHByZWZhYk5hbWUgPSBwcmVmYWIuYXR0cigncHJlZmFibmFtZScpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29tcG9uZW50SW5zdGFuY2Uudmlld1BhcmVudCkge1xuICAgICAgICAgICAgcHJlZmFiTmFtZSA9IHRoaXMuY29tcG9uZW50SW5zdGFuY2Uudmlld1BhcmVudC5wcmVmYWJOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IGF3YWl0IHRoaXMucGFydGlhbFJlZlByb3ZpZGVyLmdldENvbXBvbmVudEZhY3RvcnlSZWYobnYsIENvbXBvbmVudFR5cGUuUEFSVElBTCwge3ByZWZhYjogcHJlZmFiTmFtZX0pO1xuICAgICAgICBpZiAoY29tcG9uZW50RmFjdG9yeSkge1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2VSZWYgPSB0aGlzLnZjUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5LCAwLCB0aGlzLmluaik7XG4gICAgICAgICAgICBpZiAoaW5zdGFuY2VSZWYgJiYgaW5zdGFuY2VSZWZbJ2luc3RhbmNlJ10gJiYgcHJlZmFiTmFtZSkge1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBpbnN0YW5jZVJlZlsnaW5zdGFuY2UnXS5wcmVmYWJOYW1lID0gcHJlZmFiTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy4kdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kdGFyZ2V0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0aWFsLWNvbnRhaW5lci10YXJnZXRdJykgfHwgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLiR0YXJnZXQuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgICB0aGlzLiR0YXJnZXQuYXBwZW5kQ2hpbGQoaW5zdGFuY2VSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25Mb2FkU3VjY2VzcygpLCAyMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyUGFydGlhbCA9IGRlYm91bmNlKHRoaXMuX3JlbmRlclBhcnRpYWwsIDIwMCk7XG5cbiAgICBvbkxvYWRTdWNjZXNzKCkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudEluc3RhbmNlLmludm9rZUV2ZW50Q2FsbGJhY2soJ2xvYWQnKTtcblxuICAgICAgICB0aGlzLmFwcC5ub3RpZnkoJ3BhcnRpYWxMb2FkZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFdpZGdldFJlZikgcHVibGljIGNvbXBvbmVudEluc3RhbmNlLFxuICAgICAgICBwdWJsaWMgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHB1YmxpYyBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGluajogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2NvbnRlbnQnKSBfY29udGVudDogc3RyaW5nLFxuICAgICAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgcGFydGlhbFJlZlByb3ZpZGVyOiBQYXJ0aWFsUmVmUHJvdmlkZXJcbiAgICApIHtcblxuICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5yZWdpc3RlclByb3BlcnR5Q2hhbmdlTGlzdGVuZXIoKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2NvbnRlbnQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXBvbmVudEluc3RhbmNlLiRsYXp5TG9hZCkge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS4kbGF6eUxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclBhcnRpYWwobnYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50SW5zdGFuY2UuJGxhenlMb2FkID0gbm9vcDtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclBhcnRpYWwobnYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gY29tcG9uZW50SW5zdGFuY2UucGFyYW1zJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuY29udGVudEluaXRpYWxpemVkKSxcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlclBhcnRpYWwoY29tcG9uZW50SW5zdGFuY2UuY29udGVudCkpO1xuICAgICAgICAvLyByZWxvYWQgdGhlIHBhcnRpYWwgY29udGVudCBvbiBwYXJ0aWFsIHBhcmFtIGNoYW5nZVxuICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgVmlld0NvbnRhaW5lclJlZiB0byBkZXN0cm95IGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50c1xuICAgICAgICBpZiAodGhpcy52Y1JlZikge1xuICAgICAgICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBOdWxsaWZ5IGRlYm91bmNlZCBmdW5jdGlvbiB0byBicmVhayBjbG9zdXJlXG4gICAgICAgIC8vIFRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gY2FwdHVyZXMgJ3RoaXMnIGFuZCBoYXMgaW50ZXJuYWwgdGltZW91dHNcbiAgICAgICAgaWYgKHRoaXMucmVuZGVyUGFydGlhbCAmJiAodGhpcy5yZW5kZXJQYXJ0aWFsIGFzIGFueSkuY2FuY2VsKSB7XG4gICAgICAgICAgICAodGhpcy5yZW5kZXJQYXJ0aWFsIGFzIGFueSkuY2FuY2VsKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJQYXJ0aWFsID0gbnVsbDtcblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIERPTSByZWZlcmVuY2VcbiAgICAgICAgdGhpcy4kdGFyZ2V0ID0gbnVsbDtcblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIGNvbXBvbmVudCBpbnN0YW5jZSByZWZlcmVuY2VcbiAgICAgICAgLy8gTm90ZTogV2UgZG9uJ3QgbnVsbCBjb21wb25lbnRJbnN0YW5jZSBhcyBpdCdzIGluamVjdGVkIGFuZCBtYW5hZ2VkIGJ5IEFuZ3VsYXJcbiAgICAgICAgLy8gYnV0IHdlIGNsZWFyIG91ciBpbnRlcm5hbCByZWZlcmVuY2VzXG5cbiAgICAgICAgLy8gUmVzZXQgY29udGVudCBmbGFnXG4gICAgICAgIHRoaXMuY29udGVudEluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgfVxufVxuIl19
|
|
@@ -36,6 +36,31 @@ export class ItemTemplateDirective extends StylableComponent {
|
|
|
36
36
|
super.ngOnInit();
|
|
37
37
|
this.partialParams.item = this.userComponentParams.dataObject;
|
|
38
38
|
}
|
|
39
|
+
ngOnDestroy() {
|
|
40
|
+
// MEMORY LEAK FIX: Clear context to release references to ngFor context
|
|
41
|
+
// The context holds references to the parent LView and loop variables
|
|
42
|
+
if (this.context) {
|
|
43
|
+
Object.keys(this.context).forEach(key => {
|
|
44
|
+
delete this.context[key];
|
|
45
|
+
});
|
|
46
|
+
this.context = null;
|
|
47
|
+
}
|
|
48
|
+
// MEMORY LEAK FIX: Clear partial params
|
|
49
|
+
if (this.partialParams) {
|
|
50
|
+
Object.keys(this.partialParams).forEach(key => {
|
|
51
|
+
delete this.partialParams[key];
|
|
52
|
+
});
|
|
53
|
+
this.partialParams = null;
|
|
54
|
+
}
|
|
55
|
+
// MEMORY LEAK FIX: Clear user component params reference
|
|
56
|
+
this.userComponentParams = null;
|
|
57
|
+
// MEMORY LEAK FIX: Clear content reference
|
|
58
|
+
this.content = null;
|
|
59
|
+
// MEMORY LEAK FIX: Clear ViewContainerRef reference
|
|
60
|
+
this.viewContainerRef = null;
|
|
61
|
+
// Call parent ngOnDestroy (StylableComponent → BaseComponent)
|
|
62
|
+
super.ngOnDestroy();
|
|
63
|
+
}
|
|
39
64
|
static { this.ɵfac = function ItemTemplateDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ItemTemplateDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
|
40
65
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ItemTemplateDirective, selectors: [["", "wmItemTemplate", ""]], inputs: { userComponentParams: "userComponentParams", wmItemTemplate: "wmItemTemplate" }, exportAs: ["itemTemplateRef"], standalone: true, features: [i0.ɵɵProvidersFeature([
|
|
41
66
|
provideAsWidgetRef(ItemTemplateDirective)
|
|
@@ -61,4 +86,4 @@ export class ItemTemplateDirective extends StylableComponent {
|
|
|
61
86
|
}], wmItemTemplate: [{
|
|
62
87
|
type: Input
|
|
63
88
|
}] }); })();
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL2Jhc2Uvc3JjL3dpZGdldHMvY29tbW9uL2l0ZW0tdGVtcGxhdGUvaXRlbS10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBRTVILE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFN0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFL0QsTUFBTSxhQUFhLEdBQUcsRUFBQyxVQUFVLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQztBQVV2RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCO2FBQ2pELG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBTXpDLElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUlELElBQWEsY0FBYyxDQUFDLEtBQUs7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZLEdBQWEsRUFBRSxLQUFpQixFQUFVLEdBQVEsRUFBMEMsZUFBb0I7UUFDeEgsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBRTFELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN6QyxtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLE9BQU8sR0FBSSxJQUFJLENBQUMsR0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxXQUFXO1FBQ1Asd0VBQXdFO1FBQ3hFLHNFQUFzRTtRQUN0RSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELHdDQUF3QztRQUN4QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzFDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFFRCx5REFBeUQ7UUFDekQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUVoQywyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFN0IsOERBQThEO1FBQzlELEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO3NIQXpEUSxxQkFBcUIsNkhBaUIwQyxrQkFBa0I7b0VBakJqRixxQkFBcUIsdU5BSm5CO2dCQUNQLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDO2FBQzVDOztpRkFFUSxxQkFBcUI7Y0FSakMsU0FBUztlQUFDO2dCQUNULFVBQVUsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLFNBQVMsRUFBRTtvQkFDUCxrQkFBa0IsdUJBQXVCO2lCQUM1QzthQUNKOztzQkFrQm9FLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRO3FCQU41RixtQkFBbUI7a0JBQTNCLEtBQUs7WUFFTyxjQUFjO2tCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyB1c2VkIHRvIHNldCBjdXN0b20gdGVtcGxhdGUgcGFydGlhbCBmb3IgYW4gaXRlbSBhbmQgbWFpbnRhaW5zIHNlcGFyYXRlIHNjb3BlIGZvciBlYWNoIGl0ZW0uXG4gKiBUaGlzIHRha2VzIHR3byBpbnB1dHNcbiAqICAgICAgMSkgdGVtcGxhdGUgcGFydGlhbCBuYW1lIGFzIHdtSXRlbVRlbXBsYXRlXG4gKiAgICAgIDIpIGl0ZW0gb2JqZWN0IGFzIHVzZXJDb21wb25lbnRQYXJhbXNcbiAqIEV4YW1wbGU6IFByb3ZpZGluZyBhIGN1c3RvbSB0ZW1wbGF0ZSBmb3IgdGhlIHNlYXJjaC9hdXRvY29tcGxldGUgd2lkZ2V0IChjdXN0b21pemVkIFVJIGluIHRoZSBkcm9wZG93biBmb3IgZWFjaCBpdGVtKVxuICogQWRkIHRoaXMgZGlyZWN0aXZlIHRvIHRoZSBsaSB0YWcgYW5kIHByb3ZpZGUgaXRlbSBvYmplY3QgYW5kIHBhcnRpYWwgbmFtZSBsaWtlIGJlbG93LiBBbmQgYWxzbyBwcm92aWRlIHBhcnRpYWxDb250YWluZXIgYW5kIHBhcnRpYWwtY29udGFpbmVyLXRhcmdldCB0byByZW5kZXIgdGhlIHBhcnRpYWwuXG4gKiA8bGkgI2xpRWxlbWVudHMgKm5nRm9yPVwibGV0IG1hdGNoIG9mIG1hdGNoZXNcIiBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIm1hdGNoLml0ZW1cIiBwYXJ0aWFsQ29udGFpbmVyPlxuICogICAgICA8YSBwYXJ0aWFsLWNvbnRhaW5lci10YXJnZXQ+PC9hPlxuICogPC9saT5cbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QXBwfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IHByb3ZpZGVBc1dpZGdldFJlZiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3dpZGdldC11dGlscyc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9pdGVtLXRlbXBsYXRlLnByb3BzJztcbmltcG9ydCB7IFN0eWxhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9zdHlsYWJsZS5jb21wb25lbnQnO1xuXG5jb25zdCBXSURHRVRfQ09ORklHID0ge3dpZGdldFR5cGU6ICd3bS1pdGVtLXRlbXBsYXRlJ307XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dtSXRlbVRlbXBsYXRlXScsXG4gICAgZXhwb3J0QXM6ICdpdGVtVGVtcGxhdGVSZWYnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoSXRlbVRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSXRlbVRlbXBsYXRlRGlyZWN0aXZlIGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICBwdWJsaWMgY29udGV4dDtcbiAgICBwdWJsaWMgY29udGVudDtcbiAgICBwdWJsaWMgcGFydGlhbFBhcmFtcztcbiAgICBwdWJsaWMgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG4gICAgZ2V0ICRpbmRleCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5pbmRleDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSB1c2VyQ29tcG9uZW50UGFyYW1zO1xuXG4gICAgQElucHV0KCkgc2V0IHdtSXRlbVRlbXBsYXRlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMud2lkZ2V0LmNvbnRlbnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBhcHA6IEFwcCwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50ID0gZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgLy8gdGhpcy5jb250ZXh0ID0gKDxOZ0Zvck9mQ29udGV4dDxJdGVtVGVtcGxhdGVEaXJlY3RpdmU+Pig8YW55Pmluaikudmlldy5jb250ZXh0KTtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gKHRoaXMuaW5qIGFzIGFueSkuX2xWaWV3WzhdO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5wYXJ0aWFsUGFyYW1zLml0ZW0gPSB0aGlzLnVzZXJDb21wb25lbnRQYXJhbXMuZGF0YU9iamVjdDtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBjb250ZXh0IHRvIHJlbGVhc2UgcmVmZXJlbmNlcyB0byBuZ0ZvciBjb250ZXh0XG4gICAgICAgIC8vIFRoZSBjb250ZXh0IGhvbGRzIHJlZmVyZW5jZXMgdG8gdGhlIHBhcmVudCBMVmlldyBhbmQgbG9vcCB2YXJpYWJsZXNcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXModGhpcy5jb250ZXh0KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY29udGV4dFtrZXldO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBwYXJ0aWFsIHBhcmFtc1xuICAgICAgICBpZiAodGhpcy5wYXJ0aWFsUGFyYW1zKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnBhcnRpYWxQYXJhbXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5wYXJ0aWFsUGFyYW1zW2tleV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucGFydGlhbFBhcmFtcyA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIHVzZXIgY29tcG9uZW50IHBhcmFtcyByZWZlcmVuY2VcbiAgICAgICAgdGhpcy51c2VyQ29tcG9uZW50UGFyYW1zID0gbnVsbDtcblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIGNvbnRlbnQgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuY29udGVudCA9IG51bGw7XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBWaWV3Q29udGFpbmVyUmVmIHJlZmVyZW5jZVxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYgPSBudWxsO1xuXG4gICAgICAgIC8vIENhbGwgcGFyZW50IG5nT25EZXN0cm95IChTdHlsYWJsZUNvbXBvbmVudCDihpIgQmFzZUNvbXBvbmVudClcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -6,7 +6,7 @@ export class LazyLoadDirective {
|
|
|
6
6
|
constructor(inj, templateRef, viewContainer, explicitContext = {}) {
|
|
7
7
|
this.templateRef = templateRef;
|
|
8
8
|
this.viewContainer = viewContainer;
|
|
9
|
-
this.context = {};
|
|
9
|
+
this.context = {}; // Changed from readonly to allow cleanup
|
|
10
10
|
let viewParentApp = inj ? inj.get(App) : inject(App);
|
|
11
11
|
let lView = inj._lView;
|
|
12
12
|
this.viewParent = findParent(lView, viewParentApp);
|
|
@@ -14,15 +14,55 @@ export class LazyLoadDirective {
|
|
|
14
14
|
extend(this.context, inj._lView[8], explicitContext);
|
|
15
15
|
}
|
|
16
16
|
set lazyLoad(expr) {
|
|
17
|
+
// MEMORY LEAK FIX: Unsubscribe from previous watcher if it exists
|
|
18
|
+
if (this.unSubscribeFn && typeof this.unSubscribeFn === 'function') {
|
|
19
|
+
try {
|
|
20
|
+
this.unSubscribeFn();
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
console.warn('Error unsubscribing from previous lazyLoad watcher:', e);
|
|
24
|
+
}
|
|
25
|
+
this.unSubscribeFn = null;
|
|
26
|
+
}
|
|
17
27
|
this.unSubscribeFn = $watch(expr, this.viewParent, this.context, (val) => {
|
|
18
28
|
if (!this.embeddedView && val) {
|
|
19
29
|
this.embeddedView = this.viewContainer.createEmbeddedView(this.templateRef, this.context);
|
|
20
|
-
|
|
30
|
+
// Unsubscribe after creating the view (lazy load is complete)
|
|
31
|
+
if (this.unSubscribeFn && typeof this.unSubscribeFn === 'function') {
|
|
32
|
+
try {
|
|
33
|
+
this.unSubscribeFn();
|
|
34
|
+
this.unSubscribeFn = null; // Clear after calling to prevent double-call
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
console.warn('Error unsubscribing from lazyLoad watcher:', e);
|
|
38
|
+
this.unSubscribeFn = null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
21
41
|
}
|
|
22
42
|
});
|
|
23
43
|
}
|
|
24
44
|
ngOnDestroy() {
|
|
25
|
-
|
|
45
|
+
// MEMORY LEAK FIX: Safely unsubscribe from watcher
|
|
46
|
+
if (this.unSubscribeFn && typeof this.unSubscribeFn === 'function') {
|
|
47
|
+
try {
|
|
48
|
+
this.unSubscribeFn();
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
console.warn('Error unsubscribing from lazyLoad watcher in ngOnDestroy:', e);
|
|
52
|
+
}
|
|
53
|
+
this.unSubscribeFn = null;
|
|
54
|
+
}
|
|
55
|
+
// MEMORY LEAK FIX: Clear context to release references to parent scope data
|
|
56
|
+
if (this.context) {
|
|
57
|
+
Object.keys(this.context).forEach(key => {
|
|
58
|
+
delete this.context[key];
|
|
59
|
+
});
|
|
60
|
+
this.context = null;
|
|
61
|
+
}
|
|
62
|
+
// MEMORY LEAK FIX: Clear embedded view reference
|
|
63
|
+
if (this.embeddedView) {
|
|
64
|
+
this.embeddedView = null;
|
|
65
|
+
}
|
|
26
66
|
}
|
|
27
67
|
static { this.ɵfac = function LazyLoadDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LazyLoadDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
|
28
68
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: LazyLoadDirective, selectors: [["", "lazyLoad", ""]], inputs: { lazyLoad: "lazyLoad" }, standalone: true }); }
|
|
@@ -41,4 +81,4 @@ export class LazyLoadDirective {
|
|
|
41
81
|
}] }], { lazyLoad: [{
|
|
42
82
|
type: Input
|
|
43
83
|
}] }); })();
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvd2lkZ2V0cy9jb21tb24vbGF6eS1sb2FkL2xhenktbG9hZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBRUwsUUFBUSxFQUNSLFdBQVcsRUFDWCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBTWpDLE1BQU0sT0FBTyxpQkFBaUI7SUFNMUIsWUFDSSxHQUFhLEVBQ0wsV0FBNkIsRUFDN0IsYUFBK0IsRUFDQyxrQkFBdUIsRUFBRTtRQUZ6RCxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBUG5DLFlBQU8sR0FBUSxFQUFFLENBQUMsQ0FBQyx5Q0FBeUM7UUFVaEUsSUFBSSxhQUFhLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxLQUFLLEdBQUksR0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFDbEQsMkNBQTJDO1FBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFHLEdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFD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IEluamVjdCxcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7JHdhdGNoLCBBcHAsIGZpbmRQYXJlbnR9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2xhenlMb2FkXSdcbn0pXG5leHBvcnQgY2xhc3MgTGF6eUxvYWREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld1BhcmVudDogYW55O1xuICAgIHByaXZhdGUgY29udGV4dDogYW55ID0ge307IC8vIENoYW5nZWQgZnJvbSByZWFkb25seSB0byBhbGxvdyBjbGVhbnVwXG4gICAgcHJpdmF0ZSBlbWJlZGRlZFZpZXc7XG4gICAgcHJpdmF0ZSB1blN1YnNjcmliZUZuOiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSA9IHt9XG4gICAgKSB7XG4gICAgICAgIGxldCB2aWV3UGFyZW50QXBwID0gaW5qID8gaW5qLmdldChBcHApIDogaW5qZWN0KEFwcCk7XG4gICAgICAgIGxldCBsVmlldyA9IChpbmogYXMgYW55KS5fbFZpZXc7XG4gICAgICAgIHRoaXMudmlld1BhcmVudCA9IGZpbmRQYXJlbnQobFZpZXcsIHZpZXdQYXJlbnRBcHApXG4gICAgICAgIC8vdGhpcy5jb250ZXh0ID0gKGluaiBhcyBhbnkpLnZpZXcuY29udGV4dDtcbiAgICAgICAgZXh0ZW5kKHRoaXMuY29udGV4dCwgKGluaiBhcyBhbnkpLl9sVmlld1s4XSwgZXhwbGljaXRDb250ZXh0KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXp5TG9hZChleHByKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogVW5zdWJzY3JpYmUgZnJvbSBwcmV2aW91cyB3YXRjaGVyIGlmIGl0IGV4aXN0c1xuICAgICAgICBpZiAodGhpcy51blN1YnNjcmliZUZuICYmIHR5cGVvZiB0aGlzLnVuU3Vic2NyaWJlRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy51blN1YnNjcmliZUZuKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB1bnN1YnNjcmliaW5nIGZyb20gcHJldmlvdXMgbGF6eUxvYWQgd2F0Y2hlcjonLCBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudW5TdWJzY3JpYmVGbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHRoaXMudW5TdWJzY3JpYmVGbiA9ICR3YXRjaChcbiAgICAgICAgICAgIGV4cHIsXG4gICAgICAgICAgICB0aGlzLnZpZXdQYXJlbnQsXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQsXG4gICAgICAgICAgICAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmVtYmVkZGVkVmlldyAmJiB2YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXcgID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLCB0aGlzLmNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAvLyBVbnN1YnNjcmliZSBhZnRlciBjcmVhdGluZyB0aGUgdmlldyAobGF6eSBsb2FkIGlzIGNvbXBsZXRlKVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy51blN1YnNjcmliZUZuICYmIHR5cGVvZiB0aGlzLnVuU3Vic2NyaWJlRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51blN1YnNjcmliZUZuKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51blN1YnNjcmliZUZuID0gbnVsbDsgLy8gQ2xlYXIgYWZ0ZXIgY2FsbGluZyB0byBwcmV2ZW50IGRvdWJsZS1jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB1bnN1YnNjcmliaW5nIGZyb20gbGF6eUxvYWQgd2F0Y2hlcjonLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVuU3Vic2NyaWJlRm4gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IFNhZmVseSB1bnN1YnNjcmliZSBmcm9tIHdhdGNoZXJcbiAgICAgICAgaWYgKHRoaXMudW5TdWJzY3JpYmVGbiAmJiB0eXBlb2YgdGhpcy51blN1YnNjcmliZUZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRoaXMudW5TdWJzY3JpYmVGbigpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignRXJyb3IgdW5zdWJzY3JpYmluZyBmcm9tIGxhenlMb2FkIHdhdGNoZXIgaW4gbmdPbkRlc3Ryb3k6JywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVuU3Vic2NyaWJlRm4gPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIGNvbnRleHQgdG8gcmVsZWFzZSByZWZlcmVuY2VzIHRvIHBhcmVudCBzY29wZSBkYXRhXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuY29udGV4dCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNvbnRleHRba2V5XTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBlbWJlZGRlZCB2aWV3IHJlZmVyZW5jZVxuICAgICAgICBpZiAodGhpcy5lbWJlZGRlZFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuZW1iZWRkZWRWaWV3ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -26,6 +26,21 @@ export class PartialParamHandlerDirective {
|
|
|
26
26
|
this.widgetRef.params$.next();
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
ngOnDestroy() {
|
|
30
|
+
// MEMORY LEAK FIX: Complete the params$ Subject
|
|
31
|
+
if (this.widgetRef.params$) {
|
|
32
|
+
this.widgetRef.params$.complete();
|
|
33
|
+
}
|
|
34
|
+
// MEMORY LEAK FIX: Clear partial params
|
|
35
|
+
if (this.widgetRef.partialParams) {
|
|
36
|
+
Object.keys(this.widgetRef.partialParams).forEach(key => {
|
|
37
|
+
delete this.widgetRef.partialParams[key];
|
|
38
|
+
});
|
|
39
|
+
this.widgetRef.partialParams = null;
|
|
40
|
+
}
|
|
41
|
+
// Clear pageParams reference
|
|
42
|
+
this.widgetRef.pageParams = null;
|
|
43
|
+
}
|
|
29
44
|
static { this.ɵfac = function PartialParamHandlerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PartialParamHandlerDirective)(i0.ɵɵdirectiveInject(WidgetRef, 2)); }; }
|
|
30
45
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PartialParamHandlerDirective, selectors: [["", "partialContainer", ""]], standalone: true }); }
|
|
31
46
|
}
|
|
@@ -70,4 +85,4 @@ export class PartialParamDirective {
|
|
|
70
85
|
}], value: [{
|
|
71
86
|
type: Input
|
|
72
87
|
}] }); })();
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbC1wYXJhbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL2Jhc2Uvc3JjL3dpZGdldHMvY29tbW9uL3BhcnRpYWwtcGFyYW0vcGFydGlhbC1wYXJhbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFNOUIsTUFBTSxPQUFPLDRCQUE0QjtJQUNyQyxZQUFnRCxTQUFTO1FBQVQsY0FBUyxHQUFULFNBQVMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxJQUFZO1FBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCO1lBQ2xDLG9EQUFvRDtZQUNwRCxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xGLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFFeEMsb0RBQW9EO2dCQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0lBRUwsQ0FBQztJQUVELFdBQVc7UUFDUCxnREFBZ0Q7UUFDaEQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFFRCx3Q0FBd0M7UUFDeEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3BELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDeEMsQ0FBQztRQUVELDZCQUE2QjtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDckMsQ0FBQzs2SEF6Q1EsNEJBQTRCLHVCQUNSLFNBQVM7b0VBRDdCLDRCQUE0Qjs7aUZBQTVCLDRCQUE0QjtjQUp4QyxTQUFTO2VBQUM7Z0JBQ1QsVUFBVSxFQUFFLElBQUk7Z0JBQ2QsUUFBUSxFQUFFLG9CQUFvQjthQUNqQzs7c0JBRWlCLElBQUk7O3NCQUFJLE1BQU07dUJBQUMsU0FBUzs7QUErQzFDLE1BQU0sT0FBTyxxQkFBcUI7SUFLOUIsWUFDb0MsU0FBUyxFQUNmLElBQUksRUFDdEIscUJBQW1EO1FBRjNCLGNBQVMsR0FBVCxTQUFTLENBQUE7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFBO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBOEI7SUFFL0QsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRyxDQUFDO3NIQWRRLHFCQUFxQix1QkFNZixZQUFZLHdCQUNaLE1BQU07b0VBUFoscUJBQXFCOztpRkFBckIscUJBQXFCO2NBSmpDLFNBQVM7ZUFBQztnQkFDUCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsUUFBUSxFQUFFLFdBQVc7YUFDeEI7O3NCQU9RLFNBQVM7dUJBQUMsWUFBWTs7c0JBQ3RCLFNBQVM7dUJBQUMsTUFBTTs2REFMWixJQUFJO2tCQUFaLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgSW5qZWN0LCBTZWxmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyAkd2F0Y2ggfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IFdpZGdldFJlZiB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay90eXBlcyc7XG5pbXBvcnQge2dldH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1twYXJ0aWFsQ29udGFpbmVyXScsXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRpYWxQYXJhbUhhbmRsZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIGNvbnN0cnVjdG9yIChAU2VsZigpIEBJbmplY3QoV2lkZ2V0UmVmKSBwcml2YXRlIHdpZGdldFJlZikge1xuICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJ0aWFsUGFyYW1zID0ge307XG4gICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhZ2VQYXJhbXMgPSB0aGlzLndpZGdldFJlZi5wYXJ0aWFsUGFyYW1zO1xuICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJhbXMkID0gbmV3IFN1YmplY3QoKTtcbiAgICB9XG5cbiAgICByZWdpc3RlclBhcmFtcyhuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGJpbmRFeHByOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJ0aWFsUGFyYW1zW25hbWVdID0gdmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUgJiYgYmluZEV4cHIpIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0UmVmLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKFxuICAgICAgICAgICAgICAgIC8vW1RvZG8tQ1NQXTogZXhwciBmbiBzaG91bGQgYmUgZ2VuZXJhdGVkIGJlIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAkd2F0Y2goYmluZEV4cHIsIHRoaXMud2lkZ2V0UmVmLmdldFZpZXdQYXJlbnQoKSwgZ2V0KHRoaXMud2lkZ2V0UmVmLCAnY29udGV4dCcpLCBudiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhcnRpYWxQYXJhbXNbbmFtZV0gPSBudjtcblxuICAgICAgICAgICAgICAgICAgICAvLyBub3RpZnkgdGhlIHBhcnRpYWwgY29udGFpbmVyIG9mIHRoZSBwYXJhbSBjaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhcmFtcyQubmV4dCgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy53aWRnZXRSZWYucGFyYW1zJC5uZXh0KCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENvbXBsZXRlIHRoZSBwYXJhbXMkIFN1YmplY3RcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0UmVmLnBhcmFtcyQpIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhcmFtcyQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgcGFydGlhbCBwYXJhbXNcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0UmVmLnBhcnRpYWxQYXJhbXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMud2lkZ2V0UmVmLnBhcnRpYWxQYXJhbXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy53aWRnZXRSZWYucGFydGlhbFBhcmFtc1trZXldO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJ0aWFsUGFyYW1zID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENsZWFyIHBhZ2VQYXJhbXMgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhZ2VQYXJhbXMgPSBudWxsO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3bVBhcmFtXScsXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRpYWxQYXJhbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdmFsdWU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAQXR0cmlidXRlKCd2YWx1ZS5iaW5kJykgcHVibGljIGJpbmRWYWx1ZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgndHlwZScpIHB1YmxpYyB0eXBlLFxuICAgICAgICBwcml2YXRlIHBhcnRpYWxQYXJhbXNQcm92aWRlcjogUGFydGlhbFBhcmFtSGFuZGxlckRpcmVjdGl2ZVxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnBhcnRpYWxQYXJhbXNQcm92aWRlci5yZWdpc3RlclBhcmFtcyh0aGlzLm5hbWUsIHRoaXMudmFsdWUsIHRoaXMuYmluZFZhbHVlLCB0aGlzLnR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -118,6 +118,27 @@ export class PullToRefresh extends SwipeAnimation {
|
|
|
118
118
|
wait() {
|
|
119
119
|
this.runAnimation = true;
|
|
120
120
|
}
|
|
121
|
+
destroy() {
|
|
122
|
+
// Unsubscribe from app events
|
|
123
|
+
if (this.cancelSubscription) {
|
|
124
|
+
this.cancelSubscription();
|
|
125
|
+
this.cancelSubscription = null;
|
|
126
|
+
}
|
|
127
|
+
// Stop any running animation
|
|
128
|
+
if (this.animationInProgress) {
|
|
129
|
+
this.stopAnimation();
|
|
130
|
+
}
|
|
131
|
+
// Clean up spinner
|
|
132
|
+
if (this.spinner) {
|
|
133
|
+
this.spinner.stop();
|
|
134
|
+
this.spinner = null;
|
|
135
|
+
}
|
|
136
|
+
// Remove DOM elements
|
|
137
|
+
if (this.infoContainer) {
|
|
138
|
+
this.infoContainer.remove();
|
|
139
|
+
this.infoContainer = null;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
121
142
|
}
|
|
122
143
|
// Android Spinner implementation
|
|
123
144
|
class AndroidSpinner {
|
|
@@ -237,4 +258,4 @@ class IOSSpinner {
|
|
|
237
258
|
}
|
|
238
259
|
}
|
|
239
260
|
}
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC10by1yZWZyZXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy93aWRnZXRzL2NvbW1vbi9wdWxsLXRvLXJlZnJlc2gvcHVsbC10by1yZWZyZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekMsT0FBTyxFQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJOUMsTUFBTSxPQUFPLGFBQWMsU0FBUSxjQUFjO0lBUTdDLFlBQW9CLEdBQXdCLEVBQVUsR0FBUSxFQUFVLGVBQTJCO1FBQy9GLEtBQUssRUFBRSxDQUFDO1FBRFEsUUFBRyxHQUFILEdBQUcsQ0FBcUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQVk7UUFMM0YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQU9kLE1BQU0sUUFBUSxHQUFHLHVDQUF1QyxDQUFDO1FBQ3pELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV6RCxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sU0FBUztRQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFNBQVM7UUFDWixPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7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WUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCwyQ0FBMkM7SUFDcEMsS0FBSztRQUNSLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUMvQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsa0RBQWtEO0lBQzNDLElBQUk7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTd2lwZUFuaW1hdGlvbiB9IGZyb20gJ0Bzd2lwZXknO1xuXG5pbXBvcnQgeyBBcHAsIGlzSW9zLCBzZXRDU1MgfSBmcm9tICdAd20vY29yZSc7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuZXhwb3J0IGNsYXNzIFB1bGxUb1JlZnJlc2ggZXh0ZW5kcyBTd2lwZUFuaW1hdGlvbiB7XG4gICAgcHJpdmF0ZSBpbmZvQ29udGFpbmVyOiBKUXVlcnk8SFRNTEVsZW1lbnQ+O1xuICAgIHByaXZhdGUgcnVuQW5pbWF0aW9uOiBib29sZWFuO1xuICAgIHByaXZhdGUgY291bnQgPSAwO1xuICAgIHByaXZhdGUgc3Bpbm5lcjogU3Bpbm5lcjtcbiAgICBwdWJsaWMgY2FuY2VsU3Vic2NyaXB0aW9uOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIGFuaW1hdGlvbkluUHJvZ3Jlc3M6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlICRlbDogSlF1ZXJ5PEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBhcHA6IEFwcCwgcHJpdmF0ZSBvblB1bGxUb1JlZnJlc2g6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSAnPGRpdiBjbGFzcz1cInJlZnJlc2gtY29udGFpbmVyXCI+PC9kaXY+JztcbiAgICAgICAgdGhpcy4kZWwucHJlcGVuZCh0ZW1wbGF0ZSk7XG4gICAgICAgIHRoaXMuaW5mb0NvbnRhaW5lciA9IHRoaXMuJGVsLmZpbmQoJy5yZWZyZXNoLWNvbnRhaW5lcicpO1xuXG4gICAgICAgIGlmIChpc0lvcygpKSB7XG4gICAgICAgICAgICB0aGlzLmluZm9Db250YWluZXIuYWRkQ2xhc3MoJ2lvcy1yZWZyZXNoLWNvbnRhaW5lcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0KHRoaXMuJGVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdGhyZXNob2xkKCkge1xuICAgICAgICByZXR1cm4gMTA7XG4gICAgfVxuXG4gICAgcHVibGljIGRpcmVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICQuZm4uc3dpcGV5LkRJUkVDVElPTlMuVkVSVElDQUw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmUoKSB7XG4gICAgICAgIC8vIFN1YnNjcmliaW5nIGZvciB2YXJpYWJsZSB1cGRhdGVzLCB3YWl0IHRpbGwgdGhlIHJlc3BvbnNlIGFuZCBzdG9wIHRoZSBhbmltYXRpb24uXG4gICAgICAgIHRoaXMuY2FuY2VsU3Vic2NyaXB0aW9uID0gdGhpcy5hcHAuc3Vic2NyaWJlKCd0b2dnbGUtdmFyaWFibGUtc3RhdGUnLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgLy8gZGF0YS5hY3RpdmUgaXMgdHJ1ZSBtZWFucyB0aGUgdmFyaWFibGUgdXBkYXRlIGhhcyBqdXN0IHN0YXJ0ZWQgd2hlcmVhcyBmYWxzZSBtZWFucyB1cGRhdGUgaGFzIGVuZGVkLlxuICAgICAgICAgICAgaWYgKGRhdGEuYWN0aXZlICYmIHRoaXMuYW5pbWF0aW9uSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQrKztcbiAgICAgICAgICAgICAgICB0aGlzLndhaXQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50LS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjYWxsIHN0b3AgYW5pbWF0aW9uIG9ubHkgd2hlbiBhbmltYXRpb24gaGFzIHN0YXJ0ZWQuXG4gICAgICAgICAgICBpZiAoIXRoaXMuY291bnQgJiYgdGhpcy5hbmltYXRpb25JblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wQW5pbWF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBib3VuZHMoJGV2ZW50LCAkZCkge1xuICAgICAgICBjb25zdCBwYWdlSXNjcm9sbCA9ICh0aGlzLiRlbFswXSBhcyBhbnkpLmlzY3JvbGw7XG4gICAgICAgIC8vIElmIHNjcm9sbCBwb3NpdGlvbiBpcyBub3QgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSB0aGVuIGRvIG5vdCB0cmlnZ2VyIHRoZSBhbmltYXRpb24uXG4gICAgICAgIGlmICgkZCA8IDAgfHwgKHBhZ2VJc2Nyb2xsICYmICFpc05hTihwYWdlSXNjcm9sbC55KSAmJiBwYWdlSXNjcm9sbC55ICE9PSAwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsb3dlcjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHVwcGVyOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnNwaW5uZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lciA9IGlzSW9zKCkgPyBuZXcgSU9TU3Bpbm5lcih0aGlzLmluZm9Db250YWluZXIpIDogbmV3IEFuZHJvaWRTcGlubmVyKHRoaXMuaW5mb0NvbnRhaW5lcik7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxvd2VyOiAwLFxuICAgICAgICAgICAgY2VudGVyOiAwLFxuICAgICAgICAgICAgdXBwZXI6IGlzSW9zKCkgPyAwIDogMTUwLFxuICAgICAgICAgICAgc3RyaWN0OiAhaXNJb3MoKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250ZXh0KCk6IE9iamVjdCB7XG4gICAgICAgIHRoaXMuaW5mb0NvbnRhaW5lci5zaG93KCk7XG4gICAgICAgIGlmIChpc0lvcygpKSB7XG4gICAgICAgICAgICB0aGlzLmluZm9Db250YWluZXIuYWRkQ2xhc3MoJ2VudHJ5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNwaW46ICRkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwaW5uZXIuc2V0Um90YXRpb24oJGQgKiAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYW5pbWF0aW9uKCkge1xuICAgICAgICBpZiAoaXNJb3MoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgJHt7JEQgKyAkZH19cHgsIDApJyxcbiAgICAgICAgICAgICAgICAgICAgc3BpbjogJyR7e3NwaW4oJGQpfX0nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmluZm9Db250YWluZXIsXG4gICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgwLCAke3skRCArICRkfX1weCwgMCknLFxuICAgICAgICAgICAgICAgIHNwaW46ICcke3tzcGluKCRkKX19JyxcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAnJHt7bWluKCgkRCArICRkKSAvIDEwMCwgMSl9fSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBTdGFydCB0aGUgc3Bpbm5lciBhbmltYXRpb24gYW5kIGludm9rZXMgdGhlIHB1bGx0b3JlZnJlc2ggZXZlbnQuIFN0b3BzIHRoZSBhbmltYXRpb24gYWZ0ZXIgdGhlIHdhaXQgdGltZS5cbiAgICBwdWJsaWMgb25BbmltYXRpb24oKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgIHRoaXMuc3Bpbm5lci5zdGFydCgpO1xuICAgICAgICBpZiAodGhpcy5vblB1bGxUb1JlZnJlc2gpIHtcbiAgICAgICAgICAgIHRoaXMub25QdWxsVG9SZWZyZXNoKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIGlmIGxpc3RlblRvQW5pbWF0aW9uIGlzIHNldCwgdGhlbiB3YWl0IGZvciBzdG9wQW5pbWF0aW9uIHRvIGJlIGludm9rZWQuIE90aGVyd2lzZSBjYWxsIHN0b3BBbmltYXRpb24gbWFudWFsbHkuXG4gICAgICAgICAgICBpZiAodGhpcy5ydW5BbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0b3BBbmltYXRpb24oKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ydW5BbmltYXRpb24gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zcGlubmVyLnN0b3AoKTtcbiAgICAgICAgICAgIHRoaXMuaW5mb0NvbnRhaW5lci5oaWRlKCk7XG4gICAgICAgICAgICBzZXRDU1ModGhpcy5pbmZvQ29udGFpbmVyWzBdLCAndHJhbnNmb3JtJywgJ25vbmUnKTtcbiAgICAgICAgICAgIGlmICghaXNJb3MoKSkge1xuICAgICAgICAgICAgICAgIHNldENTUyh0aGlzLmluZm9Db250YWluZXJbMF0sICdvcGFjaXR5JywgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmluZm9Db250YWluZXIucmVtb3ZlQ2xhc3MoJ2VudHJ5Jyk7XG4gICAgICAgIH0sIDgwMCk7XG4gICAgfVxuXG4gICAgcHVibGljIHdhaXQoKSB7XG4gICAgICAgIHRoaXMucnVuQW5pbWF0aW9uID0gdHJ1ZTtcbiAgICB9XG59XG5cbi8vIEludGVyZmFjZSBmb3IgU3Bpbm5lclxuaW50ZXJmYWNlIFNwaW5uZXIge1xuICAgIHN0YXJ0KCk7XG4gICAgc3RvcCgpO1xuICAgIHNldFJvdGF0aW9uKGQ6IG51bWJlcik7XG59XG5cbi8vIEFuZHJvaWQgU3Bpbm5lciBpbXBsZW1lbnRhdGlvblxuY2xhc3MgQW5kcm9pZFNwaW5uZXIgaW1wbGVtZW50cyBTcGlubmVyIHtcbiAgICBwcml2YXRlIG9wdGlvbnM6IE9iamVjdDtcbiAgICBwcml2YXRlIGluaXRpYWxpemVkOiBhbnk7XG4gICAgcHJpdmF0ZSBjeDogbnVtYmVyO1xuICAgIHByaXZhdGUgY3k6IG51bWJlcjtcbiAgICBwcml2YXRlIHI6IG51bWJlcjtcbiAgICBwcml2YXRlIHBhdGg6IGFueTtcbiAgICBwcml2YXRlIGludGVydmFsSWQ7XG4gICAgcHJpdmF0ZSBjb250YWluZXI6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgJGVsOiBKUXVlcnk8SFRNTEVsZW1lbnQ+LCBvcHRpb25zPzogYW55KSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHBvbGFyVG9DYXJ0ZXNpYW4oY2VudGVyWDogbnVtYmVyLCBjZW50ZXJZOiBudW1iZXIsIHJhZGl1czogbnVtYmVyLCBhbmdsZUluRGVncmVlczogbnVtYmVyKTogYW55IHtcbiAgICAgICAgY29uc3QgYW5nbGVJblJhZGlhbnMgPSAoYW5nbGVJbkRlZ3JlZXMgLSA5MCkgKiBNYXRoLlBJIC8gMTgwLjA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBjZW50ZXJYICsgKHJhZGl1cyAqIE1hdGguY29zKGFuZ2xlSW5SYWRpYW5zKSksXG4gICAgICAgICAgICB5OiBjZW50ZXJZICsgKHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlSW5SYWRpYW5zKSlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2NyaWJlQXJjKHg6IG51bWJlciwgeTogbnVtYmVyLCByYWRpdXM6IG51bWJlciwgc3RhcnRBbmdsZTogbnVtYmVyLCBlbmRBbmdsZTogbnVtYmVyKTogc3RyaW5nIHtcblxuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMucG9sYXJUb0NhcnRlc2lhbih4LCB5LCByYWRpdXMsIGVuZEFuZ2xlKTtcbiAgICAgICAgY29uc3QgZW5kID0gdGhpcy5wb2xhclRvQ2FydGVzaWFuKHgsIHksIHJhZGl1cywgc3RhcnRBbmdsZSk7XG5cbiAgICAgICAgY29uc3QgYXJjU3dlZXAgPSBlbmRBbmdsZSAtIHN0YXJ0QW5nbGUgPD0gMTgwID8gJzAnIDogJzEnO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnTScsIHN0YXJ0LngsIHN0YXJ0LnksXG4gICAgICAgICAgICAnQScsIHJhZGl1cywgcmFkaXVzLCAwLCBhcmNTd2VlcCwgMCwgZW5kLngsIGVuZC55LFxuICAgICAgICAgICAgJ0wnLCBlbmQueCwgZW5kLnlcbiAgICAgICAgXS5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gYXBwZW5kIHRoZSBzdmcgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggc3Bpbm5lciBoYXMgdG8gYmUgc2hvd24uXG4gICAgICAgIGNvbnN0IGFuZHJvaWRUZW1wbGF0ZSA9ICQoJzxzdmc+PHBhdGggaWQ9XCJhcmMxXCIvPjwvc3ZnPicpO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKCc8ZGl2IGNsYXNzPVwiYW5kcm9pZC1zcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmQoYW5kcm9pZFRlbXBsYXRlKTtcbiAgICAgICAgdGhpcy4kZWwuYXBwZW5kKGNvbnRhaW5lcik7XG4gICAgICAgIHRoaXMuY3ggPSBjb250YWluZXIub3V0ZXJXaWR0aCgpIC8gMjtcbiAgICAgICAgdGhpcy5jeSA9IGNvbnRhaW5lci5vdXRlckhlaWdodCgpIC8gMjtcbiAgICAgICAgdGhpcy5yID0gdGhpcy5jeCAqIDAuNjtcbiAgICAgICAgdGhpcy5wYXRoID0gY29udGFpbmVyLmZpbmQoJ3BhdGgnKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8vIHNldHMgcm90YXRpb24gdG8gdGhlIHBhdGhcbiAgICBwdWJsaWMgc2V0Um90YXRpb24oZGVnKSB7XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICB0aGlzLnBhdGguYXR0cignZCcsIHRoaXMuZGVzY3JpYmVBcmModGhpcy5jeCwgdGhpcy5jeSwgdGhpcy5yLCAwLCBkZWcpKTtcbiAgICB9XG5cbiAgICAvLyBhbmltYXRlIHRoZSBwYXRoIHRvIHJvdGF0ZSBjb250aW51b3VzbHkgd2l0aCBzb21lIGludGVydmFsXG4gICAgcHVibGljIHN0YXJ0KCkge1xuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXMsXG4gICAgICAgICAgICB0b3RhbFRpbWUgPSAodGhpcy5vcHRpb25zIGFzIGFueSkudGltZSB8fCAxODAwLFxuICAgICAgICAgICAgZGVncmVlc1RvVHJhdmVyc2UgPSAxMDtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRDbGFzcygnc3BpbicpO1xuICAgICAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgZGVnO1xuICAgICAgICAgICAgaSA9IGkgKyBkZWdyZWVzVG9UcmF2ZXJzZTtcbiAgICAgICAgICAgIGlmIChpID4gNzIwKSB7XG4gICAgICAgICAgICAgICAgZGVnID0gaSA9IDA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGkgPiAzNjApIHtcbiAgICAgICAgICAgICAgICBkZWcgPSA3MjAgLSBpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZWcgPSBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VsZi5wYXRoLmF0dHIoJ2QnLCB0aGlzLmRlc2NyaWJlQXJjKHNlbGYuY3gsIHNlbGYuY3ksIHNlbGYuciwgMCwgZGVnKSk7XG4gICAgICAgIH0sICh0b3RhbFRpbWUgKiBkZWdyZWVzVG9UcmF2ZXJzZSAvIDM2MCkpO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZXMgdGhlIGFuaW1hdGlvbiBieSBjbGVhcmluZyB0aGUgaW50ZXJ2YWxzXG4gICAgcHVibGljIHN0b3AoKSB7XG4gICAgICAgIGlmICh0aGlzLmludGVydmFsSWQpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250YWluZXIucmVtb3ZlQ2xhc3MoJ3NwaW4nKTtcbiAgICB9XG59XG5cbi8vIGlPUyBzcGlubmVyIGltcGxlbWVudGF0aW9uXG5jbGFzcyBJT1NTcGlubmVyIGltcGxlbWVudHMgU3Bpbm5lciB7XG4gICAgcHJpdmF0ZSBzdmc6IGFueTtcbiAgICBwcml2YXRlIGludGVydmFsSWQ6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgJGVsKSB7fVxuXG4gICAgLy8gY3JlYXRlIHRoZSBpT1Mgc3Bpbm5lciB1c2luZyBzdmdcbiAgICBwcml2YXRlIGluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnN2Zykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICQoJzxkaXYgY2xhc3M9XCJpb3Mtc3Bpbm5lclwiPjxzdmc+PC9zdmc+PC9kaXY+Jyk7XG4gICAgICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5maW5kKCdzdmcnKTtcbiAgICAgICAgdGhpcy4kZWwuYXBwZW5kKGNvbnRhaW5lcik7XG4gICAgICAgIGNvbnN0IGQgPSBjb250YWluZXIud2lkdGgoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICBzdmdbMF0uaW5uZXJIVE1MICs9IGA8bGluZSB5MT1cIiR7MC4xNSAqIGR9XCIgeTI9XCIkezAuMyAqIGR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgkezAuNSAqIGR9LCAkezAuNSAqIGR9KSByb3RhdGUoJHtpICogMzB9KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpbmU+YDtcbiAgICAgICAgfVxuICAgICAgICBjb250YWluZXIuYXBwZW5kKHN2Zyk7XG4gICAgICAgIHRoaXMuc3ZnID0gc3ZnO1xuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHN2ZyB0byByb3RhdGUgZGVwZW5kaW5nIG9uIFwiZFwiIHZhbHVlXG4gICAgcHVibGljIHNldFJvdGF0aW9uKGQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgdGhpcy5zdmcuY3NzKCd0cmFuc2Zvcm0nLCBgcm90YXRlWiggJHtNYXRoLnJvdW5kKGQgLyAzMCkgKiAzMH1kZWcpYCk7XG4gICAgfVxuXG4gICAgLy8gVHJpZ2dlcnMgdGhlIHJvdGF0aW9uIHdpdGggc29tZSBpbnRlcnZhbFxuICAgIHB1YmxpYyBzdGFydCgpIHtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgaSArPSAxMDtcbiAgICAgICAgICAgIHRoaXMuc2V0Um90YXRpb24oaSk7XG4gICAgICAgIH0sIDIwKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmVzIHRoZSBhbmltYXRpb24gYnkgY2xlYXJpbmcgdGhlIGludGVydmFsc1xuICAgIHB1YmxpYyBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsSWQgPSAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC10by1yZWZyZXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy93aWRnZXRzL2NvbW1vbi9wdWxsLXRvLXJlZnJlc2gvcHVsbC10by1yZWZyZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekMsT0FBTyxFQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJOUMsTUFBTSxPQUFPLGFBQWMsU0FBUSxjQUFjO0lBUTdDLFlBQW9CLEdBQXdCLEVBQVUsR0FBUSxFQUFVLGVBQTJCO1FBQy9GLEtBQUssRUFBRSxDQUFDO1FBRFEsUUFBRyxHQUFILEdBQUcsQ0FBcUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQVk7UUFMM0YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQU9kLE1BQU0sUUFBUSxHQUFHLHVDQUF1QyxDQUFDO1FBQ3pELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV6RCxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sU0FBUztRQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFNBQVM7UUFDWixPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7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YSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3dpcGVBbmltYXRpb24gfSBmcm9tICdAc3dpcGV5JztcblxuaW1wb3J0IHsgQXBwLCBpc0lvcywgc2V0Q1NTIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbmV4cG9ydCBjbGFzcyBQdWxsVG9SZWZyZXNoIGV4dGVuZHMgU3dpcGVBbmltYXRpb24ge1xuICAgIHByaXZhdGUgaW5mb0NvbnRhaW5lcjogSlF1ZXJ5PEhUTUxFbGVtZW50PjtcbiAgICBwcml2YXRlIHJ1bkFuaW1hdGlvbjogYm9vbGVhbjtcbiAgICBwcml2YXRlIGNvdW50ID0gMDtcbiAgICBwcml2YXRlIHNwaW5uZXI6IFNwaW5uZXI7XG4gICAgcHVibGljIGNhbmNlbFN1YnNjcmlwdGlvbjogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIGFuaW1hdGlvbkluUHJvZ3Jlc3M6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlICRlbDogSlF1ZXJ5PEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBhcHA6IEFwcCwgcHJpdmF0ZSBvblB1bGxUb1JlZnJlc2g6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSAnPGRpdiBjbGFzcz1cInJlZnJlc2gtY29udGFpbmVyXCI+PC9kaXY+JztcbiAgICAgICAgdGhpcy4kZWwucHJlcGVuZCh0ZW1wbGF0ZSk7XG4gICAgICAgIHRoaXMuaW5mb0NvbnRhaW5lciA9IHRoaXMuJGVsLmZpbmQoJy5yZWZyZXNoLWNvbnRhaW5lcicpO1xuXG4gICAgICAgIGlmIChpc0lvcygpKSB7XG4gICAgICAgICAgICB0aGlzLmluZm9Db250YWluZXIuYWRkQ2xhc3MoJ2lvcy1yZWZyZXNoLWNvbnRhaW5lcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0KHRoaXMuJGVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdGhyZXNob2xkKCkge1xuICAgICAgICByZXR1cm4gMTA7XG4gICAgfVxuXG4gICAgcHVibGljIGRpcmVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICQuZm4uc3dpcGV5LkRJUkVDVElPTlMuVkVSVElDQUw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmUoKSB7XG4gICAgICAgIC8vIFN1YnNjcmliaW5nIGZvciB2YXJpYWJsZSB1cGRhdGVzLCB3YWl0IHRpbGwgdGhlIHJlc3BvbnNlIGFuZCBzdG9wIHRoZSBhbmltYXRpb24uXG4gICAgICAgIHRoaXMuY2FuY2VsU3Vic2NyaXB0aW9uID0gdGhpcy5hcHAuc3Vic2NyaWJlKCd0b2dnbGUtdmFyaWFibGUtc3RhdGUnLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgLy8gZGF0YS5hY3RpdmUgaXMgdHJ1ZSBtZWFucyB0aGUgdmFyaWFibGUgdXBkYXRlIGhhcyBqdXN0IHN0YXJ0ZWQgd2hlcmVhcyBmYWxzZSBtZWFucyB1cGRhdGUgaGFzIGVuZGVkLlxuICAgICAgICAgICAgaWYgKGRhdGEuYWN0aXZlICYmIHRoaXMuYW5pbWF0aW9uSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQrKztcbiAgICAgICAgICAgICAgICB0aGlzLndhaXQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50LS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjYWxsIHN0b3AgYW5pbWF0aW9uIG9ubHkgd2hlbiBhbmltYXRpb24gaGFzIHN0YXJ0ZWQuXG4gICAgICAgICAgICBpZiAoIXRoaXMuY291bnQgJiYgdGhpcy5hbmltYXRpb25JblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wQW5pbWF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBib3VuZHMoJGV2ZW50LCAkZCkge1xuICAgICAgICBjb25zdCBwYWdlSXNjcm9sbCA9ICh0aGlzLiRlbFswXSBhcyBhbnkpLmlzY3JvbGw7XG4gICAgICAgIC8vIElmIHNjcm9sbCBwb3NpdGlvbiBpcyBub3QgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSB0aGVuIGRvIG5vdCB0cmlnZ2VyIHRoZSBhbmltYXRpb24uXG4gICAgICAgIGlmICgkZCA8IDAgfHwgKHBhZ2VJc2Nyb2xsICYmICFpc05hTihwYWdlSXNjcm9sbC55KSAmJiBwYWdlSXNjcm9sbC55ICE9PSAwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsb3dlcjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHVwcGVyOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnNwaW5uZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lciA9IGlzSW9zKCkgPyBuZXcgSU9TU3Bpbm5lcih0aGlzLmluZm9Db250YWluZXIpIDogbmV3IEFuZHJvaWRTcGlubmVyKHRoaXMuaW5mb0NvbnRhaW5lcik7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxvd2VyOiAwLFxuICAgICAgICAgICAgY2VudGVyOiAwLFxuICAgICAgICAgICAgdXBwZXI6IGlzSW9zKCkgPyAwIDogMTUwLFxuICAgICAgICAgICAgc3RyaWN0OiAhaXNJb3MoKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250ZXh0KCk6IG9iamVjdCB7XG4gICAgICAgIHRoaXMuaW5mb0NvbnRhaW5lci5zaG93KCk7XG4gICAgICAgIGlmIChpc0lvcygpKSB7XG4gICAgICAgICAgICB0aGlzLmluZm9Db250YWluZXIuYWRkQ2xhc3MoJ2VudHJ5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNwaW46ICRkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwaW5uZXIuc2V0Um90YXRpb24oJGQgKiAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYW5pbWF0aW9uKCkge1xuICAgICAgICBpZiAoaXNJb3MoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgJHt7JEQgKyAkZH19cHgsIDApJyxcbiAgICAgICAgICAgICAgICAgICAgc3BpbjogJyR7e3NwaW4oJGQpfX0nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmluZm9Db250YWluZXIsXG4gICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgwLCAke3skRCArICRkfX1weCwgMCknLFxuICAgICAgICAgICAgICAgIHNwaW46ICcke3tzcGluKCRkKX19JyxcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAnJHt7bWluKCgkRCArICRkKSAvIDEwMCwgMSl9fSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBTdGFydCB0aGUgc3Bpbm5lciBhbmltYXRpb24gYW5kIGludm9rZXMgdGhlIHB1bGx0b3JlZnJlc2ggZXZlbnQuIFN0b3BzIHRoZSBhbmltYXRpb24gYWZ0ZXIgdGhlIHdhaXQgdGltZS5cbiAgICBwdWJsaWMgb25BbmltYXRpb24oKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgIHRoaXMuc3Bpbm5lci5zdGFydCgpO1xuICAgICAgICBpZiAodGhpcy5vblB1bGxUb1JlZnJlc2gpIHtcbiAgICAgICAgICAgIHRoaXMub25QdWxsVG9SZWZyZXNoKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIGlmIGxpc3RlblRvQW5pbWF0aW9uIGlzIHNldCwgdGhlbiB3YWl0IGZvciBzdG9wQW5pbWF0aW9uIHRvIGJlIGludm9rZWQuIE90aGVyd2lzZSBjYWxsIHN0b3BBbmltYXRpb24gbWFudWFsbHkuXG4gICAgICAgICAgICBpZiAodGhpcy5ydW5BbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0b3BBbmltYXRpb24oKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ydW5BbmltYXRpb24gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zcGlubmVyLnN0b3AoKTtcbiAgICAgICAgICAgIHRoaXMuaW5mb0NvbnRhaW5lci5oaWRlKCk7XG4gICAgICAgICAgICBzZXRDU1ModGhpcy5pbmZvQ29udGFpbmVyWzBdLCAndHJhbnNmb3JtJywgJ25vbmUnKTtcbiAgICAgICAgICAgIGlmICghaXNJb3MoKSkge1xuICAgICAgICAgICAgICAgIHNldENTUyh0aGlzLmluZm9Db250YWluZXJbMF0sICdvcGFjaXR5JywgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmluZm9Db250YWluZXIucmVtb3ZlQ2xhc3MoJ2VudHJ5Jyk7XG4gICAgICAgIH0sIDgwMCk7XG4gICAgfVxuXG4gICAgcHVibGljIHdhaXQoKSB7XG4gICAgICAgIHRoaXMucnVuQW5pbWF0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICAgICAgLy8gVW5zdWJzY3JpYmUgZnJvbSBhcHAgZXZlbnRzXG4gICAgICAgIGlmICh0aGlzLmNhbmNlbFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gU3RvcCBhbnkgcnVubmluZyBhbmltYXRpb25cbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgdGhpcy5zdG9wQW5pbWF0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIENsZWFuIHVwIHNwaW5uZXJcbiAgICAgICAgaWYgKHRoaXMuc3Bpbm5lcikge1xuICAgICAgICAgICAgdGhpcy5zcGlubmVyLnN0b3AoKTtcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIFJlbW92ZSBET00gZWxlbWVudHNcbiAgICAgICAgaWYgKHRoaXMuaW5mb0NvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5pbmZvQ29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5pbmZvQ29udGFpbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gSW50ZXJmYWNlIGZvciBTcGlubmVyXG5pbnRlcmZhY2UgU3Bpbm5lciB7XG4gICAgc3RhcnQoKTtcbiAgICBzdG9wKCk7XG4gICAgc2V0Um90YXRpb24oZDogbnVtYmVyKTtcbn1cblxuLy8gQW5kcm9pZCBTcGlubmVyIGltcGxlbWVudGF0aW9uXG5jbGFzcyBBbmRyb2lkU3Bpbm5lciBpbXBsZW1lbnRzIFNwaW5uZXIge1xuICAgIHByaXZhdGUgb3B0aW9uczogb2JqZWN0O1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBjeDogbnVtYmVyO1xuICAgIHByaXZhdGUgY3k6IG51bWJlcjtcbiAgICBwcml2YXRlIHI6IG51bWJlcjtcbiAgICBwcml2YXRlIHBhdGg6IEpRdWVyeTxTVkdQYXRoRWxlbWVudD47XG4gICAgcHJpdmF0ZSBpbnRlcnZhbElkO1xuICAgIHByaXZhdGUgY29udGFpbmVyOiBKUXVlcnk8SFRNTEVsZW1lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSAkZWw6IEpRdWVyeTxIVE1MRWxlbWVudD4sIG9wdGlvbnM/OiBvYmplY3QpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgcG9sYXJUb0NhcnRlc2lhbihjZW50ZXJYOiBudW1iZXIsIGNlbnRlclk6IG51bWJlciwgcmFkaXVzOiBudW1iZXIsIGFuZ2xlSW5EZWdyZWVzOiBudW1iZXIpOiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH0ge1xuICAgICAgICBjb25zdCBhbmdsZUluUmFkaWFucyA9IChhbmdsZUluRGVncmVlcyAtIDkwKSAqIE1hdGguUEkgLyAxODAuMDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IGNlbnRlclggKyAocmFkaXVzICogTWF0aC5jb3MoYW5nbGVJblJhZGlhbnMpKSxcbiAgICAgICAgICAgIHk6IGNlbnRlclkgKyAocmFkaXVzICogTWF0aC5zaW4oYW5nbGVJblJhZGlhbnMpKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzY3JpYmVBcmMoeDogbnVtYmVyLCB5OiBudW1iZXIsIHJhZGl1czogbnVtYmVyLCBzdGFydEFuZ2xlOiBudW1iZXIsIGVuZEFuZ2xlOiBudW1iZXIpOiBzdHJpbmcge1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5wb2xhclRvQ2FydGVzaWFuKHgsIHksIHJhZGl1cywgZW5kQW5nbGUpO1xuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnBvbGFyVG9DYXJ0ZXNpYW4oeCwgeSwgcmFkaXVzLCBzdGFydEFuZ2xlKTtcblxuICAgICAgICBjb25zdCBhcmNTd2VlcCA9IGVuZEFuZ2xlIC0gc3RhcnRBbmdsZSA8PSAxODAgPyAnMCcgOiAnMSc7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdNJywgc3RhcnQueCwgc3RhcnQueSxcbiAgICAgICAgICAgICdBJywgcmFkaXVzLCByYWRpdXMsIDAsIGFyY1N3ZWVwLCAwLCBlbmQueCwgZW5kLnksXG4gICAgICAgICAgICAnTCcsIGVuZC54LCBlbmQueVxuICAgICAgICBdLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBhcHBlbmQgdGhlIHN2ZyB0byB0aGUgZWxlbWVudCBvbiB3aGljaCBzcGlubmVyIGhhcyB0byBiZSBzaG93bi5cbiAgICAgICAgY29uc3QgYW5kcm9pZFRlbXBsYXRlID0gJCgnPHN2Zz48cGF0aCBpZD1cImFyYzFcIi8+PC9zdmc+Jyk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICQoJzxkaXYgY2xhc3M9XCJhbmRyb2lkLXNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgY29udGFpbmVyLmFwcGVuZChhbmRyb2lkVGVtcGxhdGUpO1xuICAgICAgICB0aGlzLiRlbC5hcHBlbmQoY29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5jeCA9IGNvbnRhaW5lci5vdXRlcldpZHRoKCkgLyAyO1xuICAgICAgICB0aGlzLmN5ID0gY29udGFpbmVyLm91dGVySGVpZ2h0KCkgLyAyO1xuICAgICAgICB0aGlzLnIgPSB0aGlzLmN4ICogMC42O1xuICAgICAgICB0aGlzLnBhdGggPSBjb250YWluZXIuZmluZCgncGF0aCcpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuXG4gICAgLy8gc2V0cyByb3RhdGlvbiB0byB0aGUgcGF0aFxuICAgIHB1YmxpYyBzZXRSb3RhdGlvbihkZWcpIHtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgIHRoaXMucGF0aC5hdHRyKCdkJywgdGhpcy5kZXNjcmliZUFyYyh0aGlzLmN4LCB0aGlzLmN5LCB0aGlzLnIsIDAsIGRlZykpO1xuICAgIH1cblxuICAgIC8vIGFuaW1hdGUgdGhlIHBhdGggdG8gcm90YXRlIGNvbnRpbnVvdXNseSB3aXRoIHNvbWUgaW50ZXJ2YWxcbiAgICBwdWJsaWMgc3RhcnQoKSB7XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICBjb25zdCBzZWxmID0gdGhpcyxcbiAgICAgICAgICAgIHRvdGFsVGltZSA9ICh0aGlzLm9wdGlvbnMgYXMgeyB0aW1lPzogbnVtYmVyIH0pLnRpbWUgfHwgMTgwMCxcbiAgICAgICAgICAgIGRlZ3JlZXNUb1RyYXZlcnNlID0gMTA7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgdGhpcy5jb250YWluZXIuYWRkQ2xhc3MoJ3NwaW4nKTtcbiAgICAgICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGRlZztcbiAgICAgICAgICAgIGkgPSBpICsgZGVncmVlc1RvVHJhdmVyc2U7XG4gICAgICAgICAgICBpZiAoaSA+IDcyMCkge1xuICAgICAgICAgICAgICAgIGRlZyA9IGkgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpID4gMzYwKSB7XG4gICAgICAgICAgICAgICAgZGVnID0gNzIwIC0gaTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGVnID0gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlbGYucGF0aC5hdHRyKCdkJywgdGhpcy5kZXNjcmliZUFyYyhzZWxmLmN4LCBzZWxmLmN5LCBzZWxmLnIsIDAsIGRlZykpO1xuICAgICAgICB9LCAodG90YWxUaW1lICogZGVncmVlc1RvVHJhdmVyc2UgLyAzNjApKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmVzIHRoZSBhbmltYXRpb24gYnkgY2xlYXJpbmcgdGhlIGludGVydmFsc1xuICAgIHB1YmxpYyBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsSWQgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnJlbW92ZUNsYXNzKCdzcGluJyk7XG4gICAgfVxufVxuXG4vLyBpT1Mgc3Bpbm5lciBpbXBsZW1lbnRhdGlvblxuY2xhc3MgSU9TU3Bpbm5lciBpbXBsZW1lbnRzIFNwaW5uZXIge1xuICAgIHByaXZhdGUgc3ZnOiBKUXVlcnk8U1ZHRWxlbWVudD47XG4gICAgcHJpdmF0ZSBpbnRlcnZhbElkOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlICRlbCkge31cblxuICAgIC8vIGNyZWF0ZSB0aGUgaU9TIHNwaW5uZXIgdXNpbmcgc3ZnXG4gICAgcHJpdmF0ZSBpbml0KCkge1xuICAgICAgICBpZiAodGhpcy5zdmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKCc8ZGl2IGNsYXNzPVwiaW9zLXNwaW5uZXJcIj48c3ZnPjwvc3ZnPjwvZGl2PicpO1xuICAgICAgICBjb25zdCBzdmcgPSBjb250YWluZXIuZmluZCgnc3ZnJyk7XG4gICAgICAgIHRoaXMuJGVsLmFwcGVuZChjb250YWluZXIpO1xuICAgICAgICBjb25zdCBkID0gY29udGFpbmVyLndpZHRoKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgc3ZnWzBdLmlubmVySFRNTCArPSBgPGxpbmUgeTE9XCIkezAuMTUgKiBkfVwiIHkyPVwiJHswLjMgKiBkfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoJHswLjUgKiBkfSwgJHswLjUgKiBkfSkgcm90YXRlKCR7aSAqIDMwfSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saW5lPmA7XG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyLmFwcGVuZChzdmcpO1xuICAgICAgICB0aGlzLnN2ZyA9IHN2ZztcbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBzdmcgdG8gcm90YXRlIGRlcGVuZGluZyBvbiBcImRcIiB2YWx1ZVxuICAgIHB1YmxpYyBzZXRSb3RhdGlvbihkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgIHRoaXMuc3ZnLmNzcygndHJhbnNmb3JtJywgYHJvdGF0ZVooICR7TWF0aC5yb3VuZChkIC8gMzApICogMzB9ZGVnKWApO1xuICAgIH1cblxuICAgIC8vIFRyaWdnZXJzIHRoZSByb3RhdGlvbiB3aXRoIHNvbWUgaW50ZXJ2YWxcbiAgICBwdWJsaWMgc3RhcnQoKSB7XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGkgKz0gMTA7XG4gICAgICAgICAgICB0aGlzLnNldFJvdGF0aW9uKGkpO1xuICAgICAgICB9LCAyMCk7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlcyB0aGUgYW5pbWF0aW9uIGJ5IGNsZWFyaW5nIHRoZSBpbnRlcnZhbHNcbiAgICBwdWJsaWMgc3RvcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICAgICAgICAgICAgdGhpcy5pbnRlcnZhbElkID0gMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|