@coolon/angular-ui-powerups 16.1.0-aplpha.189 → 16.1.0-aplpha.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -4
- package/assets/activities/activities.scss +3 -5
- package/assets/activities/input-activities.scss +6 -14
- package/assets/form.scss +27 -74
- package/assets/icons.scss +0 -1
- package/assets/styles.scss +0 -2
- package/assets/table.scss +19 -41
- package/assets/tabs.scss +5 -15
- package/esm2022/lib/animations/slide-animations.mjs +10 -15
- package/esm2022/lib/components/cards/abstract-card-container.component.mjs +5 -28
- package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
- package/esm2022/lib/components/commands/command/command.component.mjs +29 -34
- package/esm2022/lib/components/commands/command-face/command-face.component.mjs +3 -11
- package/esm2022/lib/components/commands/command-face.mjs +11 -12
- package/esm2022/lib/components/commands/group/popup-aware.component.mjs +8 -31
- package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +13 -15
- package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +20 -11
- package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +7 -12
- package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +20 -11
- package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +2 -2
- package/esm2022/lib/components/commands/separator.component.mjs +12 -6
- package/esm2022/lib/components/components.module.mjs +30 -55
- package/esm2022/lib/components/disposable-component.mjs +7 -32
- package/esm2022/lib/components/exports.mjs +6 -14
- package/esm2022/lib/components/forms/abstract-input.component.mjs +12 -55
- package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +4 -4
- package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +6 -8
- package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +4 -4
- package/esm2022/lib/components/forms/number-input/number-input.component.mjs +9 -86
- package/esm2022/lib/components/forms/password-input/password-input.component.mjs +3 -40
- package/esm2022/lib/components/forms/select-input/select-input.component.mjs +10 -11
- package/esm2022/lib/components/forms/string-input/string-input.component.mjs +11 -30
- package/esm2022/lib/components/forms/text-input/text-input.component.mjs +4 -8
- package/esm2022/lib/components/icon/icon.component.mjs +4 -7
- package/esm2022/lib/components/loadable-component.mjs +10 -32
- package/esm2022/lib/components/resize-aware.component.mjs +24 -61
- package/esm2022/lib/components/switch-case/switch-case.component.mjs +7 -5
- package/esm2022/lib/components/tables/abstract-table-model.mjs +63 -112
- package/esm2022/lib/components/tables/abstract-table.component.mjs +5 -19
- package/esm2022/lib/components/tables/column/column-list-model.mjs +44 -0
- package/esm2022/lib/components/tables/column/column-model.mjs +6 -16
- package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/selection-column-model.mjs +13 -35
- package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +2 -2
- package/esm2022/lib/components/tables/editor/edit-session.mjs +1 -1
- package/esm2022/lib/components/tables/editor/editable-cell-renderer.mjs +1 -1
- package/esm2022/lib/components/tables/filter/table-filter-model.mjs +2 -4
- package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +2 -16
- package/esm2022/lib/components/tables/paginator/paginator.component.mjs +1 -1
- package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +5 -23
- package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
- package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +4 -7
- package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +40 -150
- package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +6 -6
- package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +33 -0
- package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +60 -0
- package/esm2022/lib/components/tables/table/table-model.mjs +3 -12
- package/esm2022/lib/components/tables/table/table.component.mjs +61 -39
- package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +84 -0
- package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +4 -5
- package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
- package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +5 -12
- package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +7 -4
- package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
- package/esm2022/lib/components/types/loadable.mjs +2 -0
- package/esm2022/lib/directives/command.directive.mjs +7 -18
- package/esm2022/lib/directives/directives.module.mjs +1 -1
- package/esm2022/lib/directives/exports.mjs +1 -2
- package/esm2022/lib/directives/highlight.pipe.mjs +8 -9
- package/esm2022/lib/interaction/abstract-interaction-context.mjs +7 -6
- package/esm2022/lib/interaction/activity.mjs +21 -20
- package/esm2022/lib/interaction/alert.mjs +2 -2
- package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +8 -11
- package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +41 -1
- package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +16 -28
- package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +2 -8
- package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +15 -46
- package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +15 -53
- package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
- package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
- package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
- package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
- package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +10 -10
- package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +8 -4
- package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +8 -4
- package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +9 -7
- package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
- package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +4 -4
- package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +5 -21
- package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
- package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +35 -40
- package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +9 -10
- package/esm2022/lib/interaction/confirm.mjs +2 -26
- package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
- package/esm2022/lib/interaction/exports.mjs +1 -6
- package/esm2022/lib/interaction/interaction-context.mjs +2 -3
- package/esm2022/lib/interaction/interaction.module.mjs +14 -22
- package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
- package/esm2022/lib/interaction/services/interaction.service.mjs +6 -18
- package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +2 -2
- package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +4 -23
- package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +5 -4
- package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +9 -7
- package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
- package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +1 -1
- package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
- package/esm2022/lib/place/guards/place.guard.mjs +5 -6
- package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
- package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +6 -3
- package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -2
- package/esm2022/lib/place/place-auth-service.mjs +6 -7
- package/esm2022/lib/place/place-component.mjs +19 -29
- package/esm2022/lib/place/place-definition.mjs +4 -15
- package/esm2022/lib/place/place-history.mjs +2 -2
- package/esm2022/lib/place/place-router.mjs +53 -67
- package/esm2022/lib/place/place.decorator.mjs +2 -2
- package/esm2022/lib/place/place.module.mjs +5 -1
- package/esm2022/lib/place/route/formatter.mjs +2 -2
- package/esm2022/lib/place/route/parameter-decorators.mjs +50 -54
- package/esm2022/lib/place/route/parameter-definition.mjs +2 -6
- package/esm2022/lib/place/route/parameter-sanitiser.mjs +2 -7
- package/esm2022/lib/place/url-snapshot.mjs +3 -3
- package/esm2022/lib/place/visit-segment.mjs +2 -2
- package/esm2022/lib/place/visit.mjs +2 -2
- package/fesm2022/coolon-angular-ui-powerups.mjs +1135 -2553
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/animations/slide-animations.d.ts +0 -1
- package/lib/components/cards/abstract-card-container.component.d.ts +3 -6
- package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
- package/lib/components/commands/command/command.component.d.ts +8 -8
- package/lib/components/commands/command-face/command-face.component.d.ts +0 -2
- package/lib/components/commands/command-face.d.ts +9 -8
- package/lib/components/commands/group/popup-aware.component.d.ts +4 -9
- package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
- package/lib/components/commands/group/popup-menu/more-menu.component.d.ts +4 -2
- package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +0 -2
- package/lib/components/commands/group/popup-menu/popup-menu.component.d.ts +4 -2
- package/lib/components/commands/separator.component.d.ts +4 -2
- package/lib/components/components.module.d.ts +55 -60
- package/lib/components/disposable-component.d.ts +3 -16
- package/lib/components/exports.d.ts +5 -13
- package/lib/components/forms/abstract-input.component.d.ts +5 -13
- package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +0 -2
- package/lib/components/forms/number-input/number-input.component.d.ts +4 -16
- package/lib/components/forms/password-input/password-input.component.d.ts +1 -7
- package/lib/components/forms/select-input/select-input.component.d.ts +3 -4
- package/lib/components/forms/string-input/string-input.component.d.ts +1 -7
- package/lib/components/forms/text-input/text-input.component.d.ts +0 -3
- package/lib/components/loadable-component.d.ts +5 -11
- package/lib/components/resize-aware.component.d.ts +5 -24
- package/lib/components/switch-case/switch-case.component.d.ts +3 -2
- package/lib/components/tables/abstract-table-model.d.ts +25 -50
- package/lib/components/tables/abstract-table.component.d.ts +3 -4
- package/lib/components/tables/column/column-list-model.d.ts +13 -0
- package/lib/components/tables/column/column-model.d.ts +3 -7
- package/lib/components/tables/column/custom-template-column-model.d.ts +2 -3
- package/lib/components/tables/column/custom-value-column-model.d.ts +2 -3
- package/lib/components/tables/column/editor-controls-column-model.d.ts +2 -3
- package/lib/components/tables/column/list-propery-column-model.d.ts +2 -3
- package/lib/components/tables/column/property-column-model.d.ts +2 -3
- package/lib/components/tables/column/selection-column-model.d.ts +4 -10
- package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +1 -1
- package/lib/components/tables/editor/edit-session.d.ts +1 -1
- package/lib/components/tables/filter/text-search-predicate.d.ts +0 -9
- package/lib/components/tables/renderer/cell-portal-ref.d.ts +12 -20
- package/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.d.ts +1 -1
- package/lib/components/tables/renderer/table-body/table-body.component.d.ts +16 -40
- package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +3 -2
- package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +15 -0
- package/lib/components/tables/renderer/{table-custom-more-menu/table-custom-more-menu.component.d.ts → table-more-menu/table-more-menu.component.d.ts} +7 -8
- package/lib/components/tables/table/table-model.d.ts +4 -4
- package/lib/components/tables/table/table.component.d.ts +10 -14
- package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +28 -0
- package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
- package/lib/components/tables/tree-table/tree-label-column-model.d.ts +2 -3
- package/lib/components/tables/tree-table/tree-table-component.d.ts +0 -3
- package/lib/components/tables/tree-table/tree-table-model.d.ts +5 -4
- package/lib/components/types/loadable.d.ts +5 -0
- package/lib/directives/command.directive.d.ts +4 -6
- package/lib/directives/exports.d.ts +0 -1
- package/lib/interaction/abstract-interaction-context.d.ts +1 -1
- package/lib/interaction/activity.d.ts +7 -7
- package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -2
- package/lib/interaction/components/abstract-dialog.component.d.ts +14 -5
- package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +9 -12
- package/lib/interaction/components/activity-body/activity-body.component.d.ts +1 -2
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +4 -10
- package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +3 -3
- package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
- package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +1 -6
- package/lib/interaction/components/editors/edit-context.d.ts +1 -1
- package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +3 -5
- package/lib/interaction/confirm.d.ts +0 -4
- package/lib/interaction/exports.d.ts +0 -5
- package/lib/interaction/interaction-context.d.ts +1 -7
- package/lib/interaction/interaction.module.d.ts +33 -35
- package/lib/interaction/services/interaction-service-routing-adapter.d.ts +2 -2
- package/lib/interaction/services/interaction.service.d.ts +1 -2
- package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +1 -1
- package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +1 -3
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +4 -3
- package/lib/place/place-auth-service.d.ts +4 -4
- package/lib/place/place-component.d.ts +5 -7
- package/lib/place/place-definition.d.ts +0 -2
- package/lib/place/place-router.d.ts +3 -8
- package/lib/place/place.module.d.ts +5 -4
- package/lib/place/route/parameter-decorators.d.ts +4 -3
- package/lib/place/route/parameter-definition.d.ts +2 -2
- package/lib/place/route/parameter-sanitiser.d.ts +0 -7
- package/package.json +4 -6
- package/assets/draw.scss +0 -20
- package/assets/layout.scss +0 -3
- package/esm2022/lib/components/commands/button-renderer/button-renderer.component.mjs +0 -115
- package/esm2022/lib/components/file/file-download/file-download.component.mjs +0 -89
- package/esm2022/lib/components/forms/form-field.mjs +0 -2
- package/esm2022/lib/components/forms/search-input/search-input.component.mjs +0 -33
- package/esm2022/lib/components/tables/column/column-manager.mjs +0 -81
- package/esm2022/lib/components/tables/column/column-order-manager.mjs +0 -19
- package/esm2022/lib/components/tables/footer/footer-row-model.mjs +0 -38
- package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +0 -7
- package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +0 -2
- package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +0 -153
- package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +0 -45
- package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +0 -71
- package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +0 -30
- package/esm2022/lib/directives/resize-observer.directive.mjs +0 -40
- package/esm2022/lib/interaction/activity-context.mjs +0 -4
- package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +0 -55
- package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +0 -54
- package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +0 -134
- package/esm2022/lib/interaction/interaction-context-provider.mjs +0 -17
- package/lib/components/commands/button-renderer/button-renderer.component.d.ts +0 -30
- package/lib/components/file/file-download/file-download.component.d.ts +0 -45
- package/lib/components/forms/form-field.d.ts +0 -5
- package/lib/components/forms/search-input/search-input.component.d.ts +0 -10
- package/lib/components/tables/column/column-manager.d.ts +0 -19
- package/lib/components/tables/column/column-order-manager.d.ts +0 -20
- package/lib/components/tables/footer/footer-row-model.d.ts +0 -22
- package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +0 -6
- package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +0 -7
- package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +0 -42
- package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +0 -19
- package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +0 -11
- package/lib/directives/resize-observer.directive.d.ts +0 -16
- package/lib/interaction/activity-context.d.ts +0 -9
- package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +0 -17
- package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +0 -15
- package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +0 -53
- package/lib/interaction/interaction-context-provider.d.ts +0 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import {
|
|
3
|
-
import { uniq } from 'lodash
|
|
2
|
+
import { Memoize } from '@typescript-plus/fast-memoize-decorator';
|
|
3
|
+
import { uniq } from 'lodash';
|
|
4
4
|
/**
|
|
5
5
|
* This a work around for the fact that an activated route with multiple segments doesn't
|
|
6
6
|
* include the segment params in the paramMap as well as each segment returns an empty
|
|
@@ -31,7 +31,7 @@ export class ConsolidatedParameterMap {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
__decorate([
|
|
34
|
-
|
|
34
|
+
Memoize(),
|
|
35
35
|
__metadata("design:type", Array),
|
|
36
36
|
__metadata("design:paramtypes", [])
|
|
37
37
|
], ConsolidatedParameterMap.prototype, "keys", null);
|
|
@@ -54,4 +54,4 @@ class ParamMapAdapter {
|
|
|
54
54
|
return Object.keys(this.params);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29saWRhdGVkLXBhcmFtLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL2d1YXJkcy9jb25zb2xpZGF0ZWQtcGFyYW0tbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFaEUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUU1Qjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUVsQixTQUFTLEdBQWUsRUFBRSxDQUFDO0lBRTVDLFlBQVksV0FBeUIsRUFBRSxRQUFtQjtRQUN4RCxvR0FBb0c7UUFDcEcsTUFBTSxhQUFhLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFlLENBQUM7UUFDcEcsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhO2FBQzNCLE1BQU0sQ0FBQyxRQUFRLENBQUM7YUFDaEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNENBQTRDO0lBQ25FLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkQsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztDQUNGO0FBSkM7SUFBQyxPQUFPLEVBQUU7OztvREFHVDtBQUdILE1BQU0sZUFBZTtJQUNVO0lBQTdCLFlBQTZCLE1BQStCO1FBQS9CLFdBQU0sR0FBTixNQUFNLENBQXlCO0lBQzVELENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGFyYW1NYXAsIFVybFNlZ21lbnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge01lbW9pemV9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvcic7XG5cbmltcG9ydCB7dW5pcX0gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBUaGlzIGEgd29yayBhcm91bmQgZm9yIHRoZSBmYWN0IHRoYXQgYW4gYWN0aXZhdGVkIHJvdXRlIHdpdGggbXVsdGlwbGUgc2VnbWVudHMgZG9lc24ndFxuICogaW5jbHVkZSB0aGUgc2VnbWVudCBwYXJhbXMgaW4gdGhlIHBhcmFtTWFwIGFzIHdlbGwgYXMgZWFjaCBzZWdtZW50IHJldHVybnMgYW4gZW1wdHlcbiAqIHBhcmFtIG1hcCBldmVuIHdoZW4gYHBhcmFtZXRlcmBzIGhhcyBjb250ZW50LlxuICovXG5leHBvcnQgY2xhc3MgQ29uc29saWRhdGVkUGFyYW1ldGVyTWFwIGltcGxlbWVudHMgUGFyYW1NYXAge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyYW1NYXBzOiBQYXJhbU1hcFtdID0gW107XG5cbiAgY29uc3RydWN0b3IodXJsU2VnbWVudHM6IFVybFNlZ21lbnRbXSwgcGFyYW1NYXA/OiBQYXJhbU1hcCkge1xuICAgIC8vIFRPRE86IGNhbiB3ZSBnZXQgYWxsIG91ciBwYXJhbXMgZnJvbSB0ZWggdXJsIHNlZ21lbnRzPyBJZiBzbyB3ZSBjYW4gZHJvcCB0aGUgcGFyYW1NYXAgYWx0b2dldGhlci5cbiAgICBjb25zdCBzZWdtZW50UGFyYW1zID0gKHVybFNlZ21lbnRzIHx8IFtdKS5tYXAocyA9PiBuZXcgUGFyYW1NYXBBZGFwdGVyKHMucGFyYW1ldGVycykpIGFzIFBhcmFtTWFwW107XG4gICAgdGhpcy5wYXJhbU1hcHMgPSBzZWdtZW50UGFyYW1zXG4gICAgICAuY29uY2F0KHBhcmFtTWFwKVxuICAgICAgLmZpbHRlcihtID0+ICEhbSk7IC8vIHRoZSBhY3RpdmF0ZWQgcm91dGUgcGFyYW0gbWFwIGNhbiBiZSBudWxsXG4gIH1cblxuICBnZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgcGFyYW1NYXAgPSB0aGlzLnBhcmFtTWFwcy5maW5kKG0gPT4gbS5oYXMobmFtZSkpO1xuICAgIHJldHVybiBwYXJhbU1hcC5nZXQobmFtZSk7XG4gIH1cblxuICBnZXRBbGwobmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHBhcmFtTWFwID0gdGhpcy5wYXJhbU1hcHMuZmluZChtID0+IG0uaGFzKG5hbWUpKTtcbiAgICByZXR1cm4gcGFyYW1NYXAuZ2V0QWxsKG5hbWUpO1xuICB9XG5cbiAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucGFyYW1NYXBzLmZpbmQobSA9PiBtLmhhcyhuYW1lKSk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldCBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdW5pcSh0aGlzLnBhcmFtTWFwcy5yZWR1Y2UoKHJlc3VsdCwgcGFyYW1zKSA9PiByZXN1bHQuY29uY2F0KHBhcmFtcy5rZXlzKSwgW10pKTtcbiAgfVxufVxuXG5jbGFzcyBQYXJhbU1hcEFkYXB0ZXIgaW1wbGVtZW50cyBQYXJhbU1hcCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGFyYW1zOiB7IFtwOiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICB9XG5cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnBhcmFtc1tuYW1lXTtcbiAgfVxuXG4gIGdldEFsbChuYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChuYW1lKTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIH1cblxuICBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5pbmNsdWRlcyhuYW1lKTtcbiAgfVxuXG4gIGdldCBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wYXJhbXMpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -38,14 +38,13 @@ export class PlaceGuard {
|
|
|
38
38
|
}
|
|
39
39
|
// @Trace()
|
|
40
40
|
async canActivate(activatedRoute, state) {
|
|
41
|
-
await this.placeRouter.waitUntilRouterReady();
|
|
42
41
|
if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {
|
|
43
42
|
const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
|
|
44
43
|
if (placeDefinition.authenticate) {
|
|
45
44
|
await this.placeRouter.authService.waitUntilAuthenticationReady();
|
|
46
45
|
const authenticated = this.authService.isAuthenticated();
|
|
47
46
|
if (!authenticated) {
|
|
48
|
-
const redirect =
|
|
47
|
+
const redirect = this.authService.getAuthenticationFailureRedirect(activatedRoute, state);
|
|
49
48
|
// const nextPlaceDef = this.getPlaceDefinition(redirect);
|
|
50
49
|
if (redirect.requiresAuthentication()) {
|
|
51
50
|
lang.illegalState(`onAuthenticationFailure hook returned place ${redirect.toDebugString()} that requires authentication.`);
|
|
@@ -54,7 +53,7 @@ export class PlaceGuard {
|
|
|
54
53
|
}
|
|
55
54
|
await this.authService.waitUntilAuthorisationReadyFor(placeDefinition);
|
|
56
55
|
if (!this.authService.isAuthorised(placeDefinition)) {
|
|
57
|
-
const nextRedirect =
|
|
56
|
+
const nextRedirect = this.findBestAuthenticatedAlternative(placeDefinition, activatedRoute);
|
|
58
57
|
return this.createUrlTree(nextRedirect);
|
|
59
58
|
}
|
|
60
59
|
}
|
|
@@ -98,7 +97,7 @@ export class PlaceGuard {
|
|
|
98
97
|
return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);
|
|
99
98
|
}
|
|
100
99
|
}
|
|
101
|
-
|
|
100
|
+
findBestAuthenticatedAlternative(placeDefinition, activatedRoute) {
|
|
102
101
|
let currentPlace = placeDefinition;
|
|
103
102
|
while (!currentPlace.isRoot()) {
|
|
104
103
|
currentPlace = currentPlace.parent;
|
|
@@ -108,7 +107,7 @@ export class PlaceGuard {
|
|
|
108
107
|
}
|
|
109
108
|
}
|
|
110
109
|
// Couldn't find an authorised ancestor so we check if there are router level defined alternatives
|
|
111
|
-
const alternativeRoutes =
|
|
110
|
+
const alternativeRoutes = this.placeRouter.getAuthorisationFailureRedirectOptions(activatedRoute.component);
|
|
112
111
|
if (alternativeRoutes.length < 1) {
|
|
113
112
|
return lang.illegalState(`onAuthorisationFailure hook didn't return any alternate places`);
|
|
114
113
|
}
|
|
@@ -158,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
158
157
|
type: Injectable,
|
|
159
158
|
args: [{ providedIn: 'root' }]
|
|
160
159
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.UrlService }, { type: i3.PlaceRouter }, { type: i4.PlaceHistory }, { type: i5.InteractionService }, { type: i0.Injector }]; } });
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9ndWFyZHMvcGxhY2UuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUF5QixNQUFNLEVBQStCLE1BQU0saUJBQWlCLENBQUM7QUFDN0YsT0FBTyxFQUFnQixJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUVsRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQy9CLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUdsRSxNQUFNLE9BQU8sVUFBVTtJQUdRO0lBQ1Q7SUFDUztJQUNBO0lBQ0E7SUFDQTtJQUw3QixZQUE2QixNQUFjLEVBQ3ZCLFVBQXNCLEVBQ2IsV0FBd0IsRUFDeEIsWUFBMEIsRUFD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LENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDaEUsaUdBQWlHO1lBQ2pHLG1EQUFtRDtZQUNuRCxPQUFPLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ25DO2FBQU07WUFDTCxPQUFPLElBQUksRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO3VHQWpKVSxVQUFVOzJHQUFWLFVBQVUsY0FERSxNQUFNOzsyRkFDbEIsVUFBVTtrQkFEdEIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEluamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtDb25zdHJ1Y3RhYmxlLCBsYW5nfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0ludGVyYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24vc2VydmljZXMvaW50ZXJhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1BsYWNlQXV0aFNlcnZpY2V9IGZyb20gXCIuLi9wbGFjZS1hdXRoLXNlcnZpY2VcIjtcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQge1BsYWNlSGlzdG9yeX0gZnJvbSAnLi4vcGxhY2UtaGlzdG9yeSc7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tICcuLi9wbGFjZS1yb3V0ZXInO1xuaW1wb3J0IHtWaXNpdFNlZ21lbnRTYW5pdGlzZXJ9IGZyb20gJy4uL3JvdXRlL3Zpc2l0LXNlZ21lbnQtc2FuaXRpc2VyJztcbmltcG9ydCB7VXJsU2VydmljZX0gZnJvbSAnLi4vdXJsLXNlcnZpY2UnO1xuaW1wb3J0IHtVcmxTbmFwc2hvdH0gZnJvbSAnLi4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB7VmlzaXR9IGZyb20gXCIuLi92aXNpdFwiO1xuaW1wb3J0IHtWaXNpdFNlZ21lbnR9IGZyb20gJy4uL3Zpc2l0LXNlZ21lbnQnO1xuaW1wb3J0IHtDb25zb2xpZGF0ZWRQYXJhbWV0ZXJNYXB9IGZyb20gJy4vY29uc29saWRhdGVkLXBhcmFtLW1hcCc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFBsYWNlR3VhcmQge1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1cmxTZXJ2aWNlOiBVcmxTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwbGFjZUhpc3Rvcnk6IFBsYWNlSGlzdG9yeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnRlcmFjdGlvblNlcnZpY2U6IEludGVyYWN0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIGdldCBhdXRoU2VydmljZSgpOiBQbGFjZUF1dGhTZXJ2aWNlIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZVJvdXRlci5hdXRoU2VydmljZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbkFjdGl2YXRlKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHtcblxuICAgIGF3YWl0IHRoaXMucGxhY2VSb3V0ZXIud2FpdFVudGlsUm91dGVyUmVhZHkoKTtcblxuICAgIGlmIChQbGFjZUNvbXBvbmVudC5pc1BsYWNlQ29tcG9uZW50Q29uc3RydWN0b3IoYWN0aXZhdGVkUm91dGUuY29tcG9uZW50KSkge1xuICAgICAgY29uc3QgcGxhY2VEZWZpbml0aW9uID0gUGxhY2VDb21wb25lbnQuZ2V0RGVmaW5pdGlvbihhY3RpdmF0ZWRSb3V0ZS5jb21wb25lbnQpO1xuXG4gICAgICBpZiAocGxhY2VEZWZpbml0aW9uLmF1dGhlbnRpY2F0ZSkge1xuXG4gICAgICAgIGF3YWl0IHRoaXMucGxhY2VSb3V0ZXIuYXV0aFNlcnZpY2Uud2FpdFVudGlsQXV0aGVudGljYXRpb25SZWFkeSgpO1xuXG4gICAgICAgIGNvbnN0IGF1dGhlbnRpY2F0ZWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpO1xuXG4gICAgICAgIGlmICghYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgIGNvbnN0IHJlZGlyZWN0ID0gYXdhaXQgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRoZW50aWNhdGlvbkZhaWx1cmVSZWRpcmVjdChhY3RpdmF0ZWRSb3V0ZSwgc3RhdGUpO1xuICAgICAgICAgIC8vIGNvbnN0IG5leHRQbGFjZURlZiA9IHRoaXMuZ2V0UGxhY2VEZWZpbml0aW9uKHJlZGlyZWN0KTtcbiAgICAgICAgICBpZiAocmVkaXJlY3QucmVxdWlyZXNBdXRoZW50aWNhdGlvbigpKSB7XG4gICAgICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgb25BdXRoZW50aWNhdGlvbkZhaWx1cmUgaG9vayByZXR1cm5lZCBwbGFjZSAke3JlZGlyZWN0LnRvRGVidWdTdHJpbmcoKX0gdGhhdCByZXF1aXJlcyBhdXRoZW50aWNhdGlvbi5gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVXJsVHJlZShyZWRpcmVjdCk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLndhaXRVbnRpbEF1dGhvcmlzYXRpb25SZWFkeUZvcihwbGFjZURlZmluaXRpb24pO1xuXG4gICAgICAgIGlmICghdGhpcy5hdXRoU2VydmljZS5pc0F1dGhvcmlzZWQocGxhY2VEZWZpbml0aW9uKSkge1xuICAgICAgICAgIGNvbnN0IG5leHRSZWRpcmVjdCA9IGF3YWl0IHRoaXMuZmluZEJlc3RBdXRoZW50aWNhdGVkQWx0ZXJuYXRpdmUocGxhY2VEZWZpbml0aW9uLCBhY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVXJsVHJlZShuZXh0UmVkaXJlY3QpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2xlYW5JbnRlcmFjdGlvblN0YXRlKGFjdGl2YXRlZFJvdXRlLCBzdGF0ZSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBuYXZpZ2F0aW9uU2Vzc2lvbiA9IHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb247XG5cbiAgICAgICAgLy8gUGFyc2Ugb3VyIHJvdXRlIHBhcmFtcy5cbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IENvbnNvbGlkYXRlZFBhcmFtZXRlck1hcChhY3RpdmF0ZWRSb3V0ZS51cmwsIGFjdGl2YXRlZFJvdXRlLnBhcmFtTWFwKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJSb3V0ZVBhcmFtc1wiLCBwYXJhbXMpXG4gICAgICAgIGNvbnN0IHBhcnNlZFBhcmFtcyA9IHBsYWNlRGVmaW5pdGlvbi5wYXJzZVJvdXRlUGFyYW1zKHBhcmFtcyk7XG4gICAgICAgIGNvbnN0IGluaXRpYWxWaXNpdCA9IG5hdmlnYXRpb25TZXNzaW9uLmdldFZpc2l0U2VnbWVudEZvcihwbGFjZURlZmluaXRpb24pIHx8IG5ldyBWaXNpdFNlZ21lbnQocGxhY2VEZWZpbml0aW9uLCBwYXJzZWRQYXJhbXMpO1xuICAgICAgICBjb25zdCBzYW5pdGlzZXIgPSBuZXcgVmlzaXRTZWdtZW50U2FuaXRpc2VyKG5hdmlnYXRpb25TZXNzaW9uLCBhY3RpdmF0ZWRSb3V0ZSwgdGhpcy5yb3V0ZXIsIHRoaXMucGxhY2VIaXN0b3J5LCB0aGlzLmluamVjdG9yKTtcbiAgICAgICAgY29uc3Qgc2FuaXRpc2VkVmlzaXQgPSBhd2FpdCBzYW5pdGlzZXIuc2FuaXRpc2UoaW5pdGlhbFZpc2l0Lm1lcmdlUm91dGVQYXJhbWV0ZXJzKHBhcnNlZFBhcmFtcykpO1xuICAgICAgICAvLyBTYXZlIHRoZSB2aXNpdCB3aXRoIGFueSB1cGRhdGVkIHBhcmFtZXRlcnMuICBXZSBuZWVkIHRvIHNhdmUgaXQgc28gd2UgcmVtZW1iZXIgYW55IG5vbiByb3V0ZSBwYXJhbWV0ZXJzXG4gICAgICAgIG5hdmlnYXRpb25TZXNzaW9uLnVwZGF0ZVZpc2l0U2VnbWVudChzYW5pdGlzZWRWaXNpdCk7XG5cbiAgICAgICAgY29uc3QgZGVzdFVybFNuYXBzaG90ID0gdGhpcy51cmxTZXJ2aWNlLnBhcnNlVXJsKHN0YXRlLnVybCk7XG4gICAgICAgIGlmIChpbml0aWFsVmlzaXQuaGFzUm91dGluZ0NoYW5nZWRGcm9tKHNhbml0aXNlZFZpc2l0KSkge1xuICAgICAgICAgIC8vIFJlZ2VuZXJhdGUgdGhlIHVybCBhbmQgdXBkYXRlIG91ciB2aXNpdCBzZWdtZW50IGluIHRoZSBzZXNzaW9uXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJyMjIyMjIFBsYWNlIEd1YXJkIFJlZGlyZWN0JywgZGVzdFVybFNuYXBzaG90LnVwZGF0ZVZpc2l0U2VnbWVudChzYW5pdGlzZWRWaXNpdCkpO1xuICAgICAgICAgIHJldHVybiBkZXN0VXJsU25hcHNob3QudXBkYXRlVmlzaXRTZWdtZW50KHNhbml0aXNlZFZpc2l0KTtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgIC8vIE91ciB2aXNpdCBwYXJhbWV0ZXJzIGFyZSBhbGwgc29ydGVkLCBub3cgY2hlY2sgaWYgd2Ugc2hvdWxkIHJlZGlyZWN0IHRvIG91ciBjaGlsZC5cbiAgICAgICAgICBpZiAoZGVzdFVybFNuYXBzaG90LmlzTGFzdFBsYWNlSW5VcmwocGxhY2VEZWZpbml0aW9uKSAmJiBwbGFjZURlZmluaXRpb24ucmVkaXJlY3RUb0ZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIGlmIChwbGFjZURlZmluaXRpb24uY2hpbGRyZW4ubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgcmVkaXJlY3RUb0ZpcnN0Q2hpbGQgc2V0IHRvIHRydWUsIGJ1dCB0aGVyZSB3ZXJlIG5vIGNoaWxkcmVuIGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBwbGFjZURlZmluaXRpb24uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgaWYgKCFjaGlsZC5hdXRoZW50aWNhdGUgfHwgdGhpcy5hdXRoU2VydmljZS5pc0F1dGhvcmlzZWQoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc3RVcmxTbmFwc2hvdC5hcHBlbmRTZWdtZW50KG5ldyBWaXNpdFNlZ21lbnQoY2hpbGQpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBobW0sIHdoYXQgc2hvdWxkIEkgZG8gaGVyZSwgd2UgZGlkbid0IGhhdmUgYW4gYXV0aG9yaXNlZCBjaGlsZFxuICAgICAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYHJlZGlyZWN0VG9GaXJzdENoaWxkIHNldCB0byB0cnVlLCBidXQgdGhlcmUgd2VyZSBubyBhdXRoZW50aWNhdGVkIGNoaWxkcmVuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0IGluc3RhbmNlb2YgVXJsU25hcHNob3QgPyByZXN1bHQudXJsVHJlZSA6IHJlc3VsdDtcblxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYGV4cGVjdGVkIGNvbXBvbmVudCB0byBiZSBhbiBpbnN0YW5jZSBvZiBQbGFjZUNvbXBvbmVudCwgZ290ICR7YWN0aXZhdGVkUm91dGUuY29tcG9uZW50fWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmluZEJlc3RBdXRoZW50aWNhdGVkQWx0ZXJuYXRpdmUocGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24sIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogUHJvbWlzZTxWaXNpdD4ge1xuICAgIGxldCBjdXJyZW50UGxhY2UgPSBwbGFjZURlZmluaXRpb247XG4gICAgd2hpbGUgKCFjdXJyZW50UGxhY2UuaXNSb290KCkpIHtcbiAgICAgIGN1cnJlbnRQbGFjZSA9IGN1cnJlbnRQbGFjZS5wYXJlbnQ7XG4gICAgICBjb25zdCBwZXJtaXR0ZWRDaGlsZCA9IGN1cnJlbnRQbGFjZS5maW5kQ2hpbGQoYyA9PiB0aGlzLmF1dGhTZXJ2aWNlLmlzQXV0aG9yaXNlZChjKSk7XG4gICAgICBpZiAocGVybWl0dGVkQ2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIFZpc2l0LmdvdG8ocGVybWl0dGVkQ2hpbGQuY29tcG9uZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQ291bGRuJ3QgZmluZCBhbiBhdXRob3Jpc2VkIGFuY2VzdG9yIHNvIHdlIGNoZWNrIGlmIHRoZXJlIGFyZSByb3V0ZXIgbGV2ZWwgZGVmaW5lZCBhbHRlcm5hdGl2ZXNcbiAgICBjb25zdCBhbHRlcm5hdGl2ZVJvdXRlcyA9IGF3YWl0IHRoaXMucGxhY2VSb3V0ZXIuZ2V0QXV0aG9yaXNhdGlvbkZhaWx1cmVSZWRpcmVjdE9wdGlvbnMoYWN0aXZhdGVkUm91dGUuY29tcG9uZW50KTtcbiAgICBpZiAoYWx0ZXJuYXRpdmVSb3V0ZXMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGBvbkF1dGhvcmlzYXRpb25GYWlsdXJlIGhvb2sgZGlkbid0IHJldHVybiBhbnkgYWx0ZXJuYXRlIHBsYWNlc2ApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXh0UmVkaXJlY3QgPSBhbHRlcm5hdGl2ZVJvdXRlcy5maW5kKGl0ID0+IGl0LmlzQXV0aG9yaXNlZCh0aGlzLmF1dGhTZXJ2aWNlKSlcbiAgICAgIHJldHVybiBuZXh0UmVkaXJlY3QgPz8gbGFuZy5pbGxlZ2FsU3RhdGUoYG9uQXV0aG9yaXNhdGlvbkZhaWx1cmUgaG9vayBkaWRuJ3QgcmV0dXJuIGFueSBhdXRob3Jpc2VkIGxvY2F0aW9uc2ApO1xuICAgIH1cbiAgfVxuXG4vLyBAVHJhY2UoKVxuICBhc3luYyBjYW5EZWFjdGl2YXRlKGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIGN1cnJlbnRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgY3VycmVudFN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBuZXh0U3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAvLyB0aGlzIGhhcHBlbnMgd2hlbiB0aGUgcGxhY2Ugd2Fzbid0IGF1dGhvcmlzZWQgYW5kIHRoZSBhc3NvY2lhdGVkXG4gICAgICAvLyByb3V0ZXIgb3V0bGV0IHdhcyByZW1vdmVkIGZyb20gdGhlIGRvbS5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy51cmxTZXJ2aWNlLnBhcnNlVXJsKGN1cnJlbnRTdGF0ZS51cmwpO1xuICAgIGNvbnN0IG5leHRVcmwgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwobmV4dFN0YXRlLnVybCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5jYW5EZWFjdGl2YXRlUGxhY2UoY29tcG9uZW50LCBjdXJyZW50VXJsLCBuZXh0VXJsKTtcbiAgICByZXR1cm4gcmVzdWx0IGluc3RhbmNlb2YgVXJsU25hcHNob3QgPyByZXN1bHQudXJsVHJlZSA6IHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGxhY2VEZWZpbml0aW9uKHJlc3VsdDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4gfCBWaXNpdFNlZ21lbnQgfCBQbGFjZURlZmluaXRpb24pOiBQbGFjZURlZmluaXRpb24ge1xuICAgIHJldHVybiByZXN1bHQgaW5zdGFuY2VvZiBWaXNpdFNlZ21lbnQgP1xuICAgICAgcmVzdWx0LnBsYWNlRGVmaW5pdGlvbiA6XG4gICAgICByZXN1bHQgaW5zdGFuY2VvZiBQbGFjZURlZmluaXRpb24gP1xuICAgICAgICByZXN1bHQgOlxuICAgICAgICBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHJlc3VsdCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVVybFRyZWUodmlzaXQ6IFZpc2l0KSB7XG4gICAgcmV0dXJuIHRoaXMudXJsU2VydmljZS5jcmVhdGVVcmxTbmFwc2hvdCh2aXNpdC5zZWdtZW50cykudXJsVHJlZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNsZWFuSW50ZXJhY3Rpb25TdGF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHQ6ICgpID0+IFByb21pc2U8Ym9vbGVhbiB8IFVybFNuYXBzaG90IHwgVXJsVHJlZT4pOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdCB8IFVybFRyZWU+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwoc3RhdGUudXJsKTtcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmlzQWN0aXZlKCkgJiYgdXJsLmhhc0ludGVyYWN0aW9ucygpKSB7XG4gICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UgcmVsb2FkIHRoZSBwYWdlIG9yIHRoZSB1cmwgd2FzIHBhc3RlZCBhcyB0aGUgcm91dGUgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkXG4gICAgICAvLyBhZnRlciB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBoYXMgYmVjb21lIGFjdGl2ZS5cbiAgICAgIHJldHVybiB1cmwucmVtb3ZlSW50ZXJhY3Rpb25JZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9ndWFyZHMvcGxhY2UuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUF5QixNQUFNLEVBQStCLE1BQU0saUJBQWlCLENBQUM7QUFDN0YsT0FBTyxFQUFnQixJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUVsRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQy9CLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUdsRSxNQUFNLE9BQU8sVUFBVTtJQUdRO0lBQ1Q7SUFDUztJQUNBO0lBQ0E7SUFDQTtJQUw3QixZQUE2QixNQUFjLEVBQ3ZCLFVBQXNCLEVBQ2IsV0FBd0IsRUFDeEIsWUFBMEIsRUFD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QixFQUFFLENBQUM7U0FDbkM7YUFBTTtZQUNMLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDZjtJQUNILENBQUM7dUdBL0lVLFVBQVU7MkdBQVYsVUFBVSxjQURFLE1BQU07OzJGQUNsQixVQUFVO2tCQUR0QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0NvbnN0cnVjdGFibGUsIGxhbmd9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7SW50ZXJhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGxhY2VBdXRoU2VydmljZX0gZnJvbSBcIi4uL3BsYWNlLWF1dGgtc2VydmljZVwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudH0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7UGxhY2VEZWZpbml0aW9ufSBmcm9tICcuLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7UGxhY2VIaXN0b3J5fSBmcm9tICcuLi9wbGFjZS1oaXN0b3J5JztcbmltcG9ydCB7UGxhY2VSb3V0ZXJ9IGZyb20gJy4uL3BsYWNlLXJvdXRlcic7XG5pbXBvcnQge1Zpc2l0U2VnbWVudFNhbml0aXNlcn0gZnJvbSAnLi4vcm91dGUvdmlzaXQtc2VnbWVudC1zYW5pdGlzZXInO1xuaW1wb3J0IHtVcmxTZXJ2aWNlfSBmcm9tICcuLi91cmwtc2VydmljZSc7XG5pbXBvcnQge1VybFNuYXBzaG90fSBmcm9tICcuLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHtWaXNpdH0gZnJvbSBcIi4uL3Zpc2l0XCI7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi4vdmlzaXQtc2VnbWVudCc7XG5pbXBvcnQge0NvbnNvbGlkYXRlZFBhcmFtZXRlck1hcH0gZnJvbSAnLi9jb25zb2xpZGF0ZWQtcGFyYW0tbWFwJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUGxhY2VHdWFyZCAge1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1cmxTZXJ2aWNlOiBVcmxTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwbGFjZUhpc3Rvcnk6IFBsYWNlSGlzdG9yeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnRlcmFjdGlvblNlcnZpY2U6IEludGVyYWN0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIGdldCBhdXRoU2VydmljZSgpOiBQbGFjZUF1dGhTZXJ2aWNlIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZVJvdXRlci5hdXRoU2VydmljZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbkFjdGl2YXRlKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHtcblxuICAgIGlmIChQbGFjZUNvbXBvbmVudC5pc1BsYWNlQ29tcG9uZW50Q29uc3RydWN0b3IoYWN0aXZhdGVkUm91dGUuY29tcG9uZW50KSkge1xuICAgICAgY29uc3QgcGxhY2VEZWZpbml0aW9uID0gUGxhY2VDb21wb25lbnQuZ2V0RGVmaW5pdGlvbihhY3RpdmF0ZWRSb3V0ZS5jb21wb25lbnQpO1xuXG4gICAgICBpZiAocGxhY2VEZWZpbml0aW9uLmF1dGhlbnRpY2F0ZSkge1xuXG4gICAgICAgIGF3YWl0IHRoaXMucGxhY2VSb3V0ZXIuYXV0aFNlcnZpY2Uud2FpdFVudGlsQXV0aGVudGljYXRpb25SZWFkeSgpO1xuXG4gICAgICAgIGNvbnN0IGF1dGhlbnRpY2F0ZWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpO1xuXG4gICAgICAgIGlmICghYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgIGNvbnN0IHJlZGlyZWN0ID0gdGhpcy5hdXRoU2VydmljZS5nZXRBdXRoZW50aWNhdGlvbkZhaWx1cmVSZWRpcmVjdChhY3RpdmF0ZWRSb3V0ZSwgc3RhdGUpO1xuICAgICAgICAgIC8vIGNvbnN0IG5leHRQbGFjZURlZiA9IHRoaXMuZ2V0UGxhY2VEZWZpbml0aW9uKHJlZGlyZWN0KTtcbiAgICAgICAgICBpZiAocmVkaXJlY3QucmVxdWlyZXNBdXRoZW50aWNhdGlvbigpKSB7XG4gICAgICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgb25BdXRoZW50aWNhdGlvbkZhaWx1cmUgaG9vayByZXR1cm5lZCBwbGFjZSAke3JlZGlyZWN0LnRvRGVidWdTdHJpbmcoKX0gdGhhdCByZXF1aXJlcyBhdXRoZW50aWNhdGlvbi5gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVXJsVHJlZShyZWRpcmVjdCk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLndhaXRVbnRpbEF1dGhvcmlzYXRpb25SZWFkeUZvcihwbGFjZURlZmluaXRpb24pO1xuXG4gICAgICAgIGlmICghdGhpcy5hdXRoU2VydmljZS5pc0F1dGhvcmlzZWQocGxhY2VEZWZpbml0aW9uKSkge1xuICAgICAgICAgIGNvbnN0IG5leHRSZWRpcmVjdCA9IHRoaXMuZmluZEJlc3RBdXRoZW50aWNhdGVkQWx0ZXJuYXRpdmUocGxhY2VEZWZpbml0aW9uLCBhY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVXJsVHJlZShuZXh0UmVkaXJlY3QpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2xlYW5JbnRlcmFjdGlvblN0YXRlKGFjdGl2YXRlZFJvdXRlLCBzdGF0ZSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBuYXZpZ2F0aW9uU2Vzc2lvbiA9IHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb247XG5cbiAgICAgICAgLy8gUGFyc2Ugb3VyIHJvdXRlIHBhcmFtcy5cbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IENvbnNvbGlkYXRlZFBhcmFtZXRlck1hcChhY3RpdmF0ZWRSb3V0ZS51cmwsIGFjdGl2YXRlZFJvdXRlLnBhcmFtTWFwKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJSb3V0ZVBhcmFtc1wiLCBwYXJhbXMpXG4gICAgICAgIGNvbnN0IHBhcnNlZFBhcmFtcyA9IHBsYWNlRGVmaW5pdGlvbi5wYXJzZVJvdXRlUGFyYW1zKHBhcmFtcyk7XG4gICAgICAgIGNvbnN0IGluaXRpYWxWaXNpdCA9IG5hdmlnYXRpb25TZXNzaW9uLmdldFZpc2l0U2VnbWVudEZvcihwbGFjZURlZmluaXRpb24pIHx8IG5ldyBWaXNpdFNlZ21lbnQocGxhY2VEZWZpbml0aW9uLCBwYXJzZWRQYXJhbXMpO1xuICAgICAgICBjb25zdCBzYW5pdGlzZXIgPSBuZXcgVmlzaXRTZWdtZW50U2FuaXRpc2VyKG5hdmlnYXRpb25TZXNzaW9uLCBhY3RpdmF0ZWRSb3V0ZSwgdGhpcy5yb3V0ZXIsIHRoaXMucGxhY2VIaXN0b3J5LCB0aGlzLmluamVjdG9yKTtcbiAgICAgICAgY29uc3Qgc2FuaXRpc2VkVmlzaXQgPSBhd2FpdCBzYW5pdGlzZXIuc2FuaXRpc2UoaW5pdGlhbFZpc2l0Lm1lcmdlUm91dGVQYXJhbWV0ZXJzKHBhcnNlZFBhcmFtcykpO1xuICAgICAgICAvLyBTYXZlIHRoZSB2aXNpdCB3aXRoIGFueSB1cGRhdGVkIHBhcmFtZXRlcnMuICBXZSBuZWVkIHRvIHNhdmUgaXQgc28gd2UgcmVtZW1iZXIgYW55IG5vbiByb3V0ZSBwYXJhbWV0ZXJzXG4gICAgICAgIG5hdmlnYXRpb25TZXNzaW9uLnVwZGF0ZVZpc2l0U2VnbWVudChzYW5pdGlzZWRWaXNpdCk7XG5cbiAgICAgICAgY29uc3QgZGVzdFVybFNuYXBzaG90ID0gdGhpcy51cmxTZXJ2aWNlLnBhcnNlVXJsKHN0YXRlLnVybCk7XG4gICAgICAgIGlmIChpbml0aWFsVmlzaXQuaGFzUm91dGluZ0NoYW5nZWRGcm9tKHNhbml0aXNlZFZpc2l0KSkge1xuICAgICAgICAgIC8vIFJlZ2VuZXJhdGUgdGhlIHVybCBhbmQgdXBkYXRlIG91ciB2aXNpdCBzZWdtZW50IGluIHRoZSBzZXNzaW9uXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJyMjIyMjIFBsYWNlIEd1YXJkIFJlZGlyZWN0JywgZGVzdFVybFNuYXBzaG90LnVwZGF0ZVZpc2l0U2VnbWVudChzYW5pdGlzZWRWaXNpdCkpO1xuICAgICAgICAgIHJldHVybiBkZXN0VXJsU25hcHNob3QudXBkYXRlVmlzaXRTZWdtZW50KHNhbml0aXNlZFZpc2l0KTtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgIC8vIE91ciB2aXNpdCBwYXJhbWV0ZXJzIGFyZSBhbGwgc29ydGVkLCBub3cgY2hlY2sgaWYgd2Ugc2hvdWxkIHJlZGlyZWN0IHRvIG91ciBjaGlsZC5cbiAgICAgICAgICBpZiAoZGVzdFVybFNuYXBzaG90LmlzTGFzdFBsYWNlSW5VcmwocGxhY2VEZWZpbml0aW9uKSAmJiBwbGFjZURlZmluaXRpb24ucmVkaXJlY3RUb0ZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIGlmIChwbGFjZURlZmluaXRpb24uY2hpbGRyZW4ubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgcmVkaXJlY3RUb0ZpcnN0Q2hpbGQgc2V0IHRvIHRydWUsIGJ1dCB0aGVyZSB3ZXJlIG5vIGNoaWxkcmVuIGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBwbGFjZURlZmluaXRpb24uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgaWYgKCFjaGlsZC5hdXRoZW50aWNhdGUgfHwgdGhpcy5hdXRoU2VydmljZS5pc0F1dGhvcmlzZWQoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc3RVcmxTbmFwc2hvdC5hcHBlbmRTZWdtZW50KG5ldyBWaXNpdFNlZ21lbnQoY2hpbGQpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBobW0sIHdoYXQgc2hvdWxkIEkgZG8gaGVyZSwgd2UgZGlkbid0IGhhdmUgYW4gYXV0aG9yaXNlZCBjaGlsZFxuICAgICAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYHJlZGlyZWN0VG9GaXJzdENoaWxkIHNldCB0byB0cnVlLCBidXQgdGhlcmUgd2VyZSBubyBhdXRoZW50aWNhdGVkIGNoaWxkcmVuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0IGluc3RhbmNlb2YgVXJsU25hcHNob3QgPyByZXN1bHQudXJsVHJlZSA6IHJlc3VsdDtcblxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYGV4cGVjdGVkIGNvbXBvbmVudCB0byBiZSBhbiBpbnN0YW5jZSBvZiBQbGFjZUNvbXBvbmVudCwgZ290ICR7YWN0aXZhdGVkUm91dGUuY29tcG9uZW50fWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZEJlc3RBdXRoZW50aWNhdGVkQWx0ZXJuYXRpdmUocGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24sIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTpWaXNpdCB7XG4gICAgbGV0IGN1cnJlbnRQbGFjZSA9IHBsYWNlRGVmaW5pdGlvbjtcbiAgICB3aGlsZSAoIWN1cnJlbnRQbGFjZS5pc1Jvb3QoKSkge1xuICAgICAgY3VycmVudFBsYWNlID0gY3VycmVudFBsYWNlLnBhcmVudDtcbiAgICAgIGNvbnN0IHBlcm1pdHRlZENoaWxkID0gY3VycmVudFBsYWNlLmZpbmRDaGlsZChjID0+IHRoaXMuYXV0aFNlcnZpY2UuaXNBdXRob3Jpc2VkKGMpKTtcbiAgICAgIGlmIChwZXJtaXR0ZWRDaGlsZCkge1xuICAgICAgICByZXR1cm4gVmlzaXQuZ290byhwZXJtaXR0ZWRDaGlsZC5jb21wb25lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBDb3VsZG4ndCBmaW5kIGFuIGF1dGhvcmlzZWQgYW5jZXN0b3Igc28gd2UgY2hlY2sgaWYgdGhlcmUgYXJlIHJvdXRlciBsZXZlbCBkZWZpbmVkIGFsdGVybmF0aXZlc1xuICAgIGNvbnN0IGFsdGVybmF0aXZlUm91dGVzID0gdGhpcy5wbGFjZVJvdXRlci5nZXRBdXRob3Jpc2F0aW9uRmFpbHVyZVJlZGlyZWN0T3B0aW9ucyhhY3RpdmF0ZWRSb3V0ZS5jb21wb25lbnQpO1xuICAgIGlmIChhbHRlcm5hdGl2ZVJvdXRlcy5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYG9uQXV0aG9yaXNhdGlvbkZhaWx1cmUgaG9vayBkaWRuJ3QgcmV0dXJuIGFueSBhbHRlcm5hdGUgcGxhY2VzYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5leHRSZWRpcmVjdCA9IGFsdGVybmF0aXZlUm91dGVzLmZpbmQoaXQgPT4gaXQuaXNBdXRob3Jpc2VkKHRoaXMuYXV0aFNlcnZpY2UpKVxuICAgICAgcmV0dXJuIG5leHRSZWRpcmVjdCA/PyBsYW5nLmlsbGVnYWxTdGF0ZShgb25BdXRob3Jpc2F0aW9uRmFpbHVyZSBob29rIGRpZG4ndCByZXR1cm4gYW55IGF1dGhvcmlzZWQgbG9jYXRpb25zYCk7XG4gICAgfVxuICB9XG5cbi8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XG4gICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgIC8vIHRoaXMgaGFwcGVucyB3aGVuIHRoZSBwbGFjZSB3YXNuJ3QgYXV0aG9yaXNlZCBhbmQgdGhlIGFzc29jaWF0ZWRcbiAgICAgIC8vIHJvdXRlciBvdXRsZXQgd2FzIHJlbW92ZWQgZnJvbSB0aGUgZG9tLlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwoY3VycmVudFN0YXRlLnVybCk7XG4gICAgY29uc3QgbmV4dFVybCA9IHRoaXMudXJsU2VydmljZS5wYXJzZVVybChuZXh0U3RhdGUudXJsKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uLmNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQsIGN1cnJlbnRVcmwsIG5leHRVcmwpO1xuICAgIHJldHVybiByZXN1bHQgaW5zdGFuY2VvZiBVcmxTbmFwc2hvdCA/IHJlc3VsdC51cmxUcmVlIDogcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQbGFjZURlZmluaXRpb24ocmVzdWx0OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiB8IFZpc2l0U2VnbWVudCB8IFBsYWNlRGVmaW5pdGlvbik6IFBsYWNlRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHJlc3VsdCBpbnN0YW5jZW9mIFZpc2l0U2VnbWVudCA/XG4gICAgICByZXN1bHQucGxhY2VEZWZpbml0aW9uIDpcbiAgICAgIHJlc3VsdCBpbnN0YW5jZW9mIFBsYWNlRGVmaW5pdGlvbiA/XG4gICAgICAgIHJlc3VsdCA6XG4gICAgICAgIFBsYWNlQ29tcG9uZW50LmdldERlZmluaXRpb24ocmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVXJsVHJlZSh2aXNpdDogVmlzaXQpIHtcbiAgICByZXR1cm4gdGhpcy51cmxTZXJ2aWNlLmNyZWF0ZVVybFNuYXBzaG90KHZpc2l0LnNlZ21lbnRzKS51cmxUcmVlO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgY2xlYW5JbnRlcmFjdGlvblN0YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCwgbmV4dDogKCkgPT4gUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3QgfCBVcmxUcmVlPik6IFByb21pc2U8Ym9vbGVhbiB8IFVybFNuYXBzaG90IHwgVXJsVHJlZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMudXJsU2VydmljZS5wYXJzZVVybChzdGF0ZS51cmwpO1xuICAgIGlmICghdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuaXNBY3RpdmUoKSAmJiB1cmwuaGFzSW50ZXJhY3Rpb25zKCkpIHtcbiAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSByZWxvYWQgdGhlIHBhZ2Ugb3IgdGhlIHVybCB3YXMgcGFzdGVkIGFzIHRoZSByb3V0ZSBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWRcbiAgICAgIC8vIGFmdGVyIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGhhcyBiZWNvbWUgYWN0aXZlLlxuICAgICAgcmV0dXJuIHVybC5yZW1vdmVJbnRlcmFjdGlvbklkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assert } from '@coolon/pectin';
|
|
2
|
-
import { isEqual } from 'lodash
|
|
2
|
+
import { isEqual } from 'lodash';
|
|
3
3
|
/**
|
|
4
4
|
* This class handles the logic around canDeactivate for a given router state transition. It's core responsibilities are:
|
|
5
5
|
* 1. Ensure we only ask the component to deactivate once on a given navigation cycle (since visit sanitisation can result in multiple round trips to through the router.)
|
|
@@ -84,4 +84,4 @@ export class PlaceComponentDeactivationHandler {
|
|
|
84
84
|
return !nextState.includesPathOf(this.component.placeDefinition);
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LWRlYWN0aXZhdGlvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFNL0I7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLGlDQUFpQztJQUl2QjtJQUFvQztJQUErQztJQUZoRyxvQkFBb0IsQ0FBaUM7SUFFN0QsWUFBcUIsU0FBeUIsRUFBVyxpQkFBb0MsRUFBVyxrQkFBMkI7UUFBOUcsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFBVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQVcsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO1FBQ2pJLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHlCQUF5QixDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXO0lBQ1gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUF1QixFQUFFLFNBQXNCO1FBQ2pFLDJFQUEyRTtRQUMzRSxvRkFBb0Y7UUFDcEYsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDOUIsd0ZBQXdGO1lBQ3hGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ2hGO1FBQ0QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztJQUdELFdBQVc7SUFDRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsVUFBdUIsRUFBRSxTQUFzQjtRQUNwRix5R0FBeUc7UUFDekcsK0lBQStJO1FBQy9JLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRTtZQUVyQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQzVFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsOEJBQThCLEVBQUUsQ0FBQztnQkFDbEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSw2QkFBNkI7b0JBQ2pFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDZCQUE2QixFQUFFLENBQUM7b0JBQ3BFLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7aUJBQU07Z0JBQ0wscURBQXFEO2dCQUNyRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ3hFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDL0UsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjtTQUNGO1FBRUQscURBQXFEO1FBQ3JELDhIQUE4SDtRQUM5SCwrR0FBK0c7UUFDL0csSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUM3RyxxR0FBcUc7WUFDckcsd0RBQXdEO1lBQ3hELElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3BGLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkVBQTZFLENBQUMsQ0FBQztnQkFDNUYsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELE9BQU8sUUFBUSxDQUFDO1NBQ2pCO2FBQU07WUFDTCxtREFBbUQ7WUFDbkQsT0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLCtCQUErQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQzFIO0lBQ0gsQ0FBQztJQUVTLHdCQUF3QixDQUFDLFNBQXNCO1FBQ3ZELHFGQUFxRjtRQUNyRixnRkFBZ0Y7UUFDaEYsMENBQTBDO1FBQzFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthc3NlcnR9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuaW1wb3J0IHtpc0VxdWFsfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudH0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7UGxhY2VEZWZpbml0aW9ufSBmcm9tICcuLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7VXJsU25hcHNob3R9IGZyb20gJy4uL3VybC1zbmFwc2hvdCc7XG5pbXBvcnQge05hdmlnYXRpb25TZXNzaW9ufSBmcm9tICcuL3Nlc3Npb24vbmF2aWdhdGlvbi1zZXNzaW9uJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGhhbmRsZXMgdGhlIGxvZ2ljIGFyb3VuZCBjYW5EZWFjdGl2YXRlIGZvciBhIGdpdmVuIHJvdXRlciBzdGF0ZSB0cmFuc2l0aW9uLiAgSXQncyBjb3JlIHJlc3BvbnNpYmlsaXRpZXMgYXJlOlxuICogMS4gRW5zdXJlIHdlIG9ubHkgYXNrIHRoZSBjb21wb25lbnQgdG8gZGVhY3RpdmF0ZSBvbmNlIG9uIGEgZ2l2ZW4gbmF2aWdhdGlvbiBjeWNsZSAoc2luY2UgdmlzaXQgc2FuaXRpc2F0aW9uIGNhbiByZXN1bHQgaW4gbXVsdGlwbGUgcm91bmQgdHJpcHMgdG8gdGhyb3VnaCB0aGUgcm91dGVyLilcbiAqIDIuIEVuc3VyZSBvbmx5IHRoZSBwcmltYXJ5IHBsYWNlIGNvbXBvbmVudCBpcyBhc2tlZCB3aGVuIHRoZXJlIGFyZSBuZXN0ZWQgcGxhY2VzLiAgVGhlIHByaW1hcnkgY29tcG9uZW50IGlzIHRoZSBvbmUgYXQgdGhlIHRvcFxuICogICAgb2YgdGhlIHJvdXRpbmcgY2hhbmdlIHRyZWUuXG4gKiAzLiBBdXRvbWF0aWNhbGx5IGhhbmRsZSBzdGFuZGFyZCBpbnRlcmFjdGlvbiBzY2VuYXJpb3Mgb24gdGhlIGNvbXBvbmVudHMgYmVoYWxmLlxuICovXG5leHBvcnQgY2xhc3MgUGxhY2VDb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyIHtcblxuICBwcml2YXRlIGNhbkRlYWN0aXZhdGVQcm9taXNlOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgcmVhZG9ubHkgbmF2aWdhdGlvblNlc3Npb246IE5hdmlnYXRpb25TZXNzaW9uLCByZWFkb25seSBpc1ByaW1hcnlDb21wb25lbnQ6IGJvb2xlYW4pIHtcbiAgICBhc3NlcnQubm90TmlsKGNvbXBvbmVudCk7XG4gIH1cblxuICBnZXQgcm91dGVySW50ZXJhY3Rpb25BZGFwdGVyKCkge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb25TZXNzaW9uLmludGVyYWN0aW9uU2VydmljZUFkYXB0ZXI7XG4gIH1cblxuICBnZXQgdXJsU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbi51cmxTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IHBsYWNlRGVmaW5pdGlvbigpOlBsYWNlRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbjtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRTdGF0ZTogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIC8vIFdlJ2xsIGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUncyBhbnkgcGFyYW1ldGVyIHNhbml0aXNhdGlvbiBzb1xuICAgIC8vIHdlIGFsd2F5cyByZXR1cm4gdHJ1ZSBpZiB3ZSBhY2NlcHRlZCBwcm9taXNlIGZyb20gYSBwcmV2aW91cyBjeWNsZSBvZiB0aGUgY3VycmVudFxuICAgIC8vIG5hdmlnYXRpb24gc2Vzc2lvbi5cbiAgICBpZiAoIXRoaXMuY2FuRGVhY3RpdmF0ZVByb21pc2UpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBjcmVhdGluZyBkZWFjdGl2YXRlIHByb21pc2UgZm9yIC0+ICR7dGhpcy5jb21wb25lbnQuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgICAgIHRoaXMuY2FuRGVhY3RpdmF0ZVByb21pc2UgPSB0aGlzLmNhbkRlYWN0aXZhdGVDb21wb25lbnQoY3VycmVudFVybCwgbmV4dFN0YXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FuRGVhY3RpdmF0ZVByb21pc2U7XG4gIH1cblxuXG4gIC8vIEBUcmFjZSgpXG4gIHByb3RlY3RlZCBhc3luYyBjYW5EZWFjdGl2YXRlQ29tcG9uZW50KGN1cnJlbnRVcmw6IFVybFNuYXBzaG90LCBuZXh0U3RhdGU6IFVybFNuYXBzaG90KTogUHJvbWlzZTxVcmxTbmFwc2hvdCB8IGJvb2xlYW4+IHtcbiAgICAvLyBBdXRvbWF0aWNhbGx5IGNhbmNlbCBhbnkgYWN0aXZlIGFjdGl2aXRpZXMgaWYgdGhlIG5hdmlnYXRpb24gc2Vzc2lvbiB3YXMgdHJpZ2dlcmVkIGJ5IHRoZSBiYWNrIGJ1dHRvbi5cbiAgICAvLyBJZiB3ZSBoYW5kbGVkIG1vcmUgdGhhbiBqdXN0IHRoZSBwb3Agc3RhdGUgdGhlbiBpdCBsZWFkcyB0byB0aGUgVUkgaWdub3JpbmcgY2xpY2tzIGFuZCBqdXN0IGNhbmNlbGxpbmcgdGhpbmdzIHdoaWNoIGlzIGRlZXBseSBkaXNjb25jZXJ0aW5nLlxuICAgIGlmICh0aGlzLm5hdmlnYXRpb25TZXNzaW9uLmlzUG9wU3RhdGUpIHtcblxuICAgICAgaWYgKHRoaXMuaXNQcmltYXJ5Q29tcG9uZW50ICYmIHRoaXMucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyLmlzTW9kYWxBY3RpdmUoKSkge1xuICAgICAgICBjb25zdCByb3V0ZUlkcyA9IHRoaXMudXJsU2VydmljZS5nZXRBY3RpdmVJbnRlcmFjdGlvbklkc0Zyb21VcmwobmV4dFN0YXRlLnVybCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJZHMgPSB0aGlzLnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5nZXRBY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMoKTtcbiAgICAgICAgaWYgKCFpc0VxdWFsKGN1cnJlbnRJZHMsIHJvdXRlSWRzKSkgeyAvLyB3aHkgYW0gSSBjaGVja2luZyB0aGlzPz8/P1xuICAgICAgICAgIGF3YWl0IHRoaXMucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyLmNhbmNlbEN1cnJlbnRNb2RhbEludGVyYWN0aW9uKCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjaGVjayBpZiB0aGUgY29tcG9uZW50IGhhcyBhbiBpbiBwbGFjZSBpbnRlcmFjdGlvblxuICAgICAgICBpZiAodGhpcy5yb3V0ZXJJbnRlcmFjdGlvbkFkYXB0ZXIuaXNDb21wb25lbnRJbnRlcmFjdGluZyh0aGlzLmNvbXBvbmVudCkpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5jYW5jZWxDb21wb25lbnRJbnRlcmFjdGlvbih0aGlzLmNvbXBvbmVudCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm8gaW50ZXJhY3Rpb24gaW4gcHJvZ3Jlc3MsIHNvIGFzayB0aGUgY29tcG9uZW50IC5cbiAgICAvLyBUaGlzIG1heSBzdGFydCBhbiBpbnRlcmFjdGlvbiwgaGVuY2UgY2hlY2tpbmcgdGhlIGludGVyYWN0aW9uIGNvbnRleHQgYmVmb3JlIG5vdy4gSS5lLiBpZiB0aGUgcGxhY2UgcG9wcyB1cCB0aGUgZGlhbG9nLCBhbmRcbiAgICAvLyB0aGUgdXNlciBjbGlja3MgYmFjayBhZ2Fpbiwgd2UnbGwgcmUtZW50ZXIgaGVyZSBhbmQgZ28gYmFuZyB3aGVuIHRoZSBjb21wb25lbnQgdHJpZXMgdG8gb3BlbiBhbm90aGVyIGRpYWxvZy5cbiAgICBpZiAodGhpcy5pc0dvaW5nVG9BRGlmZmVyZW50UGxhY2UobmV4dFN0YXRlKSkge1xuICAgICAgY29uc3QgY2FuTGVhdmUgPSBhd2FpdCB0aGlzLmNvbXBvbmVudC5fY2FuTGVhdmVQbGFjZSh0aGlzLm5hdmlnYXRpb25TZXNzaW9uLmNhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgLy8gVGhlIGNvbXBvbmVudCBoYXMgYW4gYWN0aXZlIGludGVyYWN0aW9uIGJ1dCBubyBkZWFjdGl2YXRpb24gaG9vay4gIFJhdGhlciB0aGFuIGd1ZXNzaW5nIHdoYXQgdG8gZG9cbiAgICAgIC8vIHdlJ2xsIGp1c3QgY2FuY2VsIHRoZSBuYXZpZ2F0aW9uIGFuZCBwcmludCBhIHdhcm5pbmcuXG4gICAgICBpZiAoY2FuTGVhdmUgJiYgdGhpcy5yb3V0ZXJJbnRlcmFjdGlvbkFkYXB0ZXIuaXNDb21wb25lbnRJbnRlcmFjdGluZyh0aGlzLmNvbXBvbmVudCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdSb3V0ZSBjaGFuZ2VkIHdoaWxlIGNvbXBvbmVudCBoYXMgYWN0aXZlIGludGVyYWN0aW9uLCBjYW5jZWxsaW5nIG5hdmlnYXRpb24nKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2FuTGVhdmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGVpdGhlciBhbiBpbnRlcmFjdGlvbiBvciB2aXNpdCBwYXJhbWV0ZXIgY2hhbmdlLlxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY29tcG9uZW50Ll9jYW5DaGFuZ2VSb3V0ZVBhcmFtZXRlcnModGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbi5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LCBuZXh0U3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpc0dvaW5nVG9BRGlmZmVyZW50UGxhY2UobmV4dFN0YXRlOiBVcmxTbmFwc2hvdCkge1xuICAgIC8vIEJlY2F1c2UgcGxhY2VzIHdpdGggYSByb3V0ZS1pZCBjb3ZlciB0d28gcm91dGUgc2VnbWVudHMgd2UgZ2V0IGFza2VkIHRvIGRlYWN0aXZhdGVcbiAgICAvLyBpZiB0aGUgcm91dGUgaWQgaXMgYWRkZWQgb3IgcmVtb3ZlZC4gIFNvIGlmIG91ciBwYXRoIGlzIHN0aWxsIHByZXNlbnQgdGhlIHVybFxuICAgIC8vIHRoZW4gd2Ugc2hvdWxkbid0IGRlYWN0aXZhdGUgdGhlIHBsYWNlLlxuICAgIHJldHVybiAhbmV4dFN0YXRlLmluY2x1ZGVzUGF0aE9mKHRoaXMuY29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { lang } from '@coolon/typescript-utilities';
|
|
2
|
-
import { isEqual } from 'lodash
|
|
2
|
+
import { isEqual } from 'lodash';
|
|
3
3
|
import { NavigationSession } from '../navigation-session';
|
|
4
4
|
import { RemoveLastInteractionFromUrlNavigationSession } from './remove-last-interaction-from-url-navigation-session';
|
|
5
5
|
export class SynchroniseInteractionContextIdsWithRoute extends NavigationSession {
|
|
@@ -13,7 +13,10 @@ export class SynchroniseInteractionContextIdsWithRoute extends NavigationSession
|
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
15
15
|
notifyActive() {
|
|
16
|
-
this
|
|
16
|
+
// TODO: Do I still need this??
|
|
17
|
+
setTimeout(() => {
|
|
18
|
+
this.syncInteractionIdsWithRouter();
|
|
19
|
+
});
|
|
17
20
|
}
|
|
18
21
|
// @Trace()
|
|
19
22
|
onRouterEnd(event) {
|
|
@@ -83,4 +86,4 @@ export class SynchroniseInteractionContextIdsWithRoute extends NavigationSession
|
|
|
83
86
|
lang.methodNotSupported();
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY2hyb25pc2UtaW50ZXJhY3Rpb24tY29udGV4dC1pZHMtd2l0aC1yb3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL25hdmlnYXRpb24vc2Vzc2lvbi9pbnRlcmFjdGlvbnMvc3luY2hyb25pc2UtaW50ZXJhY3Rpb24tY29udGV4dC1pZHMtd2l0aC1yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFbEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUUvQixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsNkNBQTZDLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUVwSCxNQUFNLE9BQU8seUNBQTBDLFNBQVEsaUJBQWlCO0lBSVI7SUFGN0QsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUU1QixZQUFZLE9BQTBCLEVBQUUsV0FBbUIsRUFBVyxzQkFBK0I7UUFDbkcsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUR3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVM7SUFFckcsQ0FBQztJQUVELElBQWEsaUJBQWlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUdRLFlBQVk7UUFDbkIsK0JBQStCO1FBQy9CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO0lBQ0YsV0FBVyxDQUFDLEtBQW9CO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVztJQUNGLGlCQUFp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RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2xhbmd9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuXG5pbXBvcnQge2lzRXF1YWx9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge05hdmlnYXRpb25Db250ZXh0fSBmcm9tICcuLi9uYXZpZ2F0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uU2Vzc2lvbn0gZnJvbSAnLi4vbmF2aWdhdGlvbi1zZXNzaW9uJztcbmltcG9ydCB7UmVtb3ZlTGFzdEludGVyYWN0aW9uRnJvbVVybE5hdmlnYXRpb25TZXNzaW9ufSBmcm9tICcuL3JlbW92ZS1sYXN0LWludGVyYWN0aW9uLWZyb20tdXJsLW5hdmlnYXRpb24tc2Vzc2lvbic7XG5cbmV4cG9ydCBjbGFzcyBTeW5jaHJvbmlzZUludGVyYWN0aW9uQ29udGV4dElkc1dpdGhSb3V0ZSBleHRlbmRzIE5hdmlnYXRpb25TZXNzaW9uIHtcblxuICByZWFkb25seSBpc1BvcFN0YXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29udGV4dDogTmF2aWdhdGlvbkNvbnRleHQsIHN0YXJ0aW5nVXJsOiBzdHJpbmcsIHJlYWRvbmx5IHdhc1RyaWdnZXJlZEJ5UG9wU3RhdGU6IGJvb2xlYW4pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdGFydGluZ1VybCk7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaXNJbnRlcmFjdGlvblN5bmMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuXG4gIG92ZXJyaWRlIG5vdGlmeUFjdGl2ZSgpIHtcbiAgICAvLyBUT0RPOiBEbyBJIHN0aWxsIG5lZWQgdGhpcz8/XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNJbnRlcmFjdGlvbklkc1dpdGhSb3V0ZXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG92ZXJyaWRlIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvdmVycmlkZSBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5maW5pc2hSb3V0aW5nU2Vzc2lvbigpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgc3luY0ludGVyYWN0aW9uSWRzV2l0aFJvdXRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50SWRzID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBZGFwdGVyLmdldEFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcygpO1xuICAgIGNvbnN0IHByZXZpb3VzSWRzID0gdGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRMb2NhdGlvblVybFNuYXBzaG90KCkuZ2V0SW50ZXJhY3Rpb25JZHMoKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiBzeW5jaHJvbmlzZUludGVyYWN0aW9uSWRzYCwgeyBpczogY3VycmVudElkcy5qb2luKCcsJyksIHdhczogcHJldmlvdXNJZHMuam9pbignLCcpIH0pO1xuICAgIGlmIChpc0VxdWFsKGN1cnJlbnRJZHMsIHByZXZpb3VzSWRzKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coJyMjIyBBY3Rpdml0eSBjb250ZXh0IGlkcyB3ZXJlIHRoZSBzYW1lLCBza2lwcGluZycpO1xuICAgICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjdXJyZW50SWRzLmxlbmd0aCA+IHByZXZpb3VzSWRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBpc0ZpcnN0QWN0aXZpdHkgPSBjdXJyZW50SWRzLmxlbmd0aCA+IHByZXZpb3VzSWRzLmxlbmd0aCAmJiBwcmV2aW91c0lkcy5sZW5ndGggPCAxO1xuICAgICAgICB0aGlzLmFkZEFjdGl2aXR5Q29udGV4dFRvUm91dGUoY3VycmVudElkcywgaXNGaXJzdEFjdGl2aXR5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQWN0aXZpdHlDb250ZXh0RnJvbVJvdXRlKGN1cnJlbnRJZHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFkZEFjdGl2aXR5Q29udGV4dFRvUm91dGUoYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzOiByZWFkb25seSBzdHJpbmdbXSwgaXNGaXJzdDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHVybFNuYXBzaG90ID0gdGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRSb3V0ZXJTbmFwc2hvdCgpLnVwZGF0ZUludGVyYWN0aW9uSWRzKGFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcyk7XG4gICAgdGhpcy5jb250ZXh0Lm5hdmlnYXRlQnlVcmwodXJsU25hcHNob3QsIHtcbiAgICAgIHJlcGxhY2VVcmw6ICFpc0ZpcnN0XG4gICAgfSkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgaWYgKCF0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudExvY2F0aW9uVXJsU25hcHNob3QoKS5oYXNJbnRlcmFjdGlvbklkcyhhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMpKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBFeHBlY3RlZCB1cmwgdG8gYmUgJHt1cmxTbmFwc2hvdC51cmx9IGJ1dCB3YXMgJHt0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudExvY2F0aW9uVXJsKCl9YCk7XG4gICAgICAgIC8vIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbih1cmxTbmFwc2hvdC51cmwsIHtyZXBsYWNlQ3VycmVudDogIWlzRmlyc3R9KVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuICAvLyBAVHJhY2UoKVxuICByZW1vdmVBY3Rpdml0eUNvbnRleHRGcm9tUm91dGUoYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWQ6IHJlYWRvbmx5IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3QgdXJsU25hcHNob3QgPSB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudFJvdXRlclNuYXBzaG90KCkudXBkYXRlSW50ZXJhY3Rpb25JZHMoYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWQpO1xuICAgIGNvbnN0IGlzUmVtb3ZpbmdMYXN0QWN0aXZpdHkgPSBhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZC5sZW5ndGggPCAxO1xuICAgIGlmIChpc1JlbW92aW5nTGFzdEFjdGl2aXR5KSB7XG4gICAgICBpZiAodGhpcy53YXNUcmlnZ2VyZWRCeVBvcFN0YXRlKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdyZW1vdmFsIHdhcyB0cmlnZ2VyZWQgYnkgcG9wIHN0YXRlLCBub3RoaW5nIHRvIGRvLicpO1xuICAgICAgICAvLyAgIG5vb3AuICBPdXIgdXJsIHdpbGwgYmUgYmFjayB0byB0aGUgbm9uIGludGVyYWN0aW9uIHZlcnNpb24gbm93IHNvIHdlIGRvbnQnIG5lZWQgdG8gZG8gYW55dGhpbmcuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBub3cgd2UganVzdCBwb3Agb3VyIGludGVyYWN0aW9uIGlkJ3MgZnJvbSB0aGUgYnJvd3NlciBoaXN0b3J5LlxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgUmVtb3ZhbCBvZiB0aGUgbGFzdCBhY3Rpdml0eSB3YXNuJ3QgdHJpZ2dlcmVkIGJ5IHBvcCBzdGF0ZSBzbyB3ZSBoYXZlIHRvIHRyaWdnZXIgb25lIHRvIGNsZWFuIHRoZSBoaXN0b3J5YCk7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgUmVtb3ZlTGFzdEludGVyYWN0aW9uRnJvbVVybE5hdmlnYXRpb25TZXNzaW9uKHRoaXMuY29udGV4dCwgdGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRSb3V0ZXJVcmwoKSk7XG4gICAgICAgIHRoaXMuY29udGV4dC50cmFuc2l0aW9uVG8oc2Vzc2lvbik7XG4gICAgICAgIHRoaXMudXJsU2VydmljZS5iYWNrKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHdlJ3ZlIHJlbW92ZWQgYW4gaW50ZXJhY3Rpb24sIGJ1dCB3ZSBzdGlsbCBoYXZlIHJlbWFpbmluZyBhY3Rpdml0aWVzIHNvIHdlXG4gICAgICAvLyB1cGRhdGUgdGhlIHVybCBpbiBwbGFjZSBpZiBpdCB3YXNuJ3QgYSBwb3Agc3RhdGUuIElmIGl0IHdhcyBhIHBvcCBzdGF0ZSB3ZSBuZWVkXG4gICAgICAvLyB0byAgcHVzaCBpdCBiYWNrIHVwLlxuICAgICAgLy8gdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybFNuYXBzaG90LnVybCwgeyByZXBsYWNlQ3VycmVudDogIXRoaXMud2FzVHJpZ2dlcmVkQnlQb3BTdGF0ZSB9KTtcbiAgICAgIHRoaXMuY29udGV4dC5uYXZpZ2F0ZUJ5VXJsKHVybFNuYXBzaG90LCB7IHJlcGxhY2VVcmw6ICF0aGlzLndhc1RyaWdnZXJlZEJ5UG9wU3RhdGUgfSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2FuRGVhY3RpdmF0ZUNhbmNlbGxlZEV2ZW50U2NlbmFyaW8obmV3VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsYW5nLm1ldGhvZE5vdFN1cHBvcnRlZCgpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -17,7 +17,7 @@ export class NavigationSession extends GarbageCollector {
|
|
|
17
17
|
this.startingUrl = startingUrl;
|
|
18
18
|
// console.log(`new ${this.constructor.name}`)
|
|
19
19
|
// TODO: can I get away without creating one every time?
|
|
20
|
-
this._interactionContext = this.context.routerInteractionAdapter.
|
|
20
|
+
this._interactionContext = this.context.routerInteractionAdapter.createExclusiveInteractionContext();
|
|
21
21
|
this.onDispose(() => {
|
|
22
22
|
// the interaction context can be detached during the back button cancellation state transition
|
|
23
23
|
// as the transition is synchronous and activityCancellation isn't. Otherwise dispose will be
|
|
@@ -173,4 +173,4 @@ export class NavigationSession extends GarbageCollector {
|
|
|
173
173
|
return context;
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTzlELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFbEMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHMUY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGdCQUFnQjtJQVd6QztJQUFxQztJQVQxRCxpQkFBaUIsR0FBYSxFQUFFLENBQUM7SUFDekIsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBRTFELDZCQUE2QixHQUFHLElBQUksR0FBRyxFQUFxRCxDQUFDO0lBSTdGLG1CQUFtQixDQUFxQjtJQUVoRCxZQUFxQixPQUEwQixFQUFXLFdBQW1CO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFBVyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUUzRSw4Q0FBOEM7UUFDOUMsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLHlDQUF5QyxFQUFFLENBQUM7UUFDN0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsK0ZBQStGO1lBQy9GLDhGQUE4RjtZQUM5RixpR0FBaUc7WUFDakcsOEZBQThGO1lBQzlGLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENB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QU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDM0YscUdBQXFHO1FBQ3JHLG1CQUFtQjtRQUNuQixNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3JGLHVGQUF1RjtRQUN2Rix1RkFBdUY7UUFDdkYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNsRSwrQkFBK0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0QsK0JBQStCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMseUNBQXlDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUlTLCtDQUErQyxDQUFDLEdBQVc7UUFDbkUsc0ZBQXNGO1FBQ3RGLHdHQUF3RztRQUN4RyxvQ0FBb0M7UUFDcEMsaUJBQWlCO1FBQ2pCLHNFQUFzRTtRQUN0RSx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxxQ0FBcUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyRXZlbnR9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7R2FyYmFnZUNvbGxlY3RvciwgbGFuZywgTG9nZ2VyfSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlcn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5pbXBvcnQge1BsYWNlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vcGxhY2UtY29tcG9uZW50XCI7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSBcIi4uLy4uL3BsYWNlLWRlZmluaXRpb25cIjtcbmltcG9ydCB7VXJsU2VydmljZX0gZnJvbSBcIi4uLy4uL3VybC1zZXJ2aWNlXCI7XG5pbXBvcnQge1VybFNuYXBzaG90fSBmcm9tIFwiLi4vLi4vdXJsLXNuYXBzaG90XCI7XG5pbXBvcnQge1Zpc2l0fSBmcm9tIFwiLi4vLi4vdmlzaXRcIjtcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tIFwiLi4vLi4vdmlzaXQtc2VnbWVudFwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJ9IGZyb20gXCIuLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXJcIjtcbmltcG9ydCB7TmF2aWdhdGlvbkNvbnRleHR9IGZyb20gXCIuL25hdmlnYXRpb24tY29udGV4dFwiO1xuXG4vKipcbiAqIFRyYW5zaWVudCBzdGF0ZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdmlnYXRpb25TZXNzaW9uIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgZGVidWdQcm9wZXJ0eUtleXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX3Zpc2l0U2VnbWVudHMgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50PigpO1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMgPSBuZXcgTWFwPFBsYWNlQ29tcG9uZW50LCBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXI+KCk7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUG9wU3RhdGU6IGJvb2xlYW47XG5cblxuICBwcml2YXRlIF9pbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gY29uc29sZS5sb2coYG5ldyAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKVxuICAgIC8vIFRPRE86IGNhbiBJIGdldCBhd2F5IHdpdGhvdXQgY3JlYXRpbmcgb25lIGV2ZXJ5IHRpbWU/XG4gICAgdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5jb250ZXh0LnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5jcmVhdGVOYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgIHRoaXMub25EaXNwb3NlKCgpID0+IHtcbiAgICAgIC8vIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGNhbiBiZSBkZXRhY2hlZCBkdXJpbmcgdGhlIGJhY2sgYnV0dG9uIGNhbmNlbGxhdGlvbiBzdGF0ZSB0cmFuc2l0aW9uXG4gICAgICAvLyBhcyB0aGUgdHJhbnNpdGlvbiBpcyBzeW5jaHJvbm91cyBhbmQgYWN0aXZpdHlDYW5jZWxsYXRpb24gaXNuJ3QuICBPdGhlcndpc2UgZGlzcG9zZSB3aWxsIGJlXG4gICAgICAvLyBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGhhcyBiZWVuIGNhbmNlbGxlZC4gIEl0IG1pZ2h0IGJlIHdvcmsgaGF2aW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0XG4gICAgICAvLyBhdXRvbWF0aWNhbGx5IGNhbmNlbCBpZiB0aGUgY29udGV4dCBpcyBkaXNwb3NlZCBzbyB3ZSBkb24ndCBoYXZlIHdvcnJ5IGFib3V0IGRldGFjaGluZyBldGMuXG4gICAgICBpZiAodGhpcy5faW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dC5kaXNwb3NlKCk7IC8vIG9yIGRvIHNvbWV0aGluZyBsaWtlIGNhbmNlbEFuZERpc3Bvc2U/XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXQgaXNJbnRlcmFjdGlvblN5bmMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG5cbiAgZ2V0IHVybFNlcnZpY2UoKTogVXJsU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC51cmxTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IGludGVyYWN0aW9uU2VydmljZUFkYXB0ZXIoKTogSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyO1xuICB9XG5cbiAgaW5pdGlhbGlzZVZpc2l0U2VnbWVudHModmlzaXQ6IFZpc2l0KSB7XG4gICAgdmlzaXQuc2VnbWVudHMuZm9yRWFjaChpdCA9PiB0aGlzLnVwZGF0ZVZpc2l0U2VnbWVudChpdCkpXG4gIH1cblxuICB1cGRhdGVWaXNpdFNlZ21lbnQoc2VnbWVudDogVmlzaXRTZWdtZW50KSB7XG4gICAgLy8gY29uc29sZS5sb2coYHVwZGF0ZVZpc2l0U2VnbWVudGAsIHNlZ21lbnQudG9EZWJ1Z1N0cmluZygpKTtcbiAgICB0aGlzLl92aXNpdFNlZ21lbnRzLnNldChzZWdtZW50LnBsYWNlRGVmaW5pdGlvbiwgc2VnbWVudCk7XG4gIH1cblxuXG4gIGdldFZpc2l0U2VnbWVudEZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgY29uc3QgdmlzaXQgPSB0aGlzLl92aXNpdFNlZ21lbnRzLmdldChwbGFjZURlZik7XG4gICAgLy8gY29uc29sZS5sb2coYEdldHRpbmcgdmlzaXQgZm9yICR7cGxhY2VEZWYuY29tcG9uZW50Lm5hbWV9YCwge3Zpc2l0fSk7XG4gICAgcmV0dXJuIHZpc2l0O1xuICB9XG5cbiAgY3JlYXRlVXBkYXRlZFZpc2l0KHVybDogc3RyaW5nKSA6VmlzaXQge1xuICAgIC8vIFRoZSB2aXNpdCBzZWdtZW50cyBjYW4gaGF2ZSBhcmJpcmFyeSBwbGFjZXMgaW4gdGhlbSBhZnRlciByZWRpcmVjdHNcbiAgICAvLyBzbyB3ZSBoYXZlIHRvIGZpbHRlciB0aGVtIGJhc2VkIG9uIHRoZSBmaW5hbCB1cmwuXG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwodXJsKTtcbiAgICBjb25zdCBmaWx0ZXJlZFNlZ21lbnRzID0gQXJyYXkuZnJvbSh0aGlzLl92aXNpdFNlZ21lbnRzLnZhbHVlcygpKVxuICAgICAgLmZpbHRlcihpdCA9PiBzbmFwc2hvdC5jb250YWluc1Zpc2l0U2VnbWVudChpdCkpO1xuICAgIHJldHVybiBWaXNpdC5mcm9tU2VnbWVudHMoZmlsdGVyZWRTZWdtZW50cyk7XG4gIH1cblxuICBnZXQgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQ7XG4gIH1cblxuICBub3RpZnlBY3RpdmUoKSB7XG4gICAgLy8gbm9vcC5cbiAgfVxuXG4gIG9uUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgLy8gbmF2aWdhdGlvbiBzZXNzaW9ucyBjYW4gaGF2ZSBtYW55IGNhbmNlbCBzdGFydCBjeWNsZXMgZHVlIHRvIHBsYWNlIGd1YXJkIHJlZGlyZWN0c1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgLy8gTm9ybWFsbHkgd2UganVzdCBpZ25vcmUgdGhlc2UgYnV0IHRoZXkgYXJlIHRoZSBvbmx5IHdheSBvZiBkZXRlY3RpbmcgaWYgdGhlIGJhY2sgYnV0dG9uXG4gICAgLy8gd2FzIGNsaWNrZWQgZHVyaW5nIGEgY2FuRGVhY3RpdmF0ZSBwcm9taXNlLlxuICAgIC8vIDEuIGEgcm91dGUgaXMgaW4gcHJvZ3Jlc3MgYW5kIGF3YWl0aW5nIGEgY2FuRGVhY3RpdmF0ZUd1YXJkXG4gICAgLy8gMi4gdGhlIHVzZXIgdGhlIGNsaWNrcyB0aGUgYmFjayBidXR0b24uXG4gICAgLy8gU28gdG8gaGFuZGxlIHRoYXQgc2NlbmFyaW8gd2UgbmVlZCB0byBjaGVjayBpZiB3ZSd2ZSBnb3QgYSBjYW4gZGVhY3RpdmF0ZSBpbnRlcmFjdGlvbiBpblxuICAgIC8vIHByb2dyZXNzIGFuZCB0aGUgZG8gdGhlIGFwcHJvcHJpYXRlIGNsZWFuIHVwLlxuICAgIGlmICh0aGlzLmNhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQgJiYgdGhpcy5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuY2FuY2VsQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uKHVybCk7XG4gICAgfVxuICB9XG5cbiAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJDYW5jZWxsZWQoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVuZChldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIGdldFZpc2l0U2VnbWVudHMoKTogVmlzaXRTZWdtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0U2VnbWVudHMudmFsdWVzKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlsbGVnYWxUcmFuc2l0aW9uPFI+KG1lc3NhZ2U6IHN0cmluZyB8IFJvdXRlckV2ZW50KTogUiB7XG4gICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGAke21lc3NhZ2UudG9TdHJpbmcoKX0gbm90IHN1cHBvcnRlZCBieSAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjdXJyZW50Um91dGVyVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudXJsU2VydmljZS5nZXRDdXJyZW50Um91dGVyVXJsKCk7XG4gIH1cblxuICByZXNldEJyb3dzZXJMb2NhdGlvbih1cmwsIG9wdGlvbnM6IHsgcmVwbGFjZUN1cnJlbnQ6IGJvb2xlYW4gfSA9IHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pIHtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiByZXNldHRpbmcgYnJvd3NlciBsb2NhdGlvbiB0bzogJHt1cmx9YCk7XG4gICAgdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgcmVwYWlyQnJvd3Nlckhpc3RvcnlBbmRVcmxBZnRlckd1YXJkQ2FuY2VsbGF0aW9uKHBvcHBlZEhpc3RvcnlUb1JlcGxhY2U6IHN0cmluZywgYWN0aXZlVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBJbXBvcnRhbnQ6IEkgdHJpZWQgdG8gcGVyZm9ybSB0aGlzIGZpeCBhdCBhIGxhdGVyIHBvaW50IGludCBoZSByb3V0aW5nIGN5Y2xlIGJ1dCBpdCBjcmVhdGVkIGFsbCBraW5kcyBvZlxuICAgIC8vIHN0cmFuZ2VuZXNzLlxuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhcIldPUkstQVJPVU5EOiBVcGRhdGluZyBicm93c2VyIGxvY2F0aW9uIGFmdGVyIHBvcCBzdGF0ZSAtIHNlZSBhbmd1bGFyIGlzc3VlICMxMzU4NlwiKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcmVwbGFjaW5nICR7dGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRMb2NhdGlvblVybFNuYXBzaG90KCkudXJsfSB3aXRoICR7cG9wcGVkSGlzdG9yeVRvUmVwbGFjZX1gKTtcbiAgICB0aGlzLnVybFNlcnZpY2UucmVzZXRCcm93c2VyTG9jYXRpb24ocG9wcGVkSGlzdG9yeVRvUmVwbGFjZSwgeyByZXBsYWNlQ3VycmVudDogdHJ1ZSB9KTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcHVzaGluZyAke2FjdGl2ZVVybH0gYmFjayBvbnRvIHRoZSBoaXN0b3J5LmApO1xuICAgIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbihhY3RpdmVVcmwsIHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pO1xuICB9XG5cblxuICBpZ25vcmUoZXZlbnQ6IFJvdXRlckV2ZW50LCByZWFzb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICByZWFzb24gPSByZWFzb24gPyBgIC0+ICR7cmVhc29ufWAgOiBcIlwiO1xuICAgIC8vIExvZ2dlci5nZXQodGhpcykuaW5mbyhgSWdub3Jpbmcgcm91dGVyIGV2ZW50JHtyZWFzb259OiAke2V2ZW50LmNvbnN0cnVjdG9yLm5hbWV9IC0+ICR7ZXZlbnQudXJsfSA6OiAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0oJHt0aGlzLmRlYnVnU3RhdGUoKX0pYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWJ1Z1N0YXRlKHByb3BlcnRpZXM/OiBzdHJpbmdbXSkge1xuICAgIHJldHVybiAocHJvcGVydGllcyB8fCB0aGlzLmRlYnVnUHJvcGVydHlLZXlzKS5tYXAocCA9PiB7XG4gICAgICByZXR1cm4gYCR7cH06ICR7dGhpc1twXX1gO1xuICAgIH0pLmpvaW4oXCIsIFwiKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFVybDogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKGAtLS0+IGNhbkRlYWN0aXZhdGVQbGFjZSgke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH0sICR7Y3VycmVudFVybC51cmx9IC0+ICR7bmV4dFVybC51cmx9KWApO1xuICAgIC8vIGxvb2t1cCB0aGUgaGFuZGxlciBhbmQgY3JlYXRlIGl0IGlmIHdlJ3ZlIG5vdCBzZWVuIGl0IHlldFxuICAgIGxldCBoYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5nZXQoY29tcG9uZW50KTtcbiAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgIGNvbnN0IGlzUHJpbWFyeUhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNpemUgPT09IDA7IC8vIG9ubHkgcHJpbWFyeSBoYW5kbGVyIGNhbmNlbHMgdGhlIGFwcCBtb2RlbCBpbnRlcmF0aW9uc1xuICAgICAgaGFuZGxlciA9IG5ldyBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIoY29tcG9uZW50LCB0aGlzLCBpc1ByaW1hcnlIYW5kbGVyKTtcbiAgICAgIHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuc2V0KGNvbXBvbmVudCwgaGFuZGxlcik7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyLmNhbkRlYWN0aXZhdGUoY3VycmVudFVybCwgbmV4dFVybCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coYDwtLS0gY2FuRGVhY3RpdmF0ZVBsYWNlKCR7Y29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRofSk6ICR7cmVzdWx0fWApO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbihuZXdVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhgYmFjayBidXR0b24gcHJlc3NlZCBkdXJpbmcgbmF2aWdhdGlvbiBzZXNzaW9uIGludGVyYWN0aW9uIHByb21pc2VgKTtcbiAgICAvLyBkZXRhY2ggdGhlIGludGVyYWN0aW9uIGZyb20gdGhlIHNlc3Npb24gc28gaXQgZG9lc24ndCBnZXQgZGlzcG9zZWQgdW50aWwgdGhlIGFjdGl2aXR5IGhhcyBmaW5pc2hlZFxuICAgIC8vIGFsbCBpdCdzIHRoaW5ncy5cbiAgICBjb25zdCBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5kZXRhY2hDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0KCk7XG4gICAgLy8gVE9ETzogSSBuZWVkIHRvIG1ha2UgdGhlIGV4Y2x1c2l2ZSBpbnRlcmFjdGlvbiBjb250ZXh0IGRpc2FsbG93IG5lc3RlZCBhY3Rpdml0aWVzIG9yXG4gICAgLy8gICAgICAgdGhhdCB3b3VsZCBtZXNzIHRoaW5ncyB1cCBlbnRpcmVseS4gT3IsIGNhbiBJIGRvIGEgY29udGV4dC5hYm9ydEFsbCgpLnRoZW4oLi4pXG4gICAgTG9nZ2VyLmdldCh0aGlzKS5pbmZvKFwiY2FuY2VsbGluZyBjdXJyZW50IG5hdmlnYXRpb24gYWN0aXZpdHkuLlwiKTtcbiAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCkudGhlbigoKSA9PiB7XG4gICAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaGFuZGxlQ2FuRGVhY3RpdmF0ZUNhbmNlbGxlZEV2ZW50U2NlbmFyaW8obmV3VXJsKTtcbiAgfVxuXG4gIGFic3RyYWN0IGhhbmRsZUNhbkRlYWN0aXZhdGVDYW5jZWxsZWRFdmVudFNjZW5hcmlvKG5ld1VybDogc3RyaW5nKTogdm9pZFxuXG4gIHByb3RlY3RlZCByZWluc3RhdGVVcmxBZnRlckFuZ3VsYXJDaGFuZ2VkSXRPbkNhbmNlbGxhdGlvbih1cmw6IHN0cmluZykge1xuICAgIC8vIEFuZ3VsYXIgY2FsbHMgX3RoaXMucmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCkgb24gY2FuY2VsbGluZyBhbmQgZnVja3Mgb3VyIGhpc3RvcnkuXG4gICAgLy8gU28gdGhpcyBtZWFucyB0aGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRoZSB1cmwgd2Ugd2FudCB0byBnbyBiYWNrIHRvLCBhbmQgbm90IHRoZSBvbmUgdGhhdCB3YXMgb25cbiAgICAvLyBpdCBiZWZvcmUgdGhlIGNhbmNlbCBldmVudCBmaXJlZC5cbiAgICAvLyBTbyB3ZSBuZWVkIHRvOlxuICAgIC8vIC0gcmVwbGFjZSB0aGUganVzdCBpbnNlcnRlZCB1cmwgd2l0aCB0aGUgb25lIHRoYXQgdXNlZCB0byBiZSB0aGVyZS5cbiAgICAvLyAtIHB1c2ggb3VyIGFjdHVhbCB1cmwgYmFjayBvbnRvIHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgIHRoaXMucmVzZXRCcm93c2VyTG9jYXRpb24odXJsLCB7IHJlcGxhY2VDdXJyZW50OiB0cnVlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRldGFjaENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0O1xuICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCA9IG51bGw7XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cbn1cbiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTzlELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFbEMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHMUY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGdCQUFnQjtJQVd6QztJQUFxQztJQVQxRCxpQkFBaUIsR0FBYSxFQUFFLENBQUM7SUFDekIsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBRTFELDZCQUE2QixHQUFHLElBQUksR0FBRyxFQUFxRCxDQUFDO0lBSTdGLG1CQUFtQixDQUFxQjtJQUVoRCxZQUFxQixPQUEwQixFQUFXLFdBQW1CO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFBVyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUUzRSw4Q0FBOEM7UUFDOUMsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLGlDQUFpQyxFQUFFLENBQUM7UUFDckcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsK0ZBQStGO1lBQy9GLDhGQUE4RjtZQUM5RixpR0FBaUc7WUFDakcsOEZBQThGO1lBQzlGLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENB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QU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDM0YscUdBQXFHO1FBQ3JHLG1CQUFtQjtRQUNuQixNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3JGLHVGQUF1RjtRQUN2Rix1RkFBdUY7UUFDdkYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNsRSwrQkFBK0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0QsK0JBQStCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMseUNBQXlDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUlTLCtDQUErQyxDQUFDLEdBQVc7UUFDbkUsc0ZBQXNGO1FBQ3RGLHdHQUF3RztRQUN4RyxvQ0FBb0M7UUFDcEMsaUJBQWlCO1FBQ2pCLHNFQUFzRTtRQUN0RSx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxxQ0FBcUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyRXZlbnR9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7R2FyYmFnZUNvbGxlY3RvciwgbGFuZywgTG9nZ2VyfSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlcn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5pbXBvcnQge1BsYWNlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vcGxhY2UtY29tcG9uZW50XCI7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSBcIi4uLy4uL3BsYWNlLWRlZmluaXRpb25cIjtcbmltcG9ydCB7VXJsU2VydmljZX0gZnJvbSBcIi4uLy4uL3VybC1zZXJ2aWNlXCI7XG5pbXBvcnQge1VybFNuYXBzaG90fSBmcm9tIFwiLi4vLi4vdXJsLXNuYXBzaG90XCI7XG5pbXBvcnQge1Zpc2l0fSBmcm9tIFwiLi4vLi4vdmlzaXRcIjtcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tIFwiLi4vLi4vdmlzaXQtc2VnbWVudFwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJ9IGZyb20gXCIuLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXJcIjtcbmltcG9ydCB7TmF2aWdhdGlvbkNvbnRleHR9IGZyb20gXCIuL25hdmlnYXRpb24tY29udGV4dFwiO1xuXG4vKipcbiAqIFRyYW5zaWVudCBzdGF0ZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdmlnYXRpb25TZXNzaW9uIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgZGVidWdQcm9wZXJ0eUtleXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX3Zpc2l0U2VnbWVudHMgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50PigpO1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMgPSBuZXcgTWFwPFBsYWNlQ29tcG9uZW50LCBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXI+KCk7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUG9wU3RhdGU6IGJvb2xlYW47XG5cblxuICBwcml2YXRlIF9pbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gY29uc29sZS5sb2coYG5ldyAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKVxuICAgIC8vIFRPRE86IGNhbiBJIGdldCBhd2F5IHdpdGhvdXQgY3JlYXRpbmcgb25lIGV2ZXJ5IHRpbWU/XG4gICAgdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5jb250ZXh0LnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5jcmVhdGVFeGNsdXNpdmVJbnRlcmFjdGlvbkNvbnRleHQoKTtcbiAgICB0aGlzLm9uRGlzcG9zZSgoKSA9PiB7XG4gICAgICAvLyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBjYW4gYmUgZGV0YWNoZWQgZHVyaW5nIHRoZSBiYWNrIGJ1dHRvbiBjYW5jZWxsYXRpb24gc3RhdGUgdHJhbnNpdGlvblxuICAgICAgLy8gYXMgdGhlIHRyYW5zaXRpb24gaXMgc3luY2hyb25vdXMgYW5kIGFjdGl2aXR5Q2FuY2VsbGF0aW9uIGlzbid0LiAgT3RoZXJ3aXNlIGRpc3Bvc2Ugd2lsbCBiZVxuICAgICAgLy8gY2FsbGVkIGJlZm9yZSB0aGUgY29udGV4dCBoYXMgYmVlbiBjYW5jZWxsZWQuICBJdCBtaWdodCBiZSB3b3JrIGhhdmluZyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dFxuICAgICAgLy8gYXV0b21hdGljYWxseSBjYW5jZWwgaWYgdGhlIGNvbnRleHQgaXMgZGlzcG9zZWQgc28gd2UgZG9uJ3QgaGF2ZSB3b3JyeSBhYm91dCBkZXRhY2hpbmcgZXRjLlxuICAgICAgaWYgKHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQuZGlzcG9zZSgpOyAvLyBvciBkbyBzb21ldGhpbmcgbGlrZSBjYW5jZWxBbmREaXNwb3NlP1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGlzSW50ZXJhY3Rpb25TeW5jKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIGdldCB1cmxTZXJ2aWNlKCk6IFVybFNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQudXJsU2VydmljZTtcbiAgfVxuXG4gIGdldCBpbnRlcmFjdGlvblNlcnZpY2VBZGFwdGVyKCk6IEludGVyYWN0aW9uU2VydmljZVJvdXRpbmdBZGFwdGVyIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJvdXRlckludGVyYWN0aW9uQWRhcHRlcjtcbiAgfVxuXG4gIGluaXRpYWxpc2VWaXNpdFNlZ21lbnRzKHZpc2l0OiBWaXNpdCkge1xuICAgIHZpc2l0LnNlZ21lbnRzLmZvckVhY2goaXQgPT4gdGhpcy51cGRhdGVWaXNpdFNlZ21lbnQoaXQpKVxuICB9XG5cbiAgdXBkYXRlVmlzaXRTZWdtZW50KHNlZ21lbnQ6IFZpc2l0U2VnbWVudCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGB1cGRhdGVWaXNpdFNlZ21lbnRgLCBzZWdtZW50LnRvRGVidWdTdHJpbmcoKSk7XG4gICAgdGhpcy5fdmlzaXRTZWdtZW50cy5zZXQoc2VnbWVudC5wbGFjZURlZmluaXRpb24sIHNlZ21lbnQpO1xuICB9XG5cblxuICBnZXRWaXNpdFNlZ21lbnRGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHZpc2l0ID0gdGhpcy5fdmlzaXRTZWdtZW50cy5nZXQocGxhY2VEZWYpO1xuICAgIC8vIGNvbnNvbGUubG9nKGBHZXR0aW5nIHZpc2l0IGZvciAke3BsYWNlRGVmLmNvbXBvbmVudC5uYW1lfWAsIHt2aXNpdH0pO1xuICAgIHJldHVybiB2aXNpdDtcbiAgfVxuXG4gIGNyZWF0ZVVwZGF0ZWRWaXNpdCh1cmw6IHN0cmluZykgOlZpc2l0IHtcbiAgICAvLyBUaGUgdmlzaXQgc2VnbWVudHMgY2FuIGhhdmUgYXJiaXJhcnkgcGxhY2VzIGluIHRoZW0gYWZ0ZXIgcmVkaXJlY3RzXG4gICAgLy8gc28gd2UgaGF2ZSB0byBmaWx0ZXIgdGhlbSBiYXNlZCBvbiB0aGUgZmluYWwgdXJsLlxuICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy51cmxTZXJ2aWNlLnBhcnNlVXJsKHVybCk7XG4gICAgY29uc3QgZmlsdGVyZWRTZWdtZW50cyA9IEFycmF5LmZyb20odGhpcy5fdmlzaXRTZWdtZW50cy52YWx1ZXMoKSlcbiAgICAgIC5maWx0ZXIoaXQgPT4gc25hcHNob3QuY29udGFpbnNWaXNpdFNlZ21lbnQoaXQpKTtcbiAgICByZXR1cm4gVmlzaXQuZnJvbVNlZ21lbnRzKGZpbHRlcmVkU2VnbWVudHMpO1xuICB9XG5cbiAgZ2V0IGNhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0O1xuICB9XG5cbiAgbm90aWZ5QWN0aXZlKCkge1xuICAgIC8vIG5vb3AuXG4gIH1cblxuICBvblJvdXRlclN0YXJ0ZWQoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IHZvaWQge1xuICAgIC8vIG5hdmlnYXRpb24gc2Vzc2lvbnMgY2FuIGhhdmUgbWFueSBjYW5jZWwgc3RhcnQgY3ljbGVzIGR1ZSB0byBwbGFjZSBndWFyZCByZWRpcmVjdHNcbiAgICB0aGlzLmlnbm9yZShldmVudCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblVybENoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIC8vIE5vcm1hbGx5IHdlIGp1c3QgaWdub3JlIHRoZXNlIGJ1dCB0aGV5IGFyZSB0aGUgb25seSB3YXkgb2YgZGV0ZWN0aW5nIGlmIHRoZSBiYWNrIGJ1dHRvblxuICAgIC8vIHdhcyBjbGlja2VkIGR1cmluZyBhIGNhbkRlYWN0aXZhdGUgcHJvbWlzZS5cbiAgICAvLyAxLiBhIHJvdXRlIGlzIGluIHByb2dyZXNzIGFuZCBhd2FpdGluZyBhIGNhbkRlYWN0aXZhdGVHdWFyZFxuICAgIC8vIDIuIHRoZSB1c2VyIHRoZSBjbGlja3MgdGhlIGJhY2sgYnV0dG9uLlxuICAgIC8vIFNvIHRvIGhhbmRsZSB0aGF0IHNjZW5hcmlvIHdlIG5lZWQgdG8gY2hlY2sgaWYgd2UndmUgZ290IGEgY2FuIGRlYWN0aXZhdGUgaW50ZXJhY3Rpb24gaW5cbiAgICAvLyBwcm9ncmVzcyBhbmQgdGhlIGRvIHRoZSBhcHByb3ByaWF0ZSBjbGVhbiB1cC5cbiAgICBpZiAodGhpcy5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0ICYmIHRoaXMuY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICB0aGlzLmNhbmNlbENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbih1cmwpO1xuICAgIH1cbiAgfVxuXG4gIG9uUG9wU3RhdGUoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJFbmQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBnZXRWaXNpdFNlZ21lbnRzKCk6IFZpc2l0U2VnbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl92aXNpdFNlZ21lbnRzLnZhbHVlcygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbGxlZ2FsVHJhbnNpdGlvbjxSPihtZXNzYWdlOiBzdHJpbmcgfCBSb3V0ZXJFdmVudCk6IFIge1xuICAgIHJldHVybiBsYW5nLmlsbGVnYWxTdGF0ZShgJHttZXNzYWdlLnRvU3RyaW5nKCl9IG5vdCBzdXBwb3J0ZWQgYnkgJHt0aGlzLnRvU3RyaW5nKCl9YCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3VycmVudFJvdXRlclVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudFJvdXRlclVybCgpO1xuICB9XG5cbiAgcmVzZXRCcm93c2VyTG9jYXRpb24odXJsLCBvcHRpb25zOiB7IHJlcGxhY2VDdXJyZW50OiBib29sZWFuIH0gPSB7IHJlcGxhY2VDdXJyZW50OiBmYWxzZSB9KSB7XG4gICAgLy8gY29uc29sZS5sb2coYC0tLT4gcmVzZXR0aW5nIGJyb3dzZXIgbG9jYXRpb24gdG86ICR7dXJsfWApO1xuICAgIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbih1cmwsIG9wdGlvbnMpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHJvdGVjdGVkIHJlcGFpckJyb3dzZXJIaXN0b3J5QW5kVXJsQWZ0ZXJHdWFyZENhbmNlbGxhdGlvbihwb3BwZWRIaXN0b3J5VG9SZXBsYWNlOiBzdHJpbmcsIGFjdGl2ZVVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gSW1wb3J0YW50OiBJIHRyaWVkIHRvIHBlcmZvcm0gdGhpcyBmaXggYXQgYSBsYXRlciBwb2ludCBpbnQgaGUgcm91dGluZyBjeWNsZSBidXQgaXQgY3JlYXRlZCBhbGwga2luZHMgb2ZcbiAgICAvLyBzdHJhbmdlbmVzcy5cbiAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oXCJXT1JLLUFST1VORDogVXBkYXRpbmcgYnJvd3NlciBsb2NhdGlvbiBhZnRlciBwb3Agc3RhdGUgLSBzZWUgYW5ndWxhciBpc3N1ZSAjMTM1ODZcIik7XG4gICAgLy8gY29uc29sZS5sb2coYHJlcGxhY2luZyAke3RoaXMudXJsU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb25VcmxTbmFwc2hvdCgpLnVybH0gd2l0aCAke3BvcHBlZEhpc3RvcnlUb1JlcGxhY2V9YCk7XG4gICAgdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHBvcHBlZEhpc3RvcnlUb1JlcGxhY2UsIHsgcmVwbGFjZUN1cnJlbnQ6IHRydWUgfSk7XG4gICAgLy8gY29uc29sZS5sb2coYHB1c2hpbmcgJHthY3RpdmVVcmx9IGJhY2sgb250byB0aGUgaGlzdG9yeS5gKTtcbiAgICB0aGlzLnVybFNlcnZpY2UucmVzZXRCcm93c2VyTG9jYXRpb24oYWN0aXZlVXJsLCB7IHJlcGxhY2VDdXJyZW50OiBmYWxzZSB9KTtcbiAgfVxuXG5cbiAgaWdub3JlKGV2ZW50OiBSb3V0ZXJFdmVudCwgcmVhc29uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgcmVhc29uID0gcmVhc29uID8gYCAtPiAke3JlYXNvbn1gIDogXCJcIjtcbiAgICAvLyBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYElnbm9yaW5nIHJvdXRlciBldmVudCR7cmVhc29ufTogJHtldmVudC5jb25zdHJ1Y3Rvci5uYW1lfSAtPiAke2V2ZW50LnVybH0gOjogJHt0aGlzLnRvU3RyaW5nKCl9YCk7XG4gIH1cblxuICBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9KCR7dGhpcy5kZWJ1Z1N0YXRlKCl9KWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVidWdTdGF0ZShwcm9wZXJ0aWVzPzogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gKHByb3BlcnRpZXMgfHwgdGhpcy5kZWJ1Z1Byb3BlcnR5S2V5cykubWFwKHAgPT4ge1xuICAgICAgcmV0dXJuIGAke3B9OiAke3RoaXNbcF19YDtcbiAgICB9KS5qb2luKFwiLCBcIik7XG4gIH1cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlUGxhY2UoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRVcmw6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiBjYW5EZWFjdGl2YXRlUGxhY2UoJHtjb21wb25lbnQucGxhY2VEZWZpbml0aW9uLnBhdGh9LCAke2N1cnJlbnRVcmwudXJsfSAtPiAke25leHRVcmwudXJsfSlgKTtcbiAgICAvLyBsb29rdXAgdGhlIGhhbmRsZXIgYW5kIGNyZWF0ZSBpdCBpZiB3ZSd2ZSBub3Qgc2VlbiBpdCB5ZXRcbiAgICBsZXQgaGFuZGxlciA9IHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuZ2V0KGNvbXBvbmVudCk7XG4gICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICBjb25zdCBpc1ByaW1hcnlIYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5zaXplID09PSAwOyAvLyBvbmx5IHByaW1hcnkgaGFuZGxlciBjYW5jZWxzIHRoZSBhcHAgbW9kZWwgaW50ZXJhdGlvbnNcbiAgICAgIGhhbmRsZXIgPSBuZXcgUGxhY2VDb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyKGNvbXBvbmVudCwgdGhpcywgaXNQcmltYXJ5SGFuZGxlcik7XG4gICAgICB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNldChjb21wb25lbnQsIGhhbmRsZXIpO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlci5jYW5EZWFjdGl2YXRlKGN1cnJlbnRVcmwsIG5leHRVcmwpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGA8LS0tIGNhbkRlYWN0aXZhdGVQbGFjZSgke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH0pOiAke3Jlc3VsdH1gKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBjYW5jZWxDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb24obmV3VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYGJhY2sgYnV0dG9uIHByZXNzZWQgZHVyaW5nIG5hdmlnYXRpb24gc2Vzc2lvbiBpbnRlcmFjdGlvbiBwcm9taXNlYCk7XG4gICAgLy8gZGV0YWNoIHRoZSBpbnRlcmFjdGlvbiBmcm9tIHRoZSBzZXNzaW9uIHNvIGl0IGRvZXNuJ3QgZ2V0IGRpc3Bvc2VkIHVudGlsIHRoZSBhY3Rpdml0eSBoYXMgZmluaXNoZWRcbiAgICAvLyBhbGwgaXQncyB0aGluZ3MuXG4gICAgY29uc3QgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCA9IHRoaXMuZGV0YWNoQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgIC8vIFRPRE86IEkgbmVlZCB0byBtYWtlIHRoZSBleGNsdXNpdmUgaW50ZXJhY3Rpb24gY29udGV4dCBkaXNhbGxvdyBuZXN0ZWQgYWN0aXZpdGllcyBvclxuICAgIC8vICAgICAgIHRoYXQgd291bGQgbWVzcyB0aGluZ3MgdXAgZW50aXJlbHkuIE9yLCBjYW4gSSBkbyBhIGNvbnRleHQuYWJvcnRBbGwoKS50aGVuKC4uKVxuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhcImNhbmNlbGxpbmcgY3VycmVudCBuYXZpZ2F0aW9uIGFjdGl2aXR5Li5cIik7XG4gICAgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dC5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpLnRoZW4oKCkgPT4ge1xuICAgICAgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dC5kaXNwb3NlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmhhbmRsZUNhbkRlYWN0aXZhdGVDYW5jZWxsZWRFdmVudFNjZW5hcmlvKG5ld1VybCk7XG4gIH1cblxuICBhYnN0cmFjdCBoYW5kbGVDYW5EZWFjdGl2YXRlQ2FuY2VsbGVkRXZlbnRTY2VuYXJpbyhuZXdVcmw6IHN0cmluZyk6IHZvaWRcblxuICBwcm90ZWN0ZWQgcmVpbnN0YXRlVXJsQWZ0ZXJBbmd1bGFyQ2hhbmdlZEl0T25DYW5jZWxsYXRpb24odXJsOiBzdHJpbmcpIHtcbiAgICAvLyBBbmd1bGFyIGNhbGxzIF90aGlzLnJlc2V0VXJsVG9DdXJyZW50VXJsVHJlZSgpIG9uIGNhbmNlbGxpbmcgYW5kIGZ1Y2tzIG91ciBoaXN0b3J5LlxuICAgIC8vIFNvIHRoaXMgbWVhbnMgdGhhdCB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyB0aGUgdXJsIHdlIHdhbnQgdG8gZ28gYmFjayB0bywgYW5kIG5vdCB0aGUgb25lIHRoYXQgd2FzIG9uXG4gICAgLy8gaXQgYmVmb3JlIHRoZSBjYW5jZWwgZXZlbnQgZmlyZWQuXG4gICAgLy8gU28gd2UgbmVlZCB0bzpcbiAgICAvLyAtIHJlcGxhY2UgdGhlIGp1c3QgaW5zZXJ0ZWQgdXJsIHdpdGggdGhlIG9uZSB0aGF0IHVzZWQgdG8gYmUgdGhlcmUuXG4gICAgLy8gLSBwdXNoIG91ciBhY3R1YWwgdXJsIGJhY2sgb250byB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICB0aGlzLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCwgeyByZXBsYWNlQ3VycmVudDogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXRhY2hDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0KCk6IEludGVyYWN0aW9uQ29udGV4dCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dDtcbiAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQgPSBudWxsO1xuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG59XG4iXX0=
|
|
@@ -108,8 +108,7 @@ export class PlaceAuthService extends GarbageCollector {
|
|
|
108
108
|
enablePlace(placeDefinition, options) {
|
|
109
109
|
const { chain } = Dsl.disposeWith(this);
|
|
110
110
|
const when$ = options.when$ ? options.when$ : chain(options.unless$).isFalsey();
|
|
111
|
-
|
|
112
|
-
this.enabledPlaceChecker.enableWhen(PlaceComponent.getDefinition(placeDefinition), chain(when$).isTruthy(), options);
|
|
111
|
+
this.enabledPlaceChecker.enableWhen(PlaceComponent.getDefinition(placeDefinition), when$, options);
|
|
113
112
|
}
|
|
114
113
|
async waitUntilAuthenticationReady() {
|
|
115
114
|
await toPromise(this, this._authNReady$);
|
|
@@ -118,12 +117,12 @@ export class PlaceAuthService extends GarbageCollector {
|
|
|
118
117
|
await toPromise(this, this._authZReady$);
|
|
119
118
|
await this.enabledPlaceChecker.waitUntilReady(placeDef);
|
|
120
119
|
}
|
|
121
|
-
|
|
122
|
-
const redirect =
|
|
120
|
+
getAuthenticationFailureRedirect(activatedRoute, state) {
|
|
121
|
+
const redirect = this.authNOptions.redirectTo(activatedRoute, state);
|
|
123
122
|
return redirect instanceof Visit ? redirect : Visit.goto(redirect);
|
|
124
123
|
}
|
|
125
|
-
|
|
126
|
-
return
|
|
124
|
+
getAuthorisationFailureRedirectOptions(component) {
|
|
125
|
+
return this.authZOptions.redirectTo(component).map(it => it instanceof Visit ? it : Visit.goto(it));
|
|
127
126
|
}
|
|
128
127
|
isAuthenticated() {
|
|
129
128
|
return this.accessGuard$.value.isAuthenticated();
|
|
@@ -149,4 +148,4 @@ export class PlaceAuthService extends GarbageCollector {
|
|
|
149
148
|
}
|
|
150
149
|
PlaceAuthService.AccessGuard = AccessGuard;
|
|
151
150
|
})(PlaceAuthService || (PlaceAuthService = {}));
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtYXV0aC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtYXV0aC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxhQUFhLEVBR2Isb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUc5QixTQUFTLFNBQVMsQ0FBQyxZQUFrQyxFQUFFLFVBQStCO0lBQ3BGLGtGQUFrRjtJQUNsRixNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QyxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDekYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxVQUFnQyxFQUFFLE9BQStDLEVBQUUsUUFBNEM7SUFDM0osNENBQTRDO0lBQzVDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtRQUN6QixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7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Q0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxLQUFLLENBQUMsc0NBQXNDLENBQUMsU0FBd0M7UUFDbkYsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDbEQsQ0FBQztJQUVELFlBQVksQ0FBQyxDQUFrQjtRQUM3QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxXQUFpQixnQkFBZ0I7SUFzQi9CLE1BQWEsV0FBVztRQUVIO1FBQ0E7UUFGbkIsWUFDbUIsYUFBc0IsRUFDdEIsU0FBNkI7WUFEN0Isa0JBQWEsR0FBYixhQUFhLENBQVM7WUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFFaEQsQ0FBQztRQUVELGVBQWU7WUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDNUIsQ0FBQztRQUVELFlBQVksQ0FBQyxlQUFnQztZQUMzQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekMsQ0FBQztLQUVGO0lBZlksNEJBQVcsY0FldkIsQ0FBQTtBQUVILENBQUMsRUF2Q2dCLGdCQUFnQixLQUFoQixnQkFBZ0IsUUF1Q2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90fSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge1xuICBBbmRWYWx1ZU1vZGVsLFxuICBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRGlzcG9zYWJsZSxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBIYXNWYWx1ZSxcbiAgTXVsdGlNYXBNb2RlbENoYWluLFxuICBNdXRhYmxlTGlzdE1vZGVsLFxuICBSZWR1Y2luZ1ZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge1BsYWNlQWNjZXNzR3VhcmR9IGZyb20gXCIuL3BsYWNlLWFjY2Vzcy1ndWFyZFwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudH0gZnJvbSBcIi4vcGxhY2UtY29tcG9uZW50XCI7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSBcIi4vcGxhY2UtZGVmaW5pdGlvblwiO1xuaW1wb3J0IHtWaXNpdH0gZnJvbSBcIi4vdmlzaXRcIjtcblxuXG5mdW5jdGlvbiB0b1Byb21pc2UoZGlzcG9zZWRXaXRoOiBEaXNwb3NhYmxlLkNvbGxlY3RvciwgY29uZGl0aW9uJDogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAvLyBUT0RPOiBtb3ZlIHRoaXMgZnVuY3Rpb25hbGl0eSB0byBwZWN0aW4gd2l0aCBhIHdhaXRVbml0KG1vZGVsJCkuaXNUcnV0aHkoKSBEU0wuXG4gIGNvbnN0IHt3aGVufSA9IERzbC5kaXNwb3NlV2l0aChkaXNwb3NlZFdpdGgpO1xuICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICB3aGVuKGNvbmRpdGlvbiQpLmJlY29tZXNUcnV0aHkoKCkgPT4gcmVzb2x2ZSgpLCB7b25jZTogdHJ1ZSwgaW5pdGlhbFZhbHVlOiBcImV2YWx1YXRlXCJ9KVxuICB9KTtcbn1cblxuZnVuY3Rpb24gd2l0aFBvc3Rwb25lVW50aWw8VD4oZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IsIG9wdGlvbnM6IENvbXB1dGVkTW9kZWxNZWNoYW5pY3MuUG9zdHBvbmVPcHRpb25zLCBjYWxsYmFjazogKHZhbHVlJDogVmFsdWVNb2RlbDxib29sZWFuPikgPT4gVCk6IFQgfCB1bmRlZmluZWQge1xuICAvLyBUT0RPOiBtb3ZlIHRoaXMgZnVuY3Rpb25hbGl0eSB0byBwb3dlcnVwc1xuICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKGRpc3Bvc2FibGUpO1xuICBpZiAob3B0aW9ucy5wb3N0cG9uZVVudGlsKSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKG9wdGlvbnMucG9zdHBvbmVVbnRpbCk7XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5wb3N0cG9uZVdoaWxlKSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGNoYWluKG9wdGlvbnMucG9zdHBvbmVXaGlsZSkuaXNGYWxzZXkoKSlcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5cbmNsYXNzIFBsYWNlQXV0aEd1YXJkIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uLFxuICAgICAgICAgICAgICByZWFkb25seSBlbmFibGVkJDogVmFsdWVNb2RlbDxib29sZWFuPixcbiAgICAgICAgICAgICAgb3B0aW9uczogQ29tcHV0ZWRNb2RlbE1lY2hhbmljcy5Qb3N0cG9uZU9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5yZWFkeVByb21pc2UgPSB3aXRoUG9zdHBvbmVVbnRpbCh0aGlzLCBvcHRpb25zLCBjb25kaXRpb24kID0+IHtcbiAgICAgIHJldHVybiB0b1Byb21pc2UodGhpcywgY29uZGl0aW9uJClcbiAgICB9KSA/PyBQcm9taXNlLnJlc29sdmUoKVxuICB9XG5cbiAgYXN5bmMgd2FpdFVudGlsUmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5yZWFkeVByb21pc2U7XG4gIH1cbn1cblxuXG5jbGFzcyBFbmFibGVkUGxhY2VDaGVja2VyIGV4dGVuZHMgUmVkdWNpbmdWYWx1ZU1vZGVsPFBsYWNlQXV0aFNlcnZpY2UuQXV0aG9yaXNhdGlvbkNoZWNrLCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwbGFjZUd1YXJkcyQgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxQbGFjZUF1dGhHdWFyZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGFjZUd1YXJkc0J5UGxhY2VEZWYkOiBNdWx0aU1hcE1vZGVsQ2hhaW48UGxhY2VEZWZpbml0aW9uLCBQbGFjZUF1dGhHdWFyZD47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoW10pO1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5wbGFjZUd1YXJkc0J5UGxhY2VEZWYkID0gY2hhaW4odGhpcy5wbGFjZUd1YXJkcyQpLmluZGV4TWFueUJ5KFwicGxhY2VEZWZpbml0aW9uXCIpO1xuICB9XG5cbiAgZW5hYmxlV2hlbihwbGFjZURlZmluaXRpb246IFBsYWNlRGVmaW5pdGlvbiwgY29uZGl0aW9uJDogVmFsdWVNb2RlbDxib29sZWFuPiwgb3B0aW9uczogQ29tcHV0ZWRNb2RlbE1lY2hhbmljcy5Qb3N0cG9uZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMucGxhY2VHdWFyZHMkLnB1c2gobmV3IFBsYWNlQXV0aEd1YXJkKHBsYWNlRGVmaW5pdGlvbiwgY29uZGl0aW9uJCwgb3B0aW9ucykpO1xuICAgIHRoaXMudHJhY2tTb3VyY2UoY29uZGl0aW9uJCk7XG4gIH1cblxuICBpc0F1dGhvcmlzZWQocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlKHBsYWNlRGVmKTtcbiAgfVxuXG4gIGNvbXB1dGUodmFsdWVzOiB2b2lkW10pOiAocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChkZWYpID0+IHRoaXMuY2hlY2tQcmVkaWNhdGVzQnlQbGFjZShkZWYpXG4gIH1cblxuICBwcml2YXRlIGNoZWNrUHJlZGljYXRlc0J5UGxhY2UoZGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICBjb25zdCBwbGFjZVByZWRpY2F0ZXMgPSB0aGlzLnBsYWNlR3VhcmRzQnlQbGFjZURlZiQuZ2V0KGRlZik7XG4gICAgaWYgKCFwbGFjZVByZWRpY2F0ZXMgfHwgcGxhY2VQcmVkaWNhdGVzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGxhY2VQcmVkaWNhdGVzLnJlZHVjZSgoc3VtLCBtb2RlbCkgPT4ge1xuICAgICAgICByZXR1cm4gc3VtICYmIG1vZGVsLmVuYWJsZWQkLnZhbHVlO1xuICAgICAgfSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgd2FpdFVudGlsUmVhZHkocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBsYWNlQXV0aEd1YXJkcyA9IHRoaXMucGxhY2VHdWFyZHNCeVBsYWNlRGVmJC5nZXQocGxhY2VEZWYpO1xuICAgIGlmIChwbGFjZUF1dGhHdWFyZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHBsYWNlQXV0aEd1YXJkcy5tYXAoaXQgPT4gaXQud2FpdFVudGlsUmVhZHkoKSkpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGxhY2VBdXRoU2VydmljZSBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG5cbiAgcHJpdmF0ZSBhdXRoWk9wdGlvbnM6IFBsYWNlQXV0aFNlcnZpY2UuQXV0aG9yaXNhdGlvbk9wdGlvbnM7XG4gIHByaXZhdGUgYXV0aE5PcHRpb25zOiBQbGFjZUF1dGhTZXJ2aWNlLkF1dGhlbnRpY2F0aW9uT3B0aW9ucztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoTlJlYWR5JCA9IG5ldyBBbmRWYWx1ZU1vZGVsKCkuc2V0RGVmYXVsdCh0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0aFpSZWFkeSQgPSBuZXcgQW5kVmFsdWVNb2RlbCgpLnNldERlZmF1bHQodHJ1ZSk7XG4gIHByaXZhdGUgYXV0aGVudGljYXRlZCQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4pLndpdGhEZWZhdWx0KHRydWUpO1xuICBwcml2YXRlIGF1dGhDaGVja2VyJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxQbGFjZUF1dGhTZXJ2aWNlLkF1dGhvcmlzYXRpb25DaGVjaz4pLndpdGhEZWZhdWx0KCgpID0+IHRydWUpO1xuICBwcml2YXRlIGVuYWJsZWRQbGFjZUNoZWNrZXIgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRW5hYmxlZFBsYWNlQ2hlY2tlcigpKTtcblxuICByZWFkb25seSBhY2Nlc3NHdWFyZCQ6IFZhbHVlTW9kZWw8UGxhY2VBdXRoU2VydmljZS5BY2Nlc3NHdWFyZD47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuYWNjZXNzR3VhcmQkID0gY2hhaW4ucmVkdWNlKHRoaXMuYXV0aGVudGljYXRlZCQsXG4gICAgICB0aGlzLmF1dGhDaGVja2VyJCxcbiAgICAgIHRoaXMuZW5hYmxlZFBsYWNlQ2hlY2tlcixcbiAgICAgIChhdXRoZW50aWNhdGVkLCBhdXRoQ2hlY2ssIGVuYWJsZWRQbGFjZUNoZWNrKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUGxhY2VBdXRoU2VydmljZS5BY2Nlc3NHdWFyZChhdXRoZW50aWNhdGVkLCBkZWYgPT4gYXV0aENoZWNrKGRlZikgJiYgZW5hYmxlZFBsYWNlQ2hlY2soZGVmKSk7XG4gICAgICB9KVxuICB9XG5cbiAgY29uZmlndXJlQXV0aGVudGljYXRpb24ob3B0aW9uczogUGxhY2VBdXRoU2VydmljZS5BdXRoZW50aWNhdGlvbk9wdGlvbnMpIHtcbiAgICB0aGlzLmF1dGhOT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5hdXRoZW50aWNhdGVkJC5zZXREZWxlZ2F0ZShvcHRpb25zLmlzQXV0aGVudGljYXRlZCQpXG4gICAgd2l0aFBvc3Rwb25lVW50aWwodGhpcywgb3B0aW9ucywgY29uZGl0aW9uJCA9PiB0aGlzLl9hdXRoTlJlYWR5JC5hZGRTb3VyY2UoY29uZGl0aW9uJCkpXG4gIH1cblxuICBjb25maWd1cmVBdXRob3Jpc2F0aW9uKG9wdGlvbnM6IFBsYWNlQXV0aFNlcnZpY2UuQXV0aG9yaXNhdGlvbk9wdGlvbnMpIHtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuYXV0aFpPcHRpb25zID0gb3B0aW9ucztcbiAgICBsZXQgYXV0aENoZWNrZXIkID0gVmFsdWVNb2RlbC5jb25zdGFudChkZWYgPT4gb3B0aW9ucy5pc0F1dGhvcmlzZWQoZGVmKSk7XG4gICAgaWYgKG9wdGlvbnMuZGVwZW5kc09uJCkge1xuICAgICAgLy8gaGF2ZSB0byByZXR1cm4gYSBuZXcgZnVudGlvbiBvciB0aGUgdmFsdWUgbW9kZWwgd29uJ3QgZmlyZSBhIGNoYW5nZSBldmVudFxuICAgICAgYXV0aENoZWNrZXIkID0gY2hhaW4oYXV0aENoZWNrZXIkKS5tYXAoaXQgPT4gZGVmID0+IGl0KGRlZiksIHtkZXBlbmRzT246IG9wdGlvbnMuZGVwZW5kc09uJH0pXG4gICAgfVxuICAgIHRoaXMuYXV0aENoZWNrZXIkLnNldERlbGVnYXRlKGF1dGhDaGVja2VyJCk7XG4gICAgd2l0aFBvc3Rwb25lVW50aWwodGhpcywgb3B0aW9ucywgY29uZGl0aW9uJCA9PiB0aGlzLl9hdXRoWlJlYWR5JC5hZGRTb3VyY2UoY29uZGl0aW9uJCkpXG4gIH1cblxuICBlbmFibGVQbGFjZShwbGFjZURlZmluaXRpb246IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCBvcHRpb25zOiBQbGFjZUF1dGhTZXJ2aWNlLkF1dGhQbGFjZU9wdGlvbnMpIHtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIGNvbnN0IHdoZW4kID0gb3B0aW9ucy53aGVuJCA/IG9wdGlvbnMud2hlbiQgOiBjaGFpbihvcHRpb25zLnVubGVzcyQpLmlzRmFsc2V5KClcbiAgICAvLyBOT1RFOiB3ZSdyZSB3cmFwcGluZyB0aGUgd2hlbiQgc28gY2FsbGVycyBjYW4gcGFzcyBpbiB0aGUgc2FtZSBtb2RlbCBtdWx0aXBsZSB0aW1lcyAocGVjdGluIGRvZXNuJ3Qgc3VwcG9ydCBkZXBlbmRpbmcgb24gbXVsdGlwbGVzIG9mIHRoZSBzYW1lIG1vZGVsIHlldClcbiAgICB0aGlzLmVuYWJsZWRQbGFjZUNoZWNrZXIuZW5hYmxlV2hlbihQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHBsYWNlRGVmaW5pdGlvbiksIGNoYWluKHdoZW4kKS5pc1RydXRoeSgpLCBvcHRpb25zKTtcbiAgfVxuXG5cbiAgYXN5bmMgd2FpdFVudGlsQXV0aGVudGljYXRpb25SZWFkeSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0b1Byb21pc2UodGhpcywgdGhpcy5fYXV0aE5SZWFkeSQpO1xuICB9XG5cbiAgYXN5bmMgd2FpdFVudGlsQXV0aG9yaXNhdGlvblJlYWR5Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0b1Byb21pc2UodGhpcywgdGhpcy5fYXV0aFpSZWFkeSQpXG4gICAgYXdhaXQgdGhpcy5lbmFibGVkUGxhY2VDaGVja2VyLndhaXRVbnRpbFJlYWR5KHBsYWNlRGVmKVxuICB9XG5cbiAgYXN5bmMgZ2V0QXV0aGVudGljYXRpb25GYWlsdXJlUmVkaXJlY3QoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxWaXNpdD4ge1xuICAgIGNvbnN0IHJlZGlyZWN0ID0gYXdhaXQgdGhpcy5hdXRoTk9wdGlvbnMucmVkaXJlY3RUbyhhY3RpdmF0ZWRSb3V0ZSwgc3RhdGUpO1xuICAgIHJldHVybiByZWRpcmVjdCBpbnN0YW5jZW9mIFZpc2l0ID8gcmVkaXJlY3QgOiBWaXNpdC5nb3RvKHJlZGlyZWN0KTtcbiAgfVxuXG4gIGFzeW5jIGdldEF1dGhvcmlzYXRpb25GYWlsdXJlUmVkaXJlY3RPcHRpb25zKGNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pOiBQcm9taXNlPFZpc2l0W10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXV0aFpPcHRpb25zLnJlZGlyZWN0VG8oY29tcG9uZW50KSkubWFwKGl0ID0+IGl0IGluc3RhbmNlb2YgVmlzaXQgPyBpdCA6IFZpc2l0LmdvdG8oaXQpKTtcbiAgfVxuXG4gIGlzQXV0aGVudGljYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NHdWFyZCQudmFsdWUuaXNBdXRoZW50aWNhdGVkKClcbiAgfVxuXG4gIGlzQXV0aG9yaXNlZChjOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NHdWFyZCQudmFsdWUuaXNBdXRob3Jpc2VkKGMpXG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZUF1dGhTZXJ2aWNlIHtcblxuICBleHBvcnQgdHlwZSBBdXRob3Jpc2F0aW9uQ2hlY2sgPSAoZGVmOiBQbGFjZURlZmluaXRpb24pID0+IGJvb2xlYW47XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBdXRoZW50aWNhdGlvbk9wdGlvbnMgZXh0ZW5kcyBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLlBvc3Rwb25lT3B0aW9ucyB7XG4gICAgaXNBdXRoZW50aWNhdGVkJDogVmFsdWVNb2RlbDxib29sZWFuPjtcblxuICAgIHJlZGlyZWN0VG8oYWN0aXZhdGVkUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBWaXNpdCB8IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+IHwgUHJvbWlzZTxWaXNpdD4gfCBQcm9taXNlPENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+PjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXNhdGlvbk9wdGlvbnMgZXh0ZW5kcyBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLlBvc3Rwb25lT3B0aW9ucyB7XG4gICAgaXNBdXRob3Jpc2VkOiBBdXRob3Jpc2F0aW9uQ2hlY2s7XG4gICAgZGVwZW5kc09uJD86IEhhc1ZhbHVlPGFueT47XG5cbiAgICByZWRpcmVjdFRvKGNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pOiAoQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4gfCBWaXNpdClbXSB8IFByb21pc2U8KENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+IHwgVmlzaXQpW10+O1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBdXRoUGxhY2VPcHRpb25zIGV4dGVuZHMgQ29tcHV0ZWRNb2RlbE1lY2hhbmljcy5Qb3N0cG9uZU9wdGlvbnMge1xuICAgIHdoZW4kPzogVmFsdWVNb2RlbDxib29sZWFuPjtcbiAgICB1bmxlc3MkPzogVmFsdWVNb2RlbDxib29sZWFuPjtcbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBBY2Nlc3NHdWFyZCBpbXBsZW1lbnRzIFBsYWNlQWNjZXNzR3VhcmQge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBhdXRoZW50aWNhdGVkOiBib29sZWFuLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGVja0F1dGg6IEF1dGhvcmlzYXRpb25DaGVja1xuICAgICkge1xuICAgIH1cblxuICAgIGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmF1dGhlbnRpY2F0ZWQ7XG4gICAgfVxuXG4gICAgaXNBdXRob3Jpc2VkKHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5jaGVja0F1dGgocGxhY2VEZWZpbml0aW9uKTtcbiAgICB9XG5cbiAgfVxuXG59XG4iXX0=
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtYXV0aC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtYXV0aC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxhQUFhLEVBR2Isb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUc5QixTQUFTLFNBQVMsQ0FBQyxZQUFrQyxFQUFFLFVBQStCO0lBQ3BGLGtGQUFrRjtJQUNsRixNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QyxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDekYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxVQUFnQyxFQUFFLE9BQStDLEVBQUUsUUFBNEM7SUFDM0osNENBQTRDO0lBQzVDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtRQUN6QixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7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SSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ2xELENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDaEQsQ0FBQztDQUNGO0FBRUQsV0FBaUIsZ0JBQWdCO0lBc0IvQixNQUFhLFdBQVc7UUFFSDtRQUNBO1FBRm5CLFlBQ21CLGFBQXNCLEVBQ3RCLFNBQTZCO1lBRDdCLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1lBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBRWhELENBQUM7UUFFRCxlQUFlO1lBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7UUFFRCxZQUFZLENBQUMsZUFBZ0M7WUFDM0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7S0FFRjtJQWZZLDRCQUFXLGNBZXZCLENBQUE7QUFFSCxDQUFDLEVBdkNnQixnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBdUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtcbiAgQW5kVmFsdWVNb2RlbCxcbiAgQ29tcHV0ZWRNb2RlbE1lY2hhbmljcyxcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgSGFzVmFsdWUsXG4gIE11bHRpTWFwTW9kZWxDaGFpbixcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgUmVkdWNpbmdWYWx1ZU1vZGVsLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtQbGFjZUFjY2Vzc0d1YXJkfSBmcm9tIFwiLi9wbGFjZS1hY2Nlc3MtZ3VhcmRcIjtcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gXCIuL3BsYWNlLWNvbXBvbmVudFwiO1xuaW1wb3J0IHtQbGFjZURlZmluaXRpb259IGZyb20gXCIuL3BsYWNlLWRlZmluaXRpb25cIjtcbmltcG9ydCB7VmlzaXR9IGZyb20gXCIuL3Zpc2l0XCI7XG5cblxuZnVuY3Rpb24gdG9Qcm9taXNlKGRpc3Bvc2VkV2l0aDogRGlzcG9zYWJsZS5Db2xsZWN0b3IsIGNvbmRpdGlvbiQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgLy8gVE9ETzogbW92ZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gcGVjdGluIHdpdGggYSB3YWl0VW5pdChtb2RlbCQpLmlzVHJ1dGh5KCkgRFNMLlxuICBjb25zdCB7d2hlbn0gPSBEc2wuZGlzcG9zZVdpdGgoZGlzcG9zZWRXaXRoKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgd2hlbihjb25kaXRpb24kKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHJlc29sdmUoKSwge29uY2U6IHRydWUsIGluaXRpYWxWYWx1ZTogXCJldmFsdWF0ZVwifSlcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdpdGhQb3N0cG9uZVVudGlsPFQ+KGRpc3Bvc2FibGU6IERpc3Bvc2FibGUuQ29sbGVjdG9yLCBvcHRpb25zOiBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLlBvc3Rwb25lT3B0aW9ucywgY2FsbGJhY2s6ICh2YWx1ZSQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pID0+IFQpOiBUIHwgdW5kZWZpbmVkIHtcbiAgLy8gVE9ETzogbW92ZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gcG93ZXJ1cHNcbiAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aChkaXNwb3NhYmxlKTtcbiAgaWYgKG9wdGlvbnMucG9zdHBvbmVVbnRpbCkge1xuICAgIHJldHVybiBjYWxsYmFjayhvcHRpb25zLnBvc3Rwb25lVW50aWwpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMucG9zdHBvbmVXaGlsZSkge1xuICAgIHJldHVybiBjYWxsYmFjayhjaGFpbihvcHRpb25zLnBvc3Rwb25lV2hpbGUpLmlzRmFsc2V5KCkpXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuXG5jbGFzcyBQbGFjZUF1dGhHdWFyZCBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWR5UHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwbGFjZURlZmluaXRpb246IFBsYWNlRGVmaW5pdGlvbixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgZW5hYmxlZCQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4sXG4gICAgICAgICAgICAgIG9wdGlvbnM6IENvbXB1dGVkTW9kZWxNZWNoYW5pY3MuUG9zdHBvbmVPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMucmVhZHlQcm9taXNlID0gd2l0aFBvc3Rwb25lVW50aWwodGhpcywgb3B0aW9ucywgY29uZGl0aW9uJCA9PiB7XG4gICAgICByZXR1cm4gdG9Qcm9taXNlKHRoaXMsIGNvbmRpdGlvbiQpXG4gICAgfSkgPz8gUHJvbWlzZS5yZXNvbHZlKClcbiAgfVxuXG4gIGFzeW5jIHdhaXRVbnRpbFJlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucmVhZHlQcm9taXNlO1xuICB9XG59XG5cblxuY2xhc3MgRW5hYmxlZFBsYWNlQ2hlY2tlciBleHRlbmRzIFJlZHVjaW5nVmFsdWVNb2RlbDxQbGFjZUF1dGhTZXJ2aWNlLkF1dGhvcmlzYXRpb25DaGVjaywgdm9pZD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VHdWFyZHMkID0gbmV3IE11dGFibGVMaXN0TW9kZWw8UGxhY2VBdXRoR3VhcmQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VHdWFyZHNCeVBsYWNlRGVmJDogTXVsdGlNYXBNb2RlbENoYWluPFBsYWNlRGVmaW5pdGlvbiwgUGxhY2VBdXRoR3VhcmQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFtdKTtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMucGxhY2VHdWFyZHNCeVBsYWNlRGVmJCA9IGNoYWluKHRoaXMucGxhY2VHdWFyZHMkKS5pbmRleE1hbnlCeShcInBsYWNlRGVmaW5pdGlvblwiKTtcbiAgfVxuXG4gIGVuYWJsZVdoZW4ocGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24sIGNvbmRpdGlvbiQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4sIG9wdGlvbnM6IENvbXB1dGVkTW9kZWxNZWNoYW5pY3MuUG9zdHBvbmVPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLnBsYWNlR3VhcmRzJC5wdXNoKG5ldyBQbGFjZUF1dGhHdWFyZChwbGFjZURlZmluaXRpb24sIGNvbmRpdGlvbiQsIG9wdGlvbnMpKTtcbiAgICB0aGlzLnRyYWNrU291cmNlKGNvbmRpdGlvbiQpO1xuICB9XG5cbiAgaXNBdXRob3Jpc2VkKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZShwbGFjZURlZik7XG4gIH1cblxuICBjb21wdXRlKHZhbHVlczogdm9pZFtdKTogKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAoZGVmKSA9PiB0aGlzLmNoZWNrUHJlZGljYXRlc0J5UGxhY2UoZGVmKVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1ByZWRpY2F0ZXNCeVBsYWNlKGRlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgY29uc3QgcGxhY2VQcmVkaWNhdGVzID0gdGhpcy5wbGFjZUd1YXJkc0J5UGxhY2VEZWYkLmdldChkZWYpO1xuICAgIGlmICghcGxhY2VQcmVkaWNhdGVzIHx8IHBsYWNlUHJlZGljYXRlcy5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBsYWNlUHJlZGljYXRlcy5yZWR1Y2UoKHN1bSwgbW9kZWwpID0+IHtcbiAgICAgICAgcmV0dXJuIHN1bSAmJiBtb2RlbC5lbmFibGVkJC52YWx1ZTtcbiAgICAgIH0sIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHdhaXRVbnRpbFJlYWR5KHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwbGFjZUF1dGhHdWFyZHMgPSB0aGlzLnBsYWNlR3VhcmRzQnlQbGFjZURlZiQuZ2V0KHBsYWNlRGVmKTtcbiAgICBpZiAocGxhY2VBdXRoR3VhcmRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChwbGFjZUF1dGhHdWFyZHMubWFwKGl0ID0+IGl0LndhaXRVbnRpbFJlYWR5KCkpKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBsYWNlQXV0aFNlcnZpY2UgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuXG4gIHByaXZhdGUgYXV0aFpPcHRpb25zOiBQbGFjZUF1dGhTZXJ2aWNlLkF1dGhvcmlzYXRpb25PcHRpb25zO1xuICBwcml2YXRlIGF1dGhOT3B0aW9uczogUGxhY2VBdXRoU2VydmljZS5BdXRoZW50aWNhdGlvbk9wdGlvbnM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0aE5SZWFkeSQgPSBuZXcgQW5kVmFsdWVNb2RlbCgpLnNldERlZmF1bHQodHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F1dGhaUmVhZHkkID0gbmV3IEFuZFZhbHVlTW9kZWwoKS5zZXREZWZhdWx0KHRydWUpO1xuICBwcml2YXRlIGF1dGhlbnRpY2F0ZWQkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KS53aXRoRGVmYXVsdCh0cnVlKTtcbiAgcHJpdmF0ZSBhdXRoQ2hlY2tlciQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8UGxhY2VBdXRoU2VydmljZS5BdXRob3Jpc2F0aW9uQ2hlY2s+KS53aXRoRGVmYXVsdCgoKSA9PiB0cnVlKTtcbiAgcHJpdmF0ZSBlbmFibGVkUGxhY2VDaGVja2VyID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEVuYWJsZWRQbGFjZUNoZWNrZXIoKSk7XG5cbiAgcmVhZG9ubHkgYWNjZXNzR3VhcmQkOiBWYWx1ZU1vZGVsPFBsYWNlQXV0aFNlcnZpY2UuQWNjZXNzR3VhcmQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmFjY2Vzc0d1YXJkJCA9IGNoYWluLnJlZHVjZSh0aGlzLmF1dGhlbnRpY2F0ZWQkLFxuICAgICAgdGhpcy5hdXRoQ2hlY2tlciQsXG4gICAgICB0aGlzLmVuYWJsZWRQbGFjZUNoZWNrZXIsXG4gICAgICAoYXV0aGVudGljYXRlZCwgYXV0aENoZWNrLCBlbmFibGVkUGxhY2VDaGVjaykgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFBsYWNlQXV0aFNlcnZpY2UuQWNjZXNzR3VhcmQoYXV0aGVudGljYXRlZCwgZGVmID0+IGF1dGhDaGVjayhkZWYpICYmIGVuYWJsZWRQbGFjZUNoZWNrKGRlZikpO1xuICAgICAgfSlcbiAgfVxuXG4gIGNvbmZpZ3VyZUF1dGhlbnRpY2F0aW9uKG9wdGlvbnM6IFBsYWNlQXV0aFNlcnZpY2UuQXV0aGVudGljYXRpb25PcHRpb25zKSB7XG4gICAgdGhpcy5hdXRoTk9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuYXV0aGVudGljYXRlZCQuc2V0RGVsZWdhdGUob3B0aW9ucy5pc0F1dGhlbnRpY2F0ZWQkKVxuICAgIHdpdGhQb3N0cG9uZVVudGlsKHRoaXMsIG9wdGlvbnMsIGNvbmRpdGlvbiQgPT4gdGhpcy5fYXV0aE5SZWFkeSQuYWRkU291cmNlKGNvbmRpdGlvbiQpKVxuICB9XG5cbiAgY29uZmlndXJlQXV0aG9yaXNhdGlvbihvcHRpb25zOiBQbGFjZUF1dGhTZXJ2aWNlLkF1dGhvcmlzYXRpb25PcHRpb25zKSB7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmF1dGhaT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgbGV0IGF1dGhDaGVja2VyJCA9IFZhbHVlTW9kZWwuY29uc3RhbnQoZGVmID0+IG9wdGlvbnMuaXNBdXRob3Jpc2VkKGRlZikpO1xuICAgIGlmIChvcHRpb25zLmRlcGVuZHNPbiQpIHtcbiAgICAgIC8vIGhhdmUgdG8gcmV0dXJuIGEgbmV3IGZ1bnRpb24gb3IgdGhlIHZhbHVlIG1vZGVsIHdvbid0IGZpcmUgYSBjaGFuZ2UgZXZlbnRcbiAgICAgIGF1dGhDaGVja2VyJCA9IGNoYWluKGF1dGhDaGVja2VyJCkubWFwKGl0ID0+IGRlZiA9PiBpdChkZWYpLCB7ZGVwZW5kc09uOiBvcHRpb25zLmRlcGVuZHNPbiR9KVxuICAgIH1cbiAgICB0aGlzLmF1dGhDaGVja2VyJC5zZXREZWxlZ2F0ZShhdXRoQ2hlY2tlciQpO1xuICAgIHdpdGhQb3N0cG9uZVVudGlsKHRoaXMsIG9wdGlvbnMsIGNvbmRpdGlvbiQgPT4gdGhpcy5fYXV0aFpSZWFkeSQuYWRkU291cmNlKGNvbmRpdGlvbiQpKVxuICB9XG5cbiAgZW5hYmxlUGxhY2UocGxhY2VEZWZpbml0aW9uOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Piwgb3B0aW9uczogUGxhY2VBdXRoU2VydmljZS5BdXRoUGxhY2VPcHRpb25zKSB7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICBjb25zdCB3aGVuJCA9IG9wdGlvbnMud2hlbiQgPyBvcHRpb25zLndoZW4kIDogY2hhaW4ob3B0aW9ucy51bmxlc3MkKS5pc0ZhbHNleSgpXG4gICAgdGhpcy5lbmFibGVkUGxhY2VDaGVja2VyLmVuYWJsZVdoZW4oUGxhY2VDb21wb25lbnQuZ2V0RGVmaW5pdGlvbihwbGFjZURlZmluaXRpb24pLCB3aGVuJCwgb3B0aW9ucyk7XG4gIH1cblxuXG4gIGFzeW5jIHdhaXRVbnRpbEF1dGhlbnRpY2F0aW9uUmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdG9Qcm9taXNlKHRoaXMsIHRoaXMuX2F1dGhOUmVhZHkkKTtcbiAgfVxuXG4gIGFzeW5jIHdhaXRVbnRpbEF1dGhvcmlzYXRpb25SZWFkeUZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdG9Qcm9taXNlKHRoaXMsIHRoaXMuX2F1dGhaUmVhZHkkKVxuICAgIGF3YWl0IHRoaXMuZW5hYmxlZFBsYWNlQ2hlY2tlci53YWl0VW50aWxSZWFkeShwbGFjZURlZilcbiAgfVxuXG4gIGdldEF1dGhlbnRpY2F0aW9uRmFpbHVyZVJlZGlyZWN0KGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFZpc2l0IHtcbiAgICBjb25zdCByZWRpcmVjdCA9IHRoaXMuYXV0aE5PcHRpb25zLnJlZGlyZWN0VG8oYWN0aXZhdGVkUm91dGUsIHN0YXRlKTtcbiAgICByZXR1cm4gcmVkaXJlY3QgaW5zdGFuY2VvZiBWaXNpdCA/IHJlZGlyZWN0IDogVmlzaXQuZ290byhyZWRpcmVjdCk7XG4gIH1cblxuICBnZXRBdXRob3Jpc2F0aW9uRmFpbHVyZVJlZGlyZWN0T3B0aW9ucyhjb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogVmlzaXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFpPcHRpb25zLnJlZGlyZWN0VG8oY29tcG9uZW50KS5tYXAoaXQgPT4gaXQgaW5zdGFuY2VvZiBWaXNpdCA/IGl0IDogVmlzaXQuZ290byhpdCkpO1xuICB9XG5cbiAgaXNBdXRoZW50aWNhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc0d1YXJkJC52YWx1ZS5pc0F1dGhlbnRpY2F0ZWQoKVxuICB9XG5cbiAgaXNBdXRob3Jpc2VkKGM6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc0d1YXJkJC52YWx1ZS5pc0F1dGhvcmlzZWQoYylcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlQXV0aFNlcnZpY2Uge1xuXG4gIGV4cG9ydCB0eXBlIEF1dGhvcmlzYXRpb25DaGVjayA9IChkZWY6IFBsYWNlRGVmaW5pdGlvbikgPT4gYm9vbGVhbjtcblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGhlbnRpY2F0aW9uT3B0aW9ucyBleHRlbmRzIENvbXB1dGVkTW9kZWxNZWNoYW5pY3MuUG9zdHBvbmVPcHRpb25zIHtcbiAgICBpc0F1dGhlbnRpY2F0ZWQkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuXG4gICAgcmVkaXJlY3RUbyhhY3RpdmF0ZWRSb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFZpc2l0IHwgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGhvcmlzYXRpb25PcHRpb25zIGV4dGVuZHMgQ29tcHV0ZWRNb2RlbE1lY2hhbmljcy5Qb3N0cG9uZU9wdGlvbnMge1xuICAgIGlzQXV0aG9yaXNlZDogQXV0aG9yaXNhdGlvbkNoZWNrO1xuICAgIGRlcGVuZHNPbiQ/OiBIYXNWYWx1ZTxhbnk+O1xuXG4gICAgcmVkaXJlY3RUbyhjb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogKENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+IHwgVmlzaXQpW107XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGhQbGFjZU9wdGlvbnMgZXh0ZW5kcyBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLlBvc3Rwb25lT3B0aW9ucyB7XG4gICAgd2hlbiQ/OiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuICAgIHVubGVzcyQ/OiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEFjY2Vzc0d1YXJkIGltcGxlbWVudHMgUGxhY2VBY2Nlc3NHdWFyZCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZWQ6IGJvb2xlYW4sXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrQXV0aDogQXV0aG9yaXNhdGlvbkNoZWNrXG4gICAgKSB7XG4gICAgfVxuXG4gICAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aGVudGljYXRlZDtcbiAgICB9XG5cbiAgICBpc0F1dGhvcmlzZWQocGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrQXV0aChwbGFjZURlZmluaXRpb24pO1xuICAgIH1cblxuICB9XG5cbn1cbiJdfQ==
|