@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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { LocalDBManagementService } from './local-db-management.service';
|
|
3
|
+
import { forEach, get, mapKeys } from "lodash-es";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "./local-db-management.service";
|
|
5
6
|
export class LocalDbService {
|
|
@@ -26,7 +27,7 @@ export class LocalDbService {
|
|
|
26
27
|
insertTableData(params, successCallback, failureCallback, options = {}) {
|
|
27
28
|
this.getStore(params).then(store => {
|
|
28
29
|
const isPKAutoIncremented = (store.primaryKeyField && store.primaryKeyField.generatorType === 'identity');
|
|
29
|
-
if (
|
|
30
|
+
if (get(options, 'resetPrimaryKey') !== false && isPKAutoIncremented && params.data[store.primaryKeyName]) {
|
|
30
31
|
delete params.data[store.primaryKeyName];
|
|
31
32
|
}
|
|
32
33
|
return store.add(params.data).then(() => {
|
|
@@ -167,7 +168,7 @@ export class LocalDbService {
|
|
|
167
168
|
return fieldName;
|
|
168
169
|
}
|
|
169
170
|
convertFieldNameToColumnName(store, filterGroup, options) {
|
|
170
|
-
|
|
171
|
+
forEach(filterGroup.rules, rule => {
|
|
171
172
|
if (rule.rules) {
|
|
172
173
|
this.convertFieldNameToColumnName(store, rule);
|
|
173
174
|
}
|
|
@@ -177,7 +178,7 @@ export class LocalDbService {
|
|
|
177
178
|
});
|
|
178
179
|
// handling the scenario where variable options can have filterField. For example: search filter query
|
|
179
180
|
if (options && options.filterFields) {
|
|
180
|
-
options.filterFields =
|
|
181
|
+
options.filterFields = mapKeys(options.filterFields, (v, k) => {
|
|
181
182
|
return this.getColumnName(store, k);
|
|
182
183
|
});
|
|
183
184
|
}
|
|
@@ -189,4 +190,4 @@ export class LocalDbService {
|
|
|
189
190
|
type: Injectable,
|
|
190
191
|
args: [{ providedIn: 'root' }]
|
|
191
192
|
}], () => [{ type: i1.LocalDBManagementService }], null); })();
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vYmlsZS9vZmZsaW5lL3NyYy9zZXJ2aWNlcy9sb2NhbC1kYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQU16RSxNQUFNLE9BQU8sY0FBYzthQUNQLGlCQUFZLEdBQUcsZ0JBQWdCLEFBQW5CLENBQW9CO0lBS2hELFlBQW9CLHdCQUFrRDtRQUFsRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sUUFBUSxDQUFDLE1BQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxlQUFlLENBQUMsTUFBVyxFQUFFLGVBQXFCLEVBQUUsZUFBcUIsRUFBRSxPQUFPLEdBQUcsRUFBRTtRQUMxRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQixNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFB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QUFDLFlBQVksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQzsrRUFoTVEsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFERixNQUFNOztpRkFDbEIsY0FBYztjQUQxQixVQUFVO2VBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMb2NhbERCTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuL2xvY2FsLWRiLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbERCU3RvcmUgfSBmcm9tICcuLi9tb2RlbHMvbG9jYWwtZGItc3RvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIExvY2FsRGJTZXJ2aWNlIHtcbiAgICBzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9OQU1FID0gJ0xvY2FsRGJTZXJ2aWNlJztcbiAgICBwcml2YXRlIHNlYXJjaFRhYmxlRGF0YTtcbiAgICBwcml2YXRlIHNlYXJjaFRhYmxlRGF0YVdpdGhRdWVyeTtcbiAgICBwcml2YXRlIGdldERpc3RpbmN0RGF0YUJ5RmllbGRzO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhbERCTWFuYWdlbWVudFNlcnZpY2U6IExvY2FsREJNYW5hZ2VtZW50U2VydmljZSkge1xuICAgICAgICB0aGlzLnNlYXJjaFRhYmxlRGF0YSA9IHRoaXMucmVhZFRhYmxlRGF0YS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnNlYXJjaFRhYmxlRGF0YVdpdGhRdWVyeSA9IHRoaXMucmVhZFRhYmxlRGF0YS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmdldERpc3RpbmN0RGF0YUJ5RmllbGRzID0gdGhpcy5yZWFkVGFibGVEYXRhLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN0b3JlKHBhcmFtczogYW55KTogUHJvbWlzZTxMb2NhbERCU3RvcmU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlLmdldFN0b3JlKHBhcmFtcy5kYXRhTW9kZWxOYW1lLCBwYXJhbXMuZW50aXR5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIGluc2VydCBkYXRhIGludG8gdGhlIHNwZWNpZmllZCB0YWJsZS4gVGhpcyBtb2RpZmljYXRpb24gd2lsbCBiZSBhZGRlZCB0byBvZmZsaW5lIGNoYW5nZSBsb2cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogICAgICAgICAgICAgICAgIE9iamVjdCBjb250YWluaW5nIG5hbWUgb2YgdGhlIHByb2plY3QgJiB0YWJsZSBkYXRhIHRvIGJlIGluc2VydGVkLlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgdHJpZ2dlcmVkIG9uIHN1Y2Nlc3MuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IGZhaWx1cmVDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaW5zZXJ0VGFibGVEYXRhKHBhcmFtczogYW55LCBzdWNjZXNzQ2FsbGJhY2s/OiBhbnksIGZhaWx1cmVDYWxsYmFjaz86IGFueSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuZ2V0U3RvcmUocGFyYW1zKS50aGVuKHN0b3JlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzUEtBdXRvSW5jcmVtZW50ZWQgPSAoc3RvcmUucHJpbWFyeUtleUZpZWxkICYmIHN0b3JlLnByaW1hcnlLZXlGaWVsZC5nZW5lcmF0b3JUeXBlID09PSAnaWRlbnRpdHknKTtcbiAgICAgICAgICAgIGlmIChfLmdldChvcHRpb25zLCAncmVzZXRQcmltYXJ5S2V5JykgIT09IGZhbHNlICYmIGlzUEtBdXRvSW5jcmVtZW50ZWQgJiYgcGFyYW1zLmRhdGFbc3RvcmUucHJpbWFyeUtleU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcmFtcy5kYXRhW3N0b3JlLnByaW1hcnlLZXlOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5hZGQocGFyYW1zLmRhdGEpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0b3JlLnJlZnJlc2gocGFyYW1zLmRhdGEpLnRoZW4oc3VjY2Vzc0NhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5jYXRjaChmYWlsdXJlQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0byBpbnNlcnQgbXVsdGkgcGFydCBkYXRhIGludG8gdGhlIHNwZWNpZmllZCB0YWJsZS4gVGhpcyBtb2RpZmljYXRpb24gd2lsbCBiZSBhZGRlZCB0byBvZmZsaW5lIGNoYW5nZSBsb2cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogICAgICAgICAgICAgICAgIE9iamVjdCBjb250YWluaW5nIG5hbWUgb2YgdGhlIHByb2plY3QgJiB0YWJsZSBkYXRhIHRvIGJlIGluc2VydGVkLlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgdHJpZ2dlcmVkIG9uIHN1Y2Nlc3MuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IGZhaWx1cmVDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaW5zZXJ0TXVsdGlQYXJ0VGFibGVEYXRhKHBhcmFtczogYW55LCBzdWNjZXNzQ2FsbGJhY2s/OiBhbnksIGZhaWx1cmVDYWxsYmFjaz86IGFueSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuZ2V0U3RvcmUocGFyYW1zKS50aGVuKHN0b3JlID0+IHtcbiAgICAgICAgICAgIHN0b3JlLnNlcmlhbGl6ZShwYXJhbXMuZGF0YSkudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRUYWJsZURhdGEocGFyYW1zLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjaywgb3B0aW9ucyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkuY2F0Y2goZmFpbHVyZUNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdXBkYXRlIGRhdGEgaW4gdGhlIHNwZWNpZmllZCB0YWJsZS4gVGhpcyBtb2RpZmljYXRpb24gd2lsbCBiZSBhZGRlZCB0byBvZmZsaW5lIGNoYW5nZSBsb2cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogICAgICAgICAgICAgICAgIE9iamVjdCBjb250YWluaW5nIG5hbWUgb2YgdGhlIHByb2plY3QgJiB0YWJsZSBkYXRhIHRvIGJlIHVwZGF0ZWQuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IHN1Y2Nlc3NDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gc3VjY2Vzcy5cbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uPX0gZmFpbHVyZUNhbGxiYWNrXG4gICAgICogICAgICAgICAgICAgICAgICAgIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIHRyaWdnZXJlZCBvbiBmYWlsdXJlLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVUYWJsZURhdGEocGFyYW1zOiBhbnksIHN1Y2Nlc3NDYWxsYmFjaz86IGFueSwgZmFpbHVyZUNhbGxiYWNrPzogYW55KSB7XG4gICAgICAgIHRoaXMuZ2V0U3RvcmUocGFyYW1zKS50aGVuKHN0b3JlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5zYXZlKHBhcmFtcy5kYXRhKVxuICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmUucmVmcmVzaChwYXJhbXMuZGF0YSkudGhlbihzdWNjZXNzQ2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5jYXRjaChmYWlsdXJlQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0byB1cGRhdGUgbXVsdGkgcGFydCBkYXRhIGluIHRoZSBzcGVjaWZpZWQgdGFibGUuIFRoaXMgbW9kaWZpY2F0aW9uIHdpbGwgYmUgYWRkZWQgdG8gb2ZmbGluZSBjaGFuZ2UgbG9nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtvYmplY3R9IHBhcmFtc1xuICAgICAqICAgICAgICAgICAgICAgICBPYmplY3QgY29udGFpbmluZyBuYW1lIG9mIHRoZSBwcm9qZWN0ICYgdGFibGUgZGF0YSB0byBiZSB1cGRhdGVkLlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgdHJpZ2dlcmVkIG9uIHN1Y2Nlc3MuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IGZhaWx1cmVDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlTXVsdGlQYXJ0VGFibGVEYXRhKHBhcmFtczogYW55LCBzdWNjZXNzQ2FsbGJhY2s/OiBhbnksIGZhaWx1cmVDYWxsYmFjaz86IGFueSkgIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IChwYXJhbXMuZGF0YSAmJiBwYXJhbXMuZGF0YS5yb3dEYXRhKSB8fCBwYXJhbXMuZGF0YTtcbiAgICAgICAgdGhpcy5nZXRTdG9yZShwYXJhbXMpLnRoZW4oc3RvcmUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JlLnNhdmUoZGF0YSk7XG4gICAgICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHN1Y2Nlc3NDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjayhkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2goZmFpbHVyZUNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gZGVsZXRlIGRhdGEgaW4gdGhlIHNwZWNpZmllZCB0YWJsZS4gVGhpcyBtb2RpZmljYXRpb24gd2lsbCBiZSBhZGRlZCB0byBvZmZsaW5lIGNoYW5nZSBsb2cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogICAgICAgICAgICAgICAgIE9iamVjdCBjb250YWluaW5nIG5hbWUgb2YgdGhlIHByb2plY3QgJiB0YWJsZSBkYXRhIHRvIGJlIGluc2VydGVkLlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgdHJpZ2dlcmVkIG9uIHN1Y2Nlc3MuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IGZhaWx1cmVDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlVGFibGVEYXRhKHBhcmFtczogYW55LCBzdWNjZXNzQ2FsbGJhY2s/OiBhbnksIGZhaWx1cmVDYWxsYmFjaz86IGFueSkge1xuICAgICAgICB0aGlzLmdldFN0b3JlKHBhcmFtcykudGhlbihzdG9yZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwa0ZpZWxkID0gc3RvcmUucHJpbWFyeUtleUZpZWxkLFxuICAgICAgICAgICAgICAgIGlkID0gcGFyYW1zW3BrRmllbGQuZmllbGROYW1lXSB8fCBwYXJhbXNbcGtGaWVsZC5uYW1lXSB8fCAocGFyYW1zLmRhdGEgJiYgcGFyYW1zLmRhdGFbcGtGaWVsZC5maWVsZE5hbWVdKSB8fCBwYXJhbXMuaWQ7XG4gICAgICAgICAgICBzdG9yZS5kZWxldGUoaWQpLnRoZW4oc3VjY2Vzc0NhbGxiYWNrKTtcbiAgICAgICAgfSkuY2F0Y2goZmFpbHVyZUNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gcmVhZCBkYXRhIGZyb20gYSBzcGVjaWZpZWQgdGFibGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogICAgICAgICAgICAgICAgIE9iamVjdCBjb250YWluaW5nIG5hbWUgb2YgdGhlIHByb2plY3QgJiB0YWJsZSBkYXRhIHRvIGJlIGluc2VydGVkLlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgdHJpZ2dlcmVkIG9uIHN1Y2Nlc3MuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IGZhaWx1cmVDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZFRhYmxlRGF0YShwYXJhbXM6IGFueSwgc3VjY2Vzc0NhbGxiYWNrPzogYW55LCBmYWlsdXJlQ2FsbGJhY2s/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5nZXRTdG9yZShwYXJhbXMpLnRoZW4oc3RvcmUgPT4ge1xuICAgICAgICAgICAgbGV0IGZpbHRlciA9IHBhcmFtcy5maWx0ZXIoKGZpbHRlckdyb3VwLCBmaWx0ZXJGaWVsZHMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnRGaWVsZE5hbWVUb0NvbHVtbk5hbWUoc3RvcmUsIGZpbHRlckdyb3VwLCBmaWx0ZXJGaWVsZHMpO1xuICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICAvLyBjb252ZXJ0IHdtX2Jvb2wgZnVuY3Rpb24gd2l0aCBib29sZWFuIHZhbHVlIHRvIDAvMVxuICAgICAgICAgICAgZmlsdGVyID0gZmlsdGVyLnJlcGxhY2UoL3dtX2Jvb2xcXCgndHJ1ZSdcXCkvZywgMSkucmVwbGFjZSgvd21fYm9vbFxcKCdmYWxzZSdcXCkvZywgMCk7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUuY291bnQoZmlsdGVyKS50aGVuKHRvdGFsRWxlbWVudHMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvcnQgPSBwYXJhbXMuc29ydC5zcGxpdCgnPScpWzFdO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdG9yZS5maWx0ZXIoZmlsdGVyLCBzb3J0LCB7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogKHBhcmFtcy5wYWdlIC0gMSkgKiBwYXJhbXMuc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgbGltaXQ6IHBhcmFtcy5zaXplXG4gICAgICAgICAgICAgICAgfSkudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGguY2VpbCh0b3RhbEVsZW1lbnRzIC8gcGFyYW1zLnNpemUpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2soe1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQnICAgICAgICAgOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpcnN0JyAgICAgICAgICAgOiAocGFyYW1zLnBhZ2UgPT09IDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2xhc3QnICAgICAgICAgICAgOiAocGFyYW1zLnBhZ2UgPT09IHRvdGFsUGFnZXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJlcicgICAgICAgICAgOiAocGFyYW1zLnBhZ2UgLSAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdudW1iZXJPZkVsZW1lbnRzJzogZGF0YS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2l6ZScgICAgICAgICAgICA6IHBhcmFtcy5zaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnQnICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnRlZCcgOiAhIXNvcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Vuc29ydGVkJyA6ICFzb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RvdGFsRWxlbWVudHMnICAgOiB0b3RhbEVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RvdGFsUGFnZXMnICAgICAgOiB0b3RhbFBhZ2VzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLmNhdGNoKGZhaWx1cmVDYWxsYmFjayk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlc2NhcGVOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKC9cIi9nLCAnXCJcIicpO1xuICAgICAgICAgICAgcmV0dXJuICdcIicgKyBuYW1lLnJlcGxhY2UoL1xcLi9nLCAnXCIuXCInKSArICdcIic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgfVxuXG4gICAgLy8gcmV0dXJucyB0aGUgY29sdW1uTmFtZSBhcHBlbmRpbmcgd2l0aCB0aGUgc2NoZW1hIG5hbWUuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5OYW1lKHN0b3JlLCBmaWVsZE5hbWUpIHtcbiAgICAgICAgaWYgKHN0b3JlLmZpZWxkVG9Db2x1bW5NYXBwaW5nW2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWUgPSB0aGlzLmVzY2FwZU5hbWUoc3RvcmUuZmllbGRUb0NvbHVtbk1hcHBpbmdbZmllbGROYW1lXSk7XG4gICAgICAgICAgICBpZiAoY29sdW1uTmFtZS5pbmRleE9mKCcuJykgPCAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXNjYXBlTmFtZShzdG9yZS5lbnRpdHlTY2hlbWEubmFtZSkgKyAnLicgKyBjb2x1bW5OYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpZWxkTmFtZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnZlcnRGaWVsZE5hbWVUb0NvbHVtbk5hbWUoc3RvcmU6IExvY2FsREJTdG9yZSwgZmlsdGVyR3JvdXA6IGFueSwgb3B0aW9ucz86IGFueSkge1xuICAgICAgICBfLmZvckVhY2goZmlsdGVyR3JvdXAucnVsZXMsIHJ1bGUgPT4ge1xuICAgICAgICAgICAgaWYgKHJ1bGUucnVsZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnRGaWVsZE5hbWVUb0NvbHVtbk5hbWUoc3RvcmUsIHJ1bGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBydWxlLnRhcmdldCA9IHRoaXMuZ2V0Q29sdW1uTmFtZShzdG9yZSwgcnVsZS50YXJnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gaGFuZGxpbmcgdGhlIHNjZW5hcmlvIHdoZXJlIHZhcmlhYmxlIG9wdGlvbnMgY2FuIGhhdmUgZmlsdGVyRmllbGQuIEZvciBleGFtcGxlOiBzZWFyY2ggZmlsdGVyIHF1ZXJ5XG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZmlsdGVyRmllbGRzKSB7XG4gICAgICAgICAgICBvcHRpb25zLmZpbHRlckZpZWxkcyA9IF8ubWFwS2V5cyhvcHRpb25zLmZpbHRlckZpZWxkcywgKHYsIGspID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW5OYW1lKHN0b3JlLCBrKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vYmlsZS9vZmZsaW5lL3NyYy9zZXJ2aWNlcy9sb2NhbC1kYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekUsT0FBTyxFQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7QUFJaEQsTUFBTSxPQUFPLGNBQWM7YUFDUCxpQkFBWSxHQUFHLGdCQUFnQixBQUFuQixDQUFvQjtJQUtoRCxZQUFvQix3QkFBa0Q7UUFBbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLFFBQVEsQ0FBQyxNQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksZUFBZSxDQUFDLE1BQVcsRUFBRSxlQUFxQixFQUFFLGVBQXFCLEVBQUUsT0FBTyxHQUFHLEVBQUU7UUFDMUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMs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QUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQyxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMxRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7K0VBaE1RLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWMsbUJBREYsTUFBTTs7aUZBQ2xCLGNBQWM7Y0FEMUIsVUFBVTtlQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1kYi1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxEQlN0b3JlIH0gZnJvbSAnLi4vbW9kZWxzL2xvY2FsLWRiLXN0b3JlJztcbmltcG9ydCB7Zm9yRWFjaCwgZ2V0LCBtYXBLZXlzfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTG9jYWxEYlNlcnZpY2Uge1xuICAgIHN0YXRpYyByZWFkb25seSBTRVJWSUNFX05BTUUgPSAnTG9jYWxEYlNlcnZpY2UnO1xuICAgIHByaXZhdGUgc2VhcmNoVGFibGVEYXRhO1xuICAgIHByaXZhdGUgc2VhcmNoVGFibGVEYXRhV2l0aFF1ZXJ5O1xuICAgIHByaXZhdGUgZ2V0RGlzdGluY3REYXRhQnlGaWVsZHM7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsREJNYW5hZ2VtZW50U2VydmljZTogTG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGFibGVEYXRhID0gdGhpcy5yZWFkVGFibGVEYXRhLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuc2VhcmNoVGFibGVEYXRhV2l0aFF1ZXJ5ID0gdGhpcy5yZWFkVGFibGVEYXRhLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZ2V0RGlzdGluY3REYXRhQnlGaWVsZHMgPSB0aGlzLnJlYWRUYWJsZURhdGEuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3RvcmUocGFyYW1zOiBhbnkpOiBQcm9taXNlPExvY2FsREJTdG9yZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbERCTWFuYWdlbWVudFNlcnZpY2UuZ2V0U3RvcmUocGFyYW1zLmRhdGFNb2RlbE5hbWUsIHBhcmFtcy5lbnRpdHlOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gaW5zZXJ0IGRhdGEgaW50byB0aGUgc3BlY2lmaWVkIHRhYmxlLiBUaGlzIG1vZGlmaWNhdGlvbiB3aWxsIGJlIGFkZGVkIHRvIG9mZmxpbmUgY2hhbmdlIGxvZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbXNcbiAgICAgKiAgICAgICAgICAgICAgICAgT2JqZWN0IGNvbnRhaW5pbmcgbmFtZSBvZiB0aGUgcHJvamVjdCAmIHRhYmxlIGRhdGEgdG8gYmUgaW5zZXJ0ZWQuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IHN1Y2Nlc3NDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gc3VjY2Vzcy5cbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uPX0gZmFpbHVyZUNhbGxiYWNrXG4gICAgICogICAgICAgICAgICAgICAgICAgIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIHRyaWdnZXJlZCBvbiBmYWlsdXJlLlxuICAgICAqL1xuICAgIHB1YmxpYyBpbnNlcnRUYWJsZURhdGEocGFyYW1zOiBhbnksIHN1Y2Nlc3NDYWxsYmFjaz86IGFueSwgZmFpbHVyZUNhbGxiYWNrPzogYW55LCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5nZXRTdG9yZShwYXJhbXMpLnRoZW4oc3RvcmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNQS0F1dG9JbmNyZW1lbnRlZCA9IChzdG9yZS5wcmltYXJ5S2V5RmllbGQgJiYgc3RvcmUucHJpbWFyeUtleUZpZWxkLmdlbmVyYXRvclR5cGUgPT09ICdpZGVudGl0eScpO1xuICAgICAgICAgICAgaWYgKGdldChvcHRpb25zLCAncmVzZXRQcmltYXJ5S2V5JykgIT09IGZhbHNlICYmIGlzUEtBdXRvSW5jcmVtZW50ZWQgJiYgcGFyYW1zLmRhdGFbc3RvcmUucHJpbWFyeUtleU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcmFtcy5kYXRhW3N0b3JlLnByaW1hcnlLZXlOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5hZGQocGFyYW1zLmRhdGEpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0b3JlLnJlZnJlc2gocGFyYW1zLmRhdGEpLnRoZW4oc3VjY2Vzc0NhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5jYXRjaChmYWlsdXJlQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0byBpbnNlcnQgbXVsdGkgcGFydCBkYXRhIGludG8gdGhlIHNwZWNpZmllZCB0YWJsZS4gVGhpcyBtb2RpZmljYXRpb24gd2lsbCBiZSBhZGRlZCB0byBvZmZsaW5lIGNoYW5nZSBsb2cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogICAgICAgICAgICAgICAgIE9iamVjdCBjb250YWluaW5nIG5hbWUgb2YgdGhlIHByb2plY3QgJiB0YWJsZSBkYXRhIHRvIGJlIGluc2VydGVkLlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgdHJpZ2dlcmVkIG9uIHN1Y2Nlc3MuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IGZhaWx1cmVDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaW5zZXJ0TXVsdGlQYXJ0VGFibGVEYXRhKHBhcmFtczogYW55LCBzdWNjZXNzQ2FsbGJhY2s/OiBhbnksIGZhaWx1cmVDYWxsYmFjaz86IGFueSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuZ2V0U3RvcmUocGFyYW1zKS50aGVuKHN0b3JlID0+IHtcbiAgICAgICAgICAgIHN0b3JlLnNlcmlhbGl6ZShwYXJhbXMuZGF0YSkudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRUYWJsZURhdGEocGFyYW1zLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjaywgb3B0aW9ucyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkuY2F0Y2goZmFpbHVyZUNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdXBkYXRlIGRhdGEgaW4gdGhlIHNwZWNpZmllZCB0YWJsZS4gVGhpcyBtb2RpZmljYXRpb24gd2lsbCBiZSBhZGRlZCB0byBvZmZsaW5lIGNoYW5nZSBsb2cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogICAgICAgICAgICAgICAgIE9iamVjdCBjb250YWluaW5nIG5hbWUgb2YgdGhlIHByb2plY3QgJiB0YWJsZSBkYXRhIHRvIGJlIHVwZGF0ZWQuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IHN1Y2Nlc3NDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gc3VjY2Vzcy5cbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uPX0gZmFpbHVyZUNhbGxiYWNrXG4gICAgICogICAgICAgICAgICAgICAgICAgIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIHRyaWdnZXJlZCBvbiBmYWlsdXJlLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVUYWJsZURhdGEocGFyYW1zOiBhbnksIHN1Y2Nlc3NDYWxsYmFjaz86IGFueSwgZmFpbHVyZUNhbGxiYWNrPzogYW55KSB7XG4gICAgICAgIHRoaXMuZ2V0U3RvcmUocGFyYW1zKS50aGVuKHN0b3JlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5zYXZlKHBhcmFtcy5kYXRhKVxuICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmUucmVmcmVzaChwYXJhbXMuZGF0YSkudGhlbihzdWNjZXNzQ2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5jYXRjaChmYWlsdXJlQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0byB1cGRhdGUgbXVsdGkgcGFydCBkYXRhIGluIHRoZSBzcGVjaWZpZWQgdGFibGUuIFRoaXMgbW9kaWZpY2F0aW9uIHdpbGwgYmUgYWRkZWQgdG8gb2ZmbGluZSBjaGFuZ2UgbG9nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtvYmplY3R9IHBhcmFtc1xuICAgICAqICAgICAgICAgICAgICAgICBPYmplY3QgY29udGFpbmluZyBuYW1lIG9mIHRoZSBwcm9qZWN0ICYgdGFibGUgZGF0YSB0byBiZSB1cGRhdGVkLlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgdHJpZ2dlcmVkIG9uIHN1Y2Nlc3MuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IGZhaWx1cmVDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlTXVsdGlQYXJ0VGFibGVEYXRhKHBhcmFtczogYW55LCBzdWNjZXNzQ2FsbGJhY2s/OiBhbnksIGZhaWx1cmVDYWxsYmFjaz86IGFueSkgIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IChwYXJhbXMuZGF0YSAmJiBwYXJhbXMuZGF0YS5yb3dEYXRhKSB8fCBwYXJhbXMuZGF0YTtcbiAgICAgICAgdGhpcy5nZXRTdG9yZShwYXJhbXMpLnRoZW4oc3RvcmUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JlLnNhdmUoZGF0YSk7XG4gICAgICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHN1Y2Nlc3NDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjayhkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2goZmFpbHVyZUNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gZGVsZXRlIGRhdGEgaW4gdGhlIHNwZWNpZmllZCB0YWJsZS4gVGhpcyBtb2RpZmljYXRpb24gd2lsbCBiZSBhZGRlZCB0byBvZmZsaW5lIGNoYW5nZSBsb2cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogICAgICAgICAgICAgICAgIE9iamVjdCBjb250YWluaW5nIG5hbWUgb2YgdGhlIHByb2plY3QgJiB0YWJsZSBkYXRhIHRvIGJlIGluc2VydGVkLlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgdHJpZ2dlcmVkIG9uIHN1Y2Nlc3MuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IGZhaWx1cmVDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlVGFibGVEYXRhKHBhcmFtczogYW55LCBzdWNjZXNzQ2FsbGJhY2s/OiBhbnksIGZhaWx1cmVDYWxsYmFjaz86IGFueSkge1xuICAgICAgICB0aGlzLmdldFN0b3JlKHBhcmFtcykudGhlbihzdG9yZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwa0ZpZWxkID0gc3RvcmUucHJpbWFyeUtleUZpZWxkLFxuICAgICAgICAgICAgICAgIGlkID0gcGFyYW1zW3BrRmllbGQuZmllbGROYW1lXSB8fCBwYXJhbXNbcGtGaWVsZC5uYW1lXSB8fCAocGFyYW1zLmRhdGEgJiYgcGFyYW1zLmRhdGFbcGtGaWVsZC5maWVsZE5hbWVdKSB8fCBwYXJhbXMuaWQ7XG4gICAgICAgICAgICBzdG9yZS5kZWxldGUoaWQpLnRoZW4oc3VjY2Vzc0NhbGxiYWNrKTtcbiAgICAgICAgfSkuY2F0Y2goZmFpbHVyZUNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gcmVhZCBkYXRhIGZyb20gYSBzcGVjaWZpZWQgdGFibGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogICAgICAgICAgICAgICAgIE9iamVjdCBjb250YWluaW5nIG5hbWUgb2YgdGhlIHByb2plY3QgJiB0YWJsZSBkYXRhIHRvIGJlIGluc2VydGVkLlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBzdWNjZXNzQ2FsbGJhY2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgdHJpZ2dlcmVkIG9uIHN1Y2Nlc3MuXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbj19IGZhaWx1cmVDYWxsYmFja1xuICAgICAqICAgICAgICAgICAgICAgICAgICBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSB0cmlnZ2VyZWQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZFRhYmxlRGF0YShwYXJhbXM6IGFueSwgc3VjY2Vzc0NhbGxiYWNrPzogYW55LCBmYWlsdXJlQ2FsbGJhY2s/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5nZXRTdG9yZShwYXJhbXMpLnRoZW4oc3RvcmUgPT4ge1xuICAgICAgICAgICAgbGV0IGZpbHRlciA9IHBhcmFtcy5maWx0ZXIoKGZpbHRlckdyb3VwLCBmaWx0ZXJGaWVsZHMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnRGaWVsZE5hbWVUb0NvbHVtbk5hbWUoc3RvcmUsIGZpbHRlckdyb3VwLCBmaWx0ZXJGaWVsZHMpO1xuICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICAvLyBjb252ZXJ0IHdtX2Jvb2wgZnVuY3Rpb24gd2l0aCBib29sZWFuIHZhbHVlIHRvIDAvMVxuICAgICAgICAgICAgZmlsdGVyID0gZmlsdGVyLnJlcGxhY2UoL3dtX2Jvb2xcXCgndHJ1ZSdcXCkvZywgMSkucmVwbGFjZSgvd21fYm9vbFxcKCdmYWxzZSdcXCkvZywgMCk7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUuY291bnQoZmlsdGVyKS50aGVuKHRvdGFsRWxlbWVudHMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvcnQgPSBwYXJhbXMuc29ydC5zcGxpdCgnPScpWzFdO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdG9yZS5maWx0ZXIoZmlsdGVyLCBzb3J0LCB7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogKHBhcmFtcy5wYWdlIC0gMSkgKiBwYXJhbXMuc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgbGltaXQ6IHBhcmFtcy5zaXplXG4gICAgICAgICAgICAgICAgfSkudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGguY2VpbCh0b3RhbEVsZW1lbnRzIC8gcGFyYW1zLnNpemUpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2soe1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQnICAgICAgICAgOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpcnN0JyAgICAgICAgICAgOiAocGFyYW1zLnBhZ2UgPT09IDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2xhc3QnICAgICAgICAgICAgOiAocGFyYW1zLnBhZ2UgPT09IHRvdGFsUGFnZXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJlcicgICAgICAgICAgOiAocGFyYW1zLnBhZ2UgLSAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdudW1iZXJPZkVsZW1lbnRzJzogZGF0YS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2l6ZScgICAgICAgICAgICA6IHBhcmFtcy5zaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnQnICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnRlZCcgOiAhIXNvcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Vuc29ydGVkJyA6ICFzb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RvdGFsRWxlbWVudHMnICAgOiB0b3RhbEVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RvdGFsUGFnZXMnICAgICAgOiB0b3RhbFBhZ2VzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLmNhdGNoKGZhaWx1cmVDYWxsYmFjayk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlc2NhcGVOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKC9cIi9nLCAnXCJcIicpO1xuICAgICAgICAgICAgcmV0dXJuICdcIicgKyBuYW1lLnJlcGxhY2UoL1xcLi9nLCAnXCIuXCInKSArICdcIic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgfVxuXG4gICAgLy8gcmV0dXJucyB0aGUgY29sdW1uTmFtZSBhcHBlbmRpbmcgd2l0aCB0aGUgc2NoZW1hIG5hbWUuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5OYW1lKHN0b3JlLCBmaWVsZE5hbWUpIHtcbiAgICAgICAgaWYgKHN0b3JlLmZpZWxkVG9Db2x1bW5NYXBwaW5nW2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWUgPSB0aGlzLmVzY2FwZU5hbWUoc3RvcmUuZmllbGRUb0NvbHVtbk1hcHBpbmdbZmllbGROYW1lXSk7XG4gICAgICAgICAgICBpZiAoY29sdW1uTmFtZS5pbmRleE9mKCcuJykgPCAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXNjYXBlTmFtZShzdG9yZS5lbnRpdHlTY2hlbWEubmFtZSkgKyAnLicgKyBjb2x1bW5OYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpZWxkTmFtZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnZlcnRGaWVsZE5hbWVUb0NvbHVtbk5hbWUoc3RvcmU6IExvY2FsREJTdG9yZSwgZmlsdGVyR3JvdXA6IGFueSwgb3B0aW9ucz86IGFueSkge1xuICAgICAgICBmb3JFYWNoKGZpbHRlckdyb3VwLnJ1bGVzLCBydWxlID0+IHtcbiAgICAgICAgICAgIGlmIChydWxlLnJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb252ZXJ0RmllbGROYW1lVG9Db2x1bW5OYW1lKHN0b3JlLCBydWxlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcnVsZS50YXJnZXQgPSB0aGlzLmdldENvbHVtbk5hbWUoc3RvcmUsIHJ1bGUudGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGhhbmRsaW5nIHRoZSBzY2VuYXJpbyB3aGVyZSB2YXJpYWJsZSBvcHRpb25zIGNhbiBoYXZlIGZpbHRlckZpZWxkLiBGb3IgZXhhbXBsZTogc2VhcmNoIGZpbHRlciBxdWVyeVxuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmZpbHRlckZpZWxkcykge1xuICAgICAgICAgICAgb3B0aW9ucy5maWx0ZXJGaWVsZHMgPSBtYXBLZXlzKG9wdGlvbnMuZmlsdGVyRmllbGRzLCAodiwgaykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbHVtbk5hbWUoc3RvcmUsIGspO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNull, isUndefined } from "lodash-es";
|
|
1
2
|
const STORE_KEY = 'errorBlockerStore';
|
|
2
3
|
export class ErrorBlocker {
|
|
3
4
|
constructor(localDBManagementService) {
|
|
@@ -33,7 +34,7 @@ export class ErrorBlocker {
|
|
|
33
34
|
const dataModelName = change.params.dataModelName;
|
|
34
35
|
return this.localDBManagementService.getStore(dataModelName, entityName).then(store => {
|
|
35
36
|
const id = change['dataLocalId'] || change.params.data[store.primaryKeyName];
|
|
36
|
-
if (!(
|
|
37
|
+
if (!(isUndefined(id) || isNull(id))) {
|
|
37
38
|
this.removeError(dataModelName, entityName, id);
|
|
38
39
|
}
|
|
39
40
|
});
|
|
@@ -46,7 +47,7 @@ export class ErrorBlocker {
|
|
|
46
47
|
const dataModelName = change.params.dataModelName;
|
|
47
48
|
return this.localDBManagementService.getStore(dataModelName, entityName).then(store => {
|
|
48
49
|
const id = change['dataLocalId'] || (change.params.data && change.params.data[store.primaryKeyName]) || change.params[store.primaryKeyName] || change.params.id;
|
|
49
|
-
if (!(
|
|
50
|
+
if (!(isUndefined(id) || isNull(id))) {
|
|
50
51
|
this.recordError(dataModelName, entityName, id);
|
|
51
52
|
}
|
|
52
53
|
});
|
|
@@ -111,4 +112,4 @@ export class ErrorBlocker {
|
|
|
111
112
|
this.errorStore[dataModelName][entityName][id] = true;
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItYmxvY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vYmlsZS9vZmZsaW5lL3NyYy9zZXJ2aWNlcy93b3JrZXJzL2Vycm9yLWJsb2NrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUM7QUFFdEMsTUFBTSxPQUFPLFlBQVk7SUFJckIsWUFBb0Isd0JBQWtEO1FBQWxELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7SUFDdEUsQ0FBQztJQUVNLFFBQVEsQ0FBQyxPQUFxQjtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGdEQUFnRDtJQUN6QyxPQUFPLENBQUMsTUFBYztRQUN6QixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDakQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDNUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDbEQsUUFBUSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3ZCLEtBQUssaUJBQWlCLENBQUM7Z0JBQ3ZCLEtBQUssMEJBQTBCLENBQUM7Z0JBQ2hDLEtBQUssaUJBQWlCLENBQUM7Z0JBQ3ZCLEtBQUssMEJBQTBCO29CQUMzQixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUMsRUFBRTt3QkFDbkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFD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YUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlGLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZSwgRmx1c2hDb250ZXh0LCBXb3JrZXIgfSBmcm9tICcuLi9jaGFuZ2UtbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxEQlN0b3JlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xvY2FsLWRiLXN0b3JlJztcbmltcG9ydCB7IExvY2FsREJNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL2xvY2FsLWRiLW1hbmFnZW1lbnQuc2VydmljZSc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuY29uc3QgU1RPUkVfS0VZID0gJ2Vycm9yQmxvY2tlclN0b3JlJztcblxuZXhwb3J0IGNsYXNzIEVycm9yQmxvY2tlciBpbXBsZW1lbnRzIFdvcmtlciB7XG5cbiAgICBwcml2YXRlIGVycm9yU3RvcmU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsREJNYW5hZ2VtZW50U2VydmljZTogTG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHVibGljIHByZUZsdXNoKGNvbnRleHQ6IEZsdXNoQ29udGV4dCkge1xuICAgICAgICB0aGlzLmVycm9yU3RvcmUgPSBjb250ZXh0LmdldChTVE9SRV9LRVkpO1xuICAgIH1cblxuICAgIC8vIGJsb2NrIGFsbCBjYWxscyByZWxhdGVkIHRvIHRoZSBlcnJvciBlbnRpdGllc1xuICAgIHB1YmxpYyBwcmVDYWxsKGNoYW5nZTogQ2hhbmdlKSB7XG4gICAgICAgIGlmIChjaGFuZ2UgJiYgY2hhbmdlLnNlcnZpY2UgPT09ICdEYXRhYmFzZVNlcnZpY2UnKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHlOYW1lID0gY2hhbmdlLnBhcmFtcy5lbnRpdHlOYW1lO1xuICAgICAgICAgICAgY29uc3QgZGF0YU1vZGVsTmFtZSA9IGNoYW5nZS5wYXJhbXMuZGF0YU1vZGVsTmFtZTtcbiAgICAgICAgICAgIHN3aXRjaCAoY2hhbmdlLm9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2luc2VydFRhYmxlRGF0YSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnaW5zZXJ0TXVsdGlQYXJ0VGFibGVEYXRhJzpcbiAgICAgICAgICAgICAgICBjYXNlICd1cGRhdGVUYWJsZURhdGEnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3VwZGF0ZU11bHRpUGFydFRhYmxlRGF0YSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsREJNYW5hZ2VtZW50U2VydmljZS5nZXRTdG9yZShkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lKS50aGVuKCBzdG9yZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQ2FsbChzdG9yZSwgY2hhbmdlLCBkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lLCBjaGFuZ2UucGFyYW1zLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjYXNlICdkZWxldGVUYWJsZURhdGEnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbERCTWFuYWdlbWVudFNlcnZpY2UuZ2V0U3RvcmUoZGF0YU1vZGVsTmFtZSwgZW50aXR5TmFtZSkudGhlbiggc3RvcmUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja0NhbGwoc3RvcmUsIGNoYW5nZSwgZGF0YU1vZGVsTmFtZSwgZW50aXR5TmFtZSwgY2hhbmdlLnBhcmFtcyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gc3RvcmUgZXJyb3IgZW50aXR5IGlkXG4gICAgcHVibGljIHBvc3RDYWxsU3VjY2VzcyhjaGFuZ2U6IENoYW5nZSkge1xuICAgICAgICBpZiAoY2hhbmdlICYmIGNoYW5nZS5zZXJ2aWNlID09PSAnRGF0YWJhc2VTZXJ2aWNlJykge1xuICAgICAgICAgICAgY29uc3QgZW50aXR5TmFtZSA9IGNoYW5nZS5wYXJhbXMuZW50aXR5TmFtZTtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFNb2RlbE5hbWUgPSBjaGFuZ2UucGFyYW1zLmRhdGFNb2RlbE5hbWU7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbERCTWFuYWdlbWVudFNlcnZpY2UuZ2V0U3RvcmUoZGF0YU1vZGVsTmFtZSwgZW50aXR5TmFtZSkudGhlbiggc3RvcmUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gY2hhbmdlWydkYXRhTG9jYWxJZCddIHx8IGNoYW5nZS5wYXJhbXMuZGF0YVtzdG9yZS5wcmltYXJ5S2V5TmFtZV07XG4gICAgICAgICAgICAgICAgaWYgKCEoXy5pc1VuZGVmaW5lZChpZCkgfHwgXy5pc051bGwoaWQpKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yKGRhdGFNb2RlbE5hbWUsIGVudGl0eU5hbWUsIGlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHN0b3JlIGVycm9yIGVudGl0eSBpZFxuICAgIHB1YmxpYyBwb3N0Q2FsbEVycm9yKGNoYW5nZTogQ2hhbmdlKSB7XG4gICAgICAgIGlmIChjaGFuZ2UgJiYgY2hhbmdlLnNlcnZpY2UgPT09ICdEYXRhYmFzZVNlcnZpY2UnKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHlOYW1lID0gY2hhbmdlLnBhcmFtcy5lbnRpdHlOYW1lO1xuICAgICAgICAgICAgY29uc3QgZGF0YU1vZGVsTmFtZSA9IGNoYW5nZS5wYXJhbXMuZGF0YU1vZGVsTmFtZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsREJNYW5hZ2VtZW50U2VydmljZS5nZXRTdG9yZShkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lKS50aGVuKCBzdG9yZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaWQgPSBjaGFuZ2VbJ2RhdGFMb2NhbElkJ10gfHwgKGNoYW5nZS5wYXJhbXMuZGF0YSAmJiBjaGFuZ2UucGFyYW1zLmRhdGFbc3RvcmUucHJpbWFyeUtleU5hbWVdKSB8fCBjaGFuZ2UucGFyYW1zW3N0b3JlLnByaW1hcnlLZXlOYW1lXSB8fCBjaGFuZ2UucGFyYW1zLmlkO1xuICAgICAgICAgICAgICAgIGlmICghKF8uaXNVbmRlZmluZWQoaWQpIHx8IF8uaXNOdWxsKGlkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNvcmRFcnJvcihkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lLCBpZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGVyZSBpcyBhbiBlYXJsaWVyIGNhbGwgb2YgdGhlIG9iamVjdCBvciBpdHMgcmVsYXRpb25zIHRoYXQgZ290IGZhaWxlZCwgdGhlbiB0aGlzIGNhbGwgd2lsbCBiZVxuICAgICAqIG1hcmtlZCBmb3IgZGlzY2FyZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdG9yZSBMb2NhbERCU3RvcmVcbiAgICAgKiBAcGFyYW0gY2hhbmdlIGNoYW5nZSB0byBibG9ja1xuICAgICAqIEBwYXJhbSBkYXRhTW9kZWxOYW1lXG4gICAgICogQHBhcmFtIGVudGl0eU5hbWVcbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqL1xuICAgIHByaXZhdGUgYmxvY2tDYWxsKHN0b3JlOiBMb2NhbERCU3RvcmUsIGNoYW5nZTogQ2hhbmdlLCBkYXRhTW9kZWxOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgICAgIGlmIChjaGFuZ2UuaGFzRXJyb3IgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tGb3JQcmV2aW91c0Vycm9yKHN0b3JlLCBjaGFuZ2UsIGRhdGFNb2RlbE5hbWUsIGVudGl0eU5hbWUsIGRhdGEpO1xuICAgICAgICAgICAgc3RvcmUuZW50aXR5U2NoZW1hLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjb2wuZm9yZWlnblJlbGF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb2wuZm9yZWlnblJlbGF0aW9ucy5zb21lKGZvcmVpZ25SZWxhdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtmb3JlaWduUmVsYXRpb24uc291cmNlRmllbGROYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tDYWxsKHN0b3JlLCBjaGFuZ2UsIGRhdGFNb2RlbE5hbWUsIGZvcmVpZ25SZWxhdGlvbi50YXJnZXRFbnRpdHksIGRhdGFbZm9yZWlnblJlbGF0aW9uLnNvdXJjZUZpZWxkTmFtZV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhW2NvbC5maWVsZE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0ZvclByZXZpb3VzRXJyb3Ioc3RvcmUsIGNoYW5nZSwgZGF0YU1vZGVsTmFtZSwgZm9yZWlnblJlbGF0aW9uLnRhcmdldEVudGl0eSwgZGF0YSwgY29sLmZpZWxkTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hhbmdlLmhhc0Vycm9yID09PSAxO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEEgaGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIGZvciBlYXJsaWVyIGZhaWx1cmVzLlxuICAgIHByaXZhdGUgY2hlY2tGb3JQcmV2aW91c0Vycm9yKHN0b3JlOiBMb2NhbERCU3RvcmUsIGNoYW5nZTogQ2hhbmdlLCBkYXRhTW9kZWxOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgZGF0YTogYW55LCBrZXk/OiBhbnkpIHtcbiAgICAgICAgY29uc3QgcHJpbWFyeUtleSA9IGtleSB8fCBzdG9yZS5wcmltYXJ5S2V5TmFtZTtcbiAgICAgICAgaWYgKHRoaXMuaGFzRXJyb3IoZGF0YU1vZGVsTmFtZSwgZW50aXR5TmFtZSwgZGF0YVtwcmltYXJ5S2V5XSkpIHtcbiAgICAgICAgICAgIGNoYW5nZS5oYXNFcnJvciA9IDE7XG4gICAgICAgICAgICBjaGFuZ2UuZXJyb3JNZXNzYWdlID0gYEJsb2NrZWQgY2FsbCBkdWUgdG8gZXJyb3IgaW4gcHJldmlvdXMgY2FsbCBvZiBlbnRpdHkgWyAke2VudGl0eU5hbWV9IF0gd2l0aCBpZCBbICR7ZGF0YVtwcmltYXJ5S2V5XX0gXWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0Vycm9yKGRhdGFNb2RlbE5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpZDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmVycm9yU3RvcmVbZGF0YU1vZGVsTmFtZV1cbiAgICAgICAgICAgICYmIHRoaXMuZXJyb3JTdG9yZVtkYXRhTW9kZWxOYW1lXVtlbnRpdHlOYW1lXVxuICAgICAgICAgICAgJiYgdGhpcy5lcnJvclN0b3JlW2RhdGFNb2RlbE5hbWVdW2VudGl0eU5hbWVdW2lkXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZXMgZW50aXR5IGlkZW50aWZpZXIgZnJvbSBlcnJvciBsaXN0LlxuICAgIHByaXZhdGUgcmVtb3ZlRXJyb3IoZGF0YU1vZGVsTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JTdG9yZVtkYXRhTW9kZWxOYW1lXVxuICAgICAgICAgICAgJiYgdGhpcy5lcnJvclN0b3JlW2RhdGFNb2RlbE5hbWVdW2VudGl0eU5hbWVdXG4gICAgICAgICAgICAmJiB0aGlzLmVycm9yU3RvcmVbZGF0YU1vZGVsTmFtZV1bZW50aXR5TmFtZV1baWRdKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5lcnJvclN0b3JlW2RhdGFNb2RlbE5hbWVdW2VudGl0eU5hbWVdW2lkXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNhdmUgZXJyb3IgZW50aXR5IGlkZW50aWZpZXIuXG4gICAgcHJpdmF0ZSByZWNvcmRFcnJvcihkYXRhTW9kZWxOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IGFueSkge1xuICAgICAgICB0aGlzLmVycm9yU3RvcmVbZGF0YU1vZGVsTmFtZV0gPSB0aGlzLmVycm9yU3RvcmVbZGF0YU1vZGVsTmFtZV0gfHwge307XG4gICAgICAgIHRoaXMuZXJyb3JTdG9yZVtkYXRhTW9kZWxOYW1lXVtlbnRpdHlOYW1lXSA9IHRoaXMuZXJyb3JTdG9yZVtkYXRhTW9kZWxOYW1lXVtlbnRpdHlOYW1lXSB8fCB7fTtcbiAgICAgICAgdGhpcy5lcnJvclN0b3JlW2RhdGFNb2RlbE5hbWVdW2VudGl0eU5hbWVdW2lkXSA9IHRydWU7XG4gICAgfVxufVxuIl19
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItYmxvY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vYmlsZS9vZmZsaW5lL3NyYy9zZXJ2aWNlcy93b3JrZXJzL2Vycm9yLWJsb2NrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFOUMsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUM7QUFFdEMsTUFBTSxPQUFPLFlBQVk7SUFJckIsWUFBb0Isd0JBQWtEO1FBQWxELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7SUFDdEUsQ0FBQztJQUVNLFFBQVEsQ0FBQyxPQUFxQjtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGdEQUFnRDtJQUN6QyxPQUFPLENBQUMsTUFBYztRQUN6QixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDakQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDNUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDbEQsUUFBUSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3ZCLEtBQUssaUJBQWlCLENBQUM7Z0JBQ3ZCLEtBQUssMEJBQTBCLENBQUM7Z0JBQ2hDLEtBQUssaUJBQWlCLENBQUM7Z0JBQ3ZCLEtBQUssMEJBQTBCO29CQUMzQixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUMsRUFBRTt3QkFDbkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFB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LFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDMUQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlLCBGbHVzaENvbnRleHQsIFdvcmtlciB9IGZyb20gJy4uL2NoYW5nZS1sb2cuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbERCU3RvcmUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYWwtZGItc3RvcmUnO1xuaW1wb3J0IHsgTG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWwtZGItbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7aXNOdWxsLCBpc1VuZGVmaW5lZH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5jb25zdCBTVE9SRV9LRVkgPSAnZXJyb3JCbG9ja2VyU3RvcmUnO1xuXG5leHBvcnQgY2xhc3MgRXJyb3JCbG9ja2VyIGltcGxlbWVudHMgV29ya2VyIHtcblxuICAgIHByaXZhdGUgZXJyb3JTdG9yZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlOiBMb2NhbERCTWFuYWdlbWVudFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJlRmx1c2goY29udGV4dDogRmx1c2hDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuZXJyb3JTdG9yZSA9IGNvbnRleHQuZ2V0KFNUT1JFX0tFWSk7XG4gICAgfVxuXG4gICAgLy8gYmxvY2sgYWxsIGNhbGxzIHJlbGF0ZWQgdG8gdGhlIGVycm9yIGVudGl0aWVzXG4gICAgcHVibGljIHByZUNhbGwoY2hhbmdlOiBDaGFuZ2UpIHtcbiAgICAgICAgaWYgKGNoYW5nZSAmJiBjaGFuZ2Uuc2VydmljZSA9PT0gJ0RhdGFiYXNlU2VydmljZScpIHtcbiAgICAgICAgICAgIGNvbnN0IGVudGl0eU5hbWUgPSBjaGFuZ2UucGFyYW1zLmVudGl0eU5hbWU7XG4gICAgICAgICAgICBjb25zdCBkYXRhTW9kZWxOYW1lID0gY2hhbmdlLnBhcmFtcy5kYXRhTW9kZWxOYW1lO1xuICAgICAgICAgICAgc3dpdGNoIChjaGFuZ2Uub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnaW5zZXJ0VGFibGVEYXRhJzpcbiAgICAgICAgICAgICAgICBjYXNlICdpbnNlcnRNdWx0aVBhcnRUYWJsZURhdGEnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3VwZGF0ZVRhYmxlRGF0YSc6XG4gICAgICAgICAgICAgICAgY2FzZSAndXBkYXRlTXVsdGlQYXJ0VGFibGVEYXRhJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlLmdldFN0b3JlKGRhdGFNb2RlbE5hbWUsIGVudGl0eU5hbWUpLnRoZW4oIHN0b3JlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tDYWxsKHN0b3JlLCBjaGFuZ2UsIGRhdGFNb2RlbE5hbWUsIGVudGl0eU5hbWUsIGNoYW5nZS5wYXJhbXMuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZVRhYmxlRGF0YSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsREJNYW5hZ2VtZW50U2VydmljZS5nZXRTdG9yZShkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lKS50aGVuKCBzdG9yZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQ2FsbChzdG9yZSwgY2hhbmdlLCBkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lLCBjaGFuZ2UucGFyYW1zKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdG9yZSBlcnJvciBlbnRpdHkgaWRcbiAgICBwdWJsaWMgcG9zdENhbGxTdWNjZXNzKGNoYW5nZTogQ2hhbmdlKSB7XG4gICAgICAgIGlmIChjaGFuZ2UgJiYgY2hhbmdlLnNlcnZpY2UgPT09ICdEYXRhYmFzZVNlcnZpY2UnKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHlOYW1lID0gY2hhbmdlLnBhcmFtcy5lbnRpdHlOYW1lO1xuICAgICAgICAgICAgY29uc3QgZGF0YU1vZGVsTmFtZSA9IGNoYW5nZS5wYXJhbXMuZGF0YU1vZGVsTmFtZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsREJNYW5hZ2VtZW50U2VydmljZS5nZXRTdG9yZShkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lKS50aGVuKCBzdG9yZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaWQgPSBjaGFuZ2VbJ2RhdGFMb2NhbElkJ10gfHwgY2hhbmdlLnBhcmFtcy5kYXRhW3N0b3JlLnByaW1hcnlLZXlOYW1lXTtcbiAgICAgICAgICAgICAgICBpZiAoIShpc1VuZGVmaW5lZChpZCkgfHwgaXNOdWxsKGlkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVFcnJvcihkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lLCBpZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdG9yZSBlcnJvciBlbnRpdHkgaWRcbiAgICBwdWJsaWMgcG9zdENhbGxFcnJvcihjaGFuZ2U6IENoYW5nZSkge1xuICAgICAgICBpZiAoY2hhbmdlICYmIGNoYW5nZS5zZXJ2aWNlID09PSAnRGF0YWJhc2VTZXJ2aWNlJykge1xuICAgICAgICAgICAgY29uc3QgZW50aXR5TmFtZSA9IGNoYW5nZS5wYXJhbXMuZW50aXR5TmFtZTtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFNb2RlbE5hbWUgPSBjaGFuZ2UucGFyYW1zLmRhdGFNb2RlbE5hbWU7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbERCTWFuYWdlbWVudFNlcnZpY2UuZ2V0U3RvcmUoZGF0YU1vZGVsTmFtZSwgZW50aXR5TmFtZSkudGhlbiggc3RvcmUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gY2hhbmdlWydkYXRhTG9jYWxJZCddIHx8IChjaGFuZ2UucGFyYW1zLmRhdGEgJiYgY2hhbmdlLnBhcmFtcy5kYXRhW3N0b3JlLnByaW1hcnlLZXlOYW1lXSkgfHwgY2hhbmdlLnBhcmFtc1tzdG9yZS5wcmltYXJ5S2V5TmFtZV0gfHwgY2hhbmdlLnBhcmFtcy5pZDtcbiAgICAgICAgICAgICAgICBpZiAoIShpc1VuZGVmaW5lZChpZCkgfHwgaXNOdWxsKGlkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNvcmRFcnJvcihkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lLCBpZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGVyZSBpcyBhbiBlYXJsaWVyIGNhbGwgb2YgdGhlIG9iamVjdCBvciBpdHMgcmVsYXRpb25zIHRoYXQgZ290IGZhaWxlZCwgdGhlbiB0aGlzIGNhbGwgd2lsbCBiZVxuICAgICAqIG1hcmtlZCBmb3IgZGlzY2FyZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdG9yZSBMb2NhbERCU3RvcmVcbiAgICAgKiBAcGFyYW0gY2hhbmdlIGNoYW5nZSB0byBibG9ja1xuICAgICAqIEBwYXJhbSBkYXRhTW9kZWxOYW1lXG4gICAgICogQHBhcmFtIGVudGl0eU5hbWVcbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqL1xuICAgIHByaXZhdGUgYmxvY2tDYWxsKHN0b3JlOiBMb2NhbERCU3RvcmUsIGNoYW5nZTogQ2hhbmdlLCBkYXRhTW9kZWxOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgICAgIGlmIChjaGFuZ2UuaGFzRXJyb3IgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tGb3JQcmV2aW91c0Vycm9yKHN0b3JlLCBjaGFuZ2UsIGRhdGFNb2RlbE5hbWUsIGVudGl0eU5hbWUsIGRhdGEpO1xuICAgICAgICAgICAgc3RvcmUuZW50aXR5U2NoZW1hLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjb2wuZm9yZWlnblJlbGF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb2wuZm9yZWlnblJlbGF0aW9ucy5zb21lKGZvcmVpZ25SZWxhdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtmb3JlaWduUmVsYXRpb24uc291cmNlRmllbGROYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tDYWxsKHN0b3JlLCBjaGFuZ2UsIGRhdGFNb2RlbE5hbWUsIGZvcmVpZ25SZWxhdGlvbi50YXJnZXRFbnRpdHksIGRhdGFbZm9yZWlnblJlbGF0aW9uLnNvdXJjZUZpZWxkTmFtZV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhW2NvbC5maWVsZE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0ZvclByZXZpb3VzRXJyb3Ioc3RvcmUsIGNoYW5nZSwgZGF0YU1vZGVsTmFtZSwgZm9yZWlnblJlbGF0aW9uLnRhcmdldEVudGl0eSwgZGF0YSwgY29sLmZpZWxkTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hhbmdlLmhhc0Vycm9yID09PSAxO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEEgaGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIGZvciBlYXJsaWVyIGZhaWx1cmVzLlxuICAgIHByaXZhdGUgY2hlY2tGb3JQcmV2aW91c0Vycm9yKHN0b3JlOiBMb2NhbERCU3RvcmUsIGNoYW5nZTogQ2hhbmdlLCBkYXRhTW9kZWxOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgZGF0YTogYW55LCBrZXk/OiBhbnkpIHtcbiAgICAgICAgY29uc3QgcHJpbWFyeUtleSA9IGtleSB8fCBzdG9yZS5wcmltYXJ5S2V5TmFtZTtcbiAgICAgICAgaWYgKHRoaXMuaGFzRXJyb3IoZGF0YU1vZGVsTmFtZSwgZW50aXR5TmFtZSwgZGF0YVtwcmltYXJ5S2V5XSkpIHtcbiAgICAgICAgICAgIGNoYW5nZS5oYXNFcnJvciA9IDE7XG4gICAgICAgICAgICBjaGFuZ2UuZXJyb3JNZXNzYWdlID0gYEJsb2NrZWQgY2FsbCBkdWUgdG8gZXJyb3IgaW4gcHJldmlvdXMgY2FsbCBvZiBlbnRpdHkgWyAke2VudGl0eU5hbWV9IF0gd2l0aCBpZCBbICR7ZGF0YVtwcmltYXJ5S2V5XX0gXWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0Vycm9yKGRhdGFNb2RlbE5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpZDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmVycm9yU3RvcmVbZGF0YU1vZGVsTmFtZV1cbiAgICAgICAgICAgICYmIHRoaXMuZXJyb3JTdG9yZVtkYXRhTW9kZWxOYW1lXVtlbnRpdHlOYW1lXVxuICAgICAgICAgICAgJiYgdGhpcy5lcnJvclN0b3JlW2RhdGFNb2RlbE5hbWVdW2VudGl0eU5hbWVdW2lkXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZXMgZW50aXR5IGlkZW50aWZpZXIgZnJvbSBlcnJvciBsaXN0LlxuICAgIHByaXZhdGUgcmVtb3ZlRXJyb3IoZGF0YU1vZGVsTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JTdG9yZVtkYXRhTW9kZWxOYW1lXVxuICAgICAgICAgICAgJiYgdGhpcy5lcnJvclN0b3JlW2RhdGFNb2RlbE5hbWVdW2VudGl0eU5hbWVdXG4gICAgICAgICAgICAmJiB0aGlzLmVycm9yU3RvcmVbZGF0YU1vZGVsTmFtZV1bZW50aXR5TmFtZV1baWRdKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5lcnJvclN0b3JlW2RhdGFNb2RlbE5hbWVdW2VudGl0eU5hbWVdW2lkXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNhdmUgZXJyb3IgZW50aXR5IGlkZW50aWZpZXIuXG4gICAgcHJpdmF0ZSByZWNvcmRFcnJvcihkYXRhTW9kZWxOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IGFueSkge1xuICAgICAgICB0aGlzLmVycm9yU3RvcmVbZGF0YU1vZGVsTmFtZV0gPSB0aGlzLmVycm9yU3RvcmVbZGF0YU1vZGVsTmFtZV0gfHwge307XG4gICAgICAgIHRoaXMuZXJyb3JTdG9yZVtkYXRhTW9kZWxOYW1lXVtlbnRpdHlOYW1lXSA9IHRoaXMuZXJyb3JTdG9yZVtkYXRhTW9kZWxOYW1lXVtlbnRpdHlOYW1lXSB8fCB7fTtcbiAgICAgICAgdGhpcy5lcnJvclN0b3JlW2RhdGFNb2RlbE5hbWVdW2VudGl0eU5hbWVdW2lkXSA9IHRydWU7XG4gICAgfVxufVxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { noop } from '@wm/core';
|
|
2
|
+
import { assignIn, isEmpty, isEqual, isObject, isString, mapValues, replace } from "lodash-es";
|
|
2
3
|
const STORE_KEY = 'offlineFileUpload';
|
|
3
4
|
export class FileHandler {
|
|
4
5
|
constructor() {
|
|
@@ -12,7 +13,7 @@ export class FileHandler {
|
|
|
12
13
|
*/
|
|
13
14
|
preCall(change) {
|
|
14
15
|
if (change.service === 'DatabaseService') {
|
|
15
|
-
change.params.data =
|
|
16
|
+
change.params.data = mapValues(change.params.data, v => {
|
|
16
17
|
const remoteUrl = this.fileStore[v];
|
|
17
18
|
if (remoteUrl) {
|
|
18
19
|
this.logger.debug('swapped file path from %s -> %s', v, remoteUrl);
|
|
@@ -83,23 +84,27 @@ export class UploadedFilesImportAndExportService {
|
|
|
83
84
|
*/
|
|
84
85
|
updateDBChange(change, oldUploadDir, uploadDir) {
|
|
85
86
|
const modifiedProperties = {}, entityName = change.params.entityName, dataModelName = change.params.dataModelName;
|
|
86
|
-
change.params.data =
|
|
87
|
+
change.params.data = mapValues(change.params.data, function (v, k) {
|
|
87
88
|
let mv = v, isModified = false;
|
|
88
|
-
if (
|
|
89
|
-
mv =
|
|
90
|
-
isModified = !
|
|
89
|
+
if (isString(v)) {
|
|
90
|
+
mv = replace(v, oldUploadDir, uploadDir);
|
|
91
|
+
isModified = !isEqual(mv, v);
|
|
91
92
|
}
|
|
92
|
-
else
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
else { // @ts-ignore
|
|
94
|
+
if (isObject(v) && v.wmLocalPath) {
|
|
95
|
+
// insertMultiPartData and updateMultiPartData
|
|
96
|
+
// @ts-ignore
|
|
97
|
+
mv = replace(v.wmLocalPath, oldUploadDir, uploadDir);
|
|
98
|
+
// @ts-ignore
|
|
99
|
+
isModified = !isEqual(mv, v.wmLocalPath);
|
|
100
|
+
}
|
|
96
101
|
}
|
|
97
102
|
if (isModified) {
|
|
98
103
|
modifiedProperties[k] = mv;
|
|
99
104
|
}
|
|
100
105
|
return mv;
|
|
101
106
|
});
|
|
102
|
-
if (!
|
|
107
|
+
if (!isEmpty(modifiedProperties)) {
|
|
103
108
|
this.localDBManagementService.getStore(dataModelName, entityName)
|
|
104
109
|
.then(store => {
|
|
105
110
|
// If there is a primary for the entity, then update actual row with the modifications
|
|
@@ -107,7 +112,7 @@ export class UploadedFilesImportAndExportService {
|
|
|
107
112
|
const primaryKeyName = store.primaryKeyName;
|
|
108
113
|
const primaryKey = change.params.data[primaryKeyName];
|
|
109
114
|
return store.get(primaryKey)
|
|
110
|
-
.then(obj => store.save(
|
|
115
|
+
.then(obj => store.save(assignIn(obj, modifiedProperties)));
|
|
111
116
|
}
|
|
112
117
|
}).then(() => {
|
|
113
118
|
change.params = JSON.stringify(change.params);
|
|
@@ -126,7 +131,7 @@ export class UploadedFilesImportAndExportService {
|
|
|
126
131
|
change.params = JSON.parse(change.params);
|
|
127
132
|
if (change.service === 'OfflineFileUploadService'
|
|
128
133
|
&& change.operation === 'uploadToServer') {
|
|
129
|
-
change.params.file =
|
|
134
|
+
change.params.file = replace(change.params.file, metaInfo.uploadDir, this.uploadDir);
|
|
130
135
|
change.params = JSON.stringify(change.params);
|
|
131
136
|
return this.changeLogService.getStore().then(store => store.save(change));
|
|
132
137
|
}
|
|
@@ -154,4 +159,4 @@ export class UploadedFilesImportAndExportService {
|
|
|
154
159
|
});
|
|
155
160
|
}
|
|
156
161
|
}
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9iaWxlL29mZmxpbmUvc3JjL3NlcnZpY2VzL3dvcmtlcnMvZmlsZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFRaEMsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUM7QUFFdEMsTUFBTSxPQUFPLFdBQVc7SUFBeEI7UUFHWSxXQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQW1DcEMsQ0FBQztJQWpDVSxRQUFRLENBQUMsT0FBcUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxNQUFjO1FBQ3pCLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUNuRSxPQUFPLFNBQVMsQ0FBQztnQkFDckIsQ0FBQztnQkFDRCxPQUFPLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFTSxlQUFlLENBQUMsTUFBYyxFQUFFLFFBQWE7UUFDaEQsSUFBSSxNQUFNLENBQUMsT0FBTyxL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QU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNiLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ25DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbGUgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvZmlsZS9uZ3gnO1xuXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgRGV2aWNlRmlsZVNlcnZpY2UgfSBmcm9tICdAd20vbW9iaWxlL2NvcmUnO1xuXG5pbXBvcnQgeyBDaGFuZ2UsIENoYW5nZUxvZ1NlcnZpY2UsIEZsdXNoQ29udGV4dCwgV29ya2VyIH0gZnJvbSAnLi4vY2hhbmdlLWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGxCYWNrLCBMb2NhbERCTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9sb2NhbC1kYi1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmNvbnN0IFNUT1JFX0tFWSA9ICdvZmZsaW5lRmlsZVVwbG9hZCc7XG5cbmV4cG9ydCBjbGFzcyBGaWxlSGFuZGxlciBpbXBsZW1lbnRzIFdvcmtlciB7XG5cbiAgICBwcml2YXRlIGZpbGVTdG9yZTtcbiAgICBwcml2YXRlIGxvZ2dlciA9IHdpbmRvdy5jb25zb2xlO1xuXG4gICAgcHVibGljIHByZUZsdXNoKGNvbnRleHQ6IEZsdXNoQ29udGV4dCkge1xuICAgICAgICB0aGlzLmZpbGVTdG9yZSA9IGNvbnRleHQuZ2V0KFNUT1JFX0tFWSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYWxsIGxvY2FsIHBhdGhzIHdpdGggdGhlIHJlbW90ZSBwYXRoIHVzaW5nIG1hcHBpbmdzIGNyZWF0ZWQgZHVyaW5nICd1cGxvYWRUb1NlcnZlcicuXG4gICAgICovXG4gICAgcHVibGljIHByZUNhbGwoY2hhbmdlOiBDaGFuZ2UpIHtcbiAgICAgICAgaWYgKGNoYW5nZS5zZXJ2aWNlID09PSAnRGF0YWJhc2VTZXJ2aWNlJykge1xuICAgICAgICAgICAgY2hhbmdlLnBhcmFtcy5kYXRhID0gXy5tYXBWYWx1ZXMoY2hhbmdlLnBhcmFtcy5kYXRhLCB2ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZW1vdGVVcmwgPSB0aGlzLmZpbGVTdG9yZVt2XTtcbiAgICAgICAgICAgICAgICBpZiAocmVtb3RlVXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzd2FwcGVkIGZpbGUgcGF0aCBmcm9tICVzIC0+ICVzJywgdiwgcmVtb3RlVXJsKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZVVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBwb3N0Q2FsbFN1Y2Nlc3MoY2hhbmdlOiBDaGFuZ2UsIHJlc3BvbnNlOiBhbnkpIHtcbiAgICAgICAgaWYgKGNoYW5nZS5zZXJ2aWNlID09PSAnT2ZmbGluZUZpbGVVcGxvYWRTZXJ2aWNlJ1xuICAgICAgICAgICAgJiYgY2hhbmdlLm9wZXJhdGlvbiA9PT0gJ3VwbG9hZFRvU2VydmVyJykge1xuICAgICAgICAgICAgY29uc3QgcmVtb3RlRmlsZSA9IEpTT04ucGFyc2UocmVzcG9uc2VbMF0udGV4dClbMF07XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICogQSBtYXBwaW5nIHdpbGwgYmUgY3JlYXRlZCBiZXR3ZWVuIGxvY2FsIHBhdGggYW5kIHJlbW90ZSBwYXRoLlxuICAgICAgICAgICAgICogVGhpcyB3aWxsIGJlIHVzZWQgdG8gcmVzb2x2ZSBsb2NhbCBwYXRocyBpbiBlbnRpdGllcy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5maWxlU3RvcmVbY2hhbmdlLnBhcmFtcy5maWxlXSAgICAgICAgICAgICA9IHJlbW90ZUZpbGUucGF0aDtcbiAgICAgICAgICAgIHRoaXMuZmlsZVN0b3JlW2NoYW5nZS5wYXJhbXMuZmlsZSArICc/aW5saW5lJ10gPSByZW1vdGVGaWxlLmlubGluZVBhdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIFVwbG9hZGVkRmlsZXNJbXBvcnRBbmRFeHBvcnRTZXJ2aWNlIGltcGxlbWVudHMgQ2FsbEJhY2sge1xuICAgIHByaXZhdGUgdXBsb2FkRGlyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2hhbmdlTG9nU2VydmljZTogQ2hhbmdlTG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZXZpY2VGaWxlU2VydmljZTogRGV2aWNlRmlsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlOiBMb2NhbERCTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZmlsZTogRmlsZVxuICAgICkge1xuXG4gICAgfVxuXG4gICAgcHVibGljIHByZUV4cG9ydChmb2xkZXJUb0V4cG9ydDogc3RyaW5nLCBtZXRhOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyBjb3B5IG9mZmxpbmUgdXBsb2Fkc1xuICAgICAgICBjb25zdCB1cGxvYWRGdWxsUGF0aCA9IHRoaXMuZGV2aWNlRmlsZVNlcnZpY2UuZ2V0VXBsb2FkRGlyZWN0b3J5KCksXG4gICAgICAgICAgICBsYXN0SW5kZXhPZlNlcCA9IHVwbG9hZEZ1bGxQYXRoLmxhc3RJbmRleE9mKCcvJyksXG4gICAgICAgICAgICB1cGxvYWRQYXJlbnREaXIgPSB1cGxvYWRGdWxsUGF0aC5zdWJzdHJpbmcoMCwgbGFzdEluZGV4T2ZTZXAgKyAxKSxcbiAgICAgICAgICAgIHVwbG9hZERpck5hbWUgPSB1cGxvYWRGdWxsUGF0aC5zdWJzdHJpbmcobGFzdEluZGV4T2ZTZXAgKyAxKTtcbiAgICAgICAgbWV0YS51cGxvYWREaXIgPSB1cGxvYWRGdWxsUGF0aDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZS5jb3B5RGlyKHVwbG9hZFBhcmVudERpciwgdXBsb2FkRGlyTmFtZSwgZm9sZGVyVG9FeHBvcnQsICd1cGxvYWRzJyk7XG4gICAgfVxuXG4gICAgcHVibGljIHBvc3RJbXBvcnQoaW1wb3J0ZWRGb2xkZXI6IHN0cmluZywgbWV0YTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgdXBsb2FkRnVsbFBhdGggPSB0aGlzLmRldmljZUZpbGVTZXJ2aWNlLmdldFVwbG9hZERpcmVjdG9yeSgpLFxuICAgICAgICAgICAgbGFzdEluZGV4T2ZTZXAgPSB1cGxvYWRGdWxsUGF0aC5sYXN0SW5kZXhPZignLycpLFxuICAgICAgICAgICAgdXBsb2FkUGFyZW50RGlyID0gdXBsb2FkRnVsbFBhdGguc3Vic3RyaW5nKDAsIGxhc3RJbmRleE9mU2VwICsgMSksXG4gICAgICAgICAgICB1cGxvYWREaXJOYW1lID0gdXBsb2FkRnVsbFBhdGguc3Vic3RyaW5nKGxhc3RJbmRleE9mU2VwICsgMSk7XG4gICAgICAgIHRoaXMudXBsb2FkRGlyID0gdXBsb2FkRnVsbFBhdGg7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGUuY2hlY2tEaXIoaW1wb3J0ZWRGb2xkZXIsICd1cGxvYWRzJylcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZXZpY2VGaWxlU2VydmljZS5yZW1vdmVEaXIodXBsb2FkRnVsbFBhdGgpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuZmlsZS5jb3B5RGlyKGltcG9ydGVkRm9sZGVyLCAndXBsb2FkcycsIHVwbG9hZFBhcmVudERpciwgdXBsb2FkRGlyTmFtZSkpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMudXBkYXRlQ2hhbmdlcyhtZXRhKSk7XG4gICAgICAgICAgICB9LCBub29wKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGJhY2sgdGhlIGNoYW5nZXMgdGhhdCB3ZXJlIGxvZ2dlZC5cbiAgICAgKiBAcGFyYW0gcGFnZSBwYWdlIG51bWJlclxuICAgICAqIEBwYXJhbSBzaXplIHNpemUgb2YgcGFnZVxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q2hhbmdlcyhwYWdlOiBudW1iZXIsIHNpemU6IG51bWJlcik6IFByb21pc2U8Q2hhbmdlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlTG9nU2VydmljZS5nZXRTdG9yZSgpLnRoZW4oc3Ryb3JlID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoc3Ryb3JlLmZpbHRlcihbXSwgJ2lkJywge1xuICAgICAgICAgICAgICAgIG9mZnNldDogKHBhZ2UgLSAxKSAqIHNpemUsXG4gICAgICAgICAgICAgICAgbGltaXQ6IHNpemVcbiAgICAgICAgICAgIH0pKSBhcyBQcm9taXNlPENoYW5nZVtdPjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBpcyBhIGRhdGFiYXNlIGNoYW5nZSwgdGhlbiBpdCB3aWxsIHJlcGxhY2Ugb2xkIHVwbG9hZCBkaXJlY3Rvcnkgd2l0aCB0aGUgY3VycmVudCB1cGxvYWQgZGlyZWN0b3J5XG4gICAgICogYW5kIGl0cyBjb3JyZXNwb25kaW5nIG93bmVyIG9iamVjdCwgaWYgIGl0IGhhcyBwcmltYXJ5IGtleS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjaGFuZ2VcbiAgICAgKiBAcGFyYW0gb2xkVXBsb2FkRGlyXG4gICAgICogQHBhcmFtIHVwbG9hZERpclxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlREJDaGFuZ2UoY2hhbmdlOiBDaGFuZ2UsIG9sZFVwbG9hZERpcjogc3RyaW5nLCB1cGxvYWREaXI6IHN0cmluZykge1xuICAgICAgICBjb25zdCBtb2RpZmllZFByb3BlcnRpZXMgPSB7fSxcbiAgICAgICAgICAgIGVudGl0eU5hbWUgPSBjaGFuZ2UucGFyYW1zLmVudGl0eU5hbWUsXG4gICAgICAgICAgICBkYXRhTW9kZWxOYW1lID0gY2hhbmdlLnBhcmFtcy5kYXRhTW9kZWxOYW1lO1xuICAgICAgICBjaGFuZ2UucGFyYW1zLmRhdGEgPSBfLm1hcFZhbHVlcyhjaGFuZ2UucGFyYW1zLmRhdGEsIGZ1bmN0aW9uICh2LCBrKSB7XG4gICAgICAgICAgICBsZXQgbXYgPSB2LCBpc01vZGlmaWVkID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoXy5pc1N0cmluZyh2KSkge1xuICAgICAgICAgICAgICAgIG12ID0gXy5yZXBsYWNlKHYsIG9sZFVwbG9hZERpciwgdXBsb2FkRGlyKTtcbiAgICAgICAgICAgICAgICBpc01vZGlmaWVkID0gIV8uaXNFcXVhbChtdiwgdik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKF8uaXNPYmplY3QodikgJiYgdi53bUxvY2FsUGF0aCkge1xuICAgICAgICAgICAgICAgIC8vIGluc2VydE11bHRpUGFydERhdGEgYW5kIHVwZGF0ZU11bHRpUGFydERhdGFcbiAgICAgICAgICAgICAgICBtdiA9IF8ucmVwbGFjZSh2LndtTG9jYWxQYXRoLCBvbGRVcGxvYWREaXIsIHVwbG9hZERpcik7XG4gICAgICAgICAgICAgICAgaXNNb2RpZmllZCA9ICFfLmlzRXF1YWwobXYsIHYud21Mb2NhbFBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzTW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBtb2RpZmllZFByb3BlcnRpZXNba10gPSBtdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtdjtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghXy5pc0VtcHR5KG1vZGlmaWVkUHJvcGVydGllcykpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlLmdldFN0b3JlKGRhdGFNb2RlbE5hbWUsIGVudGl0eU5hbWUpXG4gICAgICAgICAgICAgICAgLnRoZW4oc3RvcmUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHByaW1hcnkgZm9yIHRoZSBlbnRpdHksIHRoZW4gdXBkYXRlIGFjdHVhbCByb3cgd2l0aCB0aGUgbW9kaWZpY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcmUucHJpbWFyeUtleUZpZWxkICYmIHN0b3JlLnByaW1hcnlLZXlGaWVsZC5nZW5lcmF0b3JUeXBlID09PSAnaWRlbnRpdHknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmltYXJ5S2V5TmFtZSA9IHN0b3JlLnByaW1hcnlLZXlOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpbWFyeUtleSA9IGNoYW5nZS5wYXJhbXMuZGF0YVtwcmltYXJ5S2V5TmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RvcmUuZ2V0KHByaW1hcnlLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4ob2JqID0+IHN0b3JlLnNhdmUoXy5hc3NpZ25JbihvYmosIG1vZGlmaWVkUHJvcGVydGllcykpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNoYW5nZS5wYXJhbXMgPSBKU09OLnN0cmluZ2lmeShjaGFuZ2UucGFyYW1zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2VMb2dTZXJ2aWNlLmdldFN0b3JlKCkudGhlbiggc3RvcmUgPT4gc3RvcmUuc2F2ZShjaGFuZ2UpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBjaGVjayB0aGlzIGNoYW5nZSB0byB1cGRhdGUgb2xkIHVwbG9hZCBkaXJlY3RvcnkgcGF0aC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjaGFuZ2VcbiAgICAgKiBAcGFyYW0gbWV0YUluZm9cbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZUNoYW5nZShjaGFuZ2U6IENoYW5nZSwgbWV0YUluZm86IGFueSkge1xuICAgICAgICBjaGFuZ2UucGFyYW1zID0gSlNPTi5wYXJzZShjaGFuZ2UucGFyYW1zKTtcbiAgICAgICAgaWYgKGNoYW5nZS5zZXJ2aWNlID09PSAnT2ZmbGluZUZpbGVVcGxvYWRTZXJ2aWNlJ1xuICAgICAgICAgICAgJiYgY2hhbmdlLm9wZXJhdGlvbiA9PT0gJ3VwbG9hZFRvU2VydmVyJykge1xuICAgICAgICAgICAgY2hhbmdlLnBhcmFtcy5maWxlID0gXy5yZXBsYWNlKGNoYW5nZS5wYXJhbXMuZmlsZSwgbWV0YUluZm8udXBsb2FkRGlyLCB0aGlzLnVwbG9hZERpcik7XG4gICAgICAgICAgICBjaGFuZ2UucGFyYW1zID0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlLnBhcmFtcyk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2VMb2dTZXJ2aWNlLmdldFN0b3JlKCkudGhlbiggc3RvcmUgPT4gc3RvcmUuc2F2ZShjaGFuZ2UpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlLnNlcnZpY2UgPT09ICdEYXRhYmFzZVNlcnZpY2UnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVEQkNoYW5nZShjaGFuZ2UsIG1ldGFJbmZvLnVwbG9hZERpciwgdGhpcy51cGxvYWREaXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIHZpc2l0IGFsbCB0aGUgY2hhbmdlcyBhbmQgbW9kaWZ5IHRoZW0sIGlmIG5lY2Vzc2FyeS5cbiAgICAgKiBAcGFyYW0gbWV0YUluZm9cbiAgICAgKiBAcGFyYW0gcGFnZVxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlQ2hhbmdlcyhtZXRhSW5mbzogYW55LCBwYWdlID0gMSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHNpemUgPSAxMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2hhbmdlcyhwYWdlLCBzaXplKVxuICAgICAgICAgICAgLnRoZW4oY2hhbmdlcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChjaGFuZ2VzLm1hcChjaGFuZ2UgPT4gdGhpcy51cGRhdGVDaGFuZ2UoY2hhbmdlLCBtZXRhSW5mbykpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQubGVuZ3RoID09PSBzaXplKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNoYW5nZXMobWV0YUluZm8sIHBhZ2UgKyAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9iaWxlL29mZmxpbmUvc3JjL3NlcnZpY2VzL3dvcmtlcnMvZmlsZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFLaEMsT0FBTyxFQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUU3RixNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQztBQUV0QyxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUdZLFdBQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBbUNwQyxDQUFDO0lBakNVLFFBQVEsQ0FBQyxPQUFxQjtRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLE1BQWM7UUFDekIsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUNuRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDbkUsT0FBTyxTQUFTLENBQUM7Z0JBQ3JCLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLENBQUM7WUFDYixD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QU8sQ0FBQyxFQUFFO1lBQ1osSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNiLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ25DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbGUgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvZmlsZS9uZ3gnO1xuXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgRGV2aWNlRmlsZVNlcnZpY2UgfSBmcm9tICdAd20vbW9iaWxlL2NvcmUnO1xuXG5pbXBvcnQgeyBDaGFuZ2UsIENoYW5nZUxvZ1NlcnZpY2UsIEZsdXNoQ29udGV4dCwgV29ya2VyIH0gZnJvbSAnLi4vY2hhbmdlLWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGxCYWNrLCBMb2NhbERCTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9sb2NhbC1kYi1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHthc3NpZ25JbiwgaXNFbXB0eSwgaXNFcXVhbCwgaXNPYmplY3QsIGlzU3RyaW5nLCBtYXBWYWx1ZXMsIHJlcGxhY2V9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgU1RPUkVfS0VZID0gJ29mZmxpbmVGaWxlVXBsb2FkJztcblxuZXhwb3J0IGNsYXNzIEZpbGVIYW5kbGVyIGltcGxlbWVudHMgV29ya2VyIHtcblxuICAgIHByaXZhdGUgZmlsZVN0b3JlO1xuICAgIHByaXZhdGUgbG9nZ2VyID0gd2luZG93LmNvbnNvbGU7XG5cbiAgICBwdWJsaWMgcHJlRmx1c2goY29udGV4dDogRmx1c2hDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuZmlsZVN0b3JlID0gY29udGV4dC5nZXQoU1RPUkVfS0VZKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXBsYWNlcyBhbGwgbG9jYWwgcGF0aHMgd2l0aCB0aGUgcmVtb3RlIHBhdGggdXNpbmcgbWFwcGluZ3MgY3JlYXRlZCBkdXJpbmcgJ3VwbG9hZFRvU2VydmVyJy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHJlQ2FsbChjaGFuZ2U6IENoYW5nZSkge1xuICAgICAgICBpZiAoY2hhbmdlLnNlcnZpY2UgPT09ICdEYXRhYmFzZVNlcnZpY2UnKSB7XG4gICAgICAgICAgICBjaGFuZ2UucGFyYW1zLmRhdGEgPSBtYXBWYWx1ZXMoY2hhbmdlLnBhcmFtcy5kYXRhLCB2ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZW1vdGVVcmwgPSB0aGlzLmZpbGVTdG9yZVt2XTtcbiAgICAgICAgICAgICAgICBpZiAocmVtb3RlVXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzd2FwcGVkIGZpbGUgcGF0aCBmcm9tICVzIC0+ICVzJywgdiwgcmVtb3RlVXJsKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZVVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBwb3N0Q2FsbFN1Y2Nlc3MoY2hhbmdlOiBDaGFuZ2UsIHJlc3BvbnNlOiBhbnkpIHtcbiAgICAgICAgaWYgKGNoYW5nZS5zZXJ2aWNlID09PSAnT2ZmbGluZUZpbGVVcGxvYWRTZXJ2aWNlJ1xuICAgICAgICAgICAgJiYgY2hhbmdlLm9wZXJhdGlvbiA9PT0gJ3VwbG9hZFRvU2VydmVyJykge1xuICAgICAgICAgICAgY29uc3QgcmVtb3RlRmlsZSA9IEpTT04ucGFyc2UocmVzcG9uc2VbMF0udGV4dClbMF07XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICogQSBtYXBwaW5nIHdpbGwgYmUgY3JlYXRlZCBiZXR3ZWVuIGxvY2FsIHBhdGggYW5kIHJlbW90ZSBwYXRoLlxuICAgICAgICAgICAgICogVGhpcyB3aWxsIGJlIHVzZWQgdG8gcmVzb2x2ZSBsb2NhbCBwYXRocyBpbiBlbnRpdGllcy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5maWxlU3RvcmVbY2hhbmdlLnBhcmFtcy5maWxlXSAgICAgICAgICAgICA9IHJlbW90ZUZpbGUucGF0aDtcbiAgICAgICAgICAgIHRoaXMuZmlsZVN0b3JlW2NoYW5nZS5wYXJhbXMuZmlsZSArICc/aW5saW5lJ10gPSByZW1vdGVGaWxlLmlubGluZVBhdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIFVwbG9hZGVkRmlsZXNJbXBvcnRBbmRFeHBvcnRTZXJ2aWNlIGltcGxlbWVudHMgQ2FsbEJhY2sge1xuICAgIHByaXZhdGUgdXBsb2FkRGlyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2hhbmdlTG9nU2VydmljZTogQ2hhbmdlTG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZXZpY2VGaWxlU2VydmljZTogRGV2aWNlRmlsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlOiBMb2NhbERCTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZmlsZTogRmlsZVxuICAgICkge1xuXG4gICAgfVxuXG4gICAgcHVibGljIHByZUV4cG9ydChmb2xkZXJUb0V4cG9ydDogc3RyaW5nLCBtZXRhOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyBjb3B5IG9mZmxpbmUgdXBsb2Fkc1xuICAgICAgICBjb25zdCB1cGxvYWRGdWxsUGF0aCA9IHRoaXMuZGV2aWNlRmlsZVNlcnZpY2UuZ2V0VXBsb2FkRGlyZWN0b3J5KCksXG4gICAgICAgICAgICBsYXN0SW5kZXhPZlNlcCA9IHVwbG9hZEZ1bGxQYXRoLmxhc3RJbmRleE9mKCcvJyksXG4gICAgICAgICAgICB1cGxvYWRQYXJlbnREaXIgPSB1cGxvYWRGdWxsUGF0aC5zdWJzdHJpbmcoMCwgbGFzdEluZGV4T2ZTZXAgKyAxKSxcbiAgICAgICAgICAgIHVwbG9hZERpck5hbWUgPSB1cGxvYWRGdWxsUGF0aC5zdWJzdHJpbmcobGFzdEluZGV4T2ZTZXAgKyAxKTtcbiAgICAgICAgbWV0YS51cGxvYWREaXIgPSB1cGxvYWRGdWxsUGF0aDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZS5jb3B5RGlyKHVwbG9hZFBhcmVudERpciwgdXBsb2FkRGlyTmFtZSwgZm9sZGVyVG9FeHBvcnQsICd1cGxvYWRzJyk7XG4gICAgfVxuXG4gICAgcHVibGljIHBvc3RJbXBvcnQoaW1wb3J0ZWRGb2xkZXI6IHN0cmluZywgbWV0YTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgdXBsb2FkRnVsbFBhdGggPSB0aGlzLmRldmljZUZpbGVTZXJ2aWNlLmdldFVwbG9hZERpcmVjdG9yeSgpLFxuICAgICAgICAgICAgbGFzdEluZGV4T2ZTZXAgPSB1cGxvYWRGdWxsUGF0aC5sYXN0SW5kZXhPZignLycpLFxuICAgICAgICAgICAgdXBsb2FkUGFyZW50RGlyID0gdXBsb2FkRnVsbFBhdGguc3Vic3RyaW5nKDAsIGxhc3RJbmRleE9mU2VwICsgMSksXG4gICAgICAgICAgICB1cGxvYWREaXJOYW1lID0gdXBsb2FkRnVsbFBhdGguc3Vic3RyaW5nKGxhc3RJbmRleE9mU2VwICsgMSk7XG4gICAgICAgIHRoaXMudXBsb2FkRGlyID0gdXBsb2FkRnVsbFBhdGg7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGUuY2hlY2tEaXIoaW1wb3J0ZWRGb2xkZXIsICd1cGxvYWRzJylcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZXZpY2VGaWxlU2VydmljZS5yZW1vdmVEaXIodXBsb2FkRnVsbFBhdGgpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuZmlsZS5jb3B5RGlyKGltcG9ydGVkRm9sZGVyLCAndXBsb2FkcycsIHVwbG9hZFBhcmVudERpciwgdXBsb2FkRGlyTmFtZSkpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMudXBkYXRlQ2hhbmdlcyhtZXRhKSk7XG4gICAgICAgICAgICB9LCBub29wKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGJhY2sgdGhlIGNoYW5nZXMgdGhhdCB3ZXJlIGxvZ2dlZC5cbiAgICAgKiBAcGFyYW0gcGFnZSBwYWdlIG51bWJlclxuICAgICAqIEBwYXJhbSBzaXplIHNpemUgb2YgcGFnZVxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q2hhbmdlcyhwYWdlOiBudW1iZXIsIHNpemU6IG51bWJlcik6IFByb21pc2U8Q2hhbmdlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlTG9nU2VydmljZS5nZXRTdG9yZSgpLnRoZW4oc3Ryb3JlID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoc3Ryb3JlLmZpbHRlcihbXSwgJ2lkJywge1xuICAgICAgICAgICAgICAgIG9mZnNldDogKHBhZ2UgLSAxKSAqIHNpemUsXG4gICAgICAgICAgICAgICAgbGltaXQ6IHNpemVcbiAgICAgICAgICAgIH0pKSBhcyBQcm9taXNlPENoYW5nZVtdPjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBpcyBhIGRhdGFiYXNlIGNoYW5nZSwgdGhlbiBpdCB3aWxsIHJlcGxhY2Ugb2xkIHVwbG9hZCBkaXJlY3Rvcnkgd2l0aCB0aGUgY3VycmVudCB1cGxvYWQgZGlyZWN0b3J5XG4gICAgICogYW5kIGl0cyBjb3JyZXNwb25kaW5nIG93bmVyIG9iamVjdCwgaWYgIGl0IGhhcyBwcmltYXJ5IGtleS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjaGFuZ2VcbiAgICAgKiBAcGFyYW0gb2xkVXBsb2FkRGlyXG4gICAgICogQHBhcmFtIHVwbG9hZERpclxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlREJDaGFuZ2UoY2hhbmdlOiBDaGFuZ2UsIG9sZFVwbG9hZERpcjogc3RyaW5nLCB1cGxvYWREaXI6IHN0cmluZykge1xuICAgICAgICBjb25zdCBtb2RpZmllZFByb3BlcnRpZXMgPSB7fSxcbiAgICAgICAgICAgIGVudGl0eU5hbWUgPSBjaGFuZ2UucGFyYW1zLmVudGl0eU5hbWUsXG4gICAgICAgICAgICBkYXRhTW9kZWxOYW1lID0gY2hhbmdlLnBhcmFtcy5kYXRhTW9kZWxOYW1lO1xuICAgICAgICBjaGFuZ2UucGFyYW1zLmRhdGEgPSBtYXBWYWx1ZXMoY2hhbmdlLnBhcmFtcy5kYXRhLCBmdW5jdGlvbiAodiwgaykge1xuICAgICAgICAgICAgbGV0IG12ID0gdiwgaXNNb2RpZmllZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGlzU3RyaW5nKHYpKSB7XG4gICAgICAgICAgICAgICAgbXYgPSByZXBsYWNlKHYsIG9sZFVwbG9hZERpciwgdXBsb2FkRGlyKTtcbiAgICAgICAgICAgICAgICBpc01vZGlmaWVkID0gIWlzRXF1YWwobXYsIHYpO1xuICAgICAgICAgICAgfSBlbHNlIHsgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGlmIChpc09iamVjdCh2KSAmJiB2LndtTG9jYWxQYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGluc2VydE11bHRpUGFydERhdGEgYW5kIHVwZGF0ZU11bHRpUGFydERhdGFcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBtdiA9IHJlcGxhY2Uodi53bUxvY2FsUGF0aCwgb2xkVXBsb2FkRGlyLCB1cGxvYWREaXIpO1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGlzTW9kaWZpZWQgPSAhaXNFcXVhbChtdiwgdi53bUxvY2FsUGF0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzTW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBtb2RpZmllZFByb3BlcnRpZXNba10gPSBtdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtdjtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghaXNFbXB0eShtb2RpZmllZFByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsREJNYW5hZ2VtZW50U2VydmljZS5nZXRTdG9yZShkYXRhTW9kZWxOYW1lLCBlbnRpdHlOYW1lKVxuICAgICAgICAgICAgICAgIC50aGVuKHN0b3JlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBwcmltYXJ5IGZvciB0aGUgZW50aXR5LCB0aGVuIHVwZGF0ZSBhY3R1YWwgcm93IHdpdGggdGhlIG1vZGlmaWNhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlLnByaW1hcnlLZXlGaWVsZCAmJiBzdG9yZS5wcmltYXJ5S2V5RmllbGQuZ2VuZXJhdG9yVHlwZSA9PT0gJ2lkZW50aXR5Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpbWFyeUtleU5hbWUgPSBzdG9yZS5wcmltYXJ5S2V5TmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaW1hcnlLZXkgPSBjaGFuZ2UucGFyYW1zLmRhdGFbcHJpbWFyeUtleU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0b3JlLmdldChwcmltYXJ5S2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKG9iaiA9PiBzdG9yZS5zYXZlKGFzc2lnbkluKG9iaiwgbW9kaWZpZWRQcm9wZXJ0aWVzKSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2hhbmdlLnBhcmFtcyA9IEpTT04uc3RyaW5naWZ5KGNoYW5nZS5wYXJhbXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZUxvZ1NlcnZpY2UuZ2V0U3RvcmUoKS50aGVuKCBzdG9yZSA9PiBzdG9yZS5zYXZlKGNoYW5nZSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrIHRoaXMgY2hhbmdlIHRvIHVwZGF0ZSBvbGQgdXBsb2FkIGRpcmVjdG9yeSBwYXRoLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNoYW5nZVxuICAgICAqIEBwYXJhbSBtZXRhSW5mb1xuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlQ2hhbmdlKGNoYW5nZTogQ2hhbmdlLCBtZXRhSW5mbzogYW55KSB7XG4gICAgICAgIGNoYW5nZS5wYXJhbXMgPSBKU09OLnBhcnNlKGNoYW5nZS5wYXJhbXMpO1xuICAgICAgICBpZiAoY2hhbmdlLnNlcnZpY2UgPT09ICdPZmZsaW5lRmlsZVVwbG9hZFNlcnZpY2UnXG4gICAgICAgICAgICAmJiBjaGFuZ2Uub3BlcmF0aW9uID09PSAndXBsb2FkVG9TZXJ2ZXInKSB7XG4gICAgICAgICAgICBjaGFuZ2UucGFyYW1zLmZpbGUgPSByZXBsYWNlKGNoYW5nZS5wYXJhbXMuZmlsZSwgbWV0YUluZm8udXBsb2FkRGlyLCB0aGlzLnVwbG9hZERpcik7XG4gICAgICAgICAgICBjaGFuZ2UucGFyYW1zID0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlLnBhcmFtcyk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2VMb2dTZXJ2aWNlLmdldFN0b3JlKCkudGhlbiggc3RvcmUgPT4gc3RvcmUuc2F2ZShjaGFuZ2UpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlLnNlcnZpY2UgPT09ICdEYXRhYmFzZVNlcnZpY2UnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVEQkNoYW5nZShjaGFuZ2UsIG1ldGFJbmZvLnVwbG9hZERpciwgdGhpcy51cGxvYWREaXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIHZpc2l0IGFsbCB0aGUgY2hhbmdlcyBhbmQgbW9kaWZ5IHRoZW0sIGlmIG5lY2Vzc2FyeS5cbiAgICAgKiBAcGFyYW0gbWV0YUluZm9cbiAgICAgKiBAcGFyYW0gcGFnZVxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlQ2hhbmdlcyhtZXRhSW5mbzogYW55LCBwYWdlID0gMSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHNpemUgPSAxMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2hhbmdlcyhwYWdlLCBzaXplKVxuICAgICAgICAgICAgLnRoZW4oY2hhbmdlcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChjaGFuZ2VzLm1hcChjaGFuZ2UgPT4gdGhpcy51cGRhdGVDaGFuZ2UoY2hhbmdlLCBtZXRhSW5mbykpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQubGVuZ3RoID09PSBzaXplKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNoYW5nZXMobWV0YUluZm8sIHBhZ2UgKyAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { forEach, isObject, mapValues } from "lodash-es";
|
|
1
2
|
export class MultiPartParamTransformer {
|
|
2
3
|
constructor(deviceFileService, localDBManagementService) {
|
|
3
4
|
this.deviceFileService = deviceFileService;
|
|
@@ -9,8 +10,10 @@ export class MultiPartParamTransformer {
|
|
|
9
10
|
case 'insertMultiPartTableData':
|
|
10
11
|
case 'updateMultiPartTableData':
|
|
11
12
|
// clean up files
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
forEach(change.params.data, v => {
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
if (isObject(v) && v.wmLocalPath) {
|
|
16
|
+
// @ts-ignore
|
|
14
17
|
this.deviceFileService.removeFile(v.wmLocalPath);
|
|
15
18
|
}
|
|
16
19
|
});
|
|
@@ -46,8 +49,9 @@ export class MultiPartParamTransformer {
|
|
|
46
49
|
* As save method called with FormData object, empty row is inserted.
|
|
47
50
|
* Since FormData is converted to map, update the record details now.
|
|
48
51
|
*/
|
|
49
|
-
store.save(
|
|
50
|
-
|
|
52
|
+
store.save(mapValues(map, function (v) {
|
|
53
|
+
// @ts-ignore
|
|
54
|
+
return (isObject(v) && v.wmLocalPath) || v;
|
|
51
55
|
}));
|
|
52
56
|
return map;
|
|
53
57
|
});
|
|
@@ -56,4 +60,4 @@ export class MultiPartParamTransformer {
|
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktcGFydC1wYXJhbS10cmFuc2Zvcm1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vYmlsZS9vZmZsaW5lL3NyYy9zZXJ2aWNlcy93b3JrZXJzL211bHRpLXBhcnQtcGFyYW0tdHJhbnNmb3JtZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXZELE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsWUFDWSxpQkFBb0MsRUFDcEMsd0JBQWtEO1FBRGxELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUMzRCxDQUFDO0lBRUcsZUFBZSxDQUFDLE1BQWM7UUFDakMsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2pELFFBQVEsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN2QixLQUFLLDBCQUEwQixDQUFDO2dCQUNoQyxLQUFLLDBCQUEwQjtvQkFDM0IsaUJBQWlCO29CQUNqQixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7d0JBQzVCLGFBQWE7d0JBQ2IsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDOzRCQUMvQixhQUFhOzRCQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO3dCQUNyRCxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO29CQUNILE1BQU07WUFDZCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxNQUFjO1FBQ3hDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxRQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdkIsS0FBSywwQkFBMEIsQ0FBQztnQkFDaEMsS0FBSywwQkFBMEI7b0JBQzNCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQzt5QkFDL0YsSUFBSSxDQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUNYLHNCQUFzQjt3QkFDdEIsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsUUFBUTs0QkFDaEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO3dCQUNsQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxDQUFDLENBQUMsQ0FBQztZQUNmLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE1BQWM7UUFDdEMsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2pELFFBQVEsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN2QixLQUFLLDBCQUEwQixDQUFDO2dCQUNoQyxLQUFLLDBCQUEwQjtvQkFDM0IsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO3lCQUMvRixJQUFJLENBQUUsS0FBSyxDQUFDLEVBQUU7d0JBQ1gsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRzs0QkFDekQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDOzRCQUN6Qjs7OytCQUdHOzRCQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUM7Z0NBQ2pDLGFBQWE7Z0NBQ2IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUMvQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUNKLE9BQU8sR0FBRyxDQUFDO3dCQUNmLENBQUMsQ0FBQyxDQUFDO29CQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXZpY2VGaWxlU2VydmljZSB9IGZyb20gJ0B3bS9tb2JpbGUvY29yZSc7XG5cbmltcG9ydCB7IENoYW5nZSwgV29ya2VyIH0gZnJvbSAnLi4vY2hhbmdlLWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsREJNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL2xvY2FsLWRiLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQge2ZvckVhY2gsIGlzT2JqZWN0LCBtYXBWYWx1ZXN9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZXhwb3J0IGNsYXNzIE11bHRpUGFydFBhcmFtVHJhbnNmb3JtZXIgaW1wbGVtZW50cyBXb3JrZXIge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGV2aWNlRmlsZVNlcnZpY2U6IERldmljZUZpbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxvY2FsREJNYW5hZ2VtZW50U2VydmljZTogTG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIHBvc3RDYWxsU3VjY2VzcyhjaGFuZ2U6IENoYW5nZSkge1xuICAgICAgICBpZiAoY2hhbmdlICYmIGNoYW5nZS5zZXJ2aWNlID09PSAnRGF0YWJhc2VTZXJ2aWNlJykge1xuICAgICAgICAgICAgc3dpdGNoIChjaGFuZ2Uub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnaW5zZXJ0TXVsdGlQYXJ0VGFibGVEYXRhJzpcbiAgICAgICAgICAgICAgICBjYXNlICd1cGRhdGVNdWx0aVBhcnRUYWJsZURhdGEnOlxuICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCBmaWxlc1xuICAgICAgICAgICAgICAgICAgICBmb3JFYWNoKGNoYW5nZS5wYXJhbXMuZGF0YSwgdiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPYmplY3QodikgJiYgdi53bUxvY2FsUGF0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRldmljZUZpbGVTZXJ2aWNlLnJlbW92ZUZpbGUodi53bUxvY2FsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1QYXJhbXNGcm9tTWFwKGNoYW5nZTogQ2hhbmdlKSB7XG4gICAgICAgIGlmIChjaGFuZ2UgJiYgY2hhbmdlLnNlcnZpY2UgPT09ICdEYXRhYmFzZVNlcnZpY2UnKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNoYW5nZS5vcGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdpbnNlcnRNdWx0aVBhcnRUYWJsZURhdGEnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3VwZGF0ZU11bHRpUGFydFRhYmxlRGF0YSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsREJNYW5hZ2VtZW50U2VydmljZS5nZXRTdG9yZShjaGFuZ2UucGFyYW1zLmRhdGFNb2RlbE5hbWUsIGNoYW5nZS5wYXJhbXMuZW50aXR5TmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCBzdG9yZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3RydWN0IEZvcm0gZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdG9yZS5kZXNlcmlhbGl6ZShjaGFuZ2UucGFyYW1zLmRhdGEpLnRoZW4oZnVuY3Rpb24gKGZvcm1EYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZS5wYXJhbXMuZGF0YSA9IGZvcm1EYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtUGFyYW1zVG9NYXAoY2hhbmdlOiBDaGFuZ2UpIHtcbiAgICAgICAgaWYgKGNoYW5nZSAmJiBjaGFuZ2Uuc2VydmljZSA9PT0gJ0RhdGFiYXNlU2VydmljZScpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY2hhbmdlLm9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2luc2VydE11bHRpUGFydFRhYmxlRGF0YSc6XG4gICAgICAgICAgICAgICAgY2FzZSAndXBkYXRlTXVsdGlQYXJ0VGFibGVEYXRhJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxEQk1hbmFnZW1lbnRTZXJ2aWNlLmdldFN0b3JlKGNoYW5nZS5wYXJhbXMuZGF0YU1vZGVsTmFtZSwgY2hhbmdlLnBhcmFtcy5lbnRpdHlOYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oIHN0b3JlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RvcmUuc2VyaWFsaXplKGNoYW5nZS5wYXJhbXMuZGF0YSkudGhlbihmdW5jdGlvbiAobWFwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZS5wYXJhbXMuZGF0YSA9IG1hcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEFzIHNhdmUgbWV0aG9kIGNhbGxlZCB3aXRoIEZvcm1EYXRhIG9iamVjdCwgZW1wdHkgcm93IGlzIGluc2VydGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBTaW5jZSBGb3JtRGF0YSBpcyBjb252ZXJ0ZWQgdG8gbWFwLCB1cGRhdGUgdGhlIHJlY29yZCBkZXRhaWxzIG5vdy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLnNhdmUobWFwVmFsdWVzKG1hcCwgZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoaXNPYmplY3QodikgJiYgdi53bUxvY2FsUGF0aCkgfHwgdjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|