@wavemaker/app-ng-runtime 11.8.0-next.24904 → 11.8.0-next.27301
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.
- app-ng-runtime/build-task/bundles/index.umd.js +5 -5
- app-ng-runtime/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/page/page.build.mjs +3 -2
- app-ng-runtime/build-task/fesm2022/index.mjs +2 -1
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +5 -5
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +1 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +6 -6
- app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +4 -3
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +203 -171
- app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +1 -1
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +12 -11
- app-ng-runtime/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
- app-ng-runtime/components/base/esm2022/utils/data-utils.mjs +30 -29
- app-ng-runtime/components/base/esm2022/utils/form-utils.mjs +47 -41
- app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -7
- app-ng-runtime/components/base/esm2022/utils/widget-utils.mjs +28 -27
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +4 -3
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-field-validations.mjs +24 -21
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +12 -11
- app-ng-runtime/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +40 -14
- app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +6 -5
- app-ng-runtime/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
- app-ng-runtime/components/base/fesm2022/index.mjs +206 -173
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
- app-ng-runtime/components/base/utils/data-utils.d.ts +0 -1
- app-ng-runtime/components/base/utils/widget-utils.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
- app-ng-runtime/components/basic/default/bundles/index.umd.js +10 -10
- app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +4 -3
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +6 -5
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +7 -6
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +13 -13
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +5 -4
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +6 -5
- app-ng-runtime/components/basic/progress/esm2022/utils.mjs +3 -3
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +10 -9
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +15 -10
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +14 -8
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +13 -7
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
- app-ng-runtime/components/basic/search/bundles/index.umd.js +67 -65
- app-ng-runtime/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
- app-ng-runtime/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
- app-ng-runtime/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +31 -30
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +66 -63
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/tree/bundles/index.umd.js +9 -9
- app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +7 -6
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs +6 -5
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/chart/bundles/index.umd.js +72 -63
- app-ng-runtime/components/chart/chart.component.d.ts +1 -1
- app-ng-runtime/components/chart/chart.utils.d.ts +3 -3
- app-ng-runtime/components/chart/esm2022/chart.component.mjs +58 -48
- app-ng-runtime/components/chart/esm2022/chart.utils.mjs +14 -13
- app-ng-runtime/components/chart/fesm2022/index.mjs +69 -59
- app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +16 -16
- app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +14 -13
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +13 -12
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +5 -5
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +3 -2
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/panel.component.d.ts +1 -1
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +17 -17
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +15 -14
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +14 -13
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +75 -75
- app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +3 -2
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +10 -9
- app-ng-runtime/components/data/form/esm2022/form.component.mjs +54 -53
- app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +3 -2
- app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +11 -10
- app-ng-runtime/components/data/form/fesm2022/index.mjs +77 -76
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form.component.d.ts +2 -2
- app-ng-runtime/components/data/form/live-form/live-form.directive.d.ts +1 -1
- app-ng-runtime/components/data/list/bundles/index.umd.js +692 -687
- app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +1 -1
- app-ng-runtime/components/data/list/esm2022/list.animator.mjs +5 -3
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +687 -682
- app-ng-runtime/components/data/list/fesm2022/index.mjs +690 -684
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/list.component.d.ts +53 -53
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +1 -1
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +14 -14
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +12 -11
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +11 -10
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/bundles/index.umd.js +175 -172
- app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +3 -2
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +19 -18
- app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +7 -6
- app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +53 -55
- app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +3 -2
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +98 -91
- app-ng-runtime/components/data/table/fesm2022/index.mjs +172 -168
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +6 -6
- app-ng-runtime/components/data/table/table.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +3 -3
- app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +1 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +33 -31
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +31 -28
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +30 -27
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +29 -28
- app-ng-runtime/components/input/chips/chips.component.d.ts +1 -1
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +27 -25
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +26 -24
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/base-form.component.d.ts +3 -3
- app-ng-runtime/components/input/default/bundles/index.umd.js +75 -62
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
- app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +4 -4
- app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +14 -8
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +3 -2
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +6 -4
- app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +29 -23
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +20 -18
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +2 -2
- app-ng-runtime/components/input/default/fesm2022/index.mjs +75 -62
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -1
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +53 -51
- app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +34 -31
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +5 -4
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +5 -4
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +7 -6
- app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +1 -1
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +6 -5
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +48 -45
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +15 -15
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +13 -12
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +12 -11
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/bundles/index.umd.js +12 -12
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +10 -9
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +9 -8
- app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +1 -1
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +2 -2
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +23 -22
- app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +3 -2
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +6 -5
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +10 -8
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +20 -18
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +1 -1
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/bundles/index.umd.js +6 -6
- app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +3 -2
- app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +3 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +119 -130
- app-ng-runtime/core/esm2022/public_api.mjs +2 -2
- app-ng-runtime/core/esm2022/services/field-type.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/field-widget.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/pagination.service.mjs +7 -6
- app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +17 -16
- app-ng-runtime/core/esm2022/services/utils.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/viewport.service.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/expression-parser.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/lru-cache.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/utils.mjs +79 -82
- app-ng-runtime/core/esm2022/utils/watcher.mjs +9 -7
- app-ng-runtime/core/fesm2022/index.mjs +117 -123
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +1 -1
- app-ng-runtime/core/services/pagination.service.d.ts +1 -1
- app-ng-runtime/core/utils/utils.d.ts +5 -9
- app-ng-runtime/http/bundles/index.umd.js +7 -7
- app-ng-runtime/http/esm2022/http.service.mjs +5 -4
- app-ng-runtime/http/esm2022/wm-http-request.mjs +1 -1
- app-ng-runtime/http/esm2022/wm-http-response.mjs +1 -1
- app-ng-runtime/http/fesm2022/index.mjs +4 -3
- app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +24 -20
- app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +5 -4
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +12 -8
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +5 -3
- app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +3 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +5 -4
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +21 -16
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +7 -7
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +2 -2
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +4 -3
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +4 -3
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +8 -8
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.component.mjs +4 -3
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +3 -2
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +5 -5
- app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +3 -2
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +2 -1
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +9 -9
- app-ng-runtime/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +7 -6
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +6 -5
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js +25 -25
- app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +3 -2
- app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +4 -3
- app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +6 -5
- app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +3 -2
- app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +9 -8
- app-ng-runtime/mobile/core/fesm2022/index.mjs +22 -21
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/services/ext-app-message.service.d.ts +1 -1
- app-ng-runtime/mobile/core/services/network.service.d.ts +7 -1
- app-ng-runtime/mobile/offline/bundles/index.umd.js +161 -144
- app-ng-runtime/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
- app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +7 -6
- app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +37 -35
- app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +54 -45
- app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
- app-ng-runtime/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
- app-ng-runtime/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
- app-ng-runtime/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
- app-ng-runtime/mobile/offline/fesm2022/index.mjs +156 -138
- app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime/bundles/index.umd.js +11 -8
- app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +3 -2
- app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +6 -2
- app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +4 -3
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs +8 -4
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +3 -3
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +2 -2
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/variables/bundles/index.umd.js +23 -16
- app-ng-runtime/mobile/variables/esm2022/services/camera-service.mjs +2 -2
- app-ng-runtime/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
- app-ng-runtime/mobile/variables/esm2022/services/file-service.mjs +11 -3
- app-ng-runtime/mobile/variables/fesm2022/index.mjs +19 -11
- app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/oAuth/bundles/index.umd.js +12 -12
- app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +4 -3
- app-ng-runtime/oAuth/esm2022/oAuth.utils.mjs +8 -7
- app-ng-runtime/oAuth/fesm2022/index.mjs +9 -8
- app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +121 -120
- app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +14 -13
- app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +13 -12
- app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +15 -14
- app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +14 -13
- app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -10
- app-ng-runtime/runtime/base/esm2022/guards/page-not-found.guard.mjs +1 -1
- app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +1 -1
- app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +17 -14
- app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +7 -6
- app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +12 -10
- app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +8 -7
- app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +7 -6
- app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +6 -7
- app-ng-runtime/runtime/base/fesm2022/index.mjs +119 -117
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +7 -7
- app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +4 -3
- app-ng-runtime/runtime/dynamic/esm2022/main.mjs +3 -2
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +4 -3
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
- app-ng-runtime/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
- app-ng-runtime/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
- app-ng-runtime/security/bundles/index.umd.js +14 -14
- app-ng-runtime/security/esm2022/security.service.mjs +12 -11
- app-ng-runtime/security/fesm2022/index.mjs +11 -10
- app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/security/security.service.d.ts +1 -1
- app-ng-runtime/swipey/esm2022/swipe.animation.mjs +1 -1
- app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/transpiler/bundles/index.umd.js +10 -9
- app-ng-runtime/transpiler/esm2022/build.mjs +8 -6
- app-ng-runtime/transpiler/fesm2022/index.mjs +7 -5
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/bundles/index.umd.js +155 -145
- app-ng-runtime/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
- app-ng-runtime/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
- app-ng-runtime/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
- app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
- app-ng-runtime/variables/esm2022/service/variables.service.mjs +7 -6
- app-ng-runtime/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
- app-ng-runtime/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
- app-ng-runtime/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
- app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +75 -70
- app-ng-runtime/variables/fesm2022/index.mjs +169 -158
- app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/util/variable/service-variable.utils.d.ts +1 -1
|
@@ -2,6 +2,7 @@ import { getClonedObject, triggerFn } from '@wm/core';
|
|
|
2
2
|
import { BaseActionManager } from './base-action.manager';
|
|
3
3
|
import { CONSTANTS, VARIABLE_CONSTANTS } from '../../constants/variables.constants';
|
|
4
4
|
import { appManager, dialogService, initiateCallback, routerService, securityService } from '../../util/variable/variables.utils';
|
|
5
|
+
import { each, get, isBoolean, isEmpty, isObject, set } from "lodash-es";
|
|
5
6
|
export class LoginActionManager extends BaseActionManager {
|
|
6
7
|
validate(params) {
|
|
7
8
|
let err, paramKey, remembermeKey;
|
|
@@ -9,13 +10,13 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
9
10
|
const LOGIN_PARAM_REMEMBER_ME_OLD = ['rememberme', 'remembermecheck'];
|
|
10
11
|
// for older projects
|
|
11
12
|
LOGIN_PARAM_REMEMBER_ME_OLD.forEach((old_key) => {
|
|
12
|
-
if (
|
|
13
|
+
if (isBoolean(params[old_key])) {
|
|
13
14
|
remembermeKey = old_key;
|
|
14
15
|
}
|
|
15
16
|
});
|
|
16
17
|
remembermeKey = remembermeKey || LOGIN_PARAM_REMEMBER_ME;
|
|
17
18
|
// check remember me
|
|
18
|
-
params[remembermeKey] =
|
|
19
|
+
params[remembermeKey] = isBoolean(params[remembermeKey]) ? params[remembermeKey] : false;
|
|
19
20
|
for (paramKey in params) {
|
|
20
21
|
if (params.hasOwnProperty(paramKey) &&
|
|
21
22
|
(params[paramKey] === '' || params[paramKey] === undefined)) {
|
|
@@ -34,7 +35,7 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
34
35
|
'remembermecheck': 'j_rememberme',
|
|
35
36
|
'rememberme': 'j_rememberme'
|
|
36
37
|
};
|
|
37
|
-
|
|
38
|
+
each(params, function (value, key) {
|
|
38
39
|
if (paramMigrationMap[key]) {
|
|
39
40
|
loginParams[paramMigrationMap[key]] = value;
|
|
40
41
|
}
|
|
@@ -71,7 +72,7 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
71
72
|
// Triggering 'onBeforeUpdate' and considering
|
|
72
73
|
let params = getClonedObject(loginInfo);
|
|
73
74
|
const output = initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE, variable, params);
|
|
74
|
-
if (
|
|
75
|
+
if (isObject(output)) {
|
|
75
76
|
params = output;
|
|
76
77
|
}
|
|
77
78
|
else if (output === false) {
|
|
@@ -81,7 +82,7 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
81
82
|
// migrate old params to new
|
|
82
83
|
params = this.migrateOldParams(params);
|
|
83
84
|
// get previously loggedInUser name (if any)
|
|
84
|
-
const lastLoggedInUsername =
|
|
85
|
+
const lastLoggedInUsername = get(securityService.get(), 'userInfo.userName');
|
|
85
86
|
this.notifyInflight(variable, true);
|
|
86
87
|
variable.promise = securityService.appLogin(params, (response) => {
|
|
87
88
|
// Closing login dialog after successful login
|
|
@@ -94,19 +95,19 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
94
95
|
appManager.reloadAppData().
|
|
95
96
|
then((config) => {
|
|
96
97
|
// EVENT: ON_RESULT
|
|
97
|
-
initiateCallback(VARIABLE_CONSTANTS.EVENT.RESULT, variable,
|
|
98
|
+
initiateCallback(VARIABLE_CONSTANTS.EVENT.RESULT, variable, get(config, 'userInfo'));
|
|
98
99
|
// EVENT: ON_PREPARESETDATA
|
|
99
|
-
newDataSet = initiateCallback(VARIABLE_CONSTANTS.EVENT.PREPARE_SETDATA, variable,
|
|
100
|
+
newDataSet = initiateCallback(VARIABLE_CONSTANTS.EVENT.PREPARE_SETDATA, variable, get(config, 'userInfo'));
|
|
100
101
|
if (newDataSet) {
|
|
101
102
|
// setting newDataSet as the response to service variable onPrepareSetData
|
|
102
|
-
|
|
103
|
+
set(config, 'userInfo', newDataSet);
|
|
103
104
|
}
|
|
104
105
|
// hide the spinner after all the n/w calls are completed
|
|
105
106
|
this.notifyInflight(variable, false, response);
|
|
106
107
|
triggerFn(success);
|
|
107
108
|
setTimeout(() => {
|
|
108
109
|
// EVENT: ON_SUCCESS
|
|
109
|
-
initiateCallback(VARIABLE_CONSTANTS.EVENT.SUCCESS, variable,
|
|
110
|
+
initiateCallback(VARIABLE_CONSTANTS.EVENT.SUCCESS, variable, get(config, 'userInfo'));
|
|
110
111
|
/* handle navigation if defaultSuccessHandler on variable is true */
|
|
111
112
|
if (variable.useDefaultSuccessHandler) {
|
|
112
113
|
const isSameUserReloggedIn = lastLoggedInUsername === params['j_username'];
|
|
@@ -126,7 +127,7 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
126
127
|
// first time login
|
|
127
128
|
if (!lastLoggedInUsername) {
|
|
128
129
|
// if redirect page found, navigate to it.
|
|
129
|
-
if (!
|
|
130
|
+
if (!isEmpty(redirectPage)) {
|
|
130
131
|
routerService.navigate([`/${redirectPage}`], { queryParams: queryParamsObj });
|
|
131
132
|
}
|
|
132
133
|
else if (!noRedirect) {
|
|
@@ -137,7 +138,7 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
137
138
|
else {
|
|
138
139
|
// login after a session timeout
|
|
139
140
|
// if redirect page found and same user logs in again, just navigate to redirect page
|
|
140
|
-
if (!
|
|
141
|
+
if (!isEmpty(redirectPage)) {
|
|
141
142
|
// same user logs in again, just redirect to the redirectPage
|
|
142
143
|
if (lastLoggedInUsername === params['j_username']) {
|
|
143
144
|
routerService.navigate([`/${redirectPage}`], { queryParams: queryParamsObj });
|
|
@@ -148,7 +149,7 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
else {
|
|
151
|
-
const securityConfig = securityService.get(), sessionTimeoutLoginMode =
|
|
152
|
+
const securityConfig = securityService.get(), sessionTimeoutLoginMode = get(securityConfig, 'loginConfig.sessionTimeout.type') || 'PAGE';
|
|
152
153
|
// if in dialog mode and a new user logs in OR login happening through page, reload the app
|
|
153
154
|
if (!isSameUserReloggedIn || sessionTimeoutLoginMode !== 'DIALOG') {
|
|
154
155
|
this.redirectToAppBasePath();
|
|
@@ -157,7 +158,7 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
160
|
// EVENT: ON_CAN_UPDATE
|
|
160
|
-
initiateCallback(VARIABLE_CONSTANTS.EVENT.CAN_UPDATE, variable,
|
|
161
|
+
initiateCallback(VARIABLE_CONSTANTS.EVENT.CAN_UPDATE, variable, get(config, 'userInfo'));
|
|
161
162
|
});
|
|
162
163
|
});
|
|
163
164
|
}, (e) => {
|
|
@@ -176,4 +177,4 @@ export class LoginActionManager extends BaseActionManager {
|
|
|
176
177
|
});
|
|
177
178
|
}
|
|
178
179
|
}
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tYWN0aW9uLm1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXJpYWJsZXMvc3JjL21hbmFnZXIvYWN0aW9uL2xvZ2luLWFjdGlvbi5tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFJbEksTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQUU3QyxRQUFRLENBQUMsTUFBVztRQUN4QixJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDO1FBQ2pDLE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDO1FBQy9DLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUV0RSxxQkFBcUI7UUFDckIsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLGFBQWEsR0FBRyxPQUFPLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYSxHQUFJLGFBQWEsSUFBSSx1QkFBdUIsQ0FBQztRQUUxRCxvQkFBb0I7UUFDcEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FB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Q0FBQyxFQUFFLEVBQUU7WUFDTCxtQkFBbUI7WUFDbkIsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksc0JBQXNCLENBQUM7WUFDbkQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUN6Qix1RUFBdUU7WUFDdkUsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3RCLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkMsdUJBQXVCO1lBQ3ZCLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Q2xvbmVkT2JqZWN0LCB0cmlnZ2VyRm4gfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IEJhc2VBY3Rpb25NYW5hZ2VyIH0gZnJvbSAnLi9iYXNlLWFjdGlvbi5tYW5hZ2VyJztcbmltcG9ydCB7IENPTlNUQU5UUywgVkFSSUFCTEVfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3ZhcmlhYmxlcy5jb25zdGFudHMnO1xuaW1wb3J0IHsgYXBwTWFuYWdlciwgZGlhbG9nU2VydmljZSwgaW5pdGlhdGVDYWxsYmFjaywgcm91dGVyU2VydmljZSwgc2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbC92YXJpYWJsZS92YXJpYWJsZXMudXRpbHMnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmV4cG9ydCBjbGFzcyBMb2dpbkFjdGlvbk1hbmFnZXIgZXh0ZW5kcyBCYXNlQWN0aW9uTWFuYWdlciB7XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlKHBhcmFtczogYW55KSB7XG4gICAgICAgIGxldCBlcnIsIHBhcmFtS2V5LCByZW1lbWJlcm1lS2V5O1xuICAgICAgICBjb25zdCBMT0dJTl9QQVJBTV9SRU1FTUJFUl9NRSA9ICdqX3JlbWVtYmVybWUnO1xuICAgICAgICBjb25zdCBMT0dJTl9QQVJBTV9SRU1FTUJFUl9NRV9PTEQgPSBbJ3JlbWVtYmVybWUnLCAncmVtZW1iZXJtZWNoZWNrJ107XG5cbiAgICAgICAgLy8gZm9yIG9sZGVyIHByb2plY3RzXG4gICAgICAgIExPR0lOX1BBUkFNX1JFTUVNQkVSX01FX09MRC5mb3JFYWNoKChvbGRfa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoXy5pc0Jvb2xlYW4ocGFyYW1zW29sZF9rZXldKSkge1xuICAgICAgICAgICAgICAgIHJlbWVtYmVybWVLZXkgPSBvbGRfa2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZW1lbWJlcm1lS2V5ID0gIHJlbWVtYmVybWVLZXkgfHwgTE9HSU5fUEFSQU1fUkVNRU1CRVJfTUU7XG5cbiAgICAgICAgLy8gY2hlY2sgcmVtZW1iZXIgbWVcbiAgICAgICAgcGFyYW1zW3JlbWVtYmVybWVLZXldID0gXy5pc0Jvb2xlYW4ocGFyYW1zW3JlbWVtYmVybWVLZXldKSA/IHBhcmFtc1tyZW1lbWJlcm1lS2V5XSA6IGZhbHNlO1xuXG4gICAgICAgIGZvciAocGFyYW1LZXkgaW4gcGFyYW1zKSB7XG4gICAgICAgICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KHBhcmFtS2V5KSAmJlxuICAgICAgICAgICAgICAgIChwYXJhbXNbcGFyYW1LZXldID09PSAnJyB8fCBwYXJhbXNbcGFyYW1LZXldID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgZXJyID0gJ1BsZWFzZSBwcm92aWRlIHJlcXVpcmVkIGNyZWRlbnRpYWxzJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtaWdyYXRlT2xkUGFyYW1zKHBhcmFtcykge1xuICAgICAgICBjb25zdCBsb2dpblBhcmFtcyA9IHt9LFxuICAgICAgICAgICAgcGFyYW1NaWdyYXRpb25NYXAgPSB7XG4gICAgICAgICAgICAndXNlcm5hbWV0ZXh0JzogJ2pfdXNlcm5hbWUnLFxuICAgICAgICAgICAgJ3VzZXJuYW1lJzogJ2pfdXNlcm5hbWUnLFxuICAgICAgICAgICAgJ3Bhc3N3b3JkdGV4dCc6ICdqX3Bhc3N3b3JkJyxcbiAgICAgICAgICAgICdwYXNzd29yZCc6ICdqX3Bhc3N3b3JkJyxcbiAgICAgICAgICAgICdyZW1lbWJlcm1lY2hlY2snOiAnal9yZW1lbWJlcm1lJyxcbiAgICAgICAgICAgICdyZW1lbWJlcm1lJzogJ2pfcmVtZW1iZXJtZSdcbiAgICAgICAgfTtcblxuICAgICAgICBfLmVhY2gocGFyYW1zLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICAgICAgICBpZiAocGFyYW1NaWdyYXRpb25NYXBba2V5XSkge1xuICAgICAgICAgICAgICAgIGxvZ2luUGFyYW1zW3BhcmFtTWlncmF0aW9uTWFwW2tleV1dID0gdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2luUGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsb2dpblBhcmFtcztcbiAgICB9XG5cbiAgICAvKlxuICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFwcCBiYXNlIHBhdGhcbiAgICAgICAgICogQWZ0ZXIgc3VjY2Vzc2Z1bCBuYXZpZ2F0aW9uIHRvIHRoZSBiYXNlIHBhdGgsIHdpbGwgcmVsb2FkIHRoZSBhcHBcbiAgICAqL1xuICAgIHByaXZhdGUgcmVkaXJlY3RUb0FwcEJhc2VQYXRoKCkge1xuICAgICAgICByb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlKFsnLyddKS50aGVuKG5hdiA9PiB7XG4gICAgICAgICAgICBpZiAobmF2KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBsb2dpbih2YXJpYWJsZSwgb3B0aW9ucywgc3VjY2VzcywgZXJyb3IpIHtcbiAgICAgICAgbGV0IG5ld0RhdGFTZXQ7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICAgIC8vIElmIGxvZ2luIGluZm8gcHJvdmlkZWQgYWxvbmcgZXhwbGljaXRseSB3aXRoIG9wdGlvbnMsIGRvbid0IGxvb2sgaW50byB0aGUgdmFyaWFibGUgYmluZGluZ3MgZm9yIHRoZSBzYW1lXG4gICAgICAgIGNvbnN0IGxvZ2luSW5mbzogYW55ID0gb3B0aW9ucy5sb2dpbkluZm8gfHwgb3B0aW9ucy5pbnB1dCB8fCB2YXJpYWJsZS5kYXRhQmluZGluZztcblxuICAgICAgICAvLyBjbGllbnQgc2lkZSB2YWxpZGF0aW9uXG4gICAgICAgIGNvbnN0IGVyck1zZyA9IHRoaXMudmFsaWRhdGUobG9naW5JbmZvKTtcblxuICAgICAgICAvKiBpZiBlcnJvciBtZXNzYWdlIGluaXRpYWxpemVkLCByZXR1cm4gZXJyb3IgKi9cbiAgICAgICAgaWYgKGVyck1zZykge1xuICAgICAgICAgICAgdHJpZ2dlckZuKGVycm9yLCBlcnJNc2cpO1xuICAgICAgICAgICAgaW5pdGlhdGVDYWxsYmFjaygnb25FcnJvcicsIHZhcmlhYmxlLCBlcnJNc2cpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJpZ2dlcmluZyAnb25CZWZvcmVVcGRhdGUnIGFuZCBjb25zaWRlcmluZ1xuICAgICAgICBsZXQgcGFyYW1zOiBhbnkgPSBnZXRDbG9uZWRPYmplY3QobG9naW5JbmZvKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0OiBhbnkgPSBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5CRUZPUkVfVVBEQVRFLCB2YXJpYWJsZSwgcGFyYW1zKTtcbiAgICAgICAgaWYgKF8uaXNPYmplY3Qob3V0cHV0KSkge1xuICAgICAgICAgICAgcGFyYW1zID0gb3V0cHV0O1xuICAgICAgICB9IGVsc2UgaWYgKG91dHB1dCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRyaWdnZXJGbihlcnJvcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBtaWdyYXRlIG9sZCBwYXJhbXMgdG8gbmV3XG4gICAgICAgIHBhcmFtcyA9IHRoaXMubWlncmF0ZU9sZFBhcmFtcyhwYXJhbXMpO1xuXG4gICAgICAgIC8vIGdldCBwcmV2aW91c2x5IGxvZ2dlZEluVXNlciBuYW1lIChpZiBhbnkpXG4gICAgICAgIGNvbnN0IGxhc3RMb2dnZWRJblVzZXJuYW1lID0gXy5nZXQoc2VjdXJpdHlTZXJ2aWNlLmdldCgpLCAndXNlckluZm8udXNlck5hbWUnKTtcblxuICAgICAgICB0aGlzLm5vdGlmeUluZmxpZ2h0KHZhcmlhYmxlLCB0cnVlKTtcbiAgICAgICAgdmFyaWFibGUucHJvbWlzZSA9IHNlY3VyaXR5U2VydmljZS5hcHBMb2dpbihwYXJhbXMsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgLy8gQ2xvc2luZyBsb2dpbiBkaWFsb2cgYWZ0ZXIgc3VjY2Vzc2Z1bCBsb2dpblxuICAgICAgICAgICAgZGlhbG9nU2VydmljZS5jbG9zZSgnQ29tbW9uTG9naW5EaWFsb2cnKTtcblxuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAqIEdldCBmcmVzaCBzZWN1cml0eSBjb25maWdcbiAgICAgICAgICAgICAqIEdldCBBcHAgdmFyaWFibGVzLiBpZiBub3QgbG9hZGVkXG4gICAgICAgICAgICAgKiBVcGRhdGUgbG9nZ2VkSW5Vc2VyIHZhcmlhYmxlIHdpdGggbmV3IHVzZXIgZGV0YWlsc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhcHBNYW5hZ2VyLnJlbG9hZEFwcERhdGEoKS5cbiAgICAgICAgICAgIHRoZW4oKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEVWRU5UOiBPTl9SRVNVTFRcbiAgICAgICAgICAgICAgICBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5SRVNVTFQsIHZhcmlhYmxlLCBfLmdldChjb25maWcsICd1c2VySW5mbycpKTtcbiAgICAgICAgICAgICAgICAvLyBFVkVOVDogT05fUFJFUEFSRVNFVERBVEFcbiAgICAgICAgICAgICAgICBuZXdEYXRhU2V0ID0gaW5pdGlhdGVDYWxsYmFjayhWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQuUFJFUEFSRV9TRVREQVRBLCB2YXJpYWJsZSwgXy5nZXQoY29uZmlnLCAndXNlckluZm8nKSk7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0RhdGFTZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldHRpbmcgbmV3RGF0YVNldCBhcyB0aGUgcmVzcG9uc2UgdG8gc2VydmljZSB2YXJpYWJsZSBvblByZXBhcmVTZXREYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBfLnNldChjb25maWcsICd1c2VySW5mbycsIG5ld0RhdGFTZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBoaWRlIHRoZSBzcGlubmVyIGFmdGVyIGFsbCB0aGUgbi93IGNhbGxzIGFyZSBjb21wbGV0ZWRcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeUluZmxpZ2h0KHZhcmlhYmxlLCBmYWxzZSwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIHRyaWdnZXJGbihzdWNjZXNzKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRVZFTlQ6IE9OX1NVQ0NFU1NcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhdGVDYWxsYmFjayhWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQuU1VDQ0VTUywgdmFyaWFibGUsIF8uZ2V0KGNvbmZpZywgJ3VzZXJJbmZvJykpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8qIGhhbmRsZSBuYXZpZ2F0aW9uIGlmIGRlZmF1bHRTdWNjZXNzSGFuZGxlciBvbiB2YXJpYWJsZSBpcyB0cnVlICovXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZS51c2VEZWZhdWx0U3VjY2Vzc0hhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzU2FtZVVzZXJSZWxvZ2dlZEluID0gbGFzdExvZ2dlZEluVXNlcm5hbWUgPT09IHBhcmFtc1snal91c2VybmFtZSddO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgZmlyc3QgdGltZSB1c2VyIGxvZ2dpbmcgaW4gb3Igc2FtZSB1c2VyIHJlLWxvZ2dpbmcgaW4sIGV4ZWN1dGUgbi93IGNhbGxzIGZhaWxlZCBiZWZvcmUgbG9nZ2luZyBpblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXN0TG9nZ2VkSW5Vc2VybmFtZSB8fCBpc1NhbWVVc2VyUmVsb2dnZWRJbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcE1hbmFnZXIuZXhlY3V0ZVNlc3Npb25GYWlsdXJlUmVxdWVzdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCByZWRpcmVjdFRvIHBhZ2UgZnJvbSBVUkwgYW5kIHJlbW92ZSBpdCBmcm9tIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVkaXJlY3RQYWdlID0gc2VjdXJpdHlTZXJ2aWNlLmdldEN1cnJlbnRSb3V0ZVF1ZXJ5UGFyYW0oJ3JlZGlyZWN0VG8nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub1JlZGlyZWN0ID0gYXBwTWFuYWdlci5ub1JlZGlyZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBHZXQgcXVlcnkgcGFyYW1zKHBhZ2UgcGFyYW1zIG9mIHBhZ2UgYmVpbmcgcmVkaXJlY3RlZCB0bykgYW5kIGFwcGVuZCB0byB0aGUgVVJMIGFmdGVyIGxvZ2luLlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbXNPYmogPSBzZWN1cml0eVNlcnZpY2UuZ2V0UmVkaXJlY3RlZFJvdXRlUXVlcnlQYXJhbXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSByZWRpcmVjdFRvIHBhcmFtIGlzbid0IHJlcXVpcmVkIGFmdGVyIGxvZ2luXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlcnlQYXJhbXNPYmoucmVkaXJlY3RUbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc09iai5yZWRpcmVjdFRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwTWFuYWdlci5ub1JlZGlyZWN0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpcnN0IHRpbWUgbG9naW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbGFzdExvZ2dlZEluVXNlcm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiByZWRpcmVjdCBwYWdlIGZvdW5kLCBuYXZpZ2F0ZSB0byBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV8uaXNFbXB0eShyZWRpcmVjdFBhZ2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlclNlcnZpY2UubmF2aWdhdGUoW2AvJHtyZWRpcmVjdFBhZ2V9YF0sIHsgcXVlcnlQYXJhbXMgOiBxdWVyeVBhcmFtc09ian0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIW5vUmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2ltcGx5IHJlc2V0IHRoZSBVUkwsIHJvdXRlIGhhbmRsaW5nIHdpbGwgdGFrZSBjYXJlIG9mIHBhZ2UgcmVkaXJlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyU2VydmljZS5uYXZpZ2F0ZShbYC9gXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvZ2luIGFmdGVyIGEgc2Vzc2lvbiB0aW1lb3V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgcmVkaXJlY3QgcGFnZSBmb3VuZCBhbmQgc2FtZSB1c2VyIGxvZ3MgaW4gYWdhaW4sIGp1c3QgbmF2aWdhdGUgdG8gcmVkaXJlY3QgcGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghXy5pc0VtcHR5KHJlZGlyZWN0UGFnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2FtZSB1c2VyIGxvZ3MgaW4gYWdhaW4sIGp1c3QgcmVkaXJlY3QgdG8gdGhlIHJlZGlyZWN0UGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdExvZ2dlZEluVXNlcm5hbWUgPT09IHBhcmFtc1snal91c2VybmFtZSddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlKFtgLyR7cmVkaXJlY3RQYWdlfWBdLCB7IHF1ZXJ5UGFyYW1zIDogcXVlcnlQYXJhbXNPYmp9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZmZlcmVudCB1c2VyIGxvZ3MgaW4sIHJlbG9hZCB0aGUgYXBwIGFuZCBkaXNjYXJkIHRoZSByZWRpcmVjdFBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0FwcEJhc2VQYXRoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWN1cml0eUNvbmZpZyA9IHNlY3VyaXR5U2VydmljZS5nZXQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25UaW1lb3V0TG9naW5Nb2RlID0gXy5nZXQoc2VjdXJpdHlDb25maWcsICdsb2dpbkNvbmZpZy5zZXNzaW9uVGltZW91dC50eXBlJykgfHwgJ1BBR0UnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBpbiBkaWFsb2cgbW9kZSBhbmQgYSBuZXcgdXNlciBsb2dzIGluIE9SIGxvZ2luIGhhcHBlbmluZyB0aHJvdWdoIHBhZ2UsIHJlbG9hZCB0aGUgYXBwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNTYW1lVXNlclJlbG9nZ2VkSW4gfHwgc2Vzc2lvblRpbWVvdXRMb2dpbk1vZGUgIT09ICdESUFMT0cnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9BcHBCYXNlUGF0aCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRVZFTlQ6IE9OX0NBTl9VUERBVEVcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhdGVDYWxsYmFjayhWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQuQ0FOX1VQREFURSwgdmFyaWFibGUsIF8uZ2V0KGNvbmZpZywgJ3VzZXJJbmZvJykpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgIC8vIEVWRU5UOiBPTl9SRVNVTFRcbiAgICAgICAgICAgIGluaXRpYXRlQ2FsbGJhY2soVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5ULlJFU1VMVCwgdmFyaWFibGUsIGUpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlJbmZsaWdodCh2YXJpYWJsZSwgZmFsc2UsIGUpO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNc2cgPSBlLmVycm9yIHx8ICdJbnZhbGlkIGNyZWRlbnRpYWxzLic7XG4gICAgICAgICAgICBjb25zdCB4aHJPYmogPSBlLmRldGFpbHM7XG4gICAgICAgICAgICAvKiBpZiBpbiBSVU4gbW9kZSwgdHJpZ2dlciBlcnJvciBldmVudHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB2YXJpYWJsZSAqL1xuICAgICAgICAgICAgaWYgKENPTlNUQU5UUy5pc1J1bk1vZGUpIHtcbiAgICAgICAgICAgICAgICBpbml0aWF0ZUNhbGxiYWNrKCdvbkVycm9yJywgdmFyaWFibGUsIGVycm9yTXNnLCB4aHJPYmosIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJpZ2dlckZuKGVycm9yLCBlcnJvck1zZywgeGhyT2JqKTtcbiAgICAgICAgICAgIC8vIEVWRU5UOiBPTl9DQU5fVVBEQVRFXG4gICAgICAgICAgICBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5DQU5fVVBEQVRFLCB2YXJpYWJsZSwgZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tYWN0aW9uLm1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXJpYWJsZXMvc3JjL21hbmFnZXIvYWN0aW9uL2xvZ2luLWFjdGlvbi5tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEksT0FBTyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXZFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFFN0MsUUFBUSxDQUFDLE1BQVc7UUFDeEIsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQztRQUNqQyxNQUFNLHVCQUF1QixHQUFHLGNBQWMsQ0FBQztRQUMvQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFdEUscUJBQXFCO1FBQ3JCLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzVDLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLGFBQWEsR0FBRyxPQUFPLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYSxHQUFJLGFBQWEsSUFBSSx1QkFBdUIsQ0FBQztR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LENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksc0JBQXNCLENBQUM7WUFDbkQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUN6Qix1RUFBdUU7WUFDdkUsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3RCLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkMsdUJBQXVCO1lBQ3ZCLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Q2xvbmVkT2JqZWN0LCB0cmlnZ2VyRm4gfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IEJhc2VBY3Rpb25NYW5hZ2VyIH0gZnJvbSAnLi9iYXNlLWFjdGlvbi5tYW5hZ2VyJztcbmltcG9ydCB7IENPTlNUQU5UUywgVkFSSUFCTEVfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3ZhcmlhYmxlcy5jb25zdGFudHMnO1xuaW1wb3J0IHsgYXBwTWFuYWdlciwgZGlhbG9nU2VydmljZSwgaW5pdGlhdGVDYWxsYmFjaywgcm91dGVyU2VydmljZSwgc2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbC92YXJpYWJsZS92YXJpYWJsZXMudXRpbHMnO1xuaW1wb3J0IHtlYWNoLCBnZXQsIGlzQm9vbGVhbiwgaXNFbXB0eSwgaXNPYmplY3QsIHNldH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5leHBvcnQgY2xhc3MgTG9naW5BY3Rpb25NYW5hZ2VyIGV4dGVuZHMgQmFzZUFjdGlvbk1hbmFnZXIge1xuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZShwYXJhbXM6IGFueSkge1xuICAgICAgICBsZXQgZXJyLCBwYXJhbUtleSwgcmVtZW1iZXJtZUtleTtcbiAgICAgICAgY29uc3QgTE9HSU5fUEFSQU1fUkVNRU1CRVJfTUUgPSAnal9yZW1lbWJlcm1lJztcbiAgICAgICAgY29uc3QgTE9HSU5fUEFSQU1fUkVNRU1CRVJfTUVfT0xEID0gWydyZW1lbWJlcm1lJywgJ3JlbWVtYmVybWVjaGVjayddO1xuXG4gICAgICAgIC8vIGZvciBvbGRlciBwcm9qZWN0c1xuICAgICAgICBMT0dJTl9QQVJBTV9SRU1FTUJFUl9NRV9PTEQuZm9yRWFjaCgob2xkX2tleSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzQm9vbGVhbihwYXJhbXNbb2xkX2tleV0pKSB7XG4gICAgICAgICAgICAgICAgcmVtZW1iZXJtZUtleSA9IG9sZF9rZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlbWVtYmVybWVLZXkgPSAgcmVtZW1iZXJtZUtleSB8fCBMT0dJTl9QQVJBTV9SRU1FTUJFUl9NRTtcblxuICAgICAgICAvLyBjaGVjayByZW1lbWJlciBtZVxuICAgICAgICBwYXJhbXNbcmVtZW1iZXJtZUtleV0gPSBpc0Jvb2xlYW4ocGFyYW1zW3JlbWVtYmVybWVLZXldKSA/IHBhcmFtc1tyZW1lbWJlcm1lS2V5XSA6IGZhbHNlO1xuXG4gICAgICAgIGZvciAocGFyYW1LZXkgaW4gcGFyYW1zKSB7XG4gICAgICAgICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KHBhcmFtS2V5KSAmJlxuICAgICAgICAgICAgICAgIChwYXJhbXNbcGFyYW1LZXldID09PSAnJyB8fCBwYXJhbXNbcGFyYW1LZXldID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgZXJyID0gJ1BsZWFzZSBwcm92aWRlIHJlcXVpcmVkIGNyZWRlbnRpYWxzJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtaWdyYXRlT2xkUGFyYW1zKHBhcmFtcykge1xuICAgICAgICBjb25zdCBsb2dpblBhcmFtcyA9IHt9LFxuICAgICAgICAgICAgcGFyYW1NaWdyYXRpb25NYXAgPSB7XG4gICAgICAgICAgICAndXNlcm5hbWV0ZXh0JzogJ2pfdXNlcm5hbWUnLFxuICAgICAgICAgICAgJ3VzZXJuYW1lJzogJ2pfdXNlcm5hbWUnLFxuICAgICAgICAgICAgJ3Bhc3N3b3JkdGV4dCc6ICdqX3Bhc3N3b3JkJyxcbiAgICAgICAgICAgICdwYXNzd29yZCc6ICdqX3Bhc3N3b3JkJyxcbiAgICAgICAgICAgICdyZW1lbWJlcm1lY2hlY2snOiAnal9yZW1lbWJlcm1lJyxcbiAgICAgICAgICAgICdyZW1lbWJlcm1lJzogJ2pfcmVtZW1iZXJtZSdcbiAgICAgICAgfTtcblxuICAgICAgICBlYWNoKHBhcmFtcywgZnVuY3Rpb24gKHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICAgIGlmIChwYXJhbU1pZ3JhdGlvbk1hcFtrZXldKSB7XG4gICAgICAgICAgICAgICAgbG9naW5QYXJhbXNbcGFyYW1NaWdyYXRpb25NYXBba2V5XV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9naW5QYXJhbXNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGxvZ2luUGFyYW1zO1xuICAgIH1cblxuICAgIC8qXG4gICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYXBwIGJhc2UgcGF0aFxuICAgICAgICAgKiBBZnRlciBzdWNjZXNzZnVsIG5hdmlnYXRpb24gdG8gdGhlIGJhc2UgcGF0aCwgd2lsbCByZWxvYWQgdGhlIGFwcFxuICAgICovXG4gICAgcHJpdmF0ZSByZWRpcmVjdFRvQXBwQmFzZVBhdGgoKSB7XG4gICAgICAgIHJvdXRlclNlcnZpY2UubmF2aWdhdGUoWycvJ10pLnRoZW4obmF2ID0+IHtcbiAgICAgICAgICAgIGlmIChuYXYpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvZ2luKHZhcmlhYmxlLCBvcHRpb25zLCBzdWNjZXNzLCBlcnJvcikge1xuICAgICAgICBsZXQgbmV3RGF0YVNldDtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgLy8gSWYgbG9naW4gaW5mbyBwcm92aWRlZCBhbG9uZyBleHBsaWNpdGx5IHdpdGggb3B0aW9ucywgZG9uJ3QgbG9vayBpbnRvIHRoZSB2YXJpYWJsZSBiaW5kaW5ncyBmb3IgdGhlIHNhbWVcbiAgICAgICAgY29uc3QgbG9naW5JbmZvOiBhbnkgPSBvcHRpb25zLmxvZ2luSW5mbyB8fCBvcHRpb25zLmlucHV0IHx8IHZhcmlhYmxlLmRhdGFCaW5kaW5nO1xuXG4gICAgICAgIC8vIGNsaWVudCBzaWRlIHZhbGlkYXRpb25cbiAgICAgICAgY29uc3QgZXJyTXNnID0gdGhpcy52YWxpZGF0ZShsb2dpbkluZm8pO1xuXG4gICAgICAgIC8qIGlmIGVycm9yIG1lc3NhZ2UgaW5pdGlhbGl6ZWQsIHJldHVybiBlcnJvciAqL1xuICAgICAgICBpZiAoZXJyTXNnKSB7XG4gICAgICAgICAgICB0cmlnZ2VyRm4oZXJyb3IsIGVyck1zZyk7XG4gICAgICAgICAgICBpbml0aWF0ZUNhbGxiYWNrKCdvbkVycm9yJywgdmFyaWFibGUsIGVyck1zZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcmlnZ2VyaW5nICdvbkJlZm9yZVVwZGF0ZScgYW5kIGNvbnNpZGVyaW5nXG4gICAgICAgIGxldCBwYXJhbXM6IGFueSA9IGdldENsb25lZE9iamVjdChsb2dpbkluZm8pO1xuICAgICAgICBjb25zdCBvdXRwdXQ6IGFueSA9IGluaXRpYXRlQ2FsbGJhY2soVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5ULkJFRk9SRV9VUERBVEUsIHZhcmlhYmxlLCBwYXJhbXMpO1xuICAgICAgICBpZiAoaXNPYmplY3Qob3V0cHV0KSkge1xuICAgICAgICAgICAgcGFyYW1zID0gb3V0cHV0O1xuICAgICAgICB9IGVsc2UgaWYgKG91dHB1dCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRyaWdnZXJGbihlcnJvcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBtaWdyYXRlIG9sZCBwYXJhbXMgdG8gbmV3XG4gICAgICAgIHBhcmFtcyA9IHRoaXMubWlncmF0ZU9sZFBhcmFtcyhwYXJhbXMpO1xuXG4gICAgICAgIC8vIGdldCBwcmV2aW91c2x5IGxvZ2dlZEluVXNlciBuYW1lIChpZiBhbnkpXG4gICAgICAgIGNvbnN0IGxhc3RMb2dnZWRJblVzZXJuYW1lID0gZ2V0KHNlY3VyaXR5U2VydmljZS5nZXQoKSwgJ3VzZXJJbmZvLnVzZXJOYW1lJyk7XG5cbiAgICAgICAgdGhpcy5ub3RpZnlJbmZsaWdodCh2YXJpYWJsZSwgdHJ1ZSk7XG4gICAgICAgIHZhcmlhYmxlLnByb21pc2UgPSBzZWN1cml0eVNlcnZpY2UuYXBwTG9naW4ocGFyYW1zLCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIC8vIENsb3NpbmcgbG9naW4gZGlhbG9nIGFmdGVyIHN1Y2Nlc3NmdWwgbG9naW5cbiAgICAgICAgICAgIGRpYWxvZ1NlcnZpY2UuY2xvc2UoJ0NvbW1vbkxvZ2luRGlhbG9nJyk7XG5cbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgKiBHZXQgZnJlc2ggc2VjdXJpdHkgY29uZmlnXG4gICAgICAgICAgICAgKiBHZXQgQXBwIHZhcmlhYmxlcy4gaWYgbm90IGxvYWRlZFxuICAgICAgICAgICAgICogVXBkYXRlIGxvZ2dlZEluVXNlciB2YXJpYWJsZSB3aXRoIG5ldyB1c2VyIGRldGFpbHNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYXBwTWFuYWdlci5yZWxvYWRBcHBEYXRhKCkuXG4gICAgICAgICAgICB0aGVuKChjb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBFVkVOVDogT05fUkVTVUxUXG4gICAgICAgICAgICAgICAgaW5pdGlhdGVDYWxsYmFjayhWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQuUkVTVUxULCB2YXJpYWJsZSwgZ2V0KGNvbmZpZywgJ3VzZXJJbmZvJykpO1xuICAgICAgICAgICAgICAgIC8vIEVWRU5UOiBPTl9QUkVQQVJFU0VUREFUQVxuICAgICAgICAgICAgICAgIG5ld0RhdGFTZXQgPSBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5QUkVQQVJFX1NFVERBVEEsIHZhcmlhYmxlLCBnZXQoY29uZmlnLCAndXNlckluZm8nKSk7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0RhdGFTZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldHRpbmcgbmV3RGF0YVNldCBhcyB0aGUgcmVzcG9uc2UgdG8gc2VydmljZSB2YXJpYWJsZSBvblByZXBhcmVTZXREYXRhXG4gICAgICAgICAgICAgICAgICAgIHNldChjb25maWcsICd1c2VySW5mbycsIG5ld0RhdGFTZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBoaWRlIHRoZSBzcGlubmVyIGFmdGVyIGFsbCB0aGUgbi93IGNhbGxzIGFyZSBjb21wbGV0ZWRcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeUluZmxpZ2h0KHZhcmlhYmxlLCBmYWxzZSwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIHRyaWdnZXJGbihzdWNjZXNzKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRVZFTlQ6IE9OX1NVQ0NFU1NcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhdGVDYWxsYmFjayhWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQuU1VDQ0VTUywgdmFyaWFibGUsIGdldChjb25maWcsICd1c2VySW5mbycpKTtcblxuICAgICAgICAgICAgICAgICAgICAvKiBoYW5kbGUgbmF2aWdhdGlvbiBpZiBkZWZhdWx0U3VjY2Vzc0hhbmRsZXIgb24gdmFyaWFibGUgaXMgdHJ1ZSAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFyaWFibGUudXNlRGVmYXVsdFN1Y2Nlc3NIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1NhbWVVc2VyUmVsb2dnZWRJbiA9IGxhc3RMb2dnZWRJblVzZXJuYW1lID09PSBwYXJhbXNbJ2pfdXNlcm5hbWUnXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGZpcnN0IHRpbWUgdXNlciBsb2dnaW5nIGluIG9yIHNhbWUgdXNlciByZS1sb2dnaW5nIGluLCBleGVjdXRlIG4vdyBjYWxscyBmYWlsZWQgYmVmb3JlIGxvZ2dpbmcgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbGFzdExvZ2dlZEluVXNlcm5hbWUgfHwgaXNTYW1lVXNlclJlbG9nZ2VkSW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBNYW5hZ2VyLmV4ZWN1dGVTZXNzaW9uRmFpbHVyZVJlcXVlc3RzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXQgcmVkaXJlY3RUbyBwYWdlIGZyb20gVVJMIGFuZCByZW1vdmUgaXQgZnJvbSBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0UGFnZSA9IHNlY3VyaXR5U2VydmljZS5nZXRDdXJyZW50Um91dGVRdWVyeVBhcmFtKCdyZWRpcmVjdFRvJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9SZWRpcmVjdCA9IGFwcE1hbmFnZXIubm9SZWRpcmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHF1ZXJ5IHBhcmFtcyhwYWdlIHBhcmFtcyBvZiBwYWdlIGJlaW5nIHJlZGlyZWN0ZWQgdG8pIGFuZCBhcHBlbmQgdG8gdGhlIFVSTCBhZnRlciBsb2dpbi5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zT2JqID0gc2VjdXJpdHlTZXJ2aWNlLmdldFJlZGlyZWN0ZWRSb3V0ZVF1ZXJ5UGFyYW1zKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcmVkaXJlY3RUbyBwYXJhbSBpc24ndCByZXF1aXJlZCBhZnRlciBsb2dpblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5UGFyYW1zT2JqLnJlZGlyZWN0VG8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXNPYmoucmVkaXJlY3RUbztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcE1hbmFnZXIubm9SZWRpcmVjdChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmaXJzdCB0aW1lIGxvZ2luXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxhc3RMb2dnZWRJblVzZXJuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgcmVkaXJlY3QgcGFnZSBmb3VuZCwgbmF2aWdhdGUgdG8gaXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0VtcHR5KHJlZGlyZWN0UGFnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyU2VydmljZS5uYXZpZ2F0ZShbYC8ke3JlZGlyZWN0UGFnZX1gXSwgeyBxdWVyeVBhcmFtcyA6IHF1ZXJ5UGFyYW1zT2JqfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbm9SZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW1wbHkgcmVzZXQgdGhlIFVSTCwgcm91dGUgaGFuZGxpbmcgd2lsbCB0YWtlIGNhcmUgb2YgcGFnZSByZWRpcmVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlKFtgL2BdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9naW4gYWZ0ZXIgYSBzZXNzaW9uIHRpbWVvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiByZWRpcmVjdCBwYWdlIGZvdW5kIGFuZCBzYW1lIHVzZXIgbG9ncyBpbiBhZ2FpbiwganVzdCBuYXZpZ2F0ZSB0byByZWRpcmVjdCBwYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0VtcHR5KHJlZGlyZWN0UGFnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2FtZSB1c2VyIGxvZ3MgaW4gYWdhaW4sIGp1c3QgcmVkaXJlY3QgdG8gdGhlIHJlZGlyZWN0UGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdExvZ2dlZEluVXNlcm5hbWUgPT09IHBhcmFtc1snal91c2VybmFtZSddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlKFtgLyR7cmVkaXJlY3RQYWdlfWBdLCB7IHF1ZXJ5UGFyYW1zIDogcXVlcnlQYXJhbXNPYmp9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZmZlcmVudCB1c2VyIGxvZ3MgaW4sIHJlbG9hZCB0aGUgYXBwIGFuZCBkaXNjYXJkIHRoZSByZWRpcmVjdFBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0FwcEJhc2VQYXRoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWN1cml0eUNvbmZpZyA9IHNlY3VyaXR5U2VydmljZS5nZXQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25UaW1lb3V0TG9naW5Nb2RlID0gZ2V0KHNlY3VyaXR5Q29uZmlnLCAnbG9naW5Db25maWcuc2Vzc2lvblRpbWVvdXQudHlwZScpIHx8ICdQQUdFJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgaW4gZGlhbG9nIG1vZGUgYW5kIGEgbmV3IHVzZXIgbG9ncyBpbiBPUiBsb2dpbiBoYXBwZW5pbmcgdGhyb3VnaCBwYWdlLCByZWxvYWQgdGhlIGFwcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU2FtZVVzZXJSZWxvZ2dlZEluIHx8IHNlc3Npb25UaW1lb3V0TG9naW5Nb2RlICE9PSAnRElBTE9HJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvQXBwQmFzZVBhdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIEVWRU5UOiBPTl9DQU5fVVBEQVRFXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYXRlQ2FsbGJhY2soVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5ULkNBTl9VUERBVEUsIHZhcmlhYmxlLCBnZXQoY29uZmlnLCAndXNlckluZm8nKSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCAoZSkgPT4ge1xuICAgICAgICAgICAgLy8gRVZFTlQ6IE9OX1JFU1VMVFxuICAgICAgICAgICAgaW5pdGlhdGVDYWxsYmFjayhWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQuUkVTVUxULCB2YXJpYWJsZSwgZSk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUluZmxpZ2h0KHZhcmlhYmxlLCBmYWxzZSwgZSk7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1zZyA9IGUuZXJyb3IgfHwgJ0ludmFsaWQgY3JlZGVudGlhbHMuJztcbiAgICAgICAgICAgIGNvbnN0IHhock9iaiA9IGUuZGV0YWlscztcbiAgICAgICAgICAgIC8qIGlmIGluIFJVTiBtb2RlLCB0cmlnZ2VyIGVycm9yIGV2ZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlIHZhcmlhYmxlICovXG4gICAgICAgICAgICBpZiAoQ09OU1RBTlRTLmlzUnVuTW9kZSkge1xuICAgICAgICAgICAgICAgIGluaXRpYXRlQ2FsbGJhY2soJ29uRXJyb3InLCB2YXJpYWJsZSwgZXJyb3JNc2csIHhock9iaiwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cmlnZ2VyRm4oZXJyb3IsIGVycm9yTXNnLCB4aHJPYmopO1xuICAgICAgICAgICAgLy8gRVZFTlQ6IE9OX0NBTl9VUERBVEVcbiAgICAgICAgICAgIGluaXRpYXRlQ2FsbGJhY2soVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5ULkNBTl9VUERBVEUsIHZhcmlhYmxlLCBlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseActionManager } from './base-action.manager';
|
|
2
2
|
import { initiateCallback, toasterService, dialogService } from '../../util/variable/variables.utils';
|
|
3
3
|
import { getWmProjectProperties } from '@wm/core';
|
|
4
|
+
import { capitalize, isString } from "lodash-es";
|
|
4
5
|
export class NotificationActionManager extends BaseActionManager {
|
|
5
6
|
onToasterClick(variable) {
|
|
6
7
|
initiateCallback('onClick', variable, '');
|
|
@@ -54,7 +55,7 @@ export class NotificationActionManager extends BaseActionManager {
|
|
|
54
55
|
notifyViaDialog(variable, options) {
|
|
55
56
|
const isPrefabType = getWmProjectProperties().type === 'PREFAB';
|
|
56
57
|
const dialogPrefix = isPrefabType ? 'Prefab' : 'Common';
|
|
57
|
-
const dialogId = dialogPrefix +
|
|
58
|
+
const dialogId = dialogPrefix + capitalize(variable.operation) + 'Dialog';
|
|
58
59
|
const closeCallBackFn = () => initiateCallback('onOk', variable, options.data);
|
|
59
60
|
let dialogConfig = this.getDialogConfig(variable, options, dialogId, closeCallBackFn);
|
|
60
61
|
dialogConfig = isPrefabType ? dialogConfig : { notification: dialogConfig };
|
|
@@ -75,7 +76,7 @@ export class NotificationActionManager extends BaseActionManager {
|
|
|
75
76
|
return variable.dataBinding.text;
|
|
76
77
|
}
|
|
77
78
|
setMessage(variable, text) {
|
|
78
|
-
if (
|
|
79
|
+
if (isString(text)) {
|
|
79
80
|
variable.dataBinding.text = text;
|
|
80
81
|
}
|
|
81
82
|
return variable.dataBinding.text;
|
|
@@ -84,7 +85,7 @@ export class NotificationActionManager extends BaseActionManager {
|
|
|
84
85
|
return variable.dataBinding.okButtonText;
|
|
85
86
|
}
|
|
86
87
|
setOkButtonText(variable, text) {
|
|
87
|
-
if (
|
|
88
|
+
if (isString(text)) {
|
|
88
89
|
variable.dataBinding.okButtonText = text;
|
|
89
90
|
}
|
|
90
91
|
return variable.dataBinding.okButtonText;
|
|
@@ -100,7 +101,7 @@ export class NotificationActionManager extends BaseActionManager {
|
|
|
100
101
|
return variable.dataBinding.class;
|
|
101
102
|
}
|
|
102
103
|
setToasterClass(variable, type) {
|
|
103
|
-
if (
|
|
104
|
+
if (isString(type)) {
|
|
104
105
|
variable.dataBinding.class = type;
|
|
105
106
|
}
|
|
106
107
|
return variable.dataBinding.class;
|
|
@@ -109,7 +110,7 @@ export class NotificationActionManager extends BaseActionManager {
|
|
|
109
110
|
return variable.dataBinding.class;
|
|
110
111
|
}
|
|
111
112
|
setToasterPosition(variable, position) {
|
|
112
|
-
if (
|
|
113
|
+
if (isString(position)) {
|
|
113
114
|
variable.dataBinding.position = position;
|
|
114
115
|
}
|
|
115
116
|
return variable.dataBinding.position;
|
|
@@ -118,7 +119,7 @@ export class NotificationActionManager extends BaseActionManager {
|
|
|
118
119
|
return variable.dataBinding.alerttype;
|
|
119
120
|
}
|
|
120
121
|
setAlertType(variable, alerttype) {
|
|
121
|
-
if (
|
|
122
|
+
if (isString(alerttype)) {
|
|
122
123
|
variable.dataBinding.alerttype = alerttype;
|
|
123
124
|
}
|
|
124
125
|
return variable.dataBinding.alerttype;
|
|
@@ -127,10 +128,10 @@ export class NotificationActionManager extends BaseActionManager {
|
|
|
127
128
|
return variable.dataBinding.cancelButtonText;
|
|
128
129
|
}
|
|
129
130
|
setCancelButtonText(variable, text) {
|
|
130
|
-
if (
|
|
131
|
+
if (isString(text)) {
|
|
131
132
|
variable.dataBinding.cancelButtonText = text;
|
|
132
133
|
}
|
|
133
134
|
return variable.dataBinding.cancelButtonText;
|
|
134
135
|
}
|
|
135
136
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWFjdGlvbi5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFyaWFibGVzL3NyYy9tYW5hZ2VyL2FjdGlvbi9ub3RpZmljYXRpb24tYWN0aW9uLm1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlCQUFpQjtJQUVwRCxjQUFjLENBQUMsUUFBUTtRQUMzQixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxhQUFhLENBQUMsUUFBUTtRQUMxQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTztRQUN0QyxNQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQzlFLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUNuRCxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFDckIsYUFBYSxHQUFHLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLElBQUksY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDekgsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUN2QyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQzVFLE9BQU8sQ0FBQztRQUVaLFdBQVc7UUFDWCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDWixRQUFRLEdBQUcsQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sS0FBSyxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7WUFDekYsT0FBTyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUTtnQkFDN0YsYUFBYSxFQUFFLFFBQVEsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ2xJLENBQUM7UUFFRCxZQUFZO1FBQ1osSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFFLENBQUM7UUFDeEUsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBRSxDQUFDO1FBQzFFLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWU7UUFDaEUsT0FBTztZQUNILE9BQU8sRUFBRyxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSztZQUNyRCxNQUFNLEVBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDckQsY0FBYyxFQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLElBQUksSUFBSTtZQUNsRixrQkFBa0IsRUFBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRO1lBQ2xHLFdBQVcsRUFBRyxPQUFPLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLGFBQWE7WUFDbEYsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDUCwrREFBK0Q7Z0JBQy9ELGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckQsbUVBQW1FO2dCQUNuRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDVixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4RCxDQUFDO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxlQUFlLENBQUMsUUFBUSxFQUFFLE9BQU87UUFDckMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO1FBQ2hFLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDeEQsTUFBTSxRQUFRLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUM1RSxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUcvRSxJQUFJLFlBQVksR0FBUSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzNGLFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLENBQUM7UUFDNUUsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTCxtSUFBbUk7SUFFL0gsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUs7UUFDcEMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUNyQyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUV4QixJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBUTtRQUNmLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSTtRQUNyQixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQixRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDckMsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFRO1FBQ3BCLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDN0MsQ0FBQztJQUNELGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSTtRQUMxQixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQixRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQVE7UUFDdkIsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFFBQVE7UUFDakMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFDekMsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFRO1FBQ3BCLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSTtRQUMxQixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQixRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQVE7UUFDdkIsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFFBQVE7UUFDakMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdkIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBUTtRQUNqQixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBUSxFQUFFLFNBQVM7UUFDNUIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDeEIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFRO1FBQ3hCLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUk7UUFDOUIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbkIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQWN0aW9uTWFuYWdlciB9IGZyb20gJy4vYmFzZS1hY3Rpb24ubWFuYWdlcic7XG5pbXBvcnQgeyBWQVJJQUJMRV9DT05TVEFOVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdmFyaWFibGVzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBpbml0aWF0ZUNhbGxiYWNrLCB0b2FzdGVyU2VydmljZSwgZGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWwvdmFyaWFibGUvdmFyaWFibGVzLnV0aWxzJztcbmltcG9ydCB7IGdldFdtUHJvamVjdFByb3BlcnRpZXMgfSBmcm9tICdAd20vY29yZSc7XG5kZWNsYXJlIGNvbnN0IF87XG5cbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25BY3Rpb25NYW5hZ2VyIGV4dGVuZHMgQmFzZUFjdGlvbk1hbmFnZXIge1xuXG4gICAgcHJpdmF0ZSBvblRvYXN0ZXJDbGljayh2YXJpYWJsZSkge1xuICAgICAgICBpbml0aWF0ZUNhbGxiYWNrKCdvbkNsaWNrJywgdmFyaWFibGUsICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVG9hc3RlckhpZGUodmFyaWFibGUpIHtcbiAgICAgICAgaW5pdGlhdGVDYWxsYmFjaygnb25IaWRlJywgdmFyaWFibGUsICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5vdGlmeVZpYVRvYXN0ZXIodmFyaWFibGUsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IChvcHRpb25zLmNsYXNzIHx8IHZhcmlhYmxlLmRhdGFCaW5kaW5nLmNsYXNzIHx8ICdpbmZvJykudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIGJvZHkgPSBvcHRpb25zLm1lc3NhZ2UgfHwgdmFyaWFibGUuZGF0YUJpbmRpbmcudGV4dCxcbiAgICAgICAgICAgIHRpdGxlID0gb3B0aW9ucy50aXRsZSxcbiAgICAgICAgICAgIHBvc2l0aW9uQ2xhc3MgPSAndG9hc3QtJyArIChvcHRpb25zLnBvc2l0aW9uIHx8IHZhcmlhYmxlLmRhdGFCaW5kaW5nLnRvYXN0ZXJQb3NpdGlvbiB8fCAnYm90dG9tIHJpZ2h0JykucmVwbGFjZSgnICcsICctJyksXG4gICAgICAgICAgICBwYXJ0aWFsUGFnZSA9IHZhcmlhYmxlLmRhdGFCaW5kaW5nLnBhZ2UsXG4gICAgICAgICAgICBERUZBVUxUX0RVUkFUSU9OID0gMzAwMDtcbiAgICAgICAgbGV0IGR1cmF0aW9uID0gcGFyc2VJbnQob3B0aW9ucy5kdXJhdGlvbiB8fCB2YXJpYWJsZS5kYXRhQmluZGluZy5kdXJhdGlvbiwgbnVsbCksXG4gICAgICAgICAgICB0b2FzdGVyO1xuXG4gICAgICAgIC8vIGR1cmF0aW9uXG4gICAgICAgIGlmICghZHVyYXRpb24pIHtcbiAgICAgICAgICAgIGR1cmF0aW9uID0gKGR1cmF0aW9uICE9PSAwICYmIHR5cGUgPT09ICdzdWNjZXNzJykgPyBERUZBVUxUX0RVUkFUSU9OIDogMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFyaWFibGUuZGF0YUJpbmRpbmcuY29udGVudCAmJiB2YXJpYWJsZS5kYXRhQmluZGluZy5jb250ZW50ID09PSAncGFnZScgJiYgcGFydGlhbFBhZ2UpIHtcbiAgICAgICAgICAgIHRvYXN0ZXIgPSB0b2FzdGVyU2VydmljZS5zaG93Q3VzdG9tKHBhcnRpYWxQYWdlLCB7cG9zaXRpb25DbGFzczogcG9zaXRpb25DbGFzcywgdGltZU91dDogZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgcGFydGlhbFBhcmFtczogdmFyaWFibGUuX2JpbmRkYXRhU2V0LCBjb250ZXh0OiB2YXJpYWJsZS5fY29udGV4dH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG9hc3RlciA9IHRvYXN0ZXJTZXJ2aWNlLnNob3codHlwZSwgdGl0bGUsIGJvZHkgfHwgbnVsbCwge3Bvc2l0aW9uQ2xhc3M6IHBvc2l0aW9uQ2xhc3MsIHRpbWVPdXQ6IGR1cmF0aW9uLCBlbmFibGVIdG1sOiB0cnVlfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjYWxsYmFja3NcbiAgICAgICAgaWYgKHZhcmlhYmxlLm9uQ2xpY2spIHtcbiAgICAgICAgICAgIHRvYXN0ZXIub25UYXAuc3Vic2NyaWJlKCB0aGlzLm9uVG9hc3RlckNsaWNrLmJpbmQodGhpcywgdmFyaWFibGUpICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhcmlhYmxlLm9uSGlkZSkge1xuICAgICAgICAgICAgdG9hc3Rlci5vbkhpZGRlbi5zdWJzY3JpYmUoIHRoaXMub25Ub2FzdGVySGlkZS5iaW5kKHRoaXMsIHZhcmlhYmxlKSApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREaWFsb2dDb25maWcodmFyaWFibGUsIG9wdGlvbnMsIGRpYWxvZ0lkLCBjbG9zZUNhbGxCYWNrRm4pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICd0aXRsZScgOiBvcHRpb25zLnRpdGxlIHx8IHZhcmlhYmxlLmRhdGFCaW5kaW5nLnRpdGxlLFxuICAgICAgICAgICAgJ3RleHQnIDogb3B0aW9ucy5tZXNzYWdlIHx8IHZhcmlhYmxlLmRhdGFCaW5kaW5nLnRleHQsXG4gICAgICAgICAgICAnb2tCdXR0b25UZXh0JyA6IG9wdGlvbnMub2tCdXR0b25UZXh0IHx8IHZhcmlhYmxlLmRhdGFCaW5kaW5nLm9rQnV0dG9uVGV4dCB8fCAnT0snLFxuICAgICAgICAgICAgJ2NhbmNlbEJ1dHRvblRleHQnIDogb3B0aW9ucy5jYW5jZWxCdXR0b25UZXh0IHx8IHZhcmlhYmxlLmRhdGFCaW5kaW5nLmNhbmNlbEJ1dHRvblRleHQgfHwgJ0NBTkNFTCcsXG4gICAgICAgICAgICAnYWxlcnR0eXBlJyA6IG9wdGlvbnMuYWxlcnR0eXBlIHx8IHZhcmlhYmxlLmRhdGFCaW5kaW5nLmFsZXJ0dHlwZSB8fCAnaW5mb3JtYXRpb24nLFxuICAgICAgICAgICAgb25PazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIENsb3NlIHRoZSBhY3Rpb24gZGlhbG9nIGFmdGVyIHRyaWdnZXJpbmcgb25PayBjYWxsYmFjayBldmVudFxuICAgICAgICAgICAgICAgIGRpYWxvZ1NlcnZpY2UuY2xvc2UoZGlhbG9nSWQsIHVuZGVmaW5lZCwgY2xvc2VDYWxsQmFja0ZuKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNhbmNlbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGluaXRpYXRlQ2FsbGJhY2soJ29uQ2FuY2VsJywgdmFyaWFibGUsIG9wdGlvbnMuZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gQ2xvc2UgdGhlIGFjdGlvbiBkaWFsb2cgYWZ0ZXIgdHJpZ2dlcmluZyBvbkNhbmNlbCBjYWxsYmFjayBldmVudFxuICAgICAgICAgICAgICAgIGRpYWxvZ1NlcnZpY2UuY2xvc2UoZGlhbG9nSWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25DbG9zZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGluaXRpYXRlQ2FsbGJhY2soJ29uQ2xvc2UnLCB2YXJpYWJsZSwgb3B0aW9ucy5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5vdGlmeVZpYURpYWxvZyh2YXJpYWJsZSwgb3B0aW9ucykge1xuICAgICAgICBjb25zdCBpc1ByZWZhYlR5cGUgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkudHlwZSA9PT0gJ1BSRUZBQic7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1ByZWZpeCA9IGlzUHJlZmFiVHlwZSA/ICdQcmVmYWInIDogJ0NvbW1vbic7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0lkID0gZGlhbG9nUHJlZml4ICsgXy5jYXBpdGFsaXplKHZhcmlhYmxlLm9wZXJhdGlvbikgKyAnRGlhbG9nJztcbiAgICAgICAgY29uc3QgY2xvc2VDYWxsQmFja0ZuID0gKCkgPT4gaW5pdGlhdGVDYWxsYmFjaygnb25PaycsIHZhcmlhYmxlLCBvcHRpb25zLmRhdGEpO1xuXG5cbiAgICAgICAgbGV0IGRpYWxvZ0NvbmZpZzogYW55ID0gdGhpcy5nZXREaWFsb2dDb25maWcodmFyaWFibGUsIG9wdGlvbnMsIGRpYWxvZ0lkLCBjbG9zZUNhbGxCYWNrRm4pO1xuICAgICAgICBkaWFsb2dDb25maWcgPSBpc1ByZWZhYlR5cGUgPyBkaWFsb2dDb25maWcgOiB7IG5vdGlmaWNhdGlvbjogZGlhbG9nQ29uZmlnIH07XG4gICAgICAgIGRpYWxvZ1NlcnZpY2Uub3BlbihkaWFsb2dJZCwgdW5kZWZpbmVkLCBkaWFsb2dDb25maWcpO1xuICAgIH1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogUFVCTElDICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuICAgIG5vdGlmeSh2YXJpYWJsZSwgb3B0aW9ucywgc3VjY2VzcywgZXJyb3IpIHtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uID0gdmFyaWFibGUub3BlcmF0aW9uO1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICBpZiAob3BlcmF0aW9uID09PSAndG9hc3QnKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeVZpYVRvYXN0ZXIodmFyaWFibGUsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlWaWFEaWFsb2codmFyaWFibGUsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TWVzc2FnZSh2YXJpYWJsZSkge1xuICAgICAgICByZXR1cm4gdmFyaWFibGUuZGF0YUJpbmRpbmcudGV4dDtcbiAgICB9XG5cbiAgICBzZXRNZXNzYWdlKHZhcmlhYmxlLCB0ZXh0KSB7XG4gICAgICAgIGlmIChfLmlzU3RyaW5nKHRleHQpKSB7XG4gICAgICAgICAgICB2YXJpYWJsZS5kYXRhQmluZGluZy50ZXh0ID0gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFyaWFibGUuZGF0YUJpbmRpbmcudGV4dDtcbiAgICB9XG5cbiAgICBnZXRPa0J1dHRvblRleHQodmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLm9rQnV0dG9uVGV4dDtcbiAgICB9XG4gICAgc2V0T2tCdXR0b25UZXh0KHZhcmlhYmxlLCB0ZXh0KSB7XG4gICAgICAgIGlmIChfLmlzU3RyaW5nKHRleHQpKSB7XG4gICAgICAgICAgICB2YXJpYWJsZS5kYXRhQmluZGluZy5va0J1dHRvblRleHQgPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5va0J1dHRvblRleHQ7XG4gICAgfVxuXG4gICAgZ2V0VG9hc3RlckR1cmF0aW9uKHZhcmlhYmxlKSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5kdXJhdGlvbjtcbiAgICB9XG5cbiAgICBzZXRUb2FzdGVyRHVyYXRpb24odmFyaWFibGUsIGR1cmF0aW9uKSB7XG4gICAgICAgIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmR1cmF0aW9uID0gZHVyYXRpb247XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5kdXJhdGlvbjtcbiAgICB9XG5cbiAgICBnZXRUb2FzdGVyQ2xhc3ModmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmNsYXNzO1xuICAgIH1cblxuICAgIHNldFRvYXN0ZXJDbGFzcyh2YXJpYWJsZSwgdHlwZSkge1xuICAgICAgICBpZiAoXy5pc1N0cmluZyh0eXBlKSkge1xuICAgICAgICAgICAgdmFyaWFibGUuZGF0YUJpbmRpbmcuY2xhc3MgPSB0eXBlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5jbGFzcztcbiAgICB9XG5cbiAgICBnZXRUb2FzdGVyUG9zaXRpb24odmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmNsYXNzO1xuICAgIH1cblxuICAgIHNldFRvYXN0ZXJQb3NpdGlvbih2YXJpYWJsZSwgcG9zaXRpb24pIHtcbiAgICAgICAgaWYgKF8uaXNTdHJpbmcocG9zaXRpb24pKSB7XG4gICAgICAgICAgICB2YXJpYWJsZS5kYXRhQmluZGluZy5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5wb3NpdGlvbjtcbiAgICB9XG5cbiAgICBnZXRBbGVydFR5cGUodmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmFsZXJ0dHlwZTtcbiAgICB9XG5cbiAgICBzZXRBbGVydFR5cGUodmFyaWFibGUsIGFsZXJ0dHlwZSkge1xuICAgICAgICBpZiAoXy5pc1N0cmluZyhhbGVydHR5cGUpKSB7XG4gICAgICAgICAgICB2YXJpYWJsZS5kYXRhQmluZGluZy5hbGVydHR5cGUgPSBhbGVydHR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmFsZXJ0dHlwZTtcbiAgICB9XG5cbiAgICBnZXRDYW5jZWxCdXR0b25UZXh0KHZhcmlhYmxlKSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5jYW5jZWxCdXR0b25UZXh0O1xuICAgIH1cblxuICAgIHNldENhbmNlbEJ1dHRvblRleHQodmFyaWFibGUsIHRleHQpIHtcbiAgICAgICAgaWYgKF8uaXNTdHJpbmcodGV4dCkpIHtcbiAgICAgICAgICAgIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmNhbmNlbEJ1dHRvblRleHQgPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5jYW5jZWxCdXR0b25UZXh0O1xuICAgIH1cbn1cbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWFjdGlvbi5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFyaWFibGVzL3NyYy9tYW5hZ2VyL2FjdGlvbi9ub3RpZmljYXRpb24tYWN0aW9uLm1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFL0MsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlCQUFpQjtJQUVwRCxjQUFjLENBQUMsUUFBUTtRQUMzQixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxhQUFhLENBQUMsUUFBUTtRQUMxQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTztRQUN0QyxNQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQzlFLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUNuRCxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFDckIsYUFBYSxHQUFHLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLElB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LENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO0lBQ2pELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBY3Rpb25NYW5hZ2VyIH0gZnJvbSAnLi9iYXNlLWFjdGlvbi5tYW5hZ2VyJztcbmltcG9ydCB7IGluaXRpYXRlQ2FsbGJhY2ssIHRvYXN0ZXJTZXJ2aWNlLCBkaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbC92YXJpYWJsZS92YXJpYWJsZXMudXRpbHMnO1xuaW1wb3J0IHsgZ2V0V21Qcm9qZWN0UHJvcGVydGllcyB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7Y2FwaXRhbGl6ZSwgaXNTdHJpbmd9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkFjdGlvbk1hbmFnZXIgZXh0ZW5kcyBCYXNlQWN0aW9uTWFuYWdlciB7XG5cbiAgICBwcml2YXRlIG9uVG9hc3RlckNsaWNrKHZhcmlhYmxlKSB7XG4gICAgICAgIGluaXRpYXRlQ2FsbGJhY2soJ29uQ2xpY2snLCB2YXJpYWJsZSwgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Ub2FzdGVySGlkZSh2YXJpYWJsZSkge1xuICAgICAgICBpbml0aWF0ZUNhbGxiYWNrKCdvbkhpZGUnLCB2YXJpYWJsZSwgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbm90aWZ5VmlhVG9hc3Rlcih2YXJpYWJsZSwgb3B0aW9ucykge1xuICAgICAgICBjb25zdCB0eXBlID0gKG9wdGlvbnMuY2xhc3MgfHwgdmFyaWFibGUuZGF0YUJpbmRpbmcuY2xhc3MgfHwgJ2luZm8nKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgYm9keSA9IG9wdGlvbnMubWVzc2FnZSB8fCB2YXJpYWJsZS5kYXRhQmluZGluZy50ZXh0LFxuICAgICAgICAgICAgdGl0bGUgPSBvcHRpb25zLnRpdGxlLFxuICAgICAgICAgICAgcG9zaXRpb25DbGFzcyA9ICd0b2FzdC0nICsgKG9wdGlvbnMucG9zaXRpb24gfHwgdmFyaWFibGUuZGF0YUJpbmRpbmcudG9hc3RlclBvc2l0aW9uIHx8ICdib3R0b20gcmlnaHQnKS5yZXBsYWNlKCcgJywgJy0nKSxcbiAgICAgICAgICAgIHBhcnRpYWxQYWdlID0gdmFyaWFibGUuZGF0YUJpbmRpbmcucGFnZSxcbiAgICAgICAgICAgIERFRkFVTFRfRFVSQVRJT04gPSAzMDAwO1xuICAgICAgICBsZXQgZHVyYXRpb24gPSBwYXJzZUludChvcHRpb25zLmR1cmF0aW9uIHx8IHZhcmlhYmxlLmRhdGFCaW5kaW5nLmR1cmF0aW9uLCBudWxsKSxcbiAgICAgICAgICAgIHRvYXN0ZXI7XG5cbiAgICAgICAgLy8gZHVyYXRpb25cbiAgICAgICAgaWYgKCFkdXJhdGlvbikge1xuICAgICAgICAgICAgZHVyYXRpb24gPSAoZHVyYXRpb24gIT09IDAgJiYgdHlwZSA9PT0gJ3N1Y2Nlc3MnKSA/IERFRkFVTFRfRFVSQVRJT04gOiAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YXJpYWJsZS5kYXRhQmluZGluZy5jb250ZW50ICYmIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmNvbnRlbnQgPT09ICdwYWdlJyAmJiBwYXJ0aWFsUGFnZSkge1xuICAgICAgICAgICAgdG9hc3RlciA9IHRvYXN0ZXJTZXJ2aWNlLnNob3dDdXN0b20ocGFydGlhbFBhZ2UsIHtwb3NpdGlvbkNsYXNzOiBwb3NpdGlvbkNsYXNzLCB0aW1lT3V0OiBkdXJhdGlvbixcbiAgICAgICAgICAgICAgICBwYXJ0aWFsUGFyYW1zOiB2YXJpYWJsZS5fYmluZGRhdGFTZXQsIGNvbnRleHQ6IHZhcmlhYmxlLl9jb250ZXh0fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b2FzdGVyID0gdG9hc3RlclNlcnZpY2Uuc2hvdyh0eXBlLCB0aXRsZSwgYm9keSB8fCBudWxsLCB7cG9zaXRpb25DbGFzczogcG9zaXRpb25DbGFzcywgdGltZU91dDogZHVyYXRpb24sIGVuYWJsZUh0bWw6IHRydWV9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNhbGxiYWNrc1xuICAgICAgICBpZiAodmFyaWFibGUub25DbGljaykge1xuICAgICAgICAgICAgdG9hc3Rlci5vblRhcC5zdWJzY3JpYmUoIHRoaXMub25Ub2FzdGVyQ2xpY2suYmluZCh0aGlzLCB2YXJpYWJsZSkgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFyaWFibGUub25IaWRlKSB7XG4gICAgICAgICAgICB0b2FzdGVyLm9uSGlkZGVuLnN1YnNjcmliZSggdGhpcy5vblRvYXN0ZXJIaWRlLmJpbmQodGhpcywgdmFyaWFibGUpICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERpYWxvZ0NvbmZpZyh2YXJpYWJsZSwgb3B0aW9ucywgZGlhbG9nSWQsIGNsb3NlQ2FsbEJhY2tGbikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3RpdGxlJyA6IG9wdGlvbnMudGl0bGUgfHwgdmFyaWFibGUuZGF0YUJpbmRpbmcudGl0bGUsXG4gICAgICAgICAgICAndGV4dCcgOiBvcHRpb25zLm1lc3NhZ2UgfHwgdmFyaWFibGUuZGF0YUJpbmRpbmcudGV4dCxcbiAgICAgICAgICAgICdva0J1dHRvblRleHQnIDogb3B0aW9ucy5va0J1dHRvblRleHQgfHwgdmFyaWFibGUuZGF0YUJpbmRpbmcub2tCdXR0b25UZXh0IHx8ICdPSycsXG4gICAgICAgICAgICAnY2FuY2VsQnV0dG9uVGV4dCcgOiBvcHRpb25zLmNhbmNlbEJ1dHRvblRleHQgfHwgdmFyaWFibGUuZGF0YUJpbmRpbmcuY2FuY2VsQnV0dG9uVGV4dCB8fCAnQ0FOQ0VMJyxcbiAgICAgICAgICAgICdhbGVydHR5cGUnIDogb3B0aW9ucy5hbGVydHR5cGUgfHwgdmFyaWFibGUuZGF0YUJpbmRpbmcuYWxlcnR0eXBlIHx8ICdpbmZvcm1hdGlvbicsXG4gICAgICAgICAgICBvbk9rOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQ2xvc2UgdGhlIGFjdGlvbiBkaWFsb2cgYWZ0ZXIgdHJpZ2dlcmluZyBvbk9rIGNhbGxiYWNrIGV2ZW50XG4gICAgICAgICAgICAgICAgZGlhbG9nU2VydmljZS5jbG9zZShkaWFsb2dJZCwgdW5kZWZpbmVkLCBjbG9zZUNhbGxCYWNrRm4pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ2FuY2VsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaW5pdGlhdGVDYWxsYmFjaygnb25DYW5jZWwnLCB2YXJpYWJsZSwgb3B0aW9ucy5kYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBDbG9zZSB0aGUgYWN0aW9uIGRpYWxvZyBhZnRlciB0cmlnZ2VyaW5nIG9uQ2FuY2VsIGNhbGxiYWNrIGV2ZW50XG4gICAgICAgICAgICAgICAgZGlhbG9nU2VydmljZS5jbG9zZShkaWFsb2dJZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNsb3NlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaW5pdGlhdGVDYWxsYmFjaygnb25DbG9zZScsIHZhcmlhYmxlLCBvcHRpb25zLmRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgbm90aWZ5VmlhRGlhbG9nKHZhcmlhYmxlLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGlzUHJlZmFiVHlwZSA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS50eXBlID09PSAnUFJFRkFCJztcbiAgICAgICAgY29uc3QgZGlhbG9nUHJlZml4ID0gaXNQcmVmYWJUeXBlID8gJ1ByZWZhYicgOiAnQ29tbW9uJztcbiAgICAgICAgY29uc3QgZGlhbG9nSWQgPSBkaWFsb2dQcmVmaXggKyBjYXBpdGFsaXplKHZhcmlhYmxlLm9wZXJhdGlvbikgKyAnRGlhbG9nJztcbiAgICAgICAgY29uc3QgY2xvc2VDYWxsQmFja0ZuID0gKCkgPT4gaW5pdGlhdGVDYWxsYmFjaygnb25PaycsIHZhcmlhYmxlLCBvcHRpb25zLmRhdGEpO1xuXG5cbiAgICAgICAgbGV0IGRpYWxvZ0NvbmZpZzogYW55ID0gdGhpcy5nZXREaWFsb2dDb25maWcodmFyaWFibGUsIG9wdGlvbnMsIGRpYWxvZ0lkLCBjbG9zZUNhbGxCYWNrRm4pO1xuICAgICAgICBkaWFsb2dDb25maWcgPSBpc1ByZWZhYlR5cGUgPyBkaWFsb2dDb25maWcgOiB7IG5vdGlmaWNhdGlvbjogZGlhbG9nQ29uZmlnIH07XG4gICAgICAgIGRpYWxvZ1NlcnZpY2Uub3BlbihkaWFsb2dJZCwgdW5kZWZpbmVkLCBkaWFsb2dDb25maWcpO1xuICAgIH1cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogUFVCTElDICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuICAgIG5vdGlmeSh2YXJpYWJsZSwgb3B0aW9ucywgc3VjY2VzcywgZXJyb3IpIHtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uID0gdmFyaWFibGUub3BlcmF0aW9uO1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICBpZiAob3BlcmF0aW9uID09PSAndG9hc3QnKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeVZpYVRvYXN0ZXIodmFyaWFibGUsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlWaWFEaWFsb2codmFyaWFibGUsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TWVzc2FnZSh2YXJpYWJsZSkge1xuICAgICAgICByZXR1cm4gdmFyaWFibGUuZGF0YUJpbmRpbmcudGV4dDtcbiAgICB9XG5cbiAgICBzZXRNZXNzYWdlKHZhcmlhYmxlLCB0ZXh0KSB7XG4gICAgICAgIGlmIChpc1N0cmluZyh0ZXh0KSkge1xuICAgICAgICAgICAgdmFyaWFibGUuZGF0YUJpbmRpbmcudGV4dCA9IHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLnRleHQ7XG4gICAgfVxuXG4gICAgZ2V0T2tCdXR0b25UZXh0KHZhcmlhYmxlKSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5va0J1dHRvblRleHQ7XG4gICAgfVxuICAgIHNldE9rQnV0dG9uVGV4dCh2YXJpYWJsZSwgdGV4dCkge1xuICAgICAgICBpZiAoaXNTdHJpbmcodGV4dCkpIHtcbiAgICAgICAgICAgIHZhcmlhYmxlLmRhdGFCaW5kaW5nLm9rQnV0dG9uVGV4dCA9IHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLm9rQnV0dG9uVGV4dDtcbiAgICB9XG5cbiAgICBnZXRUb2FzdGVyRHVyYXRpb24odmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmR1cmF0aW9uO1xuICAgIH1cblxuICAgIHNldFRvYXN0ZXJEdXJhdGlvbih2YXJpYWJsZSwgZHVyYXRpb24pIHtcbiAgICAgICAgdmFyaWFibGUuZGF0YUJpbmRpbmcuZHVyYXRpb24gPSBkdXJhdGlvbjtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmR1cmF0aW9uO1xuICAgIH1cblxuICAgIGdldFRvYXN0ZXJDbGFzcyh2YXJpYWJsZSkge1xuICAgICAgICByZXR1cm4gdmFyaWFibGUuZGF0YUJpbmRpbmcuY2xhc3M7XG4gICAgfVxuXG4gICAgc2V0VG9hc3RlckNsYXNzKHZhcmlhYmxlLCB0eXBlKSB7XG4gICAgICAgIGlmIChpc1N0cmluZyh0eXBlKSkge1xuICAgICAgICAgICAgdmFyaWFibGUuZGF0YUJpbmRpbmcuY2xhc3MgPSB0eXBlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5jbGFzcztcbiAgICB9XG5cbiAgICBnZXRUb2FzdGVyUG9zaXRpb24odmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmNsYXNzO1xuICAgIH1cblxuICAgIHNldFRvYXN0ZXJQb3NpdGlvbih2YXJpYWJsZSwgcG9zaXRpb24pIHtcbiAgICAgICAgaWYgKGlzU3RyaW5nKHBvc2l0aW9uKSkge1xuICAgICAgICAgICAgdmFyaWFibGUuZGF0YUJpbmRpbmcucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFyaWFibGUuZGF0YUJpbmRpbmcucG9zaXRpb247XG4gICAgfVxuXG4gICAgZ2V0QWxlcnRUeXBlKHZhcmlhYmxlKSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5hbGVydHR5cGU7XG4gICAgfVxuXG4gICAgc2V0QWxlcnRUeXBlKHZhcmlhYmxlLCBhbGVydHR5cGUpIHtcbiAgICAgICAgaWYgKGlzU3RyaW5nKGFsZXJ0dHlwZSkpIHtcbiAgICAgICAgICAgIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmFsZXJ0dHlwZSA9IGFsZXJ0dHlwZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFyaWFibGUuZGF0YUJpbmRpbmcuYWxlcnR0eXBlO1xuICAgIH1cblxuICAgIGdldENhbmNlbEJ1dHRvblRleHQodmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmNhbmNlbEJ1dHRvblRleHQ7XG4gICAgfVxuXG4gICAgc2V0Q2FuY2VsQnV0dG9uVGV4dCh2YXJpYWJsZSwgdGV4dCkge1xuICAgICAgICBpZiAoaXNTdHJpbmcodGV4dCkpIHtcbiAgICAgICAgICAgIHZhcmlhYmxlLmRhdGFCaW5kaW5nLmNhbmNlbEJ1dHRvblRleHQgPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhQmluZGluZy5jYW5jZWxCdXR0b25UZXh0O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { httpService, processBinding } from '../../util/variable/variables.utils';
|
|
2
2
|
import { appManager } from './../../util/variable/variables.utils';
|
|
3
|
+
import { extend } from "lodash-es";
|
|
3
4
|
export class BaseVariableManager {
|
|
4
5
|
initBinding(variable, bindSource, bindTarget) {
|
|
5
6
|
processBinding(variable, variable._context, bindSource, bindTarget);
|
|
@@ -59,9 +60,9 @@ export class BaseVariableManager {
|
|
|
59
60
|
let options = {};
|
|
60
61
|
options['xhrObj'] = xhrObj;
|
|
61
62
|
if (moreOptions) {
|
|
62
|
-
|
|
63
|
+
extend(options, moreOptions);
|
|
63
64
|
}
|
|
64
65
|
return options;
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12YXJpYWJsZS5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFyaWFibGVzL3NyYy9tYW5hZ2VyL3ZhcmlhYmxlL2Jhc2UtdmFyaWFibGUubWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUVsRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE1BQU0sT0FBZ0IsbUJBQW1CO0lBRXJDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVyxFQUFFLFVBQVc7UUFDMUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFlLEVBQUUsSUFBVSxFQUFFLE9BQWE7UUFDL0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRTtZQUN2QyxRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLE9BQU87U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLFFBQVEsRUFBRSxRQUFRO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdkUsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqQixRQUFRLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQVk7UUFDMUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxRQUFRLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3ZHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QixDQUFDO1lBQ0wsQ0FBQyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxXQUFXLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDNUMsdUVBQXVFO29CQUN2RSxxSEFBcUg7b0JBQ3JILElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDMUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQ3ZDLFFBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUM3QixDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixDQUFDO3FCQUFNLENBQUM7b0JBQ0osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsc0JBQXNCLENBQUMsTUFBVyxFQUFFLFdBQWtCO1FBQ2xELElBQUksT0FBTyxHQUFvQixFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUMzQixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHR0cFNlcnZpY2UsIHByb2Nlc3NCaW5kaW5nIH0gZnJvbSAnLi4vLi4vdXRpbC92YXJpYWJsZS92YXJpYWJsZXMudXRpbHMnO1xuaW1wb3J0IHsgYXBwTWFuYWdlcn0gZnJvbSAnLi8uLi8uLi91dGlsL3ZhcmlhYmxlL3ZhcmlhYmxlcy51dGlscyc7XG5pbXBvcnQgeyBBZHZhbmNlZE9wdGlvbnMgfSBmcm9tICcuLi8uLi9hZHZhbmNlZC1vcHRpb25zJztcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlVmFyaWFibGVNYW5hZ2VyIHtcblxuICAgIGluaXRCaW5kaW5nKHZhcmlhYmxlLCBiaW5kU291cmNlPywgYmluZFRhcmdldD8pIHtcbiAgICAgICAgcHJvY2Vzc0JpbmRpbmcodmFyaWFibGUsIHZhcmlhYmxlLl9jb250ZXh0LCBiaW5kU291cmNlLCBiaW5kVGFyZ2V0KTtcbiAgICB9XG5cbiAgICBub3RpZnlJbmZsaWdodCh2YXJpYWJsZSwgc3RhdHVzOiBib29sZWFuLCBkYXRhPzogYW55LCBvcHRpb25zPzogYW55KSB7XG4gICAgICAgIGFwcE1hbmFnZXIubm90aWZ5KCd0b2dnbGUtdmFyaWFibGUtc3RhdGUnLCB7XG4gICAgICAgICAgICB2YXJpYWJsZTogdmFyaWFibGUsXG4gICAgICAgICAgICBhY3RpdmU6IHN0YXR1cyxcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHNldHMgdGhlIHZhcmlhYmxlIHBhcmFtZXRlciByZXF1ZXN0VHJhY2tJZCB0byBYLVdNLVJlcXVlc3QtVHJhY2stSWQgd2hpY2ggaXMgcmVjZWl2ZWQgaW4gdGhlIHJlc3BvbnNlIGhlYWRlcnMuXG4gICAgICogQHBhcmFtIHJlc3BvbnNlXG4gICAgICovXG4gICAgc2V0UmVxdWVzdFRyYWNrSWQocmVzcG9uc2UsIHZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RUcmFja0lkID0gcmVzcG9uc2U/LmhlYWRlcnM/LmdldCgneC13bS1yZXF1ZXN0LXRyYWNrLWlkJyk7XG4gICAgICAgIGlmIChyZXF1ZXN0VHJhY2tJZCkge1xuICAgICAgICAgICAgdmFyaWFibGUuX3JlcXVlc3RUcmFja0lkID0gcmVxdWVzdFRyYWNrSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBtYWtlcyB0aGUgZmluYWwgYW5ndWxhciBodHRwIGNhbGwgdGhhdCByZXR1cm5zIGFuIG9ic2VydmFibGUuXG4gICAgICogV2UgYXR0YWNoIHRoaXMgb2JzZXJ2YWJsZSB0byB2YXJpYWJsZSB0byBjYW5jZWwgYSBuZXR3b3JrIGNhbGxcbiAgICAgKiBAcGFyYW0gcmVxdWVzdFBhcmFtc1xuICAgICAqIEBwYXJhbSB2YXJpYWJsZVxuICAgICAqIEBwYXJhbSBkYk9wZXJhdGlvblxuICAgICAqL1xuICAgIGh0dHBDYWxsKHJlcXVlc3RQYXJhbXMsIHZhcmlhYmxlLCBwYXJhbXM/OiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHZhcmlhYmxlLl9vYnNlcnZhYmxlID0gaHR0cFNlcnZpY2Uuc2VuZENhbGxBc09ic2VydmFibGUocmVxdWVzdFBhcmFtcywgcGFyYW1zKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFJlcXVlc3RUcmFja0lkKHJlc3BvbnNlLCB2YXJpYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVxdWVzdFRyYWNrSWQoZXJyLCB2YXJpYWJsZSk7XG4gICAgICAgICAgICAgICAgaWYgKGh0dHBTZXJ2aWNlLmlzUGxhdGZvcm1TZXNzaW9uVGltZW91dChlcnIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNlbmQgdGhlIG5vdGlmaWNhdGlvbiBtYW51YWxseSB0byBoaWRlIGFueSBjb250ZXh0IHNwaW5uZXJzIG9uIHBhZ2UuXG4gICAgICAgICAgICAgICAgICAgIC8vIFtUT0RPXTogYW55IHNwaW5uZXJzIG9uIHdpZGdldCBsaXN0ZW5pbmcgb24gdGhpcyB2YXJpYWJsZSB3aWxsIGFsc28gZ28gb2ZmLiBOZWVkIHRvIHNlZSBhbiBhcHByb2FjaCB0byBzb3ZsZSB0aGF0LlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeUluZmxpZ2h0KHZhcmlhYmxlLCBmYWxzZSwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgZXJyLl80MDFTdWJzY3JpYmVyLmFzT2JzZXJ2YWJsZSgpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0+IHJlc29sdmUocmVzcG9uc2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZSA9PiByZWplY3QoZSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBwcmVwYXJlcyB0aGUgb3B0aW9ucyBwYXJhbWV0ZXIgZm9yIHZhcmlhYmxlIGNhbGxiYWNrcy5cbiAgICAgKiBAcGFyYW0geGhyT2JqLCBUaGUgeGhyT2JqIHRvIGJlIHBhc3NlZFxuICAgICAqIEBwYXJhbSBtb3JlT3B0aW9ucywgYW55IG90aGVyIGluZm8gdG8gYmUgcGFzc2VkIGluIHRoZSBvcHRpb25zIHBhcmFtXG4gICAgICovXG4gICAgcHJlcGFyZUNhbGxiYWNrT3B0aW9ucyh4aHJPYmo6IGFueSwgbW9yZU9wdGlvbnM/IDogYW55KTogQWR2YW5jZWRPcHRpb25zIHtcbiAgICAgICAgbGV0IG9wdGlvbnM6IEFkdmFuY2VkT3B0aW9ucyA9IHt9O1xuICAgICAgICBvcHRpb25zWyd4aHJPYmonXSA9IHhock9iajtcbiAgICAgICAgaWYgKG1vcmVPcHRpb25zKSB7XG4gICAgICAgICAgICBleHRlbmQob3B0aW9ucywgbW9yZU9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -4,6 +4,7 @@ import { BaseVariableManager } from './base-variable.manager';
|
|
|
4
4
|
import { initiateCallback, metadataService } from '../../util/variable/variables.utils';
|
|
5
5
|
import { CONSTANTS, VARIABLE_CONSTANTS } from '../../constants/variables.constants';
|
|
6
6
|
import { ServiceVariableUtils } from '../../util/variable/service-variable.utils';
|
|
7
|
+
import { forEach, get } from "lodash-es";
|
|
7
8
|
export class WebSocketVariableManager extends BaseVariableManager {
|
|
8
9
|
constructor() {
|
|
9
10
|
super(...arguments);
|
|
@@ -52,11 +53,11 @@ export class WebSocketVariableManager extends BaseVariableManager {
|
|
|
52
53
|
*/
|
|
53
54
|
getURL(variable) {
|
|
54
55
|
const prefabName = variable.getPrefabName();
|
|
55
|
-
const opInfo = prefabName ?
|
|
56
|
+
const opInfo = prefabName ? get(metadataService.getByOperationId(variable.operationId, prefabName), 'wmServiceOperationInfo') : get(metadataService.getByOperationId(variable.operationId), 'wmServiceOperationInfo');
|
|
56
57
|
const inputFields = variable.dataBinding;
|
|
57
58
|
let config;
|
|
58
59
|
// add sample values to the params (url and path)
|
|
59
|
-
|
|
60
|
+
forEach(opInfo.parameters, function (param) {
|
|
60
61
|
param.sampleValue = inputFields[param.name];
|
|
61
62
|
});
|
|
62
63
|
// although, no header params will be present, keeping 'skipCloakHeaders' flag if support provided later
|
|
@@ -82,7 +83,7 @@ export class WebSocketVariableManager extends BaseVariableManager {
|
|
|
82
83
|
* @private
|
|
83
84
|
*/
|
|
84
85
|
_onSocketMessage(variable, evt) {
|
|
85
|
-
let data =
|
|
86
|
+
let data = get(evt, 'data'), value, dataLength, dataLimit, shouldAddToLast, insertIdx;
|
|
86
87
|
data = getValidJSON(data) || xmlToJson(data) || data;
|
|
87
88
|
// EVENT: ON_MESSAGE
|
|
88
89
|
value = initiateCallback(VARIABLE_CONSTANTS.EVENT.MESSAGE_RECEIVE, variable, data, evt);
|
|
@@ -127,7 +128,7 @@ export class WebSocketVariableManager extends BaseVariableManager {
|
|
|
127
128
|
*/
|
|
128
129
|
_onBeforeSocketClose(variable, evt) {
|
|
129
130
|
// EVENT: ON_BEFORE_CLOSE
|
|
130
|
-
return initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE_CLOSE, variable,
|
|
131
|
+
return initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE_CLOSE, variable, get(evt, 'data'), evt);
|
|
131
132
|
}
|
|
132
133
|
/**
|
|
133
134
|
* calls the ON_BEFORE_OPEN callback assigned
|
|
@@ -139,7 +140,7 @@ export class WebSocketVariableManager extends BaseVariableManager {
|
|
|
139
140
|
*/
|
|
140
141
|
_onBeforeSocketOpen(variable, evt) {
|
|
141
142
|
// EVENT: ON_BEFORE_OPEN
|
|
142
|
-
return initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE_OPEN, variable,
|
|
143
|
+
return initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE_OPEN, variable, get(evt, 'data'), evt);
|
|
143
144
|
}
|
|
144
145
|
/**
|
|
145
146
|
* calls the ON_OPEN event on the variable
|
|
@@ -151,7 +152,7 @@ export class WebSocketVariableManager extends BaseVariableManager {
|
|
|
151
152
|
_onSocketOpen(variable, evt) {
|
|
152
153
|
variable._socketConnected = true;
|
|
153
154
|
// EVENT: ON_OPEN
|
|
154
|
-
initiateCallback(VARIABLE_CONSTANTS.EVENT.OPEN, variable,
|
|
155
|
+
initiateCallback(VARIABLE_CONSTANTS.EVENT.OPEN, variable, get(evt, 'data'), evt);
|
|
155
156
|
}
|
|
156
157
|
/**
|
|
157
158
|
* clears the socket variable against the variable in a scope
|
|
@@ -171,7 +172,7 @@ export class WebSocketVariableManager extends BaseVariableManager {
|
|
|
171
172
|
variable._socketConnected = false;
|
|
172
173
|
this.freeSocket(variable);
|
|
173
174
|
// EVENT: ON_CLOSE
|
|
174
|
-
initiateCallback(VARIABLE_CONSTANTS.EVENT.CLOSE, variable,
|
|
175
|
+
initiateCallback(VARIABLE_CONSTANTS.EVENT.CLOSE, variable, get(evt, 'data'), evt);
|
|
175
176
|
}
|
|
176
177
|
/**
|
|
177
178
|
* calls the ON_ERROR event on the variable
|
|
@@ -184,7 +185,7 @@ export class WebSocketVariableManager extends BaseVariableManager {
|
|
|
184
185
|
variable._socketConnected = false;
|
|
185
186
|
this.freeSocket(variable);
|
|
186
187
|
// EVENT: ON_ERROR
|
|
187
|
-
initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable,
|
|
188
|
+
initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, get(evt, 'data') || 'Error while connecting with ' + variable.service, evt);
|
|
188
189
|
}
|
|
189
190
|
/**
|
|
190
191
|
* returns an existing socket connection on the variable
|
|
@@ -247,7 +248,7 @@ export class WebSocketVariableManager extends BaseVariableManager {
|
|
|
247
248
|
send(variable, message) {
|
|
248
249
|
const socket = this.getSocket(variable);
|
|
249
250
|
let response;
|
|
250
|
-
message = message ||
|
|
251
|
+
message = message || get(variable, 'dataBinding.RequestBody');
|
|
251
252
|
response = this._onBeforeSend(variable, message);
|
|
252
253
|
if (response === false) {
|
|
253
254
|
return;
|
|
@@ -257,4 +258,4 @@ export class WebSocketVariableManager extends BaseVariableManager {
|
|
|
257
258
|
socket.send(message, 0);
|
|
258
259
|
}
|
|
259
260
|
}
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC12YXJpYWJsZS5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFyaWFibGVzL3NyYy9tYW5hZ2VyL3ZhcmlhYmxlL3dlYi1zb2NrZXQtdmFyaWFibGUubWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUlsRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQW1CO0lBQWpFOztRQUVJLHlCQUFvQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakMsYUFBUSxHQUFHO1lBQ1AsU0FBUyxFQUFFLFNBQVM7WUFDcEIsc0JBQXNCLEVBQUUsb0JBQW9CO1lBQzVDLFlBQVksRUFBRSxXQUFXO1NBQzVCLENBQUM7UUFDRix5QkFBb0IsR0FBRztZQUNuQixTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixRQUFRLEVBQUUsUUFBUTtTQUNyQixDQUFDO0lBa1FOLENBQUM7SUFoUUc7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLFFBQVE7UUFDN0IsUUFBUSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUM7UUFDNUIsT0FBTyxRQUFRLENBQUMsSUFBSSxD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Q0FBQztRQUM3QyxJQUFJLFFBQVEsQ0FBQztRQUViLE9BQU8sR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQztRQUNoRSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxRQUFRLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNYLENBQUM7UUFDRCxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNuRCxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDaEUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgJFdlYlNvY2tldCB9IGZyb20gJ2FuZ3VsYXIyLXdlYnNvY2tldC9hbmd1bGFyMi13ZWJzb2NrZXQnO1xuXG5pbXBvcnQgeyBnZXRWYWxpZEpTT04sIGlzRGVmaW5lZCwgaXNJbnNlY3VyZUNvbnRlbnRSZXF1ZXN0LCBpc09iamVjdCwgdHJpZ2dlckZuLCB4bWxUb0pzb24gfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IEJhc2VWYXJpYWJsZU1hbmFnZXIgfSBmcm9tICcuL2Jhc2UtdmFyaWFibGUubWFuYWdlcic7XG5pbXBvcnQgeyBXZWJTb2NrZXRWYXJpYWJsZSB9IGZyb20gJy4uLy4uL21vZGVsL3ZhcmlhYmxlL3dlYi1zb2NrZXQtdmFyaWFibGUnO1xuaW1wb3J0IHsgaW5pdGlhdGVDYWxsYmFjaywgbWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbC92YXJpYWJsZS92YXJpYWJsZXMudXRpbHMnO1xuaW1wb3J0IHsgQ09OU1RBTlRTLCBWQVJJQUJMRV9DT05TVEFOVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdmFyaWFibGVzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBTZXJ2aWNlVmFyaWFibGVVdGlscyB9IGZyb20gJy4uLy4uL3V0aWwvdmFyaWFibGUvc2VydmljZS12YXJpYWJsZS51dGlscyc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuZXhwb3J0IGNsYXNzIFdlYlNvY2tldFZhcmlhYmxlTWFuYWdlciBleHRlbmRzIEJhc2VWYXJpYWJsZU1hbmFnZXIge1xuXG4gICAgc2NvcGVfdmFyX3NvY2tldF9tYXAgPSBuZXcgTWFwKCk7XG4gICAgUFJPUEVSVFkgPSB7XG4gICAgICAgICdTRVJWSUNFJzogJ3NlcnZpY2UnLFxuICAgICAgICAnREFUQV9VUERBVEVfU1RSQVRFR1knOiAnZGF0YVVwZGF0ZVN0cmF0ZWd5JyxcbiAgICAgICAgJ0RBVEFfTElNSVQnOiAnZGF0YUxpbWl0J1xuICAgIH07XG4gICAgREFUQV9VUERBVEVfU1RSQVRFR1kgPSB7XG4gICAgICAgICdSRUZSRVNIJzogJ3JlZnJlc2gnLFxuICAgICAgICAnUFJFUEVORCc6ICdwcmVwZW5kJyxcbiAgICAgICAgJ0FQUEVORCc6ICdhcHBlbmQnXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdGhlIHN0YXRlIG9mIHByb3BlcnR5IHRvIGRlY2lkZSB3ZWF0aGVyIHRvIGFwcGVuZCBuZXcgbWVzc2FnZXMgdG8gZGF0YVNldCBvciBub3RcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzaG91bGRBcHBlbmREYXRhKHZhcmlhYmxlKSB7XG4gICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGUgfHwgdGhpcztcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlW3RoaXMuUFJPUEVSVFkuREFUQV9VUERBVEVfU1RSQVRFR1ldICE9PSB0aGlzLkRBVEFfVVBEQVRFX1NUUkFURUdZLlJFRlJFU0g7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyB0aGUgc3RhdGUgb2YgcHJvcGVydHkgdG8gZGVjaWRlIHdlYXRoZXIgdG8gQVBQRU5EIG9yIFBSRVBFTkQgbmV3IG1lc3NhZ2VzIHRvIGRhdGFTZXRcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzaG91bGRBcHBlbmRMYXN0KHZhcmlhYmxlKSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZVt0aGlzLlBST1BFUlRZLkRBVEFfVVBEQVRFX1NUUkFURUdZXSA9PT0gdGhpcy5EQVRBX1VQREFURV9TVFJBVEVHWS5BUFBFTkQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyB1cHBlciBsaW1pdCBvbiBudW1iZXIgb2YgcmVjb3JkcyB0byBiZSBpbiBkYXRhU2V0XG4gICAgICogdGhpcyBpcyBhcHBsaWNhYmxlIG9ubHkgd2hlbiBhcHBlbmREYXRhIGlzIHRydWVcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcmV0dXJucyB7ZGF0YUxpbWl0fVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RGF0YUxpbWl0KHZhcmlhYmxlKSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZS5kYXRhTGltaXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHVybCBmcm9tIHdtU2VydmljZU9wZXJhdGlvbkluZm9cbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFVSTCh2YXJpYWJsZSkge1xuICAgICAgICBjb25zdCBwcmVmYWJOYW1lID0gdmFyaWFibGUuZ2V0UHJlZmFiTmFtZSgpO1xuICAgICAgICBjb25zdCBvcEluZm8gPSBwcmVmYWJOYW1lID8gXy5nZXQobWV0YWRhdGFTZXJ2aWNlLmdldEJ5T3BlcmF0aW9uSWQodmFyaWFibGUub3BlcmF0aW9uSWQsIHByZWZhYk5hbWUpLCAnd21TZXJ2aWNlT3BlcmF0aW9uSW5mbycpIDogXy5nZXQobWV0YWRhdGFTZXJ2aWNlLmdldEJ5T3BlcmF0aW9uSWQodmFyaWFibGUub3BlcmF0aW9uSWQpLCAnd21TZXJ2aWNlT3BlcmF0aW9uSW5mbycpO1xuICAgICAgICBjb25zdCBpbnB1dEZpZWxkcyA9IHZhcmlhYmxlLmRhdGFCaW5kaW5nO1xuICAgICAgICBsZXQgY29uZmlnO1xuXG4gICAgICAgIC8vIGFkZCBzYW1wbGUgdmFsdWVzIHRvIHRoZSBwYXJhbXMgKHVybCBhbmQgcGF0aClcbiAgICAgICAgXy5mb3JFYWNoKG9wSW5mby5wYXJhbWV0ZXJzLCBmdW5jdGlvbiAocGFyYW0pIHtcbiAgICAgICAgICAgIHBhcmFtLnNhbXBsZVZhbHVlID0gaW5wdXRGaWVsZHNbcGFyYW0ubmFtZV07XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBhbHRob3VnaCwgbm8gaGVhZGVyIHBhcmFtcyB3aWxsIGJlIHByZXNlbnQsIGtlZXBpbmcgJ3NraXBDbG9ha0hlYWRlcnMnIGZsYWcgaWYgc3VwcG9ydCBwcm92aWRlZCBsYXRlclxuICAgICAgICAkLmV4dGVuZChvcEluZm8sIHtcbiAgICAgICAgICAgIHNraXBDbG9ha0hlYWRlcnM6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gY2FsbCBjb21tb24gbWV0aG9kIHRvIHByZXBhcmUgY29uZmlnIGZvciB0aGUgc2VydmljZSBvcGVyYXRpb24gaW5mby5cbiAgICAgICAgY29uZmlnID0gU2VydmljZVZhcmlhYmxlVXRpbHMuY29uc3RydWN0UmVxdWVzdFBhcmFtcyh2YXJpYWJsZSwgb3BJbmZvLCBpbnB1dEZpZWxkcyk7XG4gICAgICAgIC8qIGlmIGVycm9yIGZvdW5kLCByZXR1cm4gKi9cbiAgICAgICAgaWYgKGNvbmZpZy5lcnJvciAmJiBjb25maWcuZXJyb3IubWVzc2FnZSkge1xuICAgICAgICAgICAgdGhpcy5fb25Tb2NrZXRFcnJvcih2YXJpYWJsZSwge2RhdGE6IGNvbmZpZy5lcnJvci5tZXNzYWdlfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbmZpZy51cmw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaGFuZGxlciBmb3Igb25NZXNzYWdlIGV2ZW50IG9uIGEgc29ja2V0IGNvbm5lY3Rpb24gZm9yIGEgdmFyaWFibGVcbiAgICAgKiB0aGUgZGF0YSByZXR1cm5lZCBpcyBjb252ZXJ0ZWQgdG8gSlNPTiBmcm9tIHN0cmluZy94bWwgYW5kIGFzc2lnbmVkIHRvIGRhdGFTZXQgb2YgdmFyaWFibGVcbiAgICAgKiBJZiBub3QgYWJsZSB0byBkbyBzbywgbWVzc2FnZSBpcyBzaW1wbHkgYXNzaWduZWQgdG8gdGhlIGRhdGFTZXQgb2YgdmFyaWFibGVcbiAgICAgKiBJZiBhcHBlbmREYXRhIHByb3BlcnR5IGlzIHNldCwgdGhlIG1lc3NhZ2UgaXMgYXBwZW5kZWQgdG8gdGhlIGRhdGFTZXQsIGVsc2UgaXQgcmVwbGFjZXMgdGhlIGV4aXN0aW5nIHZhbHVlIG9mIGRhdGFTZXRcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcGFyYW0gZXZ0XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9vblNvY2tldE1lc3NhZ2UodmFyaWFibGUsIGV2dCkge1xuICAgICAgICBsZXQgZGF0YSA9IF8uZ2V0KGV2dCwgJ2RhdGEnKSwgdmFsdWUsIGRhdGFMZW5ndGgsIGRhdGFMaW1pdCwgc2hvdWxkQWRkVG9MYXN0LCBpbnNlcnRJZHg7XG4gICAgICAgIGRhdGEgPSBnZXRWYWxpZEpTT04oZGF0YSkgfHwgeG1sVG9Kc29uKGRhdGEpIHx8IGRhdGE7XG4gICAgICAgIC8vIEVWRU5UOiBPTl9NRVNTQUdFXG4gICAgICAgIHZhbHVlID0gaW5pdGlhdGVDYWxsYmFjayhWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQuTUVTU0FHRV9SRUNFSVZFLCB2YXJpYWJsZSwgZGF0YSwgZXZ0KTtcbiAgICAgICAgZGF0YSA9IGlzRGVmaW5lZCh2YWx1ZSkgPyB2YWx1ZSA6IGRhdGE7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZEFwcGVuZERhdGEodmFyaWFibGUpKSB7XG4gICAgICAgICAgICB2YXJpYWJsZS5kYXRhU2V0ID0gdmFyaWFibGUuZGF0YVNldCB8fCBbXTtcbiAgICAgICAgICAgIGRhdGFMZW5ndGggPSB2YXJpYWJsZS5kYXRhU2V0Lmxlbmd0aDtcbiAgICAgICAgICAgIGRhdGFMaW1pdCA9IHRoaXMuZ2V0RGF0YUxpbWl0KHZhcmlhYmxlKTtcbiAgICAgICAgICAgIHNob3VsZEFkZFRvTGFzdCA9IHRoaXMuc2hvdWxkQXBwZW5kTGFzdCh2YXJpYWJsZSk7XG4gICAgICAgICAgICBpZiAoZGF0YUxpbWl0ICYmIChkYXRhTGVuZ3RoID49IGRhdGFMaW1pdCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQWRkVG9MYXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlLmRhdGFTZXQuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZS5kYXRhU2V0LnBvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGluc2VydElkeCA9IHNob3VsZEFkZFRvTGFzdCA/IGRhdGFMZW5ndGggOiAwO1xuICAgICAgICAgICAgdmFyaWFibGUuZGF0YVNldC5zcGxpY2UoaW5zZXJ0SWR4LCAwLCBkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhcmlhYmxlLmRhdGFTZXQgPSBpc0RlZmluZWQodmFsdWUpID8gdmFsdWUgOiBkYXRhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2FsbHMgdGhlIE9OX0JFRk9SRV9TRU5EIGNhbGxiYWNrIG9uIHRoZSB2YXJpYWJsZVxuICAgICAqIEBwYXJhbSB2YXJpYWJsZVxuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9vbkJlZm9yZVNlbmQodmFyaWFibGUsIG1lc3NhZ2UpIHtcbiAgICAgICAgLy8gRVZFTlQ6IE9OX0JFRk9SRV9TRU5EXG4gICAgICAgIHJldHVybiBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5CRUZPUkVfU0VORCwgdmFyaWFibGUsIG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNhbGxzIHRoZSBPTl9CRUZPUkVfQ0xPU0UgY2FsbGJhY2sgYXNzaWduZWQgdG8gdGhlIHZhcmlhYmxlXG4gICAgICogQHBhcmFtIHZhcmlhYmxlXG4gICAgICogQHBhcmFtIGV2dFxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25CZWZvcmVTb2NrZXRDbG9zZSh2YXJpYWJsZSwgZXZ0Pykge1xuICAgICAgICAvLyBFVkVOVDogT05fQkVGT1JFX0NMT1NFXG4gICAgICAgIHJldHVybiBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5CRUZPUkVfQ0xPU0UsIHZhcmlhYmxlLCBfLmdldChldnQsICdkYXRhJyksIGV2dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2FsbHMgdGhlIE9OX0JFRk9SRV9PUEVOIGNhbGxiYWNrIGFzc2lnbmVkXG4gICAgICogY2FsbGVkIGp1c3QgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGlzIG9wZW5cbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcGFyYW0gZXZ0XG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9vbkJlZm9yZVNvY2tldE9wZW4odmFyaWFibGUsIGV2dD8pIHtcbiAgICAgICAgLy8gRVZFTlQ6IE9OX0JFRk9SRV9PUEVOXG4gICAgICAgIHJldHVybiBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5CRUZPUkVfT1BFTiwgdmFyaWFibGUsIF8uZ2V0KGV2dCwgJ2RhdGEnKSwgZXZ0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjYWxscyB0aGUgT05fT1BFTiBldmVudCBvbiB0aGUgdmFyaWFibGVcbiAgICAgKiB0aGlzIGlzIGNhbGxlZCBvbmNlIHRoZSBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkIGJ5IHRoZSB2YXJpYWJsZSB3aXRoIHRoZSB0YXJnZXQgV2ViU29ja2V0IHNlcnZpY2VcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcGFyYW0gZXZ0XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9vblNvY2tldE9wZW4odmFyaWFibGUsIGV2dCkge1xuICAgICAgICB2YXJpYWJsZS5fc29ja2V0Q29ubmVjdGVkID0gdHJ1ZTtcbiAgICAgICAgLy8gRVZFTlQ6IE9OX09QRU5cbiAgICAgICAgaW5pdGlhdGVDYWxsYmFjayhWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQuT1BFTiwgdmFyaWFibGUsIF8uZ2V0KGV2dCwgJ2RhdGEnKSwgZXZ0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbGVhcnMgdGhlIHNvY2tldCB2YXJpYWJsZSBhZ2FpbnN0IHRoZSB2YXJpYWJsZSBpbiBhIHNjb3BlXG4gICAgICogQHBhcmFtIHZhcmlhYmxlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmcmVlU29ja2V0KHZhcmlhYmxlKSB7XG4gICAgICAgIHRoaXMuc2NvcGVfdmFyX3NvY2tldF9tYXAuc2V0KHZhcmlhYmxlLCB1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNhbGxzIHRoZSBPTl9DTE9TRSBldmVudCBvbiB0aGUgdmFyaWFibGVcbiAgICAgKiB0aGlzIGlzIGNhbGxlZCBvbiBjbG9zZSBvZiBhbiBleGlzdGluZyBjb25uZWN0aW9uIG9uIGEgdmFyaWFibGVcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcGFyYW0gZXZ0XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9vblNvY2tldENsb3NlKHZhcmlhYmxlLCBldnQpIHtcbiAgICAgICAgdmFyaWFibGUuX3NvY2tldENvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZyZWVTb2NrZXQodmFyaWFibGUpO1xuICAgICAgICAvLyBFVkVOVDogT05fQ0xPU0VcbiAgICAgICAgaW5pdGlhdGVDYWxsYmFjayhWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQuQ0xPU0UsIHZhcmlhYmxlLCBfLmdldChldnQsICdkYXRhJyksIGV2dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2FsbHMgdGhlIE9OX0VSUk9SIGV2ZW50IG9uIHRoZSB2YXJpYWJsZVxuICAgICAqIHRoaXMgaXMgY2FsbGVkIGlmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBjb25uZWN0aW5nIHRvIHRoZSBzb2NrZXQgc2VydmljZVxuICAgICAqIEBwYXJhbSB2YXJpYWJsZVxuICAgICAqIEBwYXJhbSBldnRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX29uU29ja2V0RXJyb3IodmFyaWFibGUsIGV2dCkge1xuICAgICAgICB2YXJpYWJsZS5fc29ja2V0Q29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnJlZVNvY2tldCh2YXJpYWJsZSk7XG4gICAgICAgIC8vIEVWRU5UOiBPTl9FUlJPUlxuICAgICAgICBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5FUlJPUiwgdmFyaWFibGUsIF8uZ2V0KGV2dCwgJ2RhdGEnKSB8fCAnRXJyb3Igd2hpbGUgY29ubmVjdGluZyB3aXRoICcgKyB2YXJpYWJsZS5zZXJ2aWNlLCBldnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYW4gZXhpc3Rpbmcgc29ja2V0IGNvbm5lY3Rpb24gb24gdGhlIHZhcmlhYmxlXG4gICAgICogaWYgbm90IHByZXNlbnQsIG1ha2UgdGhlIGNvbm5lY3Rpb24gYW5kIHJldHVybiBpdFxuICAgICAqIEBwYXJhbSB2YXJpYWJsZVxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0U29ja2V0KHZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IHVybCAgICAgPSB0aGlzLmdldFVSTCh2YXJpYWJsZSk7XG4gICAgICAgIGxldCBfc29ja2V0ID0gdGhpcy5zY29wZV92YXJfc29ja2V0X21hcC5nZXQodmFyaWFibGUpO1xuICAgICAgICBpZiAoX3NvY2tldCkge1xuICAgICAgICAgICAgcmV0dXJuIF9zb2NrZXQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcmlnZ2VyIGVycm9yIGlmIHVuc2VjdXJlZCB3ZWJTb2NrZXQgaXMgdXNlZCBpbiBzZWN1cmVkIGRvbWFpbiwgaWdub3JlIGluIG1vYmlsZSBkZXZpY2VcbiAgICAgICAgaWYgKCFDT05TVEFOVFMuaGFzQ29yZG92YSAmJiBpc0luc2VjdXJlQ29udGVudFJlcXVlc3QodXJsKSkge1xuICAgICAgICAgICAgdHJpZ2dlckZuKHRoaXMuX29uU29ja2V0RXJyb3IuYmluZCh0aGlzLCB2YXJpYWJsZSkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIF9zb2NrZXQgPSBuZXcgJFdlYlNvY2tldCh1cmwpO1xuICAgICAgICBfc29ja2V0Lm9uT3Blbih0aGlzLl9vblNvY2tldE9wZW4uYmluZCh0aGlzLCB2YXJpYWJsZSkpO1xuICAgICAgICBfc29ja2V0Lm9uRXJyb3IodGhpcy5fb25Tb2NrZXRFcnJvci5iaW5kKHRoaXMsIHZhcmlhYmxlKSk7XG4gICAgICAgIF9zb2NrZXQub25NZXNzYWdlKHRoaXMuX29uU29ja2V0TWVzc2FnZS5iaW5kKHRoaXMsIHZhcmlhYmxlKSk7XG4gICAgICAgIF9zb2NrZXQub25DbG9zZSh0aGlzLl9vblNvY2tldENsb3NlLmJpbmQodGhpcywgdmFyaWFibGUpKTtcblxuICAgICAgICB0aGlzLnNjb3BlX3Zhcl9zb2NrZXRfbWFwLnNldCh2YXJpYWJsZSwgX3NvY2tldCk7XG4gICAgICAgIHZhcmlhYmxlLl9zb2NrZXQgPSBfc29ja2V0O1xuICAgICAgICByZXR1cm4gX3NvY2tldDtcbn1cblxuICAgIC8qKlxuICAgICAqIG9wZW5zIGEgc29ja2V0IGNvbm5lY3Rpb24gb24gdGhlIHZhcmlhYmxlLlxuICAgICAqIFVSTCAmIG90aGVyIG1ldGEgZGF0YSBpcyBmZXRjaGVkIGZyb20gd21TZXJ2aWNlT3BlcmF0aW9uSW5mb1xuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuKHZhcmlhYmxlOiBXZWJTb2NrZXRWYXJpYWJsZSwgc3VjY2Vzcz8sIGVycm9yPykge1xuICAgICAgICBjb25zdCBzaG91bGRPcGVuID0gdGhpcy5fb25CZWZvcmVTb2NrZXRPcGVuKHZhcmlhYmxlKTtcbiAgICAgICAgbGV0IHNvY2tldDtcbiAgICAgICAgaWYgKHNob3VsZE9wZW4gPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0cmlnZ2VyRm4oZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNvY2tldCA9IHRoaXMuZ2V0U29ja2V0KHZhcmlhYmxlKTtcbiAgICAgICAgdHJpZ2dlckZuKHN1Y2Nlc3MpO1xuICAgICAgICByZXR1cm4gc29ja2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNsb3NlcyBhbiBleGlzdGluZyBzb2NrZXQgY29ubmVjdGlvbiBvbiB2YXJpYWJsZVxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZSh2YXJpYWJsZTogV2ViU29ja2V0VmFyaWFibGUpIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkQ2xvc2UgPSB0aGlzLl9vbkJlZm9yZVNvY2tldENsb3NlKHZhcmlhYmxlKSxcbiAgICAgICAgICAgIHNvY2tldCAgICAgID0gdGhpcy5nZXRTb2NrZXQodmFyaWFibGUpO1xuICAgICAgICBpZiAoc2hvdWxkQ2xvc2UgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc29ja2V0LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2VuZHMgYSBtZXNzYWdlIHRvIHRoZSBleGlzdGluZyBzb2NrZXQgY29ubmVjdGlvbiBvbiB0aGUgdmFyaWFibGVcbiAgICAgKiBJZiBzb2NrZXQgY29ubmVjdGlvbiBub3Qgb3BlbiB5ZXQsIG9wZW4gYSBjb25uZWN0aW9ucyBhbmQgdGhlbiBzZW5kXG4gICAgICogaWYgbWVzc2FnZSBwcm92aWRlLCBpdCBpcyBzZW50LCBlbHNlIHRoZSBvbmUgcHJlc2VudCBpbiBSZXF1ZXN0Qm9keSBwYXJhbSBpcyBzZW50XG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VuZCh2YXJpYWJsZTogV2ViU29ja2V0VmFyaWFibGUsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc29ja2V0ICAgICAgPSB0aGlzLmdldFNvY2tldCh2YXJpYWJsZSk7XG4gICAgICAgIGxldCByZXNwb25zZTtcblxuICAgICAgICBtZXNzYWdlID0gbWVzc2FnZSB8fCBfLmdldCh2YXJpYWJsZSwgJ2RhdGFCaW5kaW5nLlJlcXVlc3RCb2R5Jyk7XG4gICAgICAgIHJlc3BvbnNlID0gdGhpcy5fb25CZWZvcmVTZW5kKHZhcmlhYmxlLCBtZXNzYWdlKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG1lc3NhZ2UgPSBpc0RlZmluZWQocmVzcG9uc2UpID8gcmVzcG9uc2UgOiBtZXNzYWdlO1xuICAgICAgICBtZXNzYWdlID0gaXNPYmplY3QobWVzc2FnZSkgPyBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSA6IG1lc3NhZ2U7XG4gICAgICAgIHNvY2tldC5zZW5kKG1lc3NhZ2UsIDApO1xuICAgIH1cbn1cbiJdfQ==
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC12YXJpYWJsZS5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFyaWFibGVzL3NyYy9tYW5hZ2VyL3ZhcmlhYmxlL3dlYi1zb2NrZXQtdmFyaWFibGUubWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUV2QyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQW1CO0lBQWpFOztRQUVJLHlCQUFvQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakMsYUFBUSxHQUFHO1lBQ1AsU0FBUyxFQUFFLFNBQVM7WUFDcEIsc0JBQXNCLEVBQUUsb0JBQW9CO1lBQzVDLFlBQVksRUFBRSxXQUFXO1NBQzVCLENBQUM7UUFDRix5QkFBb0IsR0FBRztZQUNuQixTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixRQUFRLEVBQUUsUUFBUTtTQUNyQixDQUFDO0lBa1FOLENBQUM7SUFoUUc7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLFFBQVE7UUFDN0IsUUFBUSxH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RyxPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzlELFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1gsQ0FBQztRQUNELE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ25ELE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAkV2ViU29ja2V0IH0gZnJvbSAnYW5ndWxhcjItd2Vic29ja2V0L2FuZ3VsYXIyLXdlYnNvY2tldCc7XG5cbmltcG9ydCB7IGdldFZhbGlkSlNPTiwgaXNEZWZpbmVkLCBpc0luc2VjdXJlQ29udGVudFJlcXVlc3QsIGlzT2JqZWN0LCB0cmlnZ2VyRm4sIHhtbFRvSnNvbiB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgQmFzZVZhcmlhYmxlTWFuYWdlciB9IGZyb20gJy4vYmFzZS12YXJpYWJsZS5tYW5hZ2VyJztcbmltcG9ydCB7IFdlYlNvY2tldFZhcmlhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWwvdmFyaWFibGUvd2ViLXNvY2tldC12YXJpYWJsZSc7XG5pbXBvcnQgeyBpbml0aWF0ZUNhbGxiYWNrLCBtZXRhZGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlsL3ZhcmlhYmxlL3ZhcmlhYmxlcy51dGlscyc7XG5pbXBvcnQgeyBDT05TVEFOVFMsIFZBUklBQkxFX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy92YXJpYWJsZXMuY29uc3RhbnRzJztcbmltcG9ydCB7IFNlcnZpY2VWYXJpYWJsZVV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC92YXJpYWJsZS9zZXJ2aWNlLXZhcmlhYmxlLnV0aWxzJztcbmltcG9ydCB7Zm9yRWFjaCwgZ2V0fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBjbGFzcyBXZWJTb2NrZXRWYXJpYWJsZU1hbmFnZXIgZXh0ZW5kcyBCYXNlVmFyaWFibGVNYW5hZ2VyIHtcblxuICAgIHNjb3BlX3Zhcl9zb2NrZXRfbWFwID0gbmV3IE1hcCgpO1xuICAgIFBST1BFUlRZID0ge1xuICAgICAgICAnU0VSVklDRSc6ICdzZXJ2aWNlJyxcbiAgICAgICAgJ0RBVEFfVVBEQVRFX1NUUkFURUdZJzogJ2RhdGFVcGRhdGVTdHJhdGVneScsXG4gICAgICAgICdEQVRBX0xJTUlUJzogJ2RhdGFMaW1pdCdcbiAgICB9O1xuICAgIERBVEFfVVBEQVRFX1NUUkFURUdZID0ge1xuICAgICAgICAnUkVGUkVTSCc6ICdyZWZyZXNoJyxcbiAgICAgICAgJ1BSRVBFTkQnOiAncHJlcGVuZCcsXG4gICAgICAgICdBUFBFTkQnOiAnYXBwZW5kJ1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHRoZSBzdGF0ZSBvZiBwcm9wZXJ0eSB0byBkZWNpZGUgd2VhdGhlciB0byBhcHBlbmQgbmV3IG1lc3NhZ2VzIHRvIGRhdGFTZXQgb3Igbm90XG4gICAgICogQHBhcmFtIHZhcmlhYmxlXG4gICAgICogQHJldHVybnMgYm9vbGVhblxuICAgICAqL1xuICAgIHByaXZhdGUgc2hvdWxkQXBwZW5kRGF0YSh2YXJpYWJsZSkge1xuICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlIHx8IHRoaXM7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZVt0aGlzLlBST1BFUlRZLkRBVEFfVVBEQVRFX1NUUkFURUdZXSAhPT0gdGhpcy5EQVRBX1VQREFURV9TVFJBVEVHWS5SRUZSRVNIO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdGhlIHN0YXRlIG9mIHByb3BlcnR5IHRvIGRlY2lkZSB3ZWF0aGVyIHRvIEFQUEVORCBvciBQUkVQRU5EIG5ldyBtZXNzYWdlcyB0byBkYXRhU2V0XG4gICAgICogQHBhcmFtIHZhcmlhYmxlXG4gICAgICogQHJldHVybnMgYm9vbGVhblxuICAgICAqL1xuICAgIHByaXZhdGUgc2hvdWxkQXBwZW5kTGFzdCh2YXJpYWJsZSkge1xuICAgICAgICByZXR1cm4gdmFyaWFibGVbdGhpcy5QUk9QRVJUWS5EQVRBX1VQREFURV9TVFJBVEVHWV0gPT09IHRoaXMuREFUQV9VUERBVEVfU1RSQVRFR1kuQVBQRU5EO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdXBwZXIgbGltaXQgb24gbnVtYmVyIG9mIHJlY29yZHMgdG8gYmUgaW4gZGF0YVNldFxuICAgICAqIHRoaXMgaXMgYXBwbGljYWJsZSBvbmx5IHdoZW4gYXBwZW5kRGF0YSBpcyB0cnVlXG4gICAgICogQHBhcmFtIHZhcmlhYmxlXG4gICAgICogQHJldHVybnMge2RhdGFMaW1pdH1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldERhdGFMaW1pdCh2YXJpYWJsZSkge1xuICAgICAgICByZXR1cm4gdmFyaWFibGUuZGF0YUxpbWl0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCB1cmwgZnJvbSB3bVNlcnZpY2VPcGVyYXRpb25JbmZvXG4gICAgICogQHBhcmFtIHZhcmlhYmxlXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRVUkwodmFyaWFibGUpIHtcbiAgICAgICAgY29uc3QgcHJlZmFiTmFtZSA9IHZhcmlhYmxlLmdldFByZWZhYk5hbWUoKTtcbiAgICAgICAgY29uc3Qgb3BJbmZvID0gcHJlZmFiTmFtZSA/IGdldChtZXRhZGF0YVNlcnZpY2UuZ2V0QnlPcGVyYXRpb25JZCh2YXJpYWJsZS5vcGVyYXRpb25JZCwgcHJlZmFiTmFtZSksICd3bVNlcnZpY2VPcGVyYXRpb25JbmZvJykgOiBnZXQobWV0YWRhdGFTZXJ2aWNlLmdldEJ5T3BlcmF0aW9uSWQodmFyaWFibGUub3BlcmF0aW9uSWQpLCAnd21TZXJ2aWNlT3BlcmF0aW9uSW5mbycpO1xuICAgICAgICBjb25zdCBpbnB1dEZpZWxkcyA9IHZhcmlhYmxlLmRhdGFCaW5kaW5nO1xuICAgICAgICBsZXQgY29uZmlnO1xuXG4gICAgICAgIC8vIGFkZCBzYW1wbGUgdmFsdWVzIHRvIHRoZSBwYXJhbXMgKHVybCBhbmQgcGF0aClcbiAgICAgICAgZm9yRWFjaChvcEluZm8ucGFyYW1ldGVycywgZnVuY3Rpb24gKHBhcmFtKSB7XG4gICAgICAgICAgICBwYXJhbS5zYW1wbGVWYWx1ZSA9IGlucHV0RmllbGRzW3BhcmFtLm5hbWVdO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gYWx0aG91Z2gsIG5vIGhlYWRlciBwYXJhbXMgd2lsbCBiZSBwcmVzZW50LCBrZWVwaW5nICdza2lwQ2xvYWtIZWFkZXJzJyBmbGFnIGlmIHN1cHBvcnQgcHJvdmlkZWQgbGF0ZXJcbiAgICAgICAgJC5leHRlbmQob3BJbmZvLCB7XG4gICAgICAgICAgICBza2lwQ2xvYWtIZWFkZXJzOiB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGNhbGwgY29tbW9uIG1ldGhvZCB0byBwcmVwYXJlIGNvbmZpZyBmb3IgdGhlIHNlcnZpY2Ugb3BlcmF0aW9uIGluZm8uXG4gICAgICAgIGNvbmZpZyA9IFNlcnZpY2VWYXJpYWJsZVV0aWxzLmNvbnN0cnVjdFJlcXVlc3RQYXJhbXModmFyaWFibGUsIG9wSW5mbywgaW5wdXRGaWVsZHMpO1xuICAgICAgICAvKiBpZiBlcnJvciBmb3VuZCwgcmV0dXJuICovXG4gICAgICAgIGlmIChjb25maWcuZXJyb3IgJiYgY29uZmlnLmVycm9yLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX29uU29ja2V0RXJyb3IodmFyaWFibGUsIHtkYXRhOiBjb25maWcuZXJyb3IubWVzc2FnZX0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25maWcudXJsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGhhbmRsZXIgZm9yIG9uTWVzc2FnZSBldmVudCBvbiBhIHNvY2tldCBjb25uZWN0aW9uIGZvciBhIHZhcmlhYmxlXG4gICAgICogdGhlIGRhdGEgcmV0dXJuZWQgaXMgY29udmVydGVkIHRvIEpTT04gZnJvbSBzdHJpbmcveG1sIGFuZCBhc3NpZ25lZCB0byBkYXRhU2V0IG9mIHZhcmlhYmxlXG4gICAgICogSWYgbm90IGFibGUgdG8gZG8gc28sIG1lc3NhZ2UgaXMgc2ltcGx5IGFzc2lnbmVkIHRvIHRoZSBkYXRhU2V0IG9mIHZhcmlhYmxlXG4gICAgICogSWYgYXBwZW5kRGF0YSBwcm9wZXJ0eSBpcyBzZXQsIHRoZSBtZXNzYWdlIGlzIGFwcGVuZGVkIHRvIHRoZSBkYXRhU2V0LCBlbHNlIGl0IHJlcGxhY2VzIHRoZSBleGlzdGluZyB2YWx1ZSBvZiBkYXRhU2V0XG4gICAgICogQHBhcmFtIHZhcmlhYmxlXG4gICAgICogQHBhcmFtIGV2dFxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25Tb2NrZXRNZXNzYWdlKHZhcmlhYmxlLCBldnQpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBnZXQoZXZ0LCAnZGF0YScpLCB2YWx1ZSwgZGF0YUxlbmd0aCwgZGF0YUxpbWl0LCBzaG91bGRBZGRUb0xhc3QsIGluc2VydElkeDtcbiAgICAgICAgZGF0YSA9IGdldFZhbGlkSlNPTihkYXRhKSB8fCB4bWxUb0pzb24oZGF0YSkgfHwgZGF0YTtcbiAgICAgICAgLy8gRVZFTlQ6IE9OX01FU1NBR0VcbiAgICAgICAgdmFsdWUgPSBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5NRVNTQUdFX1JFQ0VJVkUsIHZhcmlhYmxlLCBkYXRhLCBldnQpO1xuICAgICAgICBkYXRhID0gaXNEZWZpbmVkKHZhbHVlKSA/IHZhbHVlIDogZGF0YTtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkQXBwZW5kRGF0YSh2YXJpYWJsZSkpIHtcbiAgICAgICAgICAgIHZhcmlhYmxlLmRhdGFTZXQgPSB2YXJpYWJsZS5kYXRhU2V0IHx8IFtdO1xuICAgICAgICAgICAgZGF0YUxlbmd0aCA9IHZhcmlhYmxlLmRhdGFTZXQubGVuZ3RoO1xuICAgICAgICAgICAgZGF0YUxpbWl0ID0gdGhpcy5nZXREYXRhTGltaXQodmFyaWFibGUpO1xuICAgICAgICAgICAgc2hvdWxkQWRkVG9MYXN0ID0gdGhpcy5zaG91bGRBcHBlbmRMYXN0KHZhcmlhYmxlKTtcbiAgICAgICAgICAgIGlmIChkYXRhTGltaXQgJiYgKGRhdGFMZW5ndGggPj0gZGF0YUxpbWl0KSkge1xuICAgICAgICAgICAgICAgIGlmIChzaG91bGRBZGRUb0xhc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUuZGF0YVNldC5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlLmRhdGFTZXQucG9wKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5zZXJ0SWR4ID0gc2hvdWxkQWRkVG9MYXN0ID8gZGF0YUxlbmd0aCA6IDA7XG4gICAgICAgICAgICB2YXJpYWJsZS5kYXRhU2V0LnNwbGljZShpbnNlcnRJZHgsIDAsIGRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyaWFibGUuZGF0YVNldCA9IGlzRGVmaW5lZCh2YWx1ZSkgPyB2YWx1ZSA6IGRhdGE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjYWxscyB0aGUgT05fQkVGT1JFX1NFTkQgY2FsbGJhY2sgb24gdGhlIHZhcmlhYmxlXG4gICAgICogQHBhcmFtIHZhcmlhYmxlXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX29uQmVmb3JlU2VuZCh2YXJpYWJsZSwgbWVzc2FnZSkge1xuICAgICAgICAvLyBFVkVOVDogT05fQkVGT1JFX1NFTkRcbiAgICAgICAgcmV0dXJuIGluaXRpYXRlQ2FsbGJhY2soVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5ULkJFRk9SRV9TRU5ELCB2YXJpYWJsZSwgbWVzc2FnZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2FsbHMgdGhlIE9OX0JFRk9SRV9DTE9TRSBjYWxsYmFjayBhc3NpZ25lZCB0byB0aGUgdmFyaWFibGVcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcGFyYW0gZXZ0XG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9vbkJlZm9yZVNvY2tldENsb3NlKHZhcmlhYmxlLCBldnQ/KSB7XG4gICAgICAgIC8vIEVWRU5UOiBPTl9CRUZPUkVfQ0xPU0VcbiAgICAgICAgcmV0dXJuIGluaXRpYXRlQ2FsbGJhY2soVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5ULkJFRk9SRV9DTE9TRSwgdmFyaWFibGUsIGdldChldnQsICdkYXRhJyksIGV2dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2FsbHMgdGhlIE9OX0JFRk9SRV9PUEVOIGNhbGxiYWNrIGFzc2lnbmVkXG4gICAgICogY2FsbGVkIGp1c3QgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGlzIG9wZW5cbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcGFyYW0gZXZ0XG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9vbkJlZm9yZVNvY2tldE9wZW4odmFyaWFibGUsIGV2dD8pIHtcbiAgICAgICAgLy8gRVZFTlQ6IE9OX0JFRk9SRV9PUEVOXG4gICAgICAgIHJldHVybiBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5CRUZPUkVfT1BFTiwgdmFyaWFibGUsIGdldChldnQsICdkYXRhJyksIGV2dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2FsbHMgdGhlIE9OX09QRU4gZXZlbnQgb24gdGhlIHZhcmlhYmxlXG4gICAgICogdGhpcyBpcyBjYWxsZWQgb25jZSB0aGUgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCBieSB0aGUgdmFyaWFibGUgd2l0aCB0aGUgdGFyZ2V0IFdlYlNvY2tldCBzZXJ2aWNlXG4gICAgICogQHBhcmFtIHZhcmlhYmxlXG4gICAgICogQHBhcmFtIGV2dFxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25Tb2NrZXRPcGVuKHZhcmlhYmxlLCBldnQpIHtcbiAgICAgICAgdmFyaWFibGUuX3NvY2tldENvbm5lY3RlZCA9IHRydWU7XG4gICAgICAgIC8vIEVWRU5UOiBPTl9PUEVOXG4gICAgICAgIGluaXRpYXRlQ2FsbGJhY2soVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5ULk9QRU4sIHZhcmlhYmxlLCBnZXQoZXZ0LCAnZGF0YScpLCBldnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNsZWFycyB0aGUgc29ja2V0IHZhcmlhYmxlIGFnYWluc3QgdGhlIHZhcmlhYmxlIGluIGEgc2NvcGVcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZyZWVTb2NrZXQodmFyaWFibGUpIHtcbiAgICAgICAgdGhpcy5zY29wZV92YXJfc29ja2V0X21hcC5zZXQodmFyaWFibGUsIHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2FsbHMgdGhlIE9OX0NMT1NFIGV2ZW50IG9uIHRoZSB2YXJpYWJsZVxuICAgICAqIHRoaXMgaXMgY2FsbGVkIG9uIGNsb3NlIG9mIGFuIGV4aXN0aW5nIGNvbm5lY3Rpb24gb24gYSB2YXJpYWJsZVxuICAgICAqIEBwYXJhbSB2YXJpYWJsZVxuICAgICAqIEBwYXJhbSBldnRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX29uU29ja2V0Q2xvc2UodmFyaWFibGUsIGV2dCkge1xuICAgICAgICB2YXJpYWJsZS5fc29ja2V0Q29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnJlZVNvY2tldCh2YXJpYWJsZSk7XG4gICAgICAgIC8vIEVWRU5UOiBPTl9DTE9TRVxuICAgICAgICBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5DTE9TRSwgdmFyaWFibGUsIGdldChldnQsICdkYXRhJyksIGV2dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2FsbHMgdGhlIE9OX0VSUk9SIGV2ZW50IG9uIHRoZSB2YXJpYWJsZVxuICAgICAqIHRoaXMgaXMgY2FsbGVkIGlmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBjb25uZWN0aW5nIHRvIHRoZSBzb2NrZXQgc2VydmljZVxuICAgICAqIEBwYXJhbSB2YXJpYWJsZVxuICAgICAqIEBwYXJhbSBldnRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX29uU29ja2V0RXJyb3IodmFyaWFibGUsIGV2dCkge1xuICAgICAgICB2YXJpYWJsZS5fc29ja2V0Q29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnJlZVNvY2tldCh2YXJpYWJsZSk7XG4gICAgICAgIC8vIEVWRU5UOiBPTl9FUlJPUlxuICAgICAgICBpbml0aWF0ZUNhbGxiYWNrKFZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVC5FUlJPUiwgdmFyaWFibGUsIGdldChldnQsICdkYXRhJykgfHwgJ0Vycm9yIHdoaWxlIGNvbm5lY3Rpbmcgd2l0aCAnICsgdmFyaWFibGUuc2VydmljZSwgZXZ0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGFuIGV4aXN0aW5nIHNvY2tldCBjb25uZWN0aW9uIG9uIHRoZSB2YXJpYWJsZVxuICAgICAqIGlmIG5vdCBwcmVzZW50LCBtYWtlIHRoZSBjb25uZWN0aW9uIGFuZCByZXR1cm4gaXRcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFNvY2tldCh2YXJpYWJsZSkge1xuICAgICAgICBjb25zdCB1cmwgICAgID0gdGhpcy5nZXRVUkwodmFyaWFibGUpO1xuICAgICAgICBsZXQgX3NvY2tldCA9IHRoaXMuc2NvcGVfdmFyX3NvY2tldF9tYXAuZ2V0KHZhcmlhYmxlKTtcbiAgICAgICAgaWYgKF9zb2NrZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBfc29ja2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJpZ2dlciBlcnJvciBpZiB1bnNlY3VyZWQgd2ViU29ja2V0IGlzIHVzZWQgaW4gc2VjdXJlZCBkb21haW4sIGlnbm9yZSBpbiBtb2JpbGUgZGV2aWNlXG4gICAgICAgIGlmICghQ09OU1RBTlRTLmhhc0NvcmRvdmEgJiYgaXNJbnNlY3VyZUNvbnRlbnRSZXF1ZXN0KHVybCkpIHtcbiAgICAgICAgICAgIHRyaWdnZXJGbih0aGlzLl9vblNvY2tldEVycm9yLmJpbmQodGhpcywgdmFyaWFibGUpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBfc29ja2V0ID0gbmV3ICRXZWJTb2NrZXQodXJsKTtcbiAgICAgICAgX3NvY2tldC5vbk9wZW4odGhpcy5fb25Tb2NrZXRPcGVuLmJpbmQodGhpcywgdmFyaWFibGUpKTtcbiAgICAgICAgX3NvY2tldC5vbkVycm9yKHRoaXMuX29uU29ja2V0RXJyb3IuYmluZCh0aGlzLCB2YXJpYWJsZSkpO1xuICAgICAgICBfc29ja2V0Lm9uTWVzc2FnZSh0aGlzLl9vblNvY2tldE1lc3NhZ2UuYmluZCh0aGlzLCB2YXJpYWJsZSkpO1xuICAgICAgICBfc29ja2V0Lm9uQ2xvc2UodGhpcy5fb25Tb2NrZXRDbG9zZS5iaW5kKHRoaXMsIHZhcmlhYmxlKSk7XG5cbiAgICAgICAgdGhpcy5zY29wZV92YXJfc29ja2V0X21hcC5zZXQodmFyaWFibGUsIF9zb2NrZXQpO1xuICAgICAgICB2YXJpYWJsZS5fc29ja2V0ID0gX3NvY2tldDtcbiAgICAgICAgcmV0dXJuIF9zb2NrZXQ7XG59XG5cbiAgICAvKipcbiAgICAgKiBvcGVucyBhIHNvY2tldCBjb25uZWN0aW9uIG9uIHRoZSB2YXJpYWJsZS5cbiAgICAgKiBVUkwgJiBvdGhlciBtZXRhIGRhdGEgaXMgZmV0Y2hlZCBmcm9tIHdtU2VydmljZU9wZXJhdGlvbkluZm9cbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb3Blbih2YXJpYWJsZTogV2ViU29ja2V0VmFyaWFibGUsIHN1Y2Nlc3M/LCBlcnJvcj8pIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkT3BlbiA9IHRoaXMuX29uQmVmb3JlU29ja2V0T3Blbih2YXJpYWJsZSk7XG4gICAgICAgIGxldCBzb2NrZXQ7XG4gICAgICAgIGlmIChzaG91bGRPcGVuID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdHJpZ2dlckZuKGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzb2NrZXQgPSB0aGlzLmdldFNvY2tldCh2YXJpYWJsZSk7XG4gICAgICAgIHRyaWdnZXJGbihzdWNjZXNzKTtcbiAgICAgICAgcmV0dXJuIHNvY2tldDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZXMgYW4gZXhpc3Rpbmcgc29ja2V0IGNvbm5lY3Rpb24gb24gdmFyaWFibGVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2UodmFyaWFibGU6IFdlYlNvY2tldFZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IHNob3VsZENsb3NlID0gdGhpcy5fb25CZWZvcmVTb2NrZXRDbG9zZSh2YXJpYWJsZSksXG4gICAgICAgICAgICBzb2NrZXQgICAgICA9IHRoaXMuZ2V0U29ja2V0KHZhcmlhYmxlKTtcbiAgICAgICAgaWYgKHNob3VsZENsb3NlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNvY2tldC5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNlbmRzIGEgbWVzc2FnZSB0byB0aGUgZXhpc3Rpbmcgc29ja2V0IGNvbm5lY3Rpb24gb24gdGhlIHZhcmlhYmxlXG4gICAgICogSWYgc29ja2V0IGNvbm5lY3Rpb24gbm90IG9wZW4geWV0LCBvcGVuIGEgY29ubmVjdGlvbnMgYW5kIHRoZW4gc2VuZFxuICAgICAqIGlmIG1lc3NhZ2UgcHJvdmlkZSwgaXQgaXMgc2VudCwgZWxzZSB0aGUgb25lIHByZXNlbnQgaW4gUmVxdWVzdEJvZHkgcGFyYW0gaXMgc2VudFxuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgcHVibGljIHNlbmQodmFyaWFibGU6IFdlYlNvY2tldFZhcmlhYmxlLCBtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHNvY2tldCAgICAgID0gdGhpcy5nZXRTb2NrZXQodmFyaWFibGUpO1xuICAgICAgICBsZXQgcmVzcG9uc2U7XG5cbiAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgfHwgZ2V0KHZhcmlhYmxlLCAnZGF0YUJpbmRpbmcuUmVxdWVzdEJvZHknKTtcbiAgICAgICAgcmVzcG9uc2UgPSB0aGlzLl9vbkJlZm9yZVNlbmQodmFyaWFibGUsIG1lc3NhZ2UpO1xuICAgICAgICBpZiAocmVzcG9uc2UgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbWVzc2FnZSA9IGlzRGVmaW5lZChyZXNwb25zZSkgPyByZXNwb25zZSA6IG1lc3NhZ2U7XG4gICAgICAgIG1lc3NhZ2UgPSBpc09iamVjdChtZXNzYWdlKSA/IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpIDogbWVzc2FnZTtcbiAgICAgICAgc29ja2V0LnNlbmQobWVzc2FnZSwgMCk7XG4gICAgfVxufVxuIl19
|