@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,16 +1,17 @@
|
|
|
1
|
+
import { endsWith, filter, get, includes, isArray, isEqual, isNumber, isObject, split, startsWith, toLower, toString, values } from "lodash-es";
|
|
1
2
|
export class LocalDataProvider {
|
|
2
3
|
applyFilter(entry, queryText, filtername) {
|
|
3
|
-
entry =
|
|
4
|
-
if (
|
|
5
|
-
return
|
|
4
|
+
entry = isNumber(entry) ? entry.toString() : entry;
|
|
5
|
+
if (includes(filtername, 'start')) {
|
|
6
|
+
return startsWith(entry, queryText);
|
|
6
7
|
}
|
|
7
|
-
else if (
|
|
8
|
-
return
|
|
8
|
+
else if (includes(filtername, 'end')) {
|
|
9
|
+
return endsWith(entry, queryText);
|
|
9
10
|
}
|
|
10
|
-
else if (
|
|
11
|
-
return
|
|
11
|
+
else if (includes(filtername, 'exact')) {
|
|
12
|
+
return isEqual(entry, queryText);
|
|
12
13
|
}
|
|
13
|
-
return
|
|
14
|
+
return includes(entry, queryText);
|
|
14
15
|
}
|
|
15
16
|
// LocalData filtering is done based on the searchkey.
|
|
16
17
|
filter(config) {
|
|
@@ -18,7 +19,7 @@ export class LocalDataProvider {
|
|
|
18
19
|
let casesensitive = config.casesensitive;
|
|
19
20
|
const matchMode = config.matchMode;
|
|
20
21
|
// for supporting existing projects
|
|
21
|
-
if (matchMode && !
|
|
22
|
+
if (matchMode && !includes(matchMode, 'ignorecase')) {
|
|
22
23
|
casesensitive = true;
|
|
23
24
|
}
|
|
24
25
|
let queryText = config.query, filteredData;
|
|
@@ -28,13 +29,13 @@ export class LocalDataProvider {
|
|
|
28
29
|
* return the filtered data containing the matching string.
|
|
29
30
|
*/
|
|
30
31
|
if (config.searchKey) {
|
|
31
|
-
const keys =
|
|
32
|
-
filteredData =
|
|
32
|
+
const keys = split(config.searchKey, ',');
|
|
33
|
+
filteredData = filter(config.dataset, (item) => {
|
|
33
34
|
return keys.some(key => {
|
|
34
|
-
let a =
|
|
35
|
+
let a = get(item, key), b = queryText;
|
|
35
36
|
if (!casesensitive) {
|
|
36
|
-
a =
|
|
37
|
-
b =
|
|
37
|
+
a = toLower(toString(a));
|
|
38
|
+
b = toLower(toString(b));
|
|
38
39
|
}
|
|
39
40
|
return this.applyFilter(a, b, matchMode);
|
|
40
41
|
});
|
|
@@ -43,21 +44,23 @@ export class LocalDataProvider {
|
|
|
43
44
|
else {
|
|
44
45
|
// local search on data with array of objects.
|
|
45
46
|
// Iterate over each item and return the filtered data containing the matching string.
|
|
46
|
-
if (
|
|
47
|
-
filteredData =
|
|
48
|
-
let a =
|
|
47
|
+
if (isArray(entries) && isObject(entries[0])) {
|
|
48
|
+
filteredData = filter(entries, entry => {
|
|
49
|
+
let a = values(entry).join(' ');
|
|
49
50
|
if (!casesensitive) {
|
|
50
|
-
a =
|
|
51
|
-
|
|
51
|
+
a = toLower(a);
|
|
52
|
+
// @ts-ignore
|
|
53
|
+
queryText = toLower(queryText);
|
|
52
54
|
}
|
|
53
55
|
return this.applyFilter(a, queryText);
|
|
54
56
|
});
|
|
55
57
|
}
|
|
56
58
|
else {
|
|
57
|
-
filteredData =
|
|
59
|
+
filteredData = filter(entries, entry => {
|
|
58
60
|
if (!casesensitive) {
|
|
59
|
-
entry =
|
|
60
|
-
|
|
61
|
+
entry = toLower(entry);
|
|
62
|
+
// @ts-ignore
|
|
63
|
+
queryText = toLower(queryText);
|
|
61
64
|
}
|
|
62
65
|
return this.applyFilter(entry, queryText, matchMode);
|
|
63
66
|
});
|
|
@@ -71,4 +74,4 @@ export class LocalDataProvider {
|
|
|
71
74
|
});
|
|
72
75
|
}
|
|
73
76
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGF0YS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9iYXNpYy9zZWFyY2gvc3JjL2RhdGEtcHJvdmlkZXIvbG9jYWwtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsUUFBUSxFQUNSLE1BQU0sRUFDTixHQUFHLEVBQ0gsUUFBUSxFQUNSLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFFBQVEsRUFDUixLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsTUFBTSxFQUNULE1BQU0sV0FBVyxDQUFDO0FBRW5CLE1BQU0sT0FBTyxpQkFBaUI7SUFDbEIsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVztRQUM3QyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNuRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEMsQ0FBQzthQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVE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QUNsQixVQUFVLEVBQUUsSUFBSTthQUNuQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEYXRhUHJvdmlkZXIsIElEYXRhUHJvdmlkZXJDb25maWcgfSBmcm9tICcuL2RhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgICBlbmRzV2l0aCxcbiAgICBmaWx0ZXIsXG4gICAgZ2V0LFxuICAgIGluY2x1ZGVzLFxuICAgIGlzQXJyYXksXG4gICAgaXNFcXVhbCxcbiAgICBpc051bWJlcixcbiAgICBpc09iamVjdCxcbiAgICBzcGxpdCxcbiAgICBzdGFydHNXaXRoLFxuICAgIHRvTG93ZXIsXG4gICAgdG9TdHJpbmcsXG4gICAgdmFsdWVzXG59IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZXhwb3J0IGNsYXNzIExvY2FsRGF0YVByb3ZpZGVyIGltcGxlbWVudHMgSURhdGFQcm92aWRlciB7XG4gICAgcHJpdmF0ZSBhcHBseUZpbHRlcihlbnRyeSwgcXVlcnlUZXh0LCBmaWx0ZXJuYW1lPykge1xuICAgICAgICBlbnRyeSA9IGlzTnVtYmVyKGVudHJ5KSA/IGVudHJ5LnRvU3RyaW5nKCkgOiBlbnRyeTtcbiAgICAgICAgaWYgKGluY2x1ZGVzKGZpbHRlcm5hbWUsICdzdGFydCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RhcnRzV2l0aChlbnRyeSwgcXVlcnlUZXh0KTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmNsdWRlcyhmaWx0ZXJuYW1lLCAnZW5kJykpIHtcbiAgICAgICAgICAgIHJldHVybiBlbmRzV2l0aChlbnRyeSwgcXVlcnlUZXh0KTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmNsdWRlcyhmaWx0ZXJuYW1lLCAnZXhhY3QnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzRXF1YWwoZW50cnksIHF1ZXJ5VGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluY2x1ZGVzKGVudHJ5LCBxdWVyeVRleHQpO1xuICAgIH1cblxuICAgIC8vIExvY2FsRGF0YSBmaWx0ZXJpbmcgaXMgZG9uZSBiYXNlZCBvbiB0aGUgc2VhcmNoa2V5LlxuICAgIHB1YmxpYyBmaWx0ZXIoY29uZmlnOiBJRGF0YVByb3ZpZGVyQ29uZmlnKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGNvbmZpZy5kYXRhc2V0O1xuICAgICAgICBsZXQgY2FzZXNlbnNpdGl2ZSA9IGNvbmZpZy5jYXNlc2Vuc2l0aXZlO1xuICAgICAgICBjb25zdCBtYXRjaE1vZGUgPSBjb25maWcubWF0Y2hNb2RlO1xuICAgICAgICAvLyBmb3Igc3VwcG9ydGluZyBleGlzdGluZyBwcm9qZWN0c1xuICAgICAgICBpZiAobWF0Y2hNb2RlICYmICFpbmNsdWRlcyhtYXRjaE1vZGUsICdpZ25vcmVjYXNlJykpIHtcbiAgICAgICAgICAgIGNhc2VzZW5zaXRpdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBxdWVyeVRleHQgPSBjb25maWcucXVlcnksXG4gICAgICAgIGZpbHRlcmVkRGF0YTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiBzZWFyY2hLZXkgaXMgZGVmaW5lZCwgdGhlbiBjaGVjayBmb3IgbWF0Y2ggc3RyaW5nIGFnYWluc3QgZWFjaCBpdGVtIGluIHRoZSBkYXRhc2V0IHdpdGggaXRlbSdzIGZpZWxkIG5hbWUgYXMgdGhlIHNlYXJjaEtleVxuICAgICAgICAgICAgICogcmV0dXJuIHRoZSBmaWx0ZXJlZCBkYXRhIGNvbnRhaW5pbmcgdGhlIG1hdGNoaW5nIHN0cmluZy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5zZWFyY2hLZXkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gc3BsaXQoY29uZmlnLnNlYXJjaEtleSwgJywnKTtcblxuICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcihjb25maWcuZGF0YXNldCwgKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5cy5zb21lKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IGdldChpdGVtLCBrZXkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBxdWVyeVRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhc2VzZW5zaXRpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gdG9Mb3dlcih0b1N0cmluZyhhKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IHRvTG93ZXIodG9TdHJpbmcoYikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlGaWx0ZXIoYSwgYiwgbWF0Y2hNb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGxvY2FsIHNlYXJjaCBvbiBkYXRhIHdpdGggYXJyYXkgb2Ygb2JqZWN0cy5cbiAgICAgICAgICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBpdGVtIGFuZCByZXR1cm4gdGhlIGZpbHRlcmVkIGRhdGEgY29udGFpbmluZyB0aGUgbWF0Y2hpbmcgc3RyaW5nLlxuICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KGVudHJpZXMpICYmIGlzT2JqZWN0KGVudHJpZXNbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcihlbnRyaWVzLCBlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IHZhbHVlcyhlbnRyeSkuam9pbignICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYXNlc2Vuc2l0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IHRvTG93ZXIoYSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5VGV4dCA9IHRvTG93ZXIocXVlcnlUZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFwcGx5RmlsdGVyKGEsIHF1ZXJ5VGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcihlbnRyaWVzLCBlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhc2VzZW5zaXRpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSA9IHRvTG93ZXIoZW50cnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVRleHQgPSB0b0xvd2VyKHF1ZXJ5VGV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseUZpbHRlcihlbnRyeSwgcXVlcnlUZXh0LCBtYXRjaE1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBmaWx0ZXJlZERhdGEsXG4gICAgICAgICAgICAgICAgaGFzTW9yZURhdGE6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzTGFzdFBhZ2U6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AppConstants, DataSource, findValueOf, getClonedObject } from '@wm/core';
|
|
2
2
|
import { interpolateBindExpressions } from '@wm/components/base';
|
|
3
|
+
import { assign, get, indexOf, isArray, isEmpty, isObject, set, slice, split } from "lodash-es";
|
|
3
4
|
export class RemoteDataProvider {
|
|
4
5
|
filter(config) {
|
|
5
6
|
return this.filterData(config).then(response => this.onFilterSuccess(config, response), () => this.onFilterFailure());
|
|
@@ -15,7 +16,7 @@ export class RemoteDataProvider {
|
|
|
15
16
|
interpolateBindExpressions(config.viewParent, dataoptions.filterExpr, (filterexpressions) => {
|
|
16
17
|
requestParams.filterExpr = dataoptions.filterExpr = filterexpressions;
|
|
17
18
|
dataoptions.filterExpr = filterexpressions;
|
|
18
|
-
config.datasource.execute(DataSource.Operation.GET_RELATED_TABLE_DATA,
|
|
19
|
+
config.datasource.execute(DataSource.Operation.GET_RELATED_TABLE_DATA, assign({ relatedField: dataoptions.relatedField }, requestParams)).then(resolve, reject);
|
|
19
20
|
});
|
|
20
21
|
});
|
|
21
22
|
}
|
|
@@ -26,7 +27,7 @@ export class RemoteDataProvider {
|
|
|
26
27
|
page: config.page,
|
|
27
28
|
fields: dataoptions.distinctField,
|
|
28
29
|
entityName: dataoptions.tableName,
|
|
29
|
-
filterFields:
|
|
30
|
+
filterFields: assign(dataoptions.filterFields, requestParams.filterFields),
|
|
30
31
|
filterExpr: getClonedObject(dataoptions.filterExpr || {})
|
|
31
32
|
});
|
|
32
33
|
}
|
|
@@ -50,7 +51,7 @@ export class RemoteDataProvider {
|
|
|
50
51
|
// in case data received is value as string then add that string value to object and convert object into array
|
|
51
52
|
if (tempResponse) {
|
|
52
53
|
const tempObj = {};
|
|
53
|
-
|
|
54
|
+
set(tempObj, operationResult, tempResponse);
|
|
54
55
|
data = [tempObj]; // convert data into an array having tempObj
|
|
55
56
|
}
|
|
56
57
|
else {
|
|
@@ -63,7 +64,7 @@ export class RemoteDataProvider {
|
|
|
63
64
|
return [];
|
|
64
65
|
}
|
|
65
66
|
isLastPageForDistinctApi(data, page, totalElements, _isLastPage) {
|
|
66
|
-
return page > 1 && !_isLastPage &&
|
|
67
|
+
return page > 1 && !_isLastPage && isEmpty(data) && totalElements === AppConstants.INT_MAX_VALUE;
|
|
67
68
|
}
|
|
68
69
|
// this function processes the response depending on pageOptions, isPageable and prepares the formattedDataset.
|
|
69
70
|
onFilterSuccess(config, response) {
|
|
@@ -72,8 +73,8 @@ export class RemoteDataProvider {
|
|
|
72
73
|
let _isLastPage;
|
|
73
74
|
let page;
|
|
74
75
|
let isPaginatedData;
|
|
75
|
-
const expressionArray =
|
|
76
|
-
const dataExpression =
|
|
76
|
+
const expressionArray = split(config.binddataset, '.');
|
|
77
|
+
const dataExpression = slice(expressionArray, indexOf(expressionArray, 'dataSet') + 1).join('.');
|
|
77
78
|
const $I = '[$i]';
|
|
78
79
|
return new Promise((resolve, reject) => {
|
|
79
80
|
const pageOptions = response.pagination;
|
|
@@ -95,19 +96,19 @@ export class RemoteDataProvider {
|
|
|
95
96
|
}
|
|
96
97
|
// if data expression exists, extract the data from the expression path
|
|
97
98
|
if (dataExpression) {
|
|
98
|
-
if (
|
|
99
|
+
if (isArray(data)) {
|
|
99
100
|
const index = dataExpression.lastIndexOf($I);
|
|
100
101
|
if (index > -1) {
|
|
101
102
|
const restExpr = dataExpression.substr(index + 5);
|
|
102
103
|
formattedData = data.map(datum => findValueOf(datum, restExpr));
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
|
-
else if (
|
|
106
|
-
formattedData =
|
|
106
|
+
else if (isObject(data)) {
|
|
107
|
+
formattedData = get(data, dataExpression);
|
|
107
108
|
}
|
|
108
109
|
data = formattedData || data;
|
|
109
110
|
}
|
|
110
|
-
if (!
|
|
111
|
+
if (!isArray(data)) {
|
|
111
112
|
data = this.getTransformedData(config.datasource, data);
|
|
112
113
|
}
|
|
113
114
|
// in case of no data received, resolve the promise with empty array
|
|
@@ -120,4 +121,4 @@ export class RemoteDataProvider {
|
|
|
120
121
|
});
|
|
121
122
|
}
|
|
122
123
|
}
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvc2VhcmNoL3NyYy9kYXRhLXByb3ZpZGVyL3JlbW90ZS1kYXRhLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEYsT0FBTyxFQUF1QiwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS3RGLE1BQU0sT0FBTyxrQkFBa0I7SUFDcEIsTUFBTSxDQUFDLE1BQTJCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBRU8sVUFBVSxDQUFDLE1BQU07UUFDckIsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUV2QyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRWpHLHNFQUFzRTtZQUN0RSwrQkFBK0I7WUFDL0IsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7b0JBQ25DLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFD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LElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztnQkFDRCxJQUFJLEdBQUcsYUFBYSxJQUFJLElBQUksQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFDRCxvRUFBb0U7WUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7WUFDL0YsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUNqRyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBDb25zdGFudHMsIERhdGFTb3VyY2UsIGZpbmRWYWx1ZU9mLCBnZXRDbG9uZWRPYmplY3QgfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IGNvbnZlcnREYXRhVG9PYmplY3QsIGludGVycG9sYXRlQmluZEV4cHJlc3Npb25zIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBJRGF0YVByb3ZpZGVyLCBJRGF0YVByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi9kYXRhLXByb3ZpZGVyJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5leHBvcnQgY2xhc3MgUmVtb3RlRGF0YVByb3ZpZGVyIGltcGxlbWVudHMgSURhdGFQcm92aWRlciB7XG4gICAgcHVibGljIGZpbHRlcihjb25maWc6IElEYXRhUHJvdmlkZXJDb25maWcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJEYXRhKGNvbmZpZykudGhlbihyZXNwb25zZSA9PiB0aGlzLm9uRmlsdGVyU3VjY2Vzcyhjb25maWcsIHJlc3BvbnNlKSwgKCkgPT4gdGhpcy5vbkZpbHRlckZhaWx1cmUoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJEYXRhKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnLmRhdGFvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhb3B0aW9ucyA9IGNvbmZpZy5kYXRhb3B0aW9ucztcblxuICAgICAgICAgICAgY29uc3QgcmVxdWVzdFBhcmFtcyA9IGNvbmZpZy5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX1JFUVVFU1RfUEFSQU1TLCBjb25maWcpO1xuXG4gICAgICAgICAgICAvLyBJZiBvcHRpb25zIGFyZSBzcGVjaWZpZWQsIG1ha2Ugc3BlY2lmaWNzIGNhbGxzIHRvIGZldGNoIHRoZSByZXN1bHRzXG4gICAgICAgICAgICAvLyBGZXRjaCB0aGUgcmVsYXRlZCBmaWVsZCBkYXRhXG4gICAgICAgICAgICBpZiAoZGF0YW9wdGlvbnMucmVsYXRlZEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJwb2xhdGVCaW5kRXhwcmVzc2lvbnMoY29uZmlnLnZpZXdQYXJlbnQsIGRhdGFvcHRpb25zLmZpbHRlckV4cHIsIChmaWx0ZXJleHByZXNzaW9ucykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFBhcmFtcy5maWx0ZXJFeHByID0gZGF0YW9wdGlvbnMuZmlsdGVyRXhwciA9IGZpbHRlcmV4cHJlc3Npb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YW9wdGlvbnMuZmlsdGVyRXhwciA9IGZpbHRlcmV4cHJlc3Npb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuZGF0YXNvdXJjZS5leGVjdXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFTb3VyY2UuT3BlcmF0aW9uLkdFVF9SRUxBVEVEX1RBQkxFX0RBVEEsIF8uYXNzaWduKHtyZWxhdGVkRmllbGQ6IGRhdGFvcHRpb25zLnJlbGF0ZWRGaWVsZH0sIHJlcXVlc3RQYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICApLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCB0aGUgZGlzdGluY3QgZGF0YVxuICAgICAgICAgICAgaWYgKGRhdGFvcHRpb25zLmRpc3RpbmN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLmRhdGFzb3VyY2UuZXhlY3V0ZShcbiAgICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX0RJU1RJTkNUX0RBVEFfQllfRklFTERTLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlc2l6ZTogY29uZmlnLmxpbWl0IHx8IGNvbmZpZy5wYWdlc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IGNvbmZpZy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBkYXRhb3B0aW9ucy5kaXN0aW5jdEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZTogZGF0YW9wdGlvbnMudGFibGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzOiBfLmFzc2lnbihkYXRhb3B0aW9ucy5maWx0ZXJGaWVsZHMsIHJlcXVlc3RQYXJhbXMuZmlsdGVyRmllbGRzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckV4cHI6IGdldENsb25lZE9iamVjdChkYXRhb3B0aW9ucy5maWx0ZXJFeHByIHx8IHt9KVxuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2VhcmNoIHJlY29yZHMgdXNpbmcgdGhlIHNlYXJjaGtleVxuICAgICAgICByZXR1cm4gY29uZmlnLmRhdGFzb3VyY2UuZXhlY3V0ZShcbiAgICAgICAgICAgIERhdGFTb3VyY2UuT3BlcmF0aW9uLlNFQVJDSF9SRUNPUkRTLCBjb25maWdcbiAgICAgICAgKTtcbiAgICB9XG5cblxuICAgIC8vIENoZWNrIGlmIHRoZSBwYWdlIHJldHJpZXZlZCBjdXJyZW50bHkgaXMgdGhlIGxhc3QgcGFnZS4gSWYgbGFzdCBwYWdlLCBkb24ndCBzZW5kIGFueSBtb3JlIHJlcXVlc3RcbiAgICBwcm90ZWN0ZWQgaXNMYXN0KHBhZ2U6IG51bWJlciwgZGF0YVNpemU6IG51bWJlciwgbWF4UmVzdWx0czogbnVtYmVyLCBjdXJyZW50UmVzdWx0cz86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICAvLyBpZiBsYXN0IHBhZ2UgaW5mbyBpcyBub3QgcmV0dXJuZWQgYnkgYmFja2VuZCBhbmQgY3VycmVudCByZXN1bHRzIGlzIGxlc3MgdGhhbiBtYXggcmVzdWx0cywgdGhpcyBpcyB0aGUgbGFzdCBwYWdlXG4gICAgICAgIGlmIChkYXRhU2l6ZSA9PT0gQXBwQ29uc3RhbnRzLklOVF9NQVhfVkFMVUUpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50UmVzdWx0cyAhPT0gMCAmJiBjdXJyZW50UmVzdWx0cyA8IG1heFJlc3VsdHM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFnZUNvdW50ID0gKChkYXRhU2l6ZSA+IG1heFJlc3VsdHMpID8gKE1hdGguY2VpbChkYXRhU2l6ZSAvIG1heFJlc3VsdHMpKSA6IChkYXRhU2l6ZSA8IDAgPyAwIDogMSkpO1xuICAgICAgICByZXR1cm4gcGFnZSA9PT0gcGFnZUNvdW50O1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdHJhbnNmb3JtIHRoZSByZXNwb25zZSBkYXRhIGluIGNhc2UgaXQgaXMgbm90IGFuIGFycmF5XG4gICAgcHJvdGVjdGVkIGdldFRyYW5zZm9ybWVkRGF0YSh2YXJpYWJsZTogYW55LCBkYXRhOiBhbnkpOiBhbnkge1xuICAgICAgICBjb25zdCBvcGVyYXRpb25SZXN1bHQgPSB2YXJpYWJsZS5vcGVyYXRpb24gKyAnUmVzdWx0JzsgLy8gd2hlbiBvdXRwdXQgaXMgb25seSBzdHJpbmcgaXQgaXMgYXZhaWxhYmxlIGFzIG9wcmF0aW9uTmFtZVJlc3VsdFxuICAgICAgICBjb25zdCB0ZW1wUmVzcG9uc2UgPSBkYXRhW29wZXJhdGlvblJlc3VsdF07XG5cbiAgICAgICAgLy8gaW4gY2FzZSBkYXRhIHJlY2VpdmVkIGlzIHZhbHVlIGFzIHN0cmluZyB0aGVuIGFkZCB0aGF0IHN0cmluZyB2YWx1ZSB0byBvYmplY3QgYW5kIGNvbnZlcnQgb2JqZWN0IGludG8gYXJyYXlcbiAgICAgICAgaWYgKHRlbXBSZXNwb25zZSkge1xuICAgICAgICAgICAgY29uc3QgdGVtcE9iaiA9IHt9O1xuICAgICAgICAgICAgXy5zZXQodGVtcE9iaiwgb3BlcmF0aW9uUmVzdWx0LCB0ZW1wUmVzcG9uc2UpO1xuICAgICAgICAgICAgZGF0YSA9IFt0ZW1wT2JqXTsgLy8gY29udmVydCBkYXRhIGludG8gYW4gYXJyYXkgaGF2aW5nIHRlbXBPYmpcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGluIGNhc2UgZGF0YSByZWNlaXZlZCBpcyBhbHJlYWR5IGFuIG9iamVjdCB0aGVuIGNvbnZlcnQgaXQgaW50byBhbiBhcnJheVxuICAgICAgICAgICAgZGF0YSA9IFtkYXRhXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkZpbHRlckZhaWx1cmUoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTGFzdFBhZ2VGb3JEaXN0aW5jdEFwaShkYXRhLCBwYWdlLCB0b3RhbEVsZW1lbnRzLCBfaXNMYXN0UGFnZSkge1xuICAgICAgICByZXR1cm4gcGFnZSA+IDEgJiYgIV9pc0xhc3RQYWdlICYmIF8uaXNFbXB0eShkYXRhKSAmJiB0b3RhbEVsZW1lbnRzID09PSBBcHBDb25zdGFudHMuSU5UX01BWF9WQUxVRTtcbiAgICB9XG5cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSByZXNwb25zZSBkZXBlbmRpbmcgb24gcGFnZU9wdGlvbnMsIGlzUGFnZWFibGUgYW5kIHByZXBhcmVzIHRoZSBmb3JtYXR0ZWREYXRhc2V0LlxuICAgIHByb3RlY3RlZCBvbkZpbHRlclN1Y2Nlc3MoY29uZmlnOiBJRGF0YVByb3ZpZGVyQ29uZmlnLCByZXNwb25zZSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGxldCBkYXRhOiBhbnkgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICBsZXQgZm9ybWF0dGVkRGF0YTogYW55O1xuICAgICAgICBsZXQgX2lzTGFzdFBhZ2U6IGJvb2xlYW47XG4gICAgICAgIGxldCBwYWdlOiBudW1iZXI7XG4gICAgICAgIGxldCBpc1BhZ2luYXRlZERhdGE6IGJvb2xlYW47XG5cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbkFycmF5ID0gXy5zcGxpdChjb25maWcuYmluZGRhdGFzZXQsICcuJyk7XG4gICAgICAgIGNvbnN0IGRhdGFFeHByZXNzaW9uID0gXy5zbGljZShleHByZXNzaW9uQXJyYXksIF8uaW5kZXhPZihleHByZXNzaW9uQXJyYXksICdkYXRhU2V0JykgKyAxKS5qb2luKCcuJyk7XG4gICAgICAgIGNvbnN0ICRJID0gJ1skaV0nO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYWdlT3B0aW9ucyA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG5cbiAgICAgICAgICAgIGlmIChjb25maWcuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX1BBR0VBQkxFKSkge1xuICAgICAgICAgICAgICAgIHBhZ2UgPSBwYWdlT3B0aW9ucy5udW1iZXIgKyAxO1xuICAgICAgICAgICAgICAgIF9pc0xhc3RQYWdlID0gdGhpcy5pc0xhc3QocGFnZSwgKGNvbmZpZy5saW1pdCA+IDAgJiYgY29uZmlnLmxpbWl0KSB8fCBwYWdlT3B0aW9ucy50b3RhbEVsZW1lbnRzLCBwYWdlT3B0aW9ucy5zaXplLCBwYWdlT3B0aW9ucy5udW1iZXJPZkVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpc1BhZ2luYXRlZERhdGEgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMYXN0UGFnZUZvckRpc3RpbmN0QXBpKGRhdGEsIHBhZ2UsIHBhZ2VPcHRpb25zLnRvdGFsRWxlbWVudHMsIF9pc0xhc3RQYWdlKSkge1xuICAgICAgICAgICAgICAgICAgICBfaXNMYXN0UGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xhc3RQYWdlOiBfaXNMYXN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc01vcmVEYXRhOiBwYWdlID4gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFnaW5hdGVkRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBkYXRhIGV4cHJlc3Npb24gZXhpc3RzLCBleHRyYWN0IHRoZSBkYXRhIGZyb20gdGhlIGV4cHJlc3Npb24gcGF0aFxuICAgICAgICAgICAgaWYgKGRhdGFFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKF8uaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGRhdGFFeHByZXNzaW9uLmxhc3RJbmRleE9mKCRJKTtcbiAgICAgICAgICAgICAgICAgICAgaWYoaW5kZXggPiAtMSl7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN0RXhwciA9IGRhdGFFeHByZXNzaW9uLnN1YnN0cihpbmRleCArIDUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkRGF0YSA9IGRhdGEubWFwKGRhdHVtID0+IGZpbmRWYWx1ZU9mKGRhdHVtLCByZXN0RXhwcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChfLmlzT2JqZWN0KGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZERhdGEgPSBfLmdldChkYXRhLCBkYXRhRXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGEgPSBmb3JtYXR0ZWREYXRhIHx8IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIV8uaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICAgIGRhdGEgPSB0aGlzLmdldFRyYW5zZm9ybWVkRGF0YShjb25maWcuZGF0YXNvdXJjZSwgZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpbiBjYXNlIG9mIG5vIGRhdGEgcmVjZWl2ZWQsIHJlc29sdmUgdGhlIHByb21pc2Ugd2l0aCBlbXB0eSBhcnJheVxuICAgICAgICAgICAgaWYgKCFkYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe2RhdGE6IFtdLCBpc0xhc3RQYWdlOiBfaXNMYXN0UGFnZSwgaGFzTW9yZURhdGE6IHBhZ2UgPiAxLCBpc1BhZ2luYXRlZERhdGEsIHBhZ2V9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7ZGF0YTogZGF0YSwgaXNMYXN0UGFnZTogX2lzTGFzdFBhZ2UsIGhhc01vcmVEYXRhOiBwYWdlID4gMSwgaXNQYWdpbmF0ZWREYXRhLCBwYWdlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvc2VhcmNoL3NyYy9kYXRhLXByb3ZpZGVyL3JlbW90ZS1kYXRhLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEYsT0FBTyxFQUF1QiwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRGLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUU5RixNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLE1BQU0sQ0FBQyxNQUEyQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDMUgsQ0FBQztJQUVPLFVBQVUsQ0FBQyxNQUFNO1FBQ3JCLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFFdkMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVqRyxzRUFBc0U7WUFDdEUsK0JBQStCO1lBQy9CLElBQUksV0FBVyxDQUFD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QixhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztnQkFDRCxJQUFJLEdBQUcsYUFBYSxJQUFJLElBQUksQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELG9FQUFvRTtZQUNwRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUMvRixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1lBQ2pHLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcENvbnN0YW50cywgRGF0YVNvdXJjZSwgZmluZFZhbHVlT2YsIGdldENsb25lZE9iamVjdCB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgY29udmVydERhdGFUb09iamVjdCwgaW50ZXJwb2xhdGVCaW5kRXhwcmVzc2lvbnMgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IElEYXRhUHJvdmlkZXIsIElEYXRhUHJvdmlkZXJDb25maWcgfSBmcm9tICcuL2RhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHthc3NpZ24sIGdldCwgaW5kZXhPZiwgaXNBcnJheSwgaXNFbXB0eSwgaXNPYmplY3QsIHNldCwgc2xpY2UsIHNwbGl0fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBjbGFzcyBSZW1vdGVEYXRhUHJvdmlkZXIgaW1wbGVtZW50cyBJRGF0YVByb3ZpZGVyIHtcbiAgICBwdWJsaWMgZmlsdGVyKGNvbmZpZzogSURhdGFQcm92aWRlckNvbmZpZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlckRhdGEoY29uZmlnKS50aGVuKHJlc3BvbnNlID0+IHRoaXMub25GaWx0ZXJTdWNjZXNzKGNvbmZpZywgcmVzcG9uc2UpLCAoKSA9PiB0aGlzLm9uRmlsdGVyRmFpbHVyZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlckRhdGEoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcuZGF0YW9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFvcHRpb25zID0gY29uZmlnLmRhdGFvcHRpb25zO1xuXG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gY29uZmlnLmRhdGFzb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5HRVRfUkVRVUVTVF9QQVJBTVMsIGNvbmZpZyk7XG5cbiAgICAgICAgICAgIC8vIElmIG9wdGlvbnMgYXJlIHNwZWNpZmllZCwgbWFrZSBzcGVjaWZpY3MgY2FsbHMgdG8gZmV0Y2ggdGhlIHJlc3VsdHNcbiAgICAgICAgICAgIC8vIEZldGNoIHRoZSByZWxhdGVkIGZpZWxkIGRhdGFcbiAgICAgICAgICAgIGlmIChkYXRhb3B0aW9ucy5yZWxhdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbnRlcnBvbGF0ZUJpbmRFeHByZXNzaW9ucyhjb25maWcudmlld1BhcmVudCwgZGF0YW9wdGlvbnMuZmlsdGVyRXhwciwgKGZpbHRlcmV4cHJlc3Npb25zKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0UGFyYW1zLmZpbHRlckV4cHIgPSBkYXRhb3B0aW9ucy5maWx0ZXJFeHByID0gZmlsdGVyZXhwcmVzc2lvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhb3B0aW9ucy5maWx0ZXJFeHByID0gZmlsdGVyZXhwcmVzc2lvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5kYXRhc291cmNlLmV4ZWN1dGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX1JFTEFURURfVEFCTEVfREFUQSwgYXNzaWduKHtyZWxhdGVkRmllbGQ6IGRhdGFvcHRpb25zLnJlbGF0ZWRGaWVsZH0sIHJlcXVlc3RQYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICApLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCB0aGUgZGlzdGluY3QgZGF0YVxuICAgICAgICAgICAgaWYgKGRhdGFvcHRpb25zLmRpc3RpbmN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLmRhdGFzb3VyY2UuZXhlY3V0ZShcbiAgICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX0RJU1RJTkNUX0RBVEFfQllfRklFTERTLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlc2l6ZTogY29uZmlnLmxpbWl0IHx8IGNvbmZpZy5wYWdlc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IGNvbmZpZy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBkYXRhb3B0aW9ucy5kaXN0aW5jdEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZTogZGF0YW9wdGlvbnMudGFibGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzOiBhc3NpZ24oZGF0YW9wdGlvbnMuZmlsdGVyRmllbGRzLCByZXF1ZXN0UGFyYW1zLmZpbHRlckZpZWxkcyksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJFeHByOiBnZXRDbG9uZWRPYmplY3QoZGF0YW9wdGlvbnMuZmlsdGVyRXhwciB8fCB7fSlcblxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNlYXJjaCByZWNvcmRzIHVzaW5nIHRoZSBzZWFyY2hrZXlcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5kYXRhc291cmNlLmV4ZWN1dGUoXG4gICAgICAgICAgICBEYXRhU291cmNlLk9wZXJhdGlvbi5TRUFSQ0hfUkVDT1JEUywgY29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG5cbiAgICAvLyBDaGVjayBpZiB0aGUgcGFnZSByZXRyaWV2ZWQgY3VycmVudGx5IGlzIHRoZSBsYXN0IHBhZ2UuIElmIGxhc3QgcGFnZSwgZG9uJ3Qgc2VuZCBhbnkgbW9yZSByZXF1ZXN0XG4gICAgcHJvdGVjdGVkIGlzTGFzdChwYWdlOiBudW1iZXIsIGRhdGFTaXplOiBudW1iZXIsIG1heFJlc3VsdHM6IG51bWJlciwgY3VycmVudFJlc3VsdHM/OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgLy8gaWYgbGFzdCBwYWdlIGluZm8gaXMgbm90IHJldHVybmVkIGJ5IGJhY2tlbmQgYW5kIGN1cnJlbnQgcmVzdWx0cyBpcyBsZXNzIHRoYW4gbWF4IHJlc3VsdHMsIHRoaXMgaXMgdGhlIGxhc3QgcGFnZVxuICAgICAgICBpZiAoZGF0YVNpemUgPT09IEFwcENvbnN0YW50cy5JTlRfTUFYX1ZBTFVFKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudFJlc3VsdHMgIT09IDAgJiYgY3VycmVudFJlc3VsdHMgPCBtYXhSZXN1bHRzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhZ2VDb3VudCA9ICgoZGF0YVNpemUgPiBtYXhSZXN1bHRzKSA/IChNYXRoLmNlaWwoZGF0YVNpemUgLyBtYXhSZXN1bHRzKSkgOiAoZGF0YVNpemUgPCAwID8gMCA6IDEpKTtcbiAgICAgICAgcmV0dXJuIHBhZ2UgPT09IHBhZ2VDb3VudDtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRyYW5zZm9ybSB0aGUgcmVzcG9uc2UgZGF0YSBpbiBjYXNlIGl0IGlzIG5vdCBhbiBhcnJheVxuICAgIHByb3RlY3RlZCBnZXRUcmFuc2Zvcm1lZERhdGEodmFyaWFibGU6IGFueSwgZGF0YTogYW55KTogYW55IHtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uUmVzdWx0ID0gdmFyaWFibGUub3BlcmF0aW9uICsgJ1Jlc3VsdCc7IC8vIHdoZW4gb3V0cHV0IGlzIG9ubHkgc3RyaW5nIGl0IGlzIGF2YWlsYWJsZSBhcyBvcHJhdGlvbk5hbWVSZXN1bHRcbiAgICAgICAgY29uc3QgdGVtcFJlc3BvbnNlID0gZGF0YVtvcGVyYXRpb25SZXN1bHRdO1xuXG4gICAgICAgIC8vIGluIGNhc2UgZGF0YSByZWNlaXZlZCBpcyB2YWx1ZSBhcyBzdHJpbmcgdGhlbiBhZGQgdGhhdCBzdHJpbmcgdmFsdWUgdG8gb2JqZWN0IGFuZCBjb252ZXJ0IG9iamVjdCBpbnRvIGFycmF5XG4gICAgICAgIGlmICh0ZW1wUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHRlbXBPYmogPSB7fTtcbiAgICAgICAgICAgIHNldCh0ZW1wT2JqLCBvcGVyYXRpb25SZXN1bHQsIHRlbXBSZXNwb25zZSk7XG4gICAgICAgICAgICBkYXRhID0gW3RlbXBPYmpdOyAvLyBjb252ZXJ0IGRhdGEgaW50byBhbiBhcnJheSBoYXZpbmcgdGVtcE9ialxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaW4gY2FzZSBkYXRhIHJlY2VpdmVkIGlzIGFscmVhZHkgYW4gb2JqZWN0IHRoZW4gY29udmVydCBpdCBpbnRvIGFuIGFycmF5XG4gICAgICAgICAgICBkYXRhID0gW2RhdGFdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRmlsdGVyRmFpbHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYXN0UGFnZUZvckRpc3RpbmN0QXBpKGRhdGEsIHBhZ2UsIHRvdGFsRWxlbWVudHMsIF9pc0xhc3RQYWdlKSB7XG4gICAgICAgIHJldHVybiBwYWdlID4gMSAmJiAhX2lzTGFzdFBhZ2UgJiYgaXNFbXB0eShkYXRhKSAmJiB0b3RhbEVsZW1lbnRzID09PSBBcHBDb25zdGFudHMuSU5UX01BWF9WQUxVRTtcbiAgICB9XG5cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSByZXNwb25zZSBkZXBlbmRpbmcgb24gcGFnZU9wdGlvbnMsIGlzUGFnZWFibGUgYW5kIHByZXBhcmVzIHRoZSBmb3JtYXR0ZWREYXRhc2V0LlxuICAgIHByb3RlY3RlZCBvbkZpbHRlclN1Y2Nlc3MoY29uZmlnOiBJRGF0YVByb3ZpZGVyQ29uZmlnLCByZXNwb25zZSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGxldCBkYXRhOiBhbnkgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICBsZXQgZm9ybWF0dGVkRGF0YTogYW55O1xuICAgICAgICBsZXQgX2lzTGFzdFBhZ2U6IGJvb2xlYW47XG4gICAgICAgIGxldCBwYWdlOiBudW1iZXI7XG4gICAgICAgIGxldCBpc1BhZ2luYXRlZERhdGE6IGJvb2xlYW47XG5cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbkFycmF5ID0gc3BsaXQoY29uZmlnLmJpbmRkYXRhc2V0LCAnLicpO1xuICAgICAgICBjb25zdCBkYXRhRXhwcmVzc2lvbiA9IHNsaWNlKGV4cHJlc3Npb25BcnJheSwgaW5kZXhPZihleHByZXNzaW9uQXJyYXksICdkYXRhU2V0JykgKyAxKS5qb2luKCcuJyk7XG4gICAgICAgIGNvbnN0ICRJID0gJ1skaV0nO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYWdlT3B0aW9ucyA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG5cbiAgICAgICAgICAgIGlmIChjb25maWcuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX1BBR0VBQkxFKSkge1xuICAgICAgICAgICAgICAgIHBhZ2UgPSBwYWdlT3B0aW9ucy5udW1iZXIgKyAxO1xuICAgICAgICAgICAgICAgIF9pc0xhc3RQYWdlID0gdGhpcy5pc0xhc3QocGFnZSwgKGNvbmZpZy5saW1pdCA+IDAgJiYgY29uZmlnLmxpbWl0KSB8fCBwYWdlT3B0aW9ucy50b3RhbEVsZW1lbnRzLCBwYWdlT3B0aW9ucy5zaXplLCBwYWdlT3B0aW9ucy5udW1iZXJPZkVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpc1BhZ2luYXRlZERhdGEgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMYXN0UGFnZUZvckRpc3RpbmN0QXBpKGRhdGEsIHBhZ2UsIHBhZ2VPcHRpb25zLnRvdGFsRWxlbWVudHMsIF9pc0xhc3RQYWdlKSkge1xuICAgICAgICAgICAgICAgICAgICBfaXNMYXN0UGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xhc3RQYWdlOiBfaXNMYXN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc01vcmVEYXRhOiBwYWdlID4gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFnaW5hdGVkRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBkYXRhIGV4cHJlc3Npb24gZXhpc3RzLCBleHRyYWN0IHRoZSBkYXRhIGZyb20gdGhlIGV4cHJlc3Npb24gcGF0aFxuICAgICAgICAgICAgaWYgKGRhdGFFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBkYXRhRXhwcmVzc2lvbi5sYXN0SW5kZXhPZigkSSk7XG4gICAgICAgICAgICAgICAgICAgIGlmKGluZGV4ID4gLTEpe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdEV4cHIgPSBkYXRhRXhwcmVzc2lvbi5zdWJzdHIoaW5kZXggKyA1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZERhdGEgPSBkYXRhLm1hcChkYXR1bSA9PiBmaW5kVmFsdWVPZihkYXR1bSwgcmVzdEV4cHIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkRGF0YSA9IGdldChkYXRhLCBkYXRhRXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGEgPSBmb3JtYXR0ZWREYXRhIHx8IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gdGhpcy5nZXRUcmFuc2Zvcm1lZERhdGEoY29uZmlnLmRhdGFzb3VyY2UsIGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaW4gY2FzZSBvZiBubyBkYXRhIHJlY2VpdmVkLCByZXNvbHZlIHRoZSBwcm9taXNlIHdpdGggZW1wdHkgYXJyYXlcbiAgICAgICAgICAgIGlmICghZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtkYXRhOiBbXSwgaXNMYXN0UGFnZTogX2lzTGFzdFBhZ2UsIGhhc01vcmVEYXRhOiBwYWdlID4gMSwgaXNQYWdpbmF0ZWREYXRhLCBwYWdlfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe2RhdGE6IGRhdGEsIGlzTGFzdFBhZ2U6IF9pc0xhc3RQYWdlLCBoYXNNb3JlRGF0YTogcGFnZSA+IDEsIGlzUGFnaW5hdGVkRGF0YSwgcGFnZX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|