@coolon/angular-ui-powerups 16.1.0-aplpha.12 → 16.1.0-aplpha.120
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/assets/activities/input-activities.scss +14 -6
- package/assets/form.scss +74 -27
- package/assets/icons.scss +1 -0
- package/assets/table.scss +47 -27
- package/assets/tabs.scss +2 -6
- package/esm2022/lib/animations/slide-animations.mjs +6 -1
- package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
- package/esm2022/lib/components/commands/command/command.component.mjs +24 -10
- package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
- package/esm2022/lib/components/commands/command-face.mjs +11 -11
- package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +11 -11
- package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +6 -4
- package/esm2022/lib/components/components.module.mjs +27 -8
- package/esm2022/lib/components/disposable-component.mjs +33 -40
- package/esm2022/lib/components/exports.mjs +9 -2
- package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
- package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +2 -2
- package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -6
- package/esm2022/lib/components/forms/form-field.mjs +2 -0
- package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +2 -2
- package/esm2022/lib/components/forms/number-input/number-input.component.mjs +49 -10
- package/esm2022/lib/components/forms/password-input/password-input.component.mjs +40 -3
- package/esm2022/lib/components/forms/search-input/search-input.component.mjs +33 -0
- package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -10
- package/esm2022/lib/components/forms/string-input/string-input.component.mjs +21 -9
- package/esm2022/lib/components/icon/icon.component.mjs +7 -4
- package/esm2022/lib/components/loadable-component.mjs +49 -0
- package/esm2022/lib/components/resize-aware.component.mjs +61 -24
- package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
- package/esm2022/lib/components/tables/abstract-table-model.mjs +69 -27
- package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
- package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
- package/esm2022/lib/components/tables/column/column-model.mjs +13 -3
- package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
- 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 +3 -3
- package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +1 -1
- package/esm2022/lib/components/tables/editor/edit-session.mjs +3 -1
- package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
- package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
- package/esm2022/lib/components/tables/footer/footer-row-model.mjs +38 -0
- package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +7 -0
- package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +19 -1
- 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 +3 -2
- package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +150 -40
- package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +1 -1
- package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +30 -0
- package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +7 -2
- package/esm2022/lib/components/tables/table/table-model.mjs +1 -1
- package/esm2022/lib/components/tables/table/table.component.mjs +39 -61
- package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
- 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 +12 -5
- package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +4 -4
- package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
- package/esm2022/lib/directives/directives.module.mjs +1 -1
- package/esm2022/lib/directives/exports.mjs +2 -1
- package/esm2022/lib/directives/highlight.pipe.mjs +2 -2
- package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
- package/esm2022/lib/interaction/activity.mjs +3 -4
- package/esm2022/lib/interaction/alert.mjs +2 -2
- package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +8 -4
- package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +20 -11
- package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +28 -11
- 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 +1 -1
- package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +1 -1
- 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 +3 -3
- package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +21 -5
- package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
- package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +4 -2
- package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
- package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +134 -0
- package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
- package/esm2022/lib/interaction/exports.mjs +2 -1
- package/esm2022/lib/interaction/interaction-context.mjs +3 -2
- package/esm2022/lib/interaction/interaction.module.mjs +7 -9
- package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +3 -4
- package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
- package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
- package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
- package/esm2022/lib/place/guards/place.guard.mjs +2 -1
- 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 +3 -6
- package/esm2022/lib/place/place-component.mjs +7 -7
- package/esm2022/lib/place/place-definition.mjs +3 -3
- package/esm2022/lib/place/place-history.mjs +2 -2
- package/esm2022/lib/place/place-router.mjs +20 -18
- package/esm2022/lib/place/place.decorator.mjs +2 -2
- package/esm2022/lib/place/place.module.mjs +1 -5
- package/esm2022/lib/place/route/formatter.mjs +2 -2
- package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
- package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
- 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 +1368 -567
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/animations/slide-animations.d.ts +1 -0
- package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
- package/lib/components/commands/command/command.component.d.ts +2 -1
- package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
- package/lib/components/commands/command-face.d.ts +5 -7
- package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
- package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
- package/lib/components/components.module.d.ts +56 -53
- package/lib/components/disposable-component.d.ts +15 -8
- package/lib/components/exports.d.ts +8 -1
- package/lib/components/forms/abstract-input.component.d.ts +13 -5
- package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +2 -0
- package/lib/components/forms/form-field.d.ts +5 -0
- package/lib/components/forms/number-input/number-input.component.d.ts +8 -4
- package/lib/components/forms/password-input/password-input.component.d.ts +7 -1
- package/lib/components/forms/search-input/search-input.component.d.ts +10 -0
- package/lib/components/forms/select-input/select-input.component.d.ts +4 -3
- package/lib/components/forms/string-input/string-input.component.d.ts +3 -1
- package/lib/components/loadable-component.d.ts +17 -0
- package/lib/components/resize-aware.component.d.ts +24 -5
- package/lib/components/switch-case/switch-case.component.d.ts +2 -3
- package/lib/components/tables/abstract-table-model.d.ts +27 -8
- package/lib/components/tables/abstract-table.component.d.ts +4 -3
- package/lib/components/tables/column/column-manager.d.ts +19 -0
- package/lib/components/tables/column/column-model.d.ts +7 -3
- package/lib/components/tables/column/column-order-manager.d.ts +20 -0
- package/lib/components/tables/column/custom-template-column-model.d.ts +3 -2
- package/lib/components/tables/column/custom-value-column-model.d.ts +3 -2
- package/lib/components/tables/column/editor-controls-column-model.d.ts +3 -2
- package/lib/components/tables/column/list-propery-column-model.d.ts +3 -2
- package/lib/components/tables/column/property-column-model.d.ts +3 -2
- package/lib/components/tables/column/selection-column-model.d.ts +3 -2
- 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 +9 -0
- package/lib/components/tables/footer/footer-row-model.d.ts +22 -0
- package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +6 -0
- package/lib/components/tables/renderer/cell-portal-ref.d.ts +14 -6
- package/lib/components/tables/renderer/table-body/table-body.component.d.ts +40 -16
- package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +1 -1
- package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +11 -0
- package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +2 -1
- package/lib/components/tables/table/table-model.d.ts +1 -1
- package/lib/components/tables/table/table.component.d.ts +14 -10
- 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 +3 -2
- package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
- package/lib/components/tables/tree-table/tree-table-model.d.ts +3 -2
- package/lib/directives/exports.d.ts +1 -0
- package/lib/directives/resize-observer.directive.d.ts +16 -0
- package/lib/interaction/activity.d.ts +2 -2
- package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -0
- package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +10 -5
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +7 -3
- package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
- 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 +5 -3
- package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
- package/lib/interaction/exports.d.ts +1 -0
- package/lib/interaction/interaction-context.d.ts +2 -0
- package/lib/interaction/interaction.module.d.ts +28 -28
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
- package/lib/place/place-component.d.ts +4 -4
- package/lib/place/place-router.d.ts +4 -0
- package/lib/place/place.module.d.ts +4 -5
- package/package.json +6 -4
- package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
- package/lib/components/tables/column/column-list-model.d.ts +0 -13
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assert } from '@coolon/pectin';
|
|
2
|
-
import { isEqual } from 'lodash';
|
|
2
|
+
import { isEqual } from 'lodash-es';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LWRlYWN0aXZhdGlvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFNbEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLGlDQUFpQztJQUl2QjtJQUFvQztJQUErQztJQUZoRyxvQkFBb0IsQ0FBaUM7SUFFN0QsWUFBcUIsU0FBeUIsRUFBVyxpQkFBb0MsRUFBVyxrQkFBMkI7UUFBOUcsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFBVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQVcsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO1FBQ2pJLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHlCQUF5QixDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXO0lBQ1gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUF1QixFQUFFLFNBQXNCO1FBQ2pFLDJFQUEyRTtRQUMzRSxvRkFBb0Y7UUFDcEYsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDOUIsd0ZBQXdGO1lBQ3hGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ2hGO1FBQ0QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztJQUdELFdBQVc7SUFDRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsVUFBdUIsRUFBRSxTQUFzQjtRQUNwRix5R0FBeUc7UUFDekcsK0lBQStJO1FBQy9JLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRTtZQUVyQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQzVFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsOEJBQThCLEVBQUUsQ0FBQztnQkFDbEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSw2QkFBNkI7b0JBQ2pFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDZCQUE2QixFQUFFLENBQUM7b0JBQ3BFLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7aUJBQU07Z0JBQ0wscURBQXFEO2dCQUNyRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ3hFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDL0UsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjtTQUNGO1FBRUQscURBQXFEO1FBQ3JELDhIQUE4SDtRQUM5SCwrR0FBK0c7UUFDL0csSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUM3RyxxR0FBcUc7WUFDckcsd0RBQXdEO1lBQ3hELElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3BGLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkVBQTZFLENBQUMsQ0FBQztnQkFDNUYsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELE9BQU8sUUFBUSxDQUFDO1NBQ2pCO2FBQU07WUFDTCxtREFBbUQ7WUFDbkQsT0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLCtCQUErQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQzFIO0lBQ0gsQ0FBQztJQUVTLHdCQUF3QixDQUFDLFNBQXNCO1FBQ3ZELHFGQUFxRjtRQUNyRixnRkFBZ0Y7UUFDaEYsMENBQTBDO1FBQzFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthc3NlcnR9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuaW1wb3J0IHtpc0VxdWFsfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudH0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7UGxhY2VEZWZpbml0aW9ufSBmcm9tICcuLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7VXJsU25hcHNob3R9IGZyb20gJy4uL3VybC1zbmFwc2hvdCc7XG5pbXBvcnQge05hdmlnYXRpb25TZXNzaW9ufSBmcm9tICcuL3Nlc3Npb24vbmF2aWdhdGlvbi1zZXNzaW9uJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGhhbmRsZXMgdGhlIGxvZ2ljIGFyb3VuZCBjYW5EZWFjdGl2YXRlIGZvciBhIGdpdmVuIHJvdXRlciBzdGF0ZSB0cmFuc2l0aW9uLiAgSXQncyBjb3JlIHJlc3BvbnNpYmlsaXRpZXMgYXJlOlxuICogMS4gRW5zdXJlIHdlIG9ubHkgYXNrIHRoZSBjb21wb25lbnQgdG8gZGVhY3RpdmF0ZSBvbmNlIG9uIGEgZ2l2ZW4gbmF2aWdhdGlvbiBjeWNsZSAoc2luY2UgdmlzaXQgc2FuaXRpc2F0aW9uIGNhbiByZXN1bHQgaW4gbXVsdGlwbGUgcm91bmQgdHJpcHMgdG8gdGhyb3VnaCB0aGUgcm91dGVyLilcbiAqIDIuIEVuc3VyZSBvbmx5IHRoZSBwcmltYXJ5IHBsYWNlIGNvbXBvbmVudCBpcyBhc2tlZCB3aGVuIHRoZXJlIGFyZSBuZXN0ZWQgcGxhY2VzLiAgVGhlIHByaW1hcnkgY29tcG9uZW50IGlzIHRoZSBvbmUgYXQgdGhlIHRvcFxuICogICAgb2YgdGhlIHJvdXRpbmcgY2hhbmdlIHRyZWUuXG4gKiAzLiBBdXRvbWF0aWNhbGx5IGhhbmRsZSBzdGFuZGFyZCBpbnRlcmFjdGlvbiBzY2VuYXJpb3Mgb24gdGhlIGNvbXBvbmVudHMgYmVoYWxmLlxuICovXG5leHBvcnQgY2xhc3MgUGxhY2VDb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyIHtcblxuICBwcml2YXRlIGNhbkRlYWN0aXZhdGVQcm9taXNlOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgcmVhZG9ubHkgbmF2aWdhdGlvblNlc3Npb246IE5hdmlnYXRpb25TZXNzaW9uLCByZWFkb25seSBpc1ByaW1hcnlDb21wb25lbnQ6IGJvb2xlYW4pIHtcbiAgICBhc3NlcnQubm90TmlsKGNvbXBvbmVudCk7XG4gIH1cblxuICBnZXQgcm91dGVySW50ZXJhY3Rpb25BZGFwdGVyKCkge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb25TZXNzaW9uLmludGVyYWN0aW9uU2VydmljZUFkYXB0ZXI7XG4gIH1cblxuICBnZXQgdXJsU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbi51cmxTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IHBsYWNlRGVmaW5pdGlvbigpOlBsYWNlRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbjtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRTdGF0ZTogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIC8vIFdlJ2xsIGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUncyBhbnkgcGFyYW1ldGVyIHNhbml0aXNhdGlvbiBzb1xuICAgIC8vIHdlIGFsd2F5cyByZXR1cm4gdHJ1ZSBpZiB3ZSBhY2NlcHRlZCBwcm9taXNlIGZyb20gYSBwcmV2aW91cyBjeWNsZSBvZiB0aGUgY3VycmVudFxuICAgIC8vIG5hdmlnYXRpb24gc2Vzc2lvbi5cbiAgICBpZiAoIXRoaXMuY2FuRGVhY3RpdmF0ZVByb21pc2UpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBjcmVhdGluZyBkZWFjdGl2YXRlIHByb21pc2UgZm9yIC0+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-es';
|
|
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,10 +13,7 @@ export class SynchroniseInteractionContextIdsWithRoute extends NavigationSession
|
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
15
15
|
notifyActive() {
|
|
16
|
-
|
|
17
|
-
setTimeout(() => {
|
|
18
|
-
this.syncInteractionIdsWithRouter();
|
|
19
|
-
});
|
|
16
|
+
this.syncInteractionIdsWithRouter();
|
|
20
17
|
}
|
|
21
18
|
// @Trace()
|
|
22
19
|
onRouterEnd(event) {
|
|
@@ -86,4 +83,4 @@ export class SynchroniseInteractionContextIdsWithRoute extends NavigationSession
|
|
|
86
83
|
lang.methodNotSupported();
|
|
87
84
|
}
|
|
88
85
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY2hyb25pc2UtaW50ZXJhY3Rpb24tY29udGV4dC1pZHMtd2l0aC1yb3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL25hdmlnYXRpb24vc2Vzc2lvbi9pbnRlcmFjdGlvbnMvc3luY2hyb25pc2UtaW50ZXJhY3Rpb24tY29udGV4dC1pZHMtd2l0aC1yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFbEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsNkNBQTZDLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUVwSCxNQUFNLE9BQU8seUNBQTBDLFNBQVEsaUJBQWlCO0lBSVI7SUFGN0QsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUU1QixZQUFZLE9BQTBCLEVBQUUsV0FBbUIsRUFBVyxzQkFBK0I7UUFDbkcsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUR3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVM7SUFFckcsQ0FBQztJQUVELElBQWEsaUJBQWlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUdRLFlBQVk7UUFDbkIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVc7SUFDRixXQUFXLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO0lBQ0YsaUJBQWlCLENBQUMsS0FBdUI7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lB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ZW50IjpbImltcG9ydCB7TmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7bGFuZ30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5cbmltcG9ydCB7aXNFcXVhbH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7TmF2aWdhdGlvbkNvbnRleHR9IGZyb20gJy4uL25hdmlnYXRpb24tY29udGV4dCc7XG5pbXBvcnQge05hdmlnYXRpb25TZXNzaW9ufSBmcm9tICcuLi9uYXZpZ2F0aW9uLXNlc3Npb24nO1xuaW1wb3J0IHtSZW1vdmVMYXN0SW50ZXJhY3Rpb25Gcm9tVXJsTmF2aWdhdGlvblNlc3Npb259IGZyb20gJy4vcmVtb3ZlLWxhc3QtaW50ZXJhY3Rpb24tZnJvbS11cmwtbmF2aWdhdGlvbi1zZXNzaW9uJztcblxuZXhwb3J0IGNsYXNzIFN5bmNocm9uaXNlSW50ZXJhY3Rpb25Db250ZXh0SWRzV2l0aFJvdXRlIGV4dGVuZHMgTmF2aWdhdGlvblNlc3Npb24ge1xuXG4gIHJlYWRvbmx5IGlzUG9wU3RhdGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCwgc3RhcnRpbmdVcmw6IHN0cmluZywgcmVhZG9ubHkgd2FzVHJpZ2dlcmVkQnlQb3BTdGF0ZTogYm9vbGVhbikge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0YXJ0aW5nVXJsKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBpc0ludGVyYWN0aW9uU3luYygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG5cbiAgb3ZlcnJpZGUgbm90aWZ5QWN0aXZlKCkge1xuICAgIHRoaXMuc3luY0ludGVyYWN0aW9uSWRzV2l0aFJvdXRlcigpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb3ZlcnJpZGUgb25Sb3V0ZXJFbmQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG92ZXJyaWRlIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBzeW5jSW50ZXJhY3Rpb25JZHNXaXRoUm91dGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRJZHMgPSB0aGlzLmludGVyYWN0aW9uU2VydmljZUFkYXB0ZXIuZ2V0QWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzKCk7XG4gICAgY29uc3QgcHJldmlvdXNJZHMgPSB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudExvY2F0aW9uVXJsU25hcHNob3QoKS5nZXRJbnRlcmFjdGlvbklkcygpO1xuICAgIC8vIGNvbnNvbGUubG9nKGAtLS0+IHN5bmNocm9uaXNlSW50ZXJhY3Rpb25JZHNgLCB7IGlzOiBjdXJyZW50SWRzLmpvaW4oJywnKSwgd2FzOiBwcmV2aW91c0lkcy5qb2luKCcsJykgfSk7XG4gICAgaWYgKGlzRXF1YWwoY3VycmVudElkcywgcHJldmlvdXNJZHMpKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnIyMjIEFjdGl2aXR5IGNvbnRleHQgaWRzIHdlcmUgdGhlIHNhbWUsIHNraXBwaW5nJyk7XG4gICAgICB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGN1cnJlbnRJZHMubGVuZ3RoID4gcHJldmlvdXNJZHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RBY3Rpdml0eSA9IGN1cnJlbnRJZHMubGVuZ3RoID4gcHJldmlvdXNJZHMubGVuZ3RoICYmIHByZXZpb3VzSWRzLmxlbmd0aCA8IDE7XG4gICAgICAgIHRoaXMuYWRkQWN0aXZpdHlDb250ZXh0VG9Sb3V0ZShjdXJyZW50SWRzLCBpc0ZpcnN0QWN0aXZpdHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBY3Rpdml0eUNvbnRleHRGcm9tUm91dGUoY3VycmVudElkcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYWRkQWN0aXZpdHlDb250ZXh0VG9Sb3V0ZShhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHM6IHJlYWRvbmx5IHN0cmluZ1tdLCBpc0ZpcnN0OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgdXJsU25hcHNob3QgPSB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudFJvdXRlclNuYXBzaG90KCkudXBkYXRlSW50ZXJhY3Rpb25JZHMoYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzKTtcbiAgICB0aGlzLmNvbnRleHQubmF2aWdhdGVCeVVybCh1cmxTbmFwc2hvdCwge1xuICAgICAgcmVwbGFjZVVybDogIWlzRmlyc3RcbiAgICB9KS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICBpZiAoIXRoaXMudXJsU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb25VcmxTbmFwc2hvdCgpLmhhc0ludGVyYWN0aW9uSWRzKGFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcykpIHtcbiAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYEV4cGVjdGVkIHVybCB0byBiZSAke3VybFNuYXBzaG90LnVybH0gYnV0IHdhcyAke3RoaXMudXJsU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb25VcmwoKX1gKTtcbiAgICAgICAgLy8gdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybFNuYXBzaG90LnVybCwge3JlcGxhY2VDdXJyZW50OiAhaXNGaXJzdH0pXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuXG4gIC8vIEBUcmFjZSgpXG4gIHJlbW92ZUFjdGl2aXR5Q29udGV4dEZyb21Sb3V0ZShhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZDogcmVhZG9ubHkgc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCB1cmxTbmFwc2hvdCA9IHRoaXMudXJsU2VydmljZS5nZXRDdXJyZW50Um91dGVyU25hcHNob3QoKS51cGRhdGVJbnRlcmFjdGlvbklkcyhhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZCk7XG4gICAgY29uc3QgaXNSZW1vdmluZ0xhc3RBY3Rpdml0eSA9IGFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkLmxlbmd0aCA8IDE7XG4gICAgaWYgKGlzUmVtb3ZpbmdMYXN0QWN0aXZpdHkpIHtcbiAgICAgIGlmICh0aGlzLndhc1RyaWdnZXJlZEJ5UG9wU3RhdGUpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3JlbW92YWwgd2FzIHRyaWdnZXJlZCBieSBwb3Agc3RhdGUsIG5vdGhpbmcgdG8gZG8uJyk7XG4gICAgICAgIC8vICAgbm9vcC4gIE91ciB1cmwgd2lsbCBiZSBiYWNrIHRvIHRoZSBub24gaW50ZXJhY3Rpb24gdmVyc2lvbiBub3cgc28gd2UgZG9udCcgbmVlZCB0byBkbyBhbnl0aGluZy5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG5vdyB3ZSBqdXN0IHBvcCBvdXIgaW50ZXJhY3Rpb24gaWQncyBmcm9tIHRoZSBicm93c2VyIGhpc3RvcnkuXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBSZW1vdmFsIG9mIHRoZSBsYXN0IGFjdGl2aXR5IHdhc24ndCB0cmlnZ2VyZWQgYnkgcG9wIHN0YXRlIHNvIHdlIGhhdmUgdG8gdHJpZ2dlciBvbmUgdG8gY2xlYW4gdGhlIGhpc3RvcnlgKTtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBSZW1vdmVMYXN0SW50ZXJhY3Rpb25Gcm9tVXJsTmF2aWdhdGlvblNlc3Npb24odGhpcy5jb250ZXh0LCB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudFJvdXRlclVybCgpKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnRyYW5zaXRpb25UbyhzZXNzaW9uKTtcbiAgICAgICAgdGhpcy51cmxTZXJ2aWNlLmJhY2soKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gd2UndmUgcmVtb3ZlZCBhbiBpbnRlcmFjdGlvbiwgYnV0IHdlIHN0aWxsIGhhdmUgcmVtYWluaW5nIGFjdGl2aXRpZXMgc28gd2VcbiAgICAgIC8vIHVwZGF0ZSB0aGUgdXJsIGluIHBsYWNlIGlmIGl0IHdhc24ndCBhIHBvcCBzdGF0ZS4gSWYgaXQgd2FzIGEgcG9wIHN0YXRlIHdlIG5lZWRcbiAgICAgIC8vIHRvICBwdXNoIGl0IGJhY2sgdXAuXG4gICAgICAvLyB0aGlzLnVybFNlcnZpY2UucmVzZXRCcm93c2VyTG9jYXRpb24odXJsU25hcHNob3QudXJsLCB7IHJlcGxhY2VDdXJyZW50OiAhdGhpcy53YXNUcmlnZ2VyZWRCeVBvcFN0YXRlIH0pO1xuICAgICAgdGhpcy5jb250ZXh0Lm5hdmlnYXRlQnlVcmwodXJsU25hcHNob3QsIHtyZXBsYWNlVXJsOiAhdGhpcy53YXNUcmlnZ2VyZWRCeVBvcFN0YXRlfSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2FuRGVhY3RpdmF0ZUNhbmNlbGxlZEV2ZW50U2NlbmFyaW8obmV3VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsYW5nLm1ldGhvZE5vdFN1cHBvcnRlZCgpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -2,11 +2,10 @@ import { __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { Directive, inject } from '@angular/core';
|
|
3
3
|
import { ActivatedRouteSnapshot } from '@angular/router';
|
|
4
4
|
import { assert, Binding, DebugContext, Dsl, Guard, lang, ListModel, MutableValueModel } from '@coolon/pectin';
|
|
5
|
-
import { Klass } from '@coolon/typescript-utilities';
|
|
6
|
-
import {
|
|
7
|
-
import { isNil } from 'lodash';
|
|
5
|
+
import { Klass, MemoizeGet } from '@coolon/typescript-utilities';
|
|
6
|
+
import { isNil } from 'lodash-es';
|
|
8
7
|
import 'reflect-metadata';
|
|
9
|
-
import {
|
|
8
|
+
import { LoadableComponent } from "../components/loadable-component";
|
|
10
9
|
import { PlaceDefinition } from './place-definition';
|
|
11
10
|
import { PlaceRouter } from "./place-router";
|
|
12
11
|
import * as i0 from "@angular/core";
|
|
@@ -22,7 +21,7 @@ export const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');
|
|
|
22
21
|
// return true;
|
|
23
22
|
// }
|
|
24
23
|
// }
|
|
25
|
-
export class PlaceComponent extends
|
|
24
|
+
export class PlaceComponent extends LoadableComponent {
|
|
26
25
|
_placeReadyCallbacks = [];
|
|
27
26
|
visitModel = new MutableValueModel();
|
|
28
27
|
_inVisitUpdate = new Guard();
|
|
@@ -79,6 +78,7 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
79
78
|
*/
|
|
80
79
|
installAndInitialiseBinding(initialVisit, parameterDef) {
|
|
81
80
|
const model = this[parameterDef.propertyName];
|
|
81
|
+
assert.notNil(model);
|
|
82
82
|
DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);
|
|
83
83
|
const binding = this.registerDisposable(new Binding(this.visitModel, model, {
|
|
84
84
|
toRight(visit) {
|
|
@@ -163,7 +163,7 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
163
163
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: PlaceComponent, usesInheritance: true, ngImport: i0 });
|
|
164
164
|
}
|
|
165
165
|
__decorate([
|
|
166
|
-
|
|
166
|
+
MemoizeGet(),
|
|
167
167
|
__metadata("design:type", PlaceDefinition),
|
|
168
168
|
__metadata("design:paramtypes", [])
|
|
169
169
|
], PlaceComponent.prototype, "placeDefinition", null);
|
|
@@ -201,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
201
201
|
// initialValue: 'evaluationUnlessNil' | 'evaluate'
|
|
202
202
|
// }
|
|
203
203
|
})(PlaceComponent || (PlaceComponent = {}));
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFFUCxZQUFZLEVBQ1osR0FBRyxFQUNILEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEUsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUM3QixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXZFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTNDLDhDQUE4QztBQUM5QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRywwQkFBMEIsQ0FBQztBQUNuRSxxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFHekUsd0NBQXdDO0FBQ3hDLHVLQUF1SztBQUN2SyxNQUFNO0FBQ04sRUFBRTtBQUNGLHdGQUF3RjtBQUN4RixtQkFBbUI7QUFDbkIsTUFBTTtBQUNOLElBQUk7QUFHSixNQUFNLE9B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QUFDO1NBQzdFO0lBQ0gsQ0FBQztJQVZlLDRCQUFhLGdCQVU1QixDQUFBO0lBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBb0MsRUFBRSxVQUEyQjtRQUNoRyxPQUFPLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRmUsK0JBQWdCLG1CQUUvQixDQUFBO0lBRUQsNEhBQTRIO0lBRTVILHNDQUFzQztJQUN0QyxxREFBcUQ7SUFDckQsSUFBSTtBQUdOLENBQUMsRUFqQ2dCLGNBQWMsS0FBZCxjQUFjLFFBaUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgYXNzZXJ0LFxuICBCaW5kaW5nLFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWJ1Z0NvbnRleHQsXG4gIERzbCxcbiAgR3VhcmQsXG4gIElNdXRhYmxlSGFzVmFsdWUsXG4gIGxhbmcsXG4gIExpc3RNb2RlbCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxcbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtLbGFzc30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQge01lbW9pemV9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvcic7XG5pbXBvcnQge2lzTmlsfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7UGxhY2VSb3V0ZXJ9IGZyb20gXCIuL3BsYWNlLXJvdXRlclwiO1xuaW1wb3J0IHtQYXJhbWV0ZXJEZWZpbml0aW9ufSBmcm9tICcuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmltcG9ydCB7VXJsU25hcHNob3R9IGZyb20gJy4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tICcuL3Zpc2l0LXNlZ21lbnQnO1xuXG5cbi8vIFJBS0U6IG1ha2luZyB0aGlzIFN5bWJvbCguLi4pIGJyb2tlIHRoaW5ncy5cbmV4cG9ydCBjb25zdCBERUZJTklUSU9OX01FVEFfREFUQV9LRVkgPSAnUExBQ0VfREVGSU5JVElPTl9PUFRJT05TJztcbi8vIHRoaXMgb25lIHNlZW1zIG9rLlxuZXhwb3J0IGNvbnN0IFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSA9IFN5bWJvbCgncGxhY2U6cm91dGU6cGFyYW1ldGVycycpO1xuXG5cbi8vIGNsYXNzIFBhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yPFQ+IHtcbi8vICAgY29uc3RydWN0b3IocGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+LCBtb2RlbDogVmFsdWVNb2RlbDxUPiwgY2FsbGJhY2s6IFBsYWNlQ29tcG9uZW50LkludGVyY2VwdENhbGxiYWNrPFQ+LCBvcHRpb25zOiBQbGFjZUNvbXBvbmVudC5JbnRlcmNlcHRPcHRpb25zKSB7XG4vLyAgIH1cbi8vXG4vLyAgIGFzeW5jIGNhblByb2NlZWQobmV4dFN0YXRlOiBWaXNpdFNlZ21lbnQsIGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4vLyAgICAgcmV0dXJuIHRydWU7XG4vLyAgIH1cbi8vIH1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUGxhY2VDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wbGFjZVJlYWR5Q2FsbGJhY2tzOiAoKCk9PnZvaWQpW10gPSBbXTtcbiAgcHJpdmF0ZSB2aXNpdE1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFZpc2l0U2VnbWVudD4oKTtcbiAgcHJpdmF0ZSBfaW5WaXNpdFVwZGF0ZSA9IG5ldyBHdWFyZCgpO1xuICBwcml2YXRlIF9hY3RpdmUgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGludGVyYWN0aW9uQ29udGV4dD86IEludGVyYWN0aW9uQ29udGV4dDtcbiAgcmVhZG9ubHkgY2hpbGRQbGFjZXMkOiBMaXN0TW9kZWw8Q29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4+O1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IF9wYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcnM6IFBhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yPGFueT5bXSA9IFtdO1xuXG5cbiAgY2FuRGVhY3RpdmF0ZT8oaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPjtcblxuXG4gIHByb3RlY3RlZCByZWFkb25seSBwbGFjZVJvdXRlciA9IGluamVjdChQbGFjZVJvdXRlcik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9ufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuKHRoaXMuX2FjdGl2ZSkuYmVjb21lc1RydXRoeSgoKSA9PiB0aGlzLl9ub3RpZnlQbGFjZVJlYWR5KCkpO1xuICAgIHRoaXMuY2hpbGRQbGFjZXMkID0gTGlzdE1vZGVsLmNvbnN0YW50KHRoaXMucGxhY2VEZWZpbml0aW9uLmNoaWxkcmVuLm1hcChkID0+IGQuY29tcG9uZW50KSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGlzZVZpc2l0KHZpc2l0OiBWaXNpdFNlZ21lbnQsIG5vdGlmeVZpc2l0Q2hhbmdlZDogKGN1cnJlbnQ6IFZpc2l0U2VnbWVudCwgcHJldmlvdXM6IFZpc2l0U2VnbWVudCkgPT4gdm9pZCkge1xuICAgIGFzc2VydC5pc05pbCh0aGlzLnZpc2l0TW9kZWwudmFsdWUpO1xuXG4gICAgY29uc3Qge3doZW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuXG4gICAgdGhpcy52aXNpdE1vZGVsLnZhbHVlID0gdmlzaXQ7XG4gICAgRGVidWdDb250ZXh0LmdldE9yQ3JlYXRlKHRoaXMudmlzaXRNb2RlbCkudGFnKGAke3RoaXMucGxhY2VEZWZpbml0aW9uLmNvbXBvbmVudC5uYW1lfS52aXNpdE1vZGVsYCk7XG5cbiAgICAvLyB3ZSB0cmFjayBpZiB0aGUgYW55IG9mIHRoZSBiaW5kaW5ncyB1cGRhdGVkIHRoZSByb3V0ZS4gIElmIHNvIHdlIHJlbWVtYmVyIGl0IGFuZCB1cGRhdGUgdGhlXG4gICAgLy8gcm91dGUgaW4gb25lIGdvIGF0IHRoZSBlbmQuXG4gICAgdGhpcy5wbGFjZURlZmluaXRpb25cbiAgICAgIC5nZXRWaXNpdFBhcmFtZXRlckRlZnMoKVxuICAgICAgLmZvckVhY2gocGFyYW1ldGVyRGVmID0+IHRoaXMuaW5zdGFsbEFuZEluaXRpYWxpc2VCaW5kaW5nKHZpc2l0LCBwYXJhbWV0ZXJEZWYpKTtcblxuICAgIHdoZW4odGhpcy52aXNpdE1vZGVsKS5jaGFuZ2VzKChjdXJyZW50LCBwcmV2aW91cykgPT4ge1xuICAgICAgbm90aWZ5VmlzaXRDaGFuZ2VkKGN1cnJlbnQsIHByZXZpb3VzKTtcbiAgICB9LCB7dW5sZXNzOiB0aGlzLl9pblZpc2l0VXBkYXRlfSk7XG5cbiAgICAvLyBUT0RPOiB0aGlzIG5lZWRzIHRvIGRvIGEgcmVwbGFjZSB1cmwgb3B0aW9uIHNvIHRoYXQgdGhlIG5ldyB1cmwgaXNuJ3QgcHV0IGluIHRoZSBoaXN0b3J5Li4uLiBmb3JcbiAgICAvLyAgICAgICBub3cgd2UncmUgbm90IGRvaW5nIGl0IGFzIGl0J3MgYSBmYWlyIGJpdCBvZiBlZmZvcnQgYW5kIHdpbGwgb25seSBhZmZlY3QgcGVvcGxlIGlmIHRoZXkncmVcbiAgICAvLyAgICAgICBjdXR0aW5nIGFuZCBwYXN0aW5nIHVybHMgdG8gZWFjaCBvdGhlci5cbiAgICAvLyAvLyB0aGUgYmluZGluZyBwcm9jZXNzIGNhbiB1cGRhdGUgdGhlIHZpc2l0IChlLmcuIGlmIGEgc2VsZWN0aW9uIG1vZGVsIGhhcyBhbHJlYWR5IHNlbGVjdGVkIGR1cmluZ1xuICAgIC8vIC8vIGNvbXBvbmVudCBjb25zdHJ1Y3Rpb24pIGFuZCB0aGVyZSB3YXMgbm8gdmFsdWUgc3BlY2lmaWVkIGluIHRoZSByb3V0ZVxuICAgIC8vIGlmICh2aXNpdC5oYXNSb3V0aW5nQ2hhbmdlZEZyb20odGhpcy52aXNpdE1vZGVsLnZhbHVlKSkge1xuICAgIC8vICAgbm90aWZ5VmlzaXRDaGFuZ2VkKHRoaXMudmlzaXRNb2RlbC52YWx1ZSwgdmlzaXQpXG4gICAgLy8gfVxuICB9XG5cbiAgZ2V0IGNoaWxkUGxhY2VzKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkUGxhY2VzJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVWaXNpdCh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuaXNJbml0aWFsaXNlZCgpKTtcbiAgICBhc3NlcnQubm90TmlsKHZpc2l0KTtcbiAgICB0aGlzLl9pblZpc2l0VXBkYXRlLndoaWxlVHJ1ZSgoKSA9PiB7XG4gICAgICB0aGlzLnZpc2l0TW9kZWwudmFsdWUgPSB2aXNpdDtcbiAgICB9KTtcbiAgfVxuXG4gIGlzSW5pdGlhbGlzZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy52aXNpdE1vZGVsLnZhbHVlO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgLyoqXG4gICAqIEluaXRpYWxpc2VkIHRoZSBjb21wb25lbnQgYmluZGluZ3MuICBJZiBhbnkgYmluZGluZyBoYXMgYW4gaW5pdGlhbCBtb2RlbCB2YWx1ZSAoZS5nLiBhIHNlbGVjdGlvbiBtb2RlbFxuICAgKiBpbml0aWFsaXNlZCBkdXJpbmcgdGhlIGNvbnN0cnVjdG9yKSBhbmQgdGhlIHJvdXRlIGhhcyBub3RoaW5nLCB0aGVuIHRoZSB2aXNpdCB3aWxsIGJlIHVkcGF0ZWQgYW5kIHRoaXNcbiAgICogbWV0aG9kIHdpbGwgcmV0dXJuIHR1cmUgdG8gbm9maXkgdGhlIHRoZSB2aXNpdCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbEFuZEluaXRpYWxpc2VCaW5kaW5nPFQsIFM+KGluaXRpYWxWaXNpdDogVmlzaXRTZWdtZW50LCBwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VCwgUz4pIHtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXNbcGFyYW1ldGVyRGVmLnByb3BlcnR5TmFtZV0gYXMgSU11dGFibGVIYXNWYWx1ZTxUPjtcbiAgICBEZWJ1Z0NvbnRleHQudGFnKG1vZGVsLCBgJHt0aGlzLnBsYWNlRGVmaW5pdGlvbi5jb21wb25lbnQubmFtZX0uJHtwYXJhbWV0ZXJEZWYucHJvcGVydHlOYW1lfWApO1xuICAgIGNvbnN0IGJpbmRpbmcgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgQmluZGluZyh0aGlzLnZpc2l0TW9kZWwsIG1vZGVsLCB7XG4gICAgICB0b1JpZ2h0KHZpc2l0OiBWaXNpdFNlZ21lbnQpOiBUIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2aXNpdC5nZXRQYXJhbWV0ZXJWYWx1ZShwYXJhbWV0ZXJEZWYpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygncHVzaCB0byBjb21wb25lbnQnLCB7IG5hbWU6IHBhcmFtZXRlckRlZi5uYW1lLCB2YWx1ZSwgdmlzaXQgfSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0sXG4gICAgICB0b0xlZnQodmFsdWU6IFQsIGN1cnJlbnRWaXNpdD86IFZpc2l0U2VnbWVudCk6IFZpc2l0U2VnbWVudCB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdwdXNoIHRvIHJvdXRlJywgeyBuYW1lOiBwYXJhbWV0ZXJEZWYubmFtZSwgdmFsdWUsIGN1cnJlbnRWaXNpdCB9KTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRWaXNpdC5yZXBsYWNlKHBhcmFtZXRlckRlZiwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pKTtcblxuICAgIC8vIE5vdyB3ZSBuZWVkIHRvIGluaXRpYWxpc2UgdGhlIGJpbmRpbmcgZGlyZWN0aW9uLiAgSWYgd2UgaGF2ZSBhIHZhbHVlIGluIHRoZSBVcmwgdGhlbiB3ZSBzaG91bGQgYWx3YXlzIHB1c2hcbiAgICAvLyB0aGF0IHRvIHRoZSB2aWV3LiAgSWYgd2UgZG9uJ3QgYW5kIHRoZSB2aWV3IGFscmVhZHkgaGFzIGEgdmFsdWUgKGUuZy4gYSBzZWxlY3Rpb24gbW9kZWwgaGFzIGFscmVhZHkgaW5pdGlhbGlzZWQgaW4gdGhlXG4gICAgLy8gY29tcG9uZW50IGNvbnN0cnVjdG9yKSB0aGVuIHdlIHNob3VsZCBwdXNoIHRoYXQgdG8gdGhlIHJvdXRlLlxuICAgIGNvbnN0IGlzSW5WaXNpdCA9ICFpc05pbChpbml0aWFsVmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUocGFyYW1ldGVyRGVmKSk7XG4gICAgY29uc3QgaXNJbk1vZGVsID0gIWlzTmlsKG1vZGVsLnZhbHVlKTtcbiAgICBpZiAoIWlzSW5WaXNpdCAmJiBpc0luTW9kZWwpIHtcbiAgICAgIGJpbmRpbmcud3JpdGVMZWZ0KCk7IC8vIHB1c2ggaXQgdG8gdGhlIHJvdXRlXG4gICAgfSBlbHNlIHtcbiAgICAgIGJpbmRpbmcud3JpdGVSaWdodCgpOyAvLyBwdXNoIGl0IHRvIHRoZSBtb2RlbFxuICAgIH1cbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0IHBsYWNlRGVmaW5pdGlvbigpOiBQbGFjZURlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHRoaXMuY29uc3RydWN0b3IgYXMgYW55IGFzIENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTtcbiAgICBpZiAoIWRlZmluaXRpb24pIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gZXh0ZW5kcyBQbGFjZUNvbXBvbmVudCBidXQgZG9lc24ndCBoYXZlIEBQbGFjZSh7Li59KSBkZWNvcmF0b3IuYClcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBnZXQgYWN0aXZlKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmUucmVhZG9ubHkkO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgcm91dGVyIHRvIHNlZSBpZiB0aGlzIGNvbXBvbmVudCBjYW4gZGVhY3RpdmF0ZS4gIFRoaXMgaXNuJ3QgY2FsbGVkIGZvciByb3V0ZSBwYXJhbWV0ZXIgY2hhbmdlcy5cbiAgICogQHBhcmFtIGludGVyYWN0aW9uQ29udGV4dFxuICAgKi9cbiAgYXN5bmMgX2NhbkxlYXZlUGxhY2UoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jYW5EZWFjdGl2YXRlID8gdGhpcy5jYW5EZWFjdGl2YXRlKGludGVyYWN0aW9uQ29udGV4dCkgOiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgcm91dGVyIHRvIHNlZSBpZiB0aGlzIGNvbXBvbmVudCBjYW4gZGVhY3RpdmF0ZS4gIFRoaXMgaXNuJ3QgY2FsbGVkIGZvciByb3V0ZSBwYXJhbWV0ZXIgY2hhbmdlcy5cbiAgICogQHBhcmFtIGludGVyYWN0aW9uQ29udGV4dFxuICAgKiBAcGFyYW0gbmV4dFN0YXRlXG4gICAqL1xuICBhc3luYyBfY2FuQ2hhbmdlUm91dGVQYXJhbWV0ZXJzKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0LCBuZXh0U3RhdGU6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgLy8gaWYgKHRoaXMuX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgLy8gICBjb25zdCB2aXNpdCA9IG5leHRTdGF0ZS5jcmVhdGVWaXNpdFNlZ21lbnRGb3IodGhpcy5wbGFjZURlZmluaXRpb24pO1xuICAgIC8vICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9wYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAvLyAgICAgY29uc3QgaW50ZXJjZXB0b3IgPSB0aGlzLl9wYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcnNbaV07XG4gICAgLy8gICAgIGNvbnN0IGtlZXBHb2luZyA9IGF3YWl0IGludGVyY2VwdG9yLmNhblByb2NlZWQodmlzaXQsIGludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgLy8gICAgIGlmICgha2VlcEdvaW5nKSB7XG4gICAgLy8gICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSByb3V0ZXIgd2hlbiB0aGUgcGxhY2UgaXMgcmVhZHkgdG8gaW50ZXJhY3QgYWZ0ZXIgYW55IGFuaW1hdGlvbnMgaGF2ZSBydW4uXG4gICAqL1xuICBfbm90aWZ5QWN0aXZlKGFjdGl2ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2FjdGl2ZS52YWx1ZSA9IGFjdGl2ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJvdXRlciB3aGVuIHRoZSBwbGFjZSBpcyByZWFkeSB0byBpbnRlcmFjdCBhZnRlciBhbnkgYW5pbWF0aW9ucyBoYXZlIHJ1bi5cbiAgICovXG4gIF9ub3RpZnlQbGFjZVJlYWR5KCkge1xuICAgIGlmICh0aGlzLm9uUGxhY2VSZWFkeS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuX3BsYWNlUmVhZHlDYWxsYmFja3MuZm9yRWFjaChjYWxsYmFjayA9PiBjYWxsYmFjaygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdPdmVycmlkaW5nIFBsYWNlQ29tcG9uZW50Lm9uUGxhY2VSZWFkeSBoYXMgYmVlbiBkZXByZWNhdGVkLiAgVXNlIFBsYWNlQ29tcG9uZW50Lm9uUGxhY2VSZWFkeSgoKSA9PiB7Li4uIGRvIHN0dWZmLi4ufSkgaW5zdGVhZC4nKTtcbiAgICAgIHRoaXMub25QbGFjZVJlYWR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgb25QbGFjZVJlYWR5KGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fcGxhY2VSZWFkeUNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIGludGVyY2VwdFZpc2l0UGFyYW1ldGVyQ2hhbmdlPFQ+KG1vZGVsOiBWYWx1ZU1vZGVsPFQ+LCBjYWxsYmFjazogUGxhY2VDb21wb25lbnQuSW50ZXJjZXB0Q2FsbGJhY2s8VD4sIG9wdGlvbnM/OiBQbGFjZUNvbXBvbmVudC5JbnRlcmNlcHRPcHRpb25zKSB7XG4gIC8vICAgY29uc3QgcGFyYW1ldGVyRGVmID0gUGFyYW1ldGVyRGVmaW5pdGlvbi5nZXQobW9kZWwpO1xuICAvLyAgIHRoaXMuX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9ycy5wdXNoKG5ldyBQYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcihwYXJhbWV0ZXJEZWYsIG1vZGVsLCBjYWxsYmFjaywgb3B0aW9ucykpO1xuICAvLyB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZUNvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzUGxhY2VDb21wb25lbnRDb25zdHJ1Y3Rvcih0YXJnZXQ6IGFueSk6IHRhcmdldCBpcyBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIGxhbmcuY29uc3RydWN0b3JDaGFpbih0YXJnZXQgYXMgQ29uc3RydWN0YWJsZTxhbnk+KS5pbmNsdWRlcyhQbGFjZUNvbXBvbmVudCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVQYXJhbWV0ZXJzKGtsYXNzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICByZXR1cm4gS2xhc3MuZ2V0KGtsYXNzKS5nZXRNZXRhZGF0YUxpc3QoUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZKSBhcyBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXREZWZpbml0aW9uKHNuYXBzaG90T3JDb25zdHJ1Y3RvcjogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogUGxhY2VEZWZpbml0aW9uIHtcbiAgICBpZiAoc25hcHNob3RPckNvbnN0cnVjdG9yIGluc3RhbmNlb2YgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkge1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gc25hcHNob3RPckNvbnN0cnVjdG9yLmNvbXBvbmVudDtcbiAgICAgIGlmICghaXNQbGFjZUNvbXBvbmVudENvbnN0cnVjdG9yKGNvbXBvbmVudCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IGNvbXBvbmVudCBpcyBub3QgYSBQbGFjZUNvbXBvbmVudCwgZ290ICR7Y29tcG9uZW50fWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZLCBjb21wb25lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShERUZJTklUSU9OX01FVEFfREFUQV9LRVksIHNuYXBzaG90T3JDb25zdHJ1Y3Rvcik7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGluamVjdERlZmluaXRpb24oa2xhc3M6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCBkZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKERFRklOSVRJT05fTUVUQV9EQVRBX0tFWSwgZGVmaW5pdGlvbiwga2xhc3MpO1xuICB9XG5cbiAgLy8gZXhwb3J0IHR5cGUgSW50ZXJjZXB0Q2FsbGJhY2s8VD4gPSAoaXM6IFQsIHdhczogVCwgaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8vIGV4cG9ydCBpbnRlcmZhY2UgSW50ZXJjZXB0T3B0aW9ucyB7XG4gIC8vICAgaW5pdGlhbFZhbHVlOiAnZXZhbHVhdGlvblVubGVzc05pbCcgfCAnZXZhbHVhdGUnXG4gIC8vIH1cblxuXG59XG4iXX0=
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFFUCxZQUFZLEVBQ1osR0FBRyxFQUNILEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTNDLDhDQUE4QztBQUM5QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRywwQkFBMEIsQ0FBQztBQUNuRSxxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFHekUsd0NBQXdDO0FBQ3hDLHVLQUF1SztBQUN2SyxNQUFNO0FBQ04sRUFBRTtBQUNGLHdGQUF3RjtBQUN4RixtQkFBbUI7QUFDbkIsTUFBTTtBQUNOLElBQUk7QUFHSixNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQjtJQUVsQyxvQkFBb0Is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QixDQUFDLENBQUM7U0FDN0U7SUFDSCxDQUFDO0lBVmUsNEJBQWEsZ0JBVTVCLENBQUE7SUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFvQyxFQUFFLFVBQTJCO1FBQ2hHLE9BQU8sQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFGZSwrQkFBZ0IsbUJBRS9CLENBQUE7SUFFRCw0SEFBNEg7SUFFNUgsc0NBQXNDO0lBQ3RDLHFEQUFxRDtJQUNyRCxJQUFJO0FBR04sQ0FBQyxFQWpDZ0IsY0FBYyxLQUFkLGNBQWMsUUFpQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBhc3NlcnQsXG4gIEJpbmRpbmcsXG4gIENvbnN0cnVjdGFibGUsXG4gIERlYnVnQ29udGV4dCxcbiAgRHNsLFxuICBHdWFyZCxcbiAgSU11dGFibGVIYXNWYWx1ZSxcbiAgbGFuZyxcbiAgTGlzdE1vZGVsLFxuICBNdXRhYmxlVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0tsYXNzLCBNZW1vaXplR2V0fSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7aXNOaWx9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHtMb2FkYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvbG9hZGFibGUtY29tcG9uZW50XCI7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7UGxhY2VSb3V0ZXJ9IGZyb20gXCIuL3BsYWNlLXJvdXRlclwiO1xuaW1wb3J0IHtQYXJhbWV0ZXJEZWZpbml0aW9ufSBmcm9tICcuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmltcG9ydCB7VXJsU25hcHNob3R9IGZyb20gJy4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tICcuL3Zpc2l0LXNlZ21lbnQnO1xuXG5cbi8vIFJBS0U6IG1ha2luZyB0aGlzIFN5bWJvbCguLi4pIGJyb2tlIHRoaW5ncy5cbmV4cG9ydCBjb25zdCBERUZJTklUSU9OX01FVEFfREFUQV9LRVkgPSAnUExBQ0VfREVGSU5JVElPTl9PUFRJT05TJztcbi8vIHRoaXMgb25lIHNlZW1zIG9rLlxuZXhwb3J0IGNvbnN0IFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSA9IFN5bWJvbCgncGxhY2U6cm91dGU6cGFyYW1ldGVycycpO1xuXG5cbi8vIGNsYXNzIFBhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yPFQ+IHtcbi8vICAgY29uc3RydWN0b3IocGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+LCBtb2RlbDogVmFsdWVNb2RlbDxUPiwgY2FsbGJhY2s6IFBsYWNlQ29tcG9uZW50LkludGVyY2VwdENhbGxiYWNrPFQ+LCBvcHRpb25zOiBQbGFjZUNvbXBvbmVudC5JbnRlcmNlcHRPcHRpb25zKSB7XG4vLyAgIH1cbi8vXG4vLyAgIGFzeW5jIGNhblByb2NlZWQobmV4dFN0YXRlOiBWaXNpdFNlZ21lbnQsIGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4vLyAgICAgcmV0dXJuIHRydWU7XG4vLyAgIH1cbi8vIH1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUGxhY2VDb21wb25lbnQgZXh0ZW5kcyBMb2FkYWJsZUNvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2VSZWFkeUNhbGxiYWNrczogKCgpPT52b2lkKVtdID0gW107XG4gIHByaXZhdGUgdmlzaXRNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxWaXNpdFNlZ21lbnQ+KCk7XG4gIHByaXZhdGUgX2luVmlzaXRVcGRhdGUgPSBuZXcgR3VhcmQoKTtcbiAgcHJpdmF0ZSBfYWN0aXZlID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBpbnRlcmFjdGlvbkNvbnRleHQ/OiBJbnRlcmFjdGlvbkNvbnRleHQ7XG4gIHJlYWRvbmx5IGNoaWxkUGxhY2VzJDogTGlzdE1vZGVsPENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+PjtcbiAgLy8gcHJpdmF0ZSByZWFkb25seSBfcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzOiBQYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcjxhbnk+W10gPSBbXTtcblxuXG4gIGNhbkRlYWN0aXZhdGU/KGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XG5cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGxhY2VSb3V0ZXIgPSBpbmplY3QoUGxhY2VSb3V0ZXIpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbih0aGlzLl9hY3RpdmUpLmJlY29tZXNUcnV0aHkoKCkgPT4gdGhpcy5fbm90aWZ5UGxhY2VSZWFkeSgpKTtcbiAgICB0aGlzLmNoaWxkUGxhY2VzJCA9IExpc3RNb2RlbC5jb25zdGFudCh0aGlzLnBsYWNlRGVmaW5pdGlvbi5jaGlsZHJlbi5tYXAoZCA9PiBkLmNvbXBvbmVudCkpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpc2VWaXNpdCh2aXNpdDogVmlzaXRTZWdtZW50LCBub3RpZnlWaXNpdENoYW5nZWQ6IChjdXJyZW50OiBWaXNpdFNlZ21lbnQsIHByZXZpb3VzOiBWaXNpdFNlZ21lbnQpID0+IHZvaWQpIHtcbiAgICBhc3NlcnQuaXNOaWwodGhpcy52aXNpdE1vZGVsLnZhbHVlKTtcblxuICAgIGNvbnN0IHt3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMudmlzaXRNb2RlbC52YWx1ZSA9IHZpc2l0O1xuICAgIERlYnVnQ29udGV4dC5nZXRPckNyZWF0ZSh0aGlzLnZpc2l0TW9kZWwpLnRhZyhgJHt0aGlzLnBsYWNlRGVmaW5pdGlvbi5jb21wb25lbnQubmFtZX0udmlzaXRNb2RlbGApO1xuXG4gICAgLy8gd2UgdHJhY2sgaWYgdGhlIGFueSBvZiB0aGUgYmluZGluZ3MgdXBkYXRlZCB0aGUgcm91dGUuICBJZiBzbyB3ZSByZW1lbWJlciBpdCBhbmQgdXBkYXRlIHRoZVxuICAgIC8vIHJvdXRlIGluIG9uZSBnbyBhdCB0aGUgZW5kLlxuICAgIHRoaXMucGxhY2VEZWZpbml0aW9uXG4gICAgICAuZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKClcbiAgICAgIC5mb3JFYWNoKHBhcmFtZXRlckRlZiA9PiB0aGlzLmluc3RhbGxBbmRJbml0aWFsaXNlQmluZGluZyh2aXNpdCwgcGFyYW1ldGVyRGVmKSk7XG5cbiAgICB3aGVuKHRoaXMudmlzaXRNb2RlbCkuY2hhbmdlcygoY3VycmVudCwgcHJldmlvdXMpID0+IHtcbiAgICAgIG5vdGlmeVZpc2l0Q2hhbmdlZChjdXJyZW50LCBwcmV2aW91cyk7XG4gICAgfSwge3VubGVzczogdGhpcy5faW5WaXNpdFVwZGF0ZX0pO1xuXG4gICAgLy8gVE9ETzogdGhpcyBuZWVkcyB0byBkbyBhIHJlcGxhY2UgdXJsIG9wdGlvbiBzbyB0aGF0IHRoZSBuZXcgdXJsIGlzbid0IHB1dCBpbiB0aGUgaGlzdG9yeS4uLi4gZm9yXG4gICAgLy8gICAgICAgbm93IHdlJ3JlIG5vdCBkb2luZyBpdCBhcyBpdCdzIGEgZmFpciBiaXQgb2YgZWZmb3J0IGFuZCB3aWxsIG9ubHkgYWZmZWN0IHBlb3BsZSBpZiB0aGV5J3JlXG4gICAgLy8gICAgICAgY3V0dGluZyBhbmQgcGFzdGluZyB1cmxzIHRvIGVhY2ggb3RoZXIuXG4gICAgLy8gLy8gdGhlIGJpbmRpbmcgcHJvY2VzcyBjYW4gdXBkYXRlIHRoZSB2aXNpdCAoZS5nLiBpZiBhIHNlbGVjdGlvbiBtb2RlbCBoYXMgYWxyZWFkeSBzZWxlY3RlZCBkdXJpbmdcbiAgICAvLyAvLyBjb21wb25lbnQgY29uc3RydWN0aW9uKSBhbmQgdGhlcmUgd2FzIG5vIHZhbHVlIHNwZWNpZmllZCBpbiB0aGUgcm91dGVcbiAgICAvLyBpZiAodmlzaXQuaGFzUm91dGluZ0NoYW5nZWRGcm9tKHRoaXMudmlzaXRNb2RlbC52YWx1ZSkpIHtcbiAgICAvLyAgIG5vdGlmeVZpc2l0Q2hhbmdlZCh0aGlzLnZpc2l0TW9kZWwudmFsdWUsIHZpc2l0KVxuICAgIC8vIH1cbiAgfVxuXG4gIGdldCBjaGlsZFBsYWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZFBsYWNlcyQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmlzaXQodmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmlzSW5pdGlhbGlzZWQoKSk7XG4gICAgYXNzZXJ0Lm5vdE5pbCh2aXNpdCk7XG4gICAgdGhpcy5faW5WaXNpdFVwZGF0ZS53aGlsZVRydWUoKCkgPT4ge1xuICAgICAgdGhpcy52aXNpdE1vZGVsLnZhbHVlID0gdmlzaXQ7XG4gICAgfSk7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMudmlzaXRNb2RlbC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIC8qKlxuICAgKiBJbml0aWFsaXNlZCB0aGUgY29tcG9uZW50IGJpbmRpbmdzLiAgSWYgYW55IGJpbmRpbmcgaGFzIGFuIGluaXRpYWwgbW9kZWwgdmFsdWUgKGUuZy4gYSBzZWxlY3Rpb24gbW9kZWxcbiAgICogaW5pdGlhbGlzZWQgZHVyaW5nIHRoZSBjb25zdHJ1Y3RvcikgYW5kIHRoZSByb3V0ZSBoYXMgbm90aGluZywgdGhlbiB0aGUgdmlzaXQgd2lsbCBiZSB1ZHBhdGVkIGFuZCB0aGlzXG4gICAqIG1ldGhvZCB3aWxsIHJldHVybiB0dXJlIHRvIG5vZml5IHRoZSB0aGUgdmlzaXQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcml2YXRlIGluc3RhbGxBbmRJbml0aWFsaXNlQmluZGluZzxULCBTPihpbml0aWFsVmlzaXQ6IFZpc2l0U2VnbWVudCwgcGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+KSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzW3BhcmFtZXRlckRlZi5wcm9wZXJ0eU5hbWVdIGFzIElNdXRhYmxlSGFzVmFsdWU8VD47XG4gICAgYXNzZXJ0Lm5vdE5pbChtb2RlbCk7XG4gICAgRGVidWdDb250ZXh0LnRhZyhtb2RlbCwgYCR7dGhpcy5wbGFjZURlZmluaXRpb24uY29tcG9uZW50Lm5hbWV9LiR7cGFyYW1ldGVyRGVmLnByb3BlcnR5TmFtZX1gKTtcbiAgICBjb25zdCBiaW5kaW5nID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEJpbmRpbmcodGhpcy52aXNpdE1vZGVsLCBtb2RlbCwge1xuICAgICAgdG9SaWdodCh2aXNpdDogVmlzaXRTZWdtZW50KTogVCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUocGFyYW1ldGVyRGVmKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3B1c2ggdG8gY29tcG9uZW50JywgeyBuYW1lOiBwYXJhbWV0ZXJEZWYubmFtZSwgdmFsdWUsIHZpc2l0IH0pO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgICAgdG9MZWZ0KHZhbHVlOiBULCBjdXJyZW50VmlzaXQ/OiBWaXNpdFNlZ21lbnQpOiBWaXNpdFNlZ21lbnQge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygncHVzaCB0byByb3V0ZScsIHsgbmFtZTogcGFyYW1ldGVyRGVmLm5hbWUsIHZhbHVlLCBjdXJyZW50VmlzaXQgfSk7XG4gICAgICAgIHJldHVybiBjdXJyZW50VmlzaXQucmVwbGFjZShwYXJhbWV0ZXJEZWYsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICAvLyBOb3cgd2UgbmVlZCB0byBpbml0aWFsaXNlIHRoZSBiaW5kaW5nIGRpcmVjdGlvbi4gIElmIHdlIGhhdmUgYSB2YWx1ZSBpbiB0aGUgVXJsIHRoZW4gd2Ugc2hvdWxkIGFsd2F5cyBwdXNoXG4gICAgLy8gdGhhdCB0byB0aGUgdmlldy4gIElmIHdlIGRvbid0IGFuZCB0aGUgdmlldyBhbHJlYWR5IGhhcyBhIHZhbHVlIChlLmcuIGEgc2VsZWN0aW9uIG1vZGVsIGhhcyBhbHJlYWR5IGluaXRpYWxpc2VkIGluIHRoZVxuICAgIC8vIGNvbXBvbmVudCBjb25zdHJ1Y3RvcikgdGhlbiB3ZSBzaG91bGQgcHVzaCB0aGF0IHRvIHRoZSByb3V0ZS5cbiAgICBjb25zdCBpc0luVmlzaXQgPSAhaXNOaWwoaW5pdGlhbFZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHBhcmFtZXRlckRlZikpO1xuICAgIGNvbnN0IGlzSW5Nb2RlbCA9ICFpc05pbChtb2RlbC52YWx1ZSk7XG4gICAgaWYgKCFpc0luVmlzaXQgJiYgaXNJbk1vZGVsKSB7XG4gICAgICBiaW5kaW5nLndyaXRlTGVmdCgpOyAvLyBwdXNoIGl0IHRvIHRoZSByb3V0ZVxuICAgIH0gZWxzZSB7XG4gICAgICBiaW5kaW5nLndyaXRlUmlnaHQoKTsgLy8gcHVzaCBpdCB0byB0aGUgbW9kZWxcbiAgICB9XG4gIH1cblxuICBATWVtb2l6ZUdldCgpXG4gIGdldCBwbGFjZURlZmluaXRpb24oKTogUGxhY2VEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gUGxhY2VDb21wb25lbnQuZ2V0RGVmaW5pdGlvbih0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSBhcyBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik7XG4gICAgaWYgKCFkZWZpbml0aW9uKSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IGV4dGVuZHMgUGxhY2VDb21wb25lbnQgYnV0IGRvZXNuJ3QgaGF2ZSBAUGxhY2Uoey4ufSkgZGVjb3JhdG9yLmApXG4gICAgfVxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlLnJlYWRvbmx5JDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJvdXRlciB0byBzZWUgaWYgdGhpcyBjb21wb25lbnQgY2FuIGRlYWN0aXZhdGUuICBUaGlzIGlzbid0IGNhbGxlZCBmb3Igcm91dGUgcGFyYW1ldGVyIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICovXG4gIGFzeW5jIF9jYW5MZWF2ZVBsYWNlKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FuRGVhY3RpdmF0ZSA/IHRoaXMuY2FuRGVhY3RpdmF0ZShpbnRlcmFjdGlvbkNvbnRleHQpIDogdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJvdXRlciB0byBzZWUgaWYgdGhpcyBjb21wb25lbnQgY2FuIGRlYWN0aXZhdGUuICBUaGlzIGlzbid0IGNhbGxlZCBmb3Igcm91dGUgcGFyYW1ldGVyIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICogQHBhcmFtIG5leHRTdGF0ZVxuICAgKi9cbiAgYXN5bmMgX2NhbkNoYW5nZVJvdXRlUGFyYW1ldGVycyhpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCwgbmV4dFN0YXRlOiBVcmxTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIGlmICh0aGlzLl9wYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcnMubGVuZ3RoID4gMCkge1xuICAgIC8vICAgY29uc3QgdmlzaXQgPSBuZXh0U3RhdGUuY3JlYXRlVmlzaXRTZWdtZW50Rm9yKHRoaXMucGxhY2VEZWZpbml0aW9uKTtcbiAgICAvLyAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgLy8gICAgIGNvbnN0IGludGVyY2VwdG9yID0gdGhpcy5fcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzW2ldO1xuICAgIC8vICAgICBjb25zdCBrZWVwR29pbmcgPSBhd2FpdCBpbnRlcmNlcHRvci5jYW5Qcm9jZWVkKHZpc2l0LCBpbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgIC8vICAgICBpZiAoIWtlZXBHb2luZykge1xuICAgIC8vICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgcm91dGVyIHdoZW4gdGhlIHBsYWNlIGlzIHJlYWR5IHRvIGludGVyYWN0IGFmdGVyIGFueSBhbmltYXRpb25zIGhhdmUgcnVuLlxuICAgKi9cbiAgX25vdGlmeUFjdGl2ZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hY3RpdmUudmFsdWUgPSBhY3RpdmU7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSByb3V0ZXIgd2hlbiB0aGUgcGxhY2UgaXMgcmVhZHkgdG8gaW50ZXJhY3QgYWZ0ZXIgYW55IGFuaW1hdGlvbnMgaGF2ZSBydW4uXG4gICAqL1xuICBfbm90aWZ5UGxhY2VSZWFkeSgpIHtcbiAgICBpZiAodGhpcy5vblBsYWNlUmVhZHkubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLl9wbGFjZVJlYWR5Q2FsbGJhY2tzLmZvckVhY2goY2FsbGJhY2sgPT4gY2FsbGJhY2soKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignT3ZlcnJpZGluZyBQbGFjZUNvbXBvbmVudC5vblBsYWNlUmVhZHkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gIFVzZSBQbGFjZUNvbXBvbmVudC5vblBsYWNlUmVhZHkoKCkgPT4gey4uLiBkbyBzdHVmZi4uLn0pIGluc3RlYWQuJyk7XG4gICAgICB0aGlzLm9uUGxhY2VSZWFkeSh1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIG9uUGxhY2VSZWFkeShjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuX3BsYWNlUmVhZHlDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gIH1cblxuICAvLyBpbnRlcmNlcHRWaXNpdFBhcmFtZXRlckNoYW5nZTxUPihtb2RlbDogVmFsdWVNb2RlbDxUPiwgY2FsbGJhY2s6IFBsYWNlQ29tcG9uZW50LkludGVyY2VwdENhbGxiYWNrPFQ+LCBvcHRpb25zPzogUGxhY2VDb21wb25lbnQuSW50ZXJjZXB0T3B0aW9ucykge1xuICAvLyAgIGNvbnN0IHBhcmFtZXRlckRlZiA9IFBhcmFtZXRlckRlZmluaXRpb24uZ2V0KG1vZGVsKTtcbiAgLy8gICB0aGlzLl9wYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcnMucHVzaChuZXcgUGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3IocGFyYW1ldGVyRGVmLCBtb2RlbCwgY2FsbGJhY2ssIG9wdGlvbnMpKTtcbiAgLy8gfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGxhY2VDb21wb25lbnQge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBpc1BsYWNlQ29tcG9uZW50Q29uc3RydWN0b3IodGFyZ2V0OiBhbnkpOiB0YXJnZXQgaXMgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4ge1xuICAgIHJldHVybiBsYW5nLmNvbnN0cnVjdG9yQ2hhaW4odGFyZ2V0IGFzIENvbnN0cnVjdGFibGU8YW55PikuaW5jbHVkZXMoUGxhY2VDb21wb25lbnQpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlUGFyYW1ldGVycyhrbGFzczogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXSB7XG4gICAgcmV0dXJuIEtsYXNzLmdldChrbGFzcykuZ2V0TWV0YWRhdGFMaXN0KFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSkgYXMgUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W107XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVmaW5pdGlvbihzbmFwc2hvdE9yQ29uc3RydWN0b3I6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik6IFBsYWNlRGVmaW5pdGlvbiB7XG4gICAgaWYgKHNuYXBzaG90T3JDb25zdHJ1Y3RvciBpbnN0YW5jZW9mIEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHNuYXBzaG90T3JDb25zdHJ1Y3Rvci5jb21wb25lbnQ7XG4gICAgICBpZiAoIWlzUGxhY2VDb21wb25lbnRDb25zdHJ1Y3Rvcihjb21wb25lbnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCBjb21wb25lbnQgaXMgbm90IGEgUGxhY2VDb21wb25lbnQsIGdvdCAke2NvbXBvbmVudH1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKERFRklOSVRJT05fTUVUQV9EQVRBX0tFWSwgY29tcG9uZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZLCBzbmFwc2hvdE9yQ29uc3RydWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpbmplY3REZWZpbml0aW9uKGtsYXNzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiwgZGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShERUZJTklUSU9OX01FVEFfREFUQV9LRVksIGRlZmluaXRpb24sIGtsYXNzKTtcbiAgfVxuXG4gIC8vIGV4cG9ydCB0eXBlIEludGVyY2VwdENhbGxiYWNrPFQ+ID0gKGlzOiBULCB3YXM6IFQsIGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPjtcblxuICAvLyBleHBvcnQgaW50ZXJmYWNlIEludGVyY2VwdE9wdGlvbnMge1xuICAvLyAgIGluaXRpYWxWYWx1ZTogJ2V2YWx1YXRpb25Vbmxlc3NOaWwnIHwgJ2V2YWx1YXRlJ1xuICAvLyB9XG5cblxufVxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { assert } from '@coolon/pectin';
|
|
3
3
|
import { lang, Opts } from '@coolon/typescript-utilities';
|
|
4
|
-
import { Memoize } from '
|
|
5
|
-
import { isEmpty, isNil, join } from 'lodash';
|
|
4
|
+
import { Memoize } from 'fast-typescript-memoize';
|
|
5
|
+
import { isEmpty, isNil, join } from 'lodash-es';
|
|
6
6
|
import { ParameterDefinition } from './route/parameter-definition';
|
|
7
7
|
export class PlaceDefinition {
|
|
8
8
|
component;
|
|
@@ -210,4 +210,4 @@ __decorate([
|
|
|
210
210
|
__metadata("design:paramtypes", [Object]),
|
|
211
211
|
__metadata("design:returntype", Array)
|
|
212
212
|
], PlaceDefinition.prototype, "getVisitParameterDefs", null);
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQTJCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR2pFLE1BQU0sT0FBTyxlQUFlO0lBSUw7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVRiLE9BQU8sQ0FBa0I7SUFFakMsWUFBcUIsU0FBd0MsRUFDeEMsSUFBWSxFQUNaLFlBQXFCLEVBQ3JCLElBQVMsRUFDVCxJQUF5QixFQUN6QixlQUEyQyxFQUMzQyxRQUEyQixFQUMzQixvQkFBNkI7UUFQN0IsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDVCxTQUFJLEdBQUosSUFBSSxDQUFxQjtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FB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YUFBYSxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixVQUFVLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDakk7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsY0FBNkM7UUFDdkQsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUUsQ0FBQztDQUVGO0FBbExDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7dURBR1Q7QUFpQ0Q7SUFEQyxPQUFPLEVBQUU7OztvQ0FDZ0IsbUJBQW1COzZEQUU1QztBQUdEO0lBREMsT0FBTyxFQUFFOzs7OzREQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7NERBWVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhcmFtTWFwfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHthc3NlcnQsIENvbnN0cnVjdGFibGUsIFByZWRpY2F0ZX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtsYW5nLCBPcHRzfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yJztcblxuaW1wb3J0IHtpc0VtcHR5LCBpc05pbCwgam9pbn0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7UGFyYW1ldGVyRGVmaW5pdGlvbn0gZnJvbSAnLi9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuZXhwb3J0IGNsYXNzIFBsYWNlRGVmaW5pdGlvbiB7IC8vaW1wbGVtZW50cyBWaXNpdGFibGVUcmVlPFBsYWNlRGVmaW5pdGlvbj4gIHtcblxuICBwcml2YXRlIF9wYXJlbnQ6IFBsYWNlRGVmaW5pdGlvbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LFxuICAgICAgICAgICAgICByZWFkb25seSBwYXRoOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZTogYm9vbGVhbixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgcm9sZTogYW55LFxuICAgICAgICAgICAgICByZWFkb25seSBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgICAgICAgICByZWFkb25seSByb3V0ZVBhcmFtZXRlcnM6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdLFxuICAgICAgICAgICAgICByZWFkb25seSBjaGlsZHJlbjogUGxhY2VEZWZpbml0aW9uW10sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHJlZGlyZWN0VG9GaXJzdENoaWxkOiBib29sZWFuKSB7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGl0ID0+IGl0LnNldFBhcmVudCh0aGlzKSk7XG5cbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgYW5jZXN0b3JzKCk6IFBsYWNlRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5hbmNlc3RvcnMoKS5jb25jYXQoW3RoaXMucGFyZW50XSkgOiBbXTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgYW5jZXN0b3JzQW5kU2VsZigpOiBQbGFjZURlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuYW5jZXN0b3JzKCkuY29uY2F0KHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFBhcmVudChwYXJlbnQ6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIGFzc2VydC5pc05pbCh0aGlzLl9wYXJlbnQpO1xuICAgIHRoaXMuX3BhcmVudCA9IHBhcmVudDtcbiAgfVxuXG4gIGdldCBwYXJlbnQoKTogUGxhY2VEZWZpbml0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50O1xuICB9XG5cbiAgaXNSb290KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fcGFyZW50XG4gIH1cblxuICBoYXNQYXJlbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBhcmVudFxuICB9XG5cbiAgaGFzQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc0VtcHR5KHRoaXMuY2hpbGRyZW4pO1xuICB9XG5cbiAgZmluZENoaWxkKHByZWRpY2F0ZTogUHJlZGljYXRlPFBsYWNlRGVmaW5pdGlvbj4pOiBQbGFjZURlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmZpbmQocHJlZGljYXRlKTtcbiAgfVxuXG5cbiAgaGFzUm91dGVJZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlUGFyYW1ldGVycy5maW5kKHAgPT4gcC5pc1JvdXRlSWQpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRSb3V0ZVBhcmFtZXRlckRlZnMoaW5jbHVkZVJvdXRlSWQgPSBmYWxzZSk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe2luY2x1ZGVSb3V0ZUlkLCBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlfSk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFZpc2l0UGFyYW1ldGVyRGVmcyhpbmNsdWRlPzogUGxhY2VEZWZpbml0aW9uLlBhcmFtZXRlck9wdGlvbnMpOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXSB7XG4gICAgY29uc3Qgb3B0cyA9IE9wdHMuZ2V0KGluY2x1ZGUpO1xuICAgIC8vIGluY2x1ZGVzXG4gICAgY29uc3QgaW5jbHVkZVJvdXRlSWQgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlUm91dGVJZCcsIGZhbHNlKTtcbiAgICBjb25zdCBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzID0gIWluY2x1ZGUgfHwgb3B0cy5nZXRPcHRpb25hbCgnaW5jbHVkZVJvdXRlUGFyYW1ldGVycycsIGZhbHNlKTtcbiAgICBjb25zdCBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzID0gIWluY2x1ZGUgfHwgb3B0cy5nZXRPcHRpb25hbCgnaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVycycsIGZhbHNlKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZVBhcmFtZXRlcnMuZmlsdGVyKHAgPT4ge1xuICAgICAgcmV0dXJuIChpbmNsdWRlUm91dGVJZCAmJiBwLmlzUm91dGVJZClcbiAgICAgICAgfHwgKGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnMgJiYgcC5pc1JvdXRlUGFyYW1ldGVyICYmICFwLmlzUm91dGVJZCkgLy8gcm91dGUgaWQgaXMgaW5jbHVkZWQgaW4gdGhlIGxpbmUgYWJvdmVcbiAgICAgICAgfHwgKGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnMgJiYgIXAuaXNSb3V0ZVBhcmFtZXRlcik7XG4gICAgfSk7XG4gIH1cblxuICBnZXRQbGFjZURhdGE8VD4oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhID9cbiAgICAgIGlzTmlsKHRoaXMuZGF0YVtrZXldKSA/IGRlZmF1bHRWYWx1ZSA6IHRoaXMuZGF0YVtrZXldIDpcbiAgICAgIGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIHNlYXJjaFBsYWNlRGF0YTxUPihrZXlzOiBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIGNvbnN0IGZvdW5kID0ga2V5cy5maW5kKGtleSA9PiAhaXNOaWwodGhpcy5kYXRhW2tleV0pKTtcbiAgICAgIHJldHVybiBmb3VuZCA/IHRoaXMuZGF0YVtmb3VuZF0gOiBkZWZhdWx0VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um91dGVJZEZyb20odmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbWV0ZXJEZWYgPSB0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKTtcbiAgICByZXR1cm4gcm91dGVJZFBhcmFtZXRlckRlZiA/IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHJvdXRlSWRQYXJhbWV0ZXJEZWYpIDogbnVsbDtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZFJvdXRlSWQodmlzaXQ6IFZpc2l0U2VnbWVudCk6IGFueSB7XG4gICAgLy8gTm90ZTogUm91dGVJZHMgYXJlIGFsd2F5cyBwcmVzZW50IGluIHRoZSB1cmwgYW5kIGFyZSBqdXN0IGVtcHR5IHN0cmluZ3Mgd2hlbiBub3QgZGVmaW5lZC4gIFRoaXMgaXNcbiAgICAvLyBtYW5kYXRlZCBieSB0aGUgZmFjdCB0aGF0IHJlZGlyZWN0cyBmcm9tIDxwYXRoPiB0byA8cGF0aD4vOmlkIGFsd2F5cyBpbmNsdWRlIHRoZSBpZCBwYXJhbWV0ZXIgYXNcbiAgICAvLyBhbiBlbXB0eSBzdHJpbmcuXG4gICAgcmV0dXJuIHZpc2l0Lmhhc1JvdXRlSWQoKSA/IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpLnVybEZvcm1hdC5mb3JtYXQodmlzaXQuZ2V0Um91dGVJZCgpKSA6IFwiXCI7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQ6IFZpc2l0U2VnbWVudCwgaW5jbHVkZVJvdXRlSWQgPSBmYWxzZSk6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQsIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWVcbiAgICB9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKGRlZik7XG4gICAgICBpZiAoIWRlZi5pc0VtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgIGlmIChkZWYuaXNBcnJheSkge1xuICAgICAgICAgIGFzc2VydC5pc0FycmF5KHZhbHVlKTtcbiAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gdmFsdWUubWFwKHYgPT4gZGVmLnVybEZvcm1hdC5mb3JtYXQodikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFzc2VydC5pc0ZhbHNleShBcnJheS5pc0FycmF5KHZhbHVlKSk7XG4gICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQuZm9ybWF0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXROb25Sb3V0ZVBhcmFtZXRlcnModmlzaXQ6IFZpc2l0U2VnbWVudCk6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe2luY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnM6IHRydWV9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKGRlZik7XG4gICAgICBpZiAoIWRlZi5pc0VtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcGFyc2VSb3V0ZVBhcmFtcyhwYXJhbXM6IFBhcmFtTWFwKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQ6IHRydWUsXG4gICAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogZmFsc2VcbiAgICB9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICAvLyBwYXJhbXMgd2lsbCByZXR1cm4gbnVsbCBmb3Igbm9uIGV4aXN0ZW50IG5hbWVzXG4gICAgICBpZiAocGFyYW1zLmhhcyhkZWYubmFtZSkpIHtcbiAgICAgICAgaWYgKGRlZi5pc0FycmF5KSB7XG4gICAgICAgICAgLy8gY29uc3QgdmFsdWVzID0gcGFyYW1zLmdldEFsbChkZWYubmFtZSk7IC8vIFRPRE86IEVFRUsgZ2V0QWxsIGlzIHJldHVybmluZyBbXCIxLDIsMyw0XCJdIHdoZW4gd2UgZ2F2ZSBpdCBbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCJdLlxuICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcmFtcy5nZXQoZGVmLm5hbWUpLnNwbGl0KCcsJykubWFwKHMgPT4gcy50cmltKCkpO1xuICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZXMubWFwKHYgPT4gZGVmLnVybEZvcm1hdC5wYXJzZSh2KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXMuZ2V0KGRlZi5uYW1lKTtcbiAgICAgICAgICBpZiAoZGVmLmlzUm91dGVJZCkgeyAvLyBUT0RPOiBNb3ZlIHRoaXMgdG8gcGFyYW1ldGVyIGRlZiBzbyBpdCdzIGEgc3RyYXRlZ3kgcGF0dGVyblxuICAgICAgICAgICAgLy8gYmVjYXVzZSBvdXIgaWQgcm91dGVzIHJlZGlyZWN0IGlmIHRoZSBpZCBpc24ndCBwcmVzZW50IHdlIGFsd2F5cyBoYXZlIGEgaWRcbiAgICAgICAgICAgIC8vIHBhcmFtZXRlciBpbiBvdXIgcGFyYW1zLiAgVGhpcyB3aWxsIGJ1Z2dlciBvdXIgcmVtZW1iZXIgYW5kIGRlZmF1bHR2YWx1ZSBzYW5pdGlzYXRpb25cbiAgICAgICAgICAgIC8vIGFzIGl0J2xsIHNlZSB0aGF0IHRoZSBpZCBpcyBwcmVzZW50IChldmVudCB0aG91Z2h0IGl0cyBhIGJsYW5rIHN0cmluZykuXG4gICAgICAgICAgICBpZiAoIWlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSBkZWYudXJsRm9ybWF0LnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQucGFyc2UodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB2YWxpZGF0ZVJvdXRlUGFyYW1ldGVycyhwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICBjb25zdCBkZWZzID0gdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQ6IHRydWUsXG4gICAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogdHJ1ZVxuICAgIH0pLnJlZHVjZSgocmVzdWx0LCBkZWYpID0+IHtcbiAgICAgIHJldHVybiB7Li4ucmVzdWx0LCBbZGVmLm5hbWVdOiBkZWZ9XG4gICAgfSwge30pO1xuXG4gICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBkZWZzW2tleV07XG4gICAgICBpZiAoIXBhcmFtZXRlckRlZikge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgUGFyYW1ldGVyICR7a2V5fSBpcyBub3QgdmFsaWQuICBNdXN0IGJlIG9uZSBvZiAke2pvaW4oT2JqZWN0LmtleXMoZGVmcykpfWApXG4gICAgICB9XG5cbiAgICAgIGlmICghIXBhcmFtc1trZXldICYmIChBcnJheS5pc0FycmF5KHBhcmFtc1trZXldKSAhPT0gcGFyYW1ldGVyRGVmLmlzQXJyYXkpKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBQYXJhbWV0ZXIgJHtrZXl9ICR7cGFyYW1ldGVyRGVmLmlzQXJyYXkgPyBcIm11c3QgYmUgYW4gYXJyYXlcIiA6IFwibXVzdCBub3QgYmUgYW4gYXJyYXlcIn0uICBHb3QgJHtwYXJhbXNba2V5XX1gKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBoYXNBbmNlc3RvcihwbGFjZUNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pIHtcbiAgICByZXR1cm4gdGhpcy5hbmNlc3RvcnMoKS5maW5kKGEgPT4gYS5jb21wb25lbnQgPT09IHBsYWNlQ29tcG9uZW50KSAhPSBudWxsO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZURlZmluaXRpb24ge1xuICBleHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlck9wdGlvbnMge1xuICAgIGluY2x1ZGVSb3V0ZUlkPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbiAgfVxufVxuIl19
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQTJCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFaEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRS9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR2pFLE1BQU0sT0FBTyxlQUFlO0lBSUw7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVRiLE9BQU8sQ0FBa0I7SUFFakMsWUFBcUIsU0FBd0MsRUFDeEMsSUFBWSxFQUNaLFlBQXFCLEVBQ3JCLElBQVMsRUFDVCxJQUF5QixFQUN6QixlQUEyQyxFQUMzQyxRQUEyQixFQUMzQixvQkFBNkI7UUFQN0IsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDVCxTQUFJLEdBQUosSUFBSSxDQUFxQjtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FB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YUFBYSxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixVQUFVLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDakk7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsY0FBNkM7UUFDdkQsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUUsQ0FBQztDQUVGO0FBbExDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7dURBR1Q7QUFpQ0Q7SUFEQyxPQUFPLEVBQUU7OztvQ0FDZ0IsbUJBQW1COzZEQUU1QztBQUdEO0lBREMsT0FBTyxFQUFFOzs7OzREQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7NERBWVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhcmFtTWFwfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHthc3NlcnQsIENvbnN0cnVjdGFibGUsIFByZWRpY2F0ZX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtsYW5nLCBPcHRzfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnZmFzdC10eXBlc2NyaXB0LW1lbW9pemUnO1xuXG5pbXBvcnQge2lzRW1wdHksIGlzTmlsLCBqb2lufSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHtQYXJhbWV0ZXJEZWZpbml0aW9ufSBmcm9tICcuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tICcuL3Zpc2l0LXNlZ21lbnQnO1xuXG5leHBvcnQgY2xhc3MgUGxhY2VEZWZpbml0aW9uIHsgLy9pbXBsZW1lbnRzIFZpc2l0YWJsZVRyZWU8UGxhY2VEZWZpbml0aW9uPiAge1xuXG4gIHByaXZhdGUgX3BhcmVudDogUGxhY2VEZWZpbml0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgYXV0aGVudGljYXRlOiBib29sZWFuLFxuICAgICAgICAgICAgICByZWFkb25seSByb2xlOiBhbnksXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHJvdXRlUGFyYW1ldGVyczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGNoaWxkcmVuOiBQbGFjZURlZmluaXRpb25bXSxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgcmVkaXJlY3RUb0ZpcnN0Q2hpbGQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goaXQgPT4gaXQuc2V0UGFyZW50KHRoaXMpKTtcblxuICB9XG5cbiAgQE1lbW9pemUoKVxuICBhbmNlc3RvcnMoKTogUGxhY2VEZWZpbml0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmFuY2VzdG9ycygpLmNvbmNhdChbdGhpcy5wYXJlbnRdKSA6IFtdO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBhbmNlc3RvcnNBbmRTZWxmKCk6IFBsYWNlRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5hbmNlc3RvcnMoKS5jb25jYXQodGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0UGFyZW50KHBhcmVudDogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMuX3BhcmVudCk7XG4gICAgdGhpcy5fcGFyZW50ID0gcGFyZW50O1xuICB9XG5cbiAgZ2V0IHBhcmVudCgpOiBQbGFjZURlZmluaXRpb24ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gIH1cblxuICBpc1Jvb3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9wYXJlbnRcbiAgfVxuXG4gIGhhc1BhcmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMucGFyZW50XG4gIH1cblxuICBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWlzRW1wdHkodGhpcy5jaGlsZHJlbik7XG4gIH1cblxuICBmaW5kQ2hpbGQocHJlZGljYXRlOiBQcmVkaWNhdGU8UGxhY2VEZWZpbml0aW9uPik6IFBsYWNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4uZmluZChwcmVkaWNhdGUpO1xuICB9XG5cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRSb3V0ZUlkUGFyYW1ldGVyRGVmKCk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVQYXJhbWV0ZXJzLmZpbmQocCA9PiBwLmlzUm91dGVJZCk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFJvdXRlUGFyYW1ldGVyRGVmcyhpbmNsdWRlUm91dGVJZCA9IGZhbHNlKTogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7aW5jbHVkZVJvdXRlSWQsIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWV9KTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKGluY2x1ZGU/OiBQbGFjZURlZmluaXRpb24uUGFyYW1ldGVyT3B0aW9ucyk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICBjb25zdCBvcHRzID0gT3B0cy5nZXQoaW5jbHVkZSk7XG4gICAgLy8gaW5jbHVkZXNcbiAgICBjb25zdCBpbmNsdWRlUm91dGVJZCA9ICFpbmNsdWRlIHx8IG9wdHMuZ2V0T3B0aW9uYWwoJ2luY2x1ZGVSb3V0ZUlkJywgZmFsc2UpO1xuICAgIGNvbnN0IGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnMgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlUm91dGVQYXJhbWV0ZXJzJywgZmFsc2UpO1xuICAgIGNvbnN0IGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnMgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzJywgZmFsc2UpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlUGFyYW1ldGVycy5maWx0ZXIocCA9PiB7XG4gICAgICByZXR1cm4gKGluY2x1ZGVSb3V0ZUlkICYmIHAuaXNSb3V0ZUlkKVxuICAgICAgICB8fCAoaW5jbHVkZVJvdXRlUGFyYW1ldGVycyAmJiBwLmlzUm91dGVQYXJhbWV0ZXIgJiYgIXAuaXNSb3V0ZUlkKSAvLyByb3V0ZSBpZCBpcyBpbmNsdWRlZCBpbiB0aGUgbGluZSBhYm92ZVxuICAgICAgICB8fCAoaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVycyAmJiAhcC5pc1JvdXRlUGFyYW1ldGVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFBsYWNlRGF0YTxUPihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLmRhdGEgP1xuICAgICAgaXNOaWwodGhpcy5kYXRhW2tleV0pID8gZGVmYXVsdFZhbHVlIDogdGhpcy5kYXRhW2tleV0gOlxuICAgICAgZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgc2VhcmNoUGxhY2VEYXRhPFQ+KGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgY29uc3QgZm91bmQgPSBrZXlzLmZpbmQoa2V5ID0+ICFpc05pbCh0aGlzLmRhdGFba2V5XSkpO1xuICAgICAgcmV0dXJuIGZvdW5kID8gdGhpcy5kYXRhW2ZvdW5kXSA6IGRlZmF1bHRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXRSb3V0ZUlkRnJvbSh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtZXRlckRlZiA9IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW1ldGVyRGVmID8gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUocm91dGVJZFBhcmFtZXRlckRlZikgOiBudWxsO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkUm91dGVJZCh2aXNpdDogVmlzaXRTZWdtZW50KTogYW55IHtcbiAgICAvLyBOb3RlOiBSb3V0ZUlkcyBhcmUgYWx3YXlzIHByZXNlbnQgaW4gdGhlIHVybCBhbmQgYXJlIGp1c3QgZW1wdHkgc3RyaW5ncyB3aGVuIG5vdCBkZWZpbmVkLiAgVGhpcyBpc1xuICAgIC8vIG1hbmRhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgcmVkaXJlY3RzIGZyb20gPHBhdGg+IHRvIDxwYXRoPi86aWQgYWx3YXlzIGluY2x1ZGUgdGhlIGlkIHBhcmFtZXRlciBhc1xuICAgIC8vIGFuIGVtcHR5IHN0cmluZy5cbiAgICByZXR1cm4gdmlzaXQuaGFzUm91dGVJZCgpID8gdGhpcy5nZXRSb3V0ZUlkUGFyYW1ldGVyRGVmKCkudXJsRm9ybWF0LmZvcm1hdCh2aXNpdC5nZXRSb3V0ZUlkKCkpIDogXCJcIjtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdDogVmlzaXRTZWdtZW50LCBpbmNsdWRlUm91dGVJZCA9IGZhbHNlKTogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZCwgaW5jbHVkZVJvdXRlUGFyYW1ldGVyczogdHJ1ZVxuICAgIH0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUoZGVmKTtcbiAgICAgIGlmICghZGVmLmlzRW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgaWYgKGRlZi5pc0FycmF5KSB7XG4gICAgICAgICAgYXNzZXJ0LmlzQXJyYXkodmFsdWUpO1xuICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZS5tYXAodiA9PiBkZWYudXJsRm9ybWF0LmZvcm1hdCh2KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXNzZXJ0LmlzRmFsc2V5KEFycmF5LmlzQXJyYXkodmFsdWUpKTtcbiAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gZGVmLnVybEZvcm1hdC5mb3JtYXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldE5vblJvdXRlUGFyYW1ldGVycyh2aXNpdDogVmlzaXRTZWdtZW50KTogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7aW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogdHJ1ZX0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUoZGVmKTtcbiAgICAgIGlmICghZGVmLmlzRW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwYXJzZVJvdXRlUGFyYW1zKHBhcmFtczogUGFyYW1NYXApOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZDogdHJ1ZSxcbiAgICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWUsXG4gICAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzOiBmYWxzZVxuICAgIH0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIC8vIHBhcmFtcyB3aWxsIHJldHVybiBudWxsIGZvciBub24gZXhpc3RlbnQgbmFtZXNcbiAgICAgIGlmIChwYXJhbXMuaGFzKGRlZi5uYW1lKSkge1xuICAgICAgICBpZiAoZGVmLmlzQXJyYXkpIHtcbiAgICAgICAgICAvLyBjb25zdCB2YWx1ZXMgPSBwYXJhbXMuZ2V0QWxsKGRlZi5uYW1lKTsgLy8gVE9ETzogRUVFSyBnZXRBbGwgaXMgcmV0dXJuaW5nIFtcIjEsMiwzLDRcIl0gd2hlbiB3ZSBnYXZlIGl0IFtcIjFcIixcIjJcIixcIjNcIixcIjRcIl0uXG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gcGFyYW1zLmdldChkZWYubmFtZSkuc3BsaXQoJywnKS5tYXAocyA9PiBzLnRyaW0oKSk7XG4gICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IHZhbHVlcy5tYXAodiA9PiBkZWYudXJsRm9ybWF0LnBhcnNlKHYpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtcy5nZXQoZGVmLm5hbWUpO1xuICAgICAgICAgIGlmIChkZWYuaXNSb3V0ZUlkKSB7IC8vIFRPRE86IE1vdmUgdGhpcyB0byBwYXJhbWV0ZXIgZGVmIHNvIGl0J3MgYSBzdHJhdGVneSBwYXR0ZXJuXG4gICAgICAgICAgICAvLyBiZWNhdXNlIG91ciBpZCByb3V0ZXMgcmVkaXJlY3QgaWYgdGhlIGlkIGlzbid0IHByZXNlbnQgd2UgYWx3YXlzIGhhdmUgYSBpZFxuICAgICAgICAgICAgLy8gcGFyYW1ldGVyIGluIG91ciBwYXJhbXMuICBUaGlzIHdpbGwgYnVnZ2VyIG91ciByZW1lbWJlciBhbmQgZGVmYXVsdHZhbHVlIHNhbml0aXNhdGlvblxuICAgICAgICAgICAgLy8gYXMgaXQnbGwgc2VlIHRoYXQgdGhlIGlkIGlzIHByZXNlbnQgKGV2ZW50IHRob3VnaHQgaXRzIGEgYmxhbmsgc3RyaW5nKS5cbiAgICAgICAgICAgIGlmICghaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gZGVmLnVybEZvcm1hdC5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHZhbGlkYXRlUm91dGVQYXJhbWV0ZXJzKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIGNvbnN0IGRlZnMgPSB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZDogdHJ1ZSxcbiAgICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWUsXG4gICAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzOiB0cnVlXG4gICAgfSkucmVkdWNlKChyZXN1bHQsIGRlZikgPT4ge1xuICAgICAgcmV0dXJuIHsuLi5yZXN1bHQsIFtkZWYubmFtZV06IGRlZn1cbiAgICB9LCB7fSk7XG5cbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtZXRlckRlZiA9IGRlZnNba2V5XTtcbiAgICAgIGlmICghcGFyYW1ldGVyRGVmKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBQYXJhbWV0ZXIgJHtrZXl9IGlzIG5vdCB2YWxpZC4gIE11c3QgYmUgb25lIG9mICR7am9pbihPYmplY3Qua2V5cyhkZWZzKSl9YClcbiAgICAgIH1cblxuICAgICAgaWYgKCEhcGFyYW1zW2tleV0gJiYgKEFycmF5LmlzQXJyYXkocGFyYW1zW2tleV0pICE9PSBwYXJhbWV0ZXJEZWYuaXNBcnJheSkpIHtcbiAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYFBhcmFtZXRlciAke2tleX0gJHtwYXJhbWV0ZXJEZWYuaXNBcnJheSA/IFwibXVzdCBiZSBhbiBhcnJheVwiIDogXCJtdXN0IG5vdCBiZSBhbiBhcnJheVwifS4gIEdvdCAke3BhcmFtc1trZXldfWApXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGhhc0FuY2VzdG9yKHBsYWNlQ29tcG9uZW50OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pikge1xuICAgIHJldHVybiB0aGlzLmFuY2VzdG9ycygpLmZpbmQoYSA9PiBhLmNvbXBvbmVudCA9PT0gcGxhY2VDb21wb25lbnQpICE9IG51bGw7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlRGVmaW5pdGlvbiB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyT3B0aW9ucyB7XG4gICAgaW5jbHVkZVJvdXRlSWQ/OiBib29sZWFuO1xuICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM/OiBib29sZWFuO1xuICAgIGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnM/OiBib29sZWFuO1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { assert } from '@coolon/pectin';
|
|
3
|
-
import { first } from 'lodash';
|
|
3
|
+
import { first } from 'lodash-es';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
/**
|
|
6
6
|
* TODO: this should be updated to store the last x visists rathern than a map of places to visit segments.
|
|
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
143
143
|
//
|
|
144
144
|
// }
|
|
145
145
|
})(PlaceHistory || (PlaceHistory = {}));
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWhpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFFBQVEsQ0FBQzs7QUFLN0I7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBRWYsZUFBZSxDQUEyQjtJQUMxQyxlQUFlLENBQTJCO0lBRTFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztJQUM3QyxpQkFBaUIsR0FBVyxDQUFDLENBQUM7SUFDL0MsdUJBQXVCO1FBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLE1BQWE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3RFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFtQjtRQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsUUFBeUI7UUFDekMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxX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bUI7SUFDbkIsTUFBTTtJQUNOLEVBQUU7SUFDRiwwQkFBMEI7SUFDMUIsb0VBQW9FO0lBQ3BFLE1BQU07SUFDTixFQUFFO0lBQ0YsY0FBYztJQUNkLG9DQUFvQztJQUNwQyx1RkFBdUY7SUFDdkYsTUFBTTtJQUNOLEVBQUU7SUFDRixjQUFjO0lBQ2QseUVBQXlFO0lBQ3pFLG1HQUFtRztJQUNuRyx1RkFBdUY7SUFDdkYsTUFBTTtJQUNOLEVBQUU7SUFDRixpQ0FBaUM7SUFDakMsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQixNQUFNO0lBQ04sRUFBRTtJQUNGLGlFQUFpRTtJQUNqRSxtQ0FBbUM7SUFDbkMsbUJBQW1CO0lBQ25CLE1BQU07SUFDTixFQUFFO0lBQ0YsbUNBQW1DO0lBQ25DLGtFQUFrRTtJQUNsRSxNQUFNO0lBQ04sRUFBRTtJQUNGLHdDQUF3QztJQUN4QywyRUFBMkU7SUFDM0UsTUFBTTtJQUNOLEVBQUU7SUFDRixJQUFJO0FBRU4sQ0FBQyxFQW5GZ0IsWUFBWSxLQUFaLFlBQVksUUFtRjVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5cbmltcG9ydCB7Zmlyc3R9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7VmlzaXR9IGZyb20gXCIuL3Zpc2l0XCI7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuLyoqXG4gKiBUT0RPOiB0aGlzIHNob3VsZCBiZSB1cGRhdGVkIHRvIHN0b3JlIHRoZSBsYXN0IHggdmlzaXN0cyByYXRoZXJuIHRoYW4gYSBtYXAgb2YgcGxhY2VzIHRvIHZpc2l0IHNlZ21lbnRzLlxuICogICAgICAgVGhpcyB3b3VsZCBhbGxvdyBpdCB0byByZXR1cm4gc2VnbWVudHMgdGhhdCBhcmUgcmVsZXZlbnQgdG8gYSBwYXJ0aWN1bGFyIHBhcmVudCBwYXRoLiBDdXJyZW50bHlcbiAqICAgICAgIGl0IGp1c3QgcmV0dXJucyB0aGUgbGFzdCBzZWdtZW50IHNvIGl0IGNhbiByZXR1cm4gY2hpbGQgaWRzIHRoYXQgZG9uJ3QgYmVsb25nIHRvIHRoZSBjdXJyZW50IHBhcmVudC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VIaXN0b3J5IHtcblxuICBwcml2YXRlIF9hY3RpdmVTZWdtZW50czogUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkO1xuICBwcml2YXRlIF9wcmV2aW91c1Zpc2l0czogUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkO1xuXG4gIHByaXZhdGUgX2FyY2hpdmUgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50W10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VIaXN0b3J5RGVwdGg6IG51bWJlciA9IDQ7XG4gIG5vdGlmeU5hdmlnYXRpb25TdGFydGVkKCkge1xuICAgIGlmICh0aGlzLl9hY3RpdmVTZWdtZW50cykge1xuICAgICAgdGhpcy5hcmNoaXZlU2VnbWVudHModGhpcy5fYWN0aXZlU2VnbWVudHMudmlzaXRTZWdtZW50cyk7XG4gICAgICB0aGlzLl9wcmV2aW91c1Zpc2l0cyA9IHRoaXMuX2FjdGl2ZVNlZ21lbnRzO1xuICAgIH1cbiAgfVxuXG4gIG5vdGlmeU5hdmlnYXRpb25GaW5pc2hlZCh2aXNpdHM6IFZpc2l0KSB7XG4gICAgdGhpcy5fYWN0aXZlU2VnbWVudHMgPSBuZXcgUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkKHZpc2l0cy5zZWdtZW50cylcbiAgfVxuXG4gIHVwZGF0ZVZpc2l0U2VnbWVudCh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuX2FjdGl2ZVNlZ21lbnRzKTtcbiAgICB0aGlzLl9hY3RpdmVTZWdtZW50cy51cGRhdGUodmlzaXQpO1xuICB9XG5cbiAgbGFzdFZpc2l0SW5jbHVkZWQocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3ByZXZpb3VzVmlzaXRzPy5nZXRWaXNpdEZvcihwbGFjZURlZik7XG4gIH1cblxuICBnZXRNb3N0UmVjZW50VmlzaXRTZWdtZW50Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gZmlyc3QodGhpcy5nZXRTZWdtZW50SGlzdG9yeUZvcihwbGFjZURlZikpO1xuICB9XG5cbiAgZ2V0U2VnbWVudEhpc3RvcnlGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IFZpc2l0U2VnbWVudFtdIHtcbiAgICBsZXQgaGlzdG9yeSA9IHRoaXMuX2FyY2hpdmUuZ2V0KHBsYWNlRGVmKTtcbiAgICBpZiAoIWhpc3RvcnkpIHtcbiAgICAgIGhpc3RvcnkgPSBbXTtcbiAgICAgIHRoaXMuc2V0SGlzdG9yeShwbGFjZURlZiwgaGlzdG9yeSk7XG4gICAgfVxuICAgIHJldHVybiBoaXN0b3J5O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRIaXN0b3J5KHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24sIGhpc3Rvcnk6IFZpc2l0U2VnbWVudFtdKSB7XG4gICAgdGhpcy5fYXJjaGl2ZS5zZXQocGxhY2VEZWYsIGhpc3RvcnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFyY2hpdmVTZWdtZW50cyh2aXNpdHM6IFZpc2l0U2VnbWVudFtdKSB7XG4gICAgdmlzaXRzLmZvckVhY2goc3RhdGUgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IHRoaXMuZ2V0U2VnbWVudEhpc3RvcnlGb3Ioc3RhdGUucGxhY2VEZWZpbml0aW9uKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBmaXJzdChoaXN0b3J5KTtcbiAgICAgIGlmICghcHJldmlvdXNTdGF0ZSB8fCBzdGF0ZS5oYXNDaGFuZ2VkRnJvbShwcmV2aW91c1N0YXRlKSkge1xuICAgICAgICBoaXN0b3J5LnVuc2hpZnQoc3RhdGUpOyAvLyBMSUZPXG4gICAgICAgIHRoaXMuc2V0SGlzdG9yeShzdGF0ZS5wbGFjZURlZmluaXRpb24sIGhpc3Rvcnkuc2xpY2UoMCwgdGhpcy5wbGFjZUhpc3RvcnlEZXB0aCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlSGlzdG9yeSB7XG5cbiAgZXhwb3J0IGNsYXNzIFZpc2l0UmVjb3JkIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlzaXRTZWdtZW50czogVmlzaXRTZWdtZW50W10pIHtcbiAgICB9XG5cbiAgICB1cGRhdGUodmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgICAgdGhpcy52aXNpdFNlZ21lbnRzID0gdGhpcy52aXNpdFNlZ21lbnRzXG4gICAgICAgIC5maWx0ZXIodiA9PiB2LnBsYWNlRGVmaW5pdGlvbiAhPT0gdmlzaXQucGxhY2VEZWZpbml0aW9uKSAvLyBrZWVwIGFsbCB0aGF0IGFyZSBub3QgbWVcbiAgICAgICAgLmNvbmNhdCh2aXNpdCk7IC8vIGFuZCBhZGQgbWUgdG8gdGhlIGVuZFxuICAgIH1cblxuICAgIGdldFZpc2l0Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBWaXNpdFNlZ21lbnQgfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMudmlzaXRTZWdtZW50cy5maW5kKHYgPT4gdi5wbGFjZURlZmluaXRpb24gPT09IHBsYWNlRGVmKTtcbiAgICB9XG4gIH1cblxuICAvLyBleHBvcnQgY2xhc3MgUXVlcnkge1xuICAvLyAgIHByaXZhdGUgX2hpc3Rvcnk6IFZpc2l0LlN0YXRlW107XG4gIC8vICAgcHJpdmF0ZSBfcGxhY2VzOiBQbGFjZVtdO1xuICAvLyAgIHByaXZhdGUgX3ByZWRpY2F0ZTogKHZpc2l0OiBhbnkpID0+IGJvb2xlYW47XG4gIC8vICAgcHJpdmF0ZSBfbGltaXQ6IG51bWJlcjtcbiAgLy9cbiAgLy8gICBjb25zdHJ1Y3RvcihoaXN0b3J5LCBsaW1pdCA9IGhpc3RvcnkubGVuZ3RoKSB7XG4gIC8vICAgICB0aGlzLl9oaXN0b3J5ID0gaGlzdG9yeTtcbiAgLy8gICAgIHRoaXMuX3BsYWNlcyA9IFtdO1xuICAvLyAgICAgdGhpcy5fcHJlZGljYXRlID0gKHZpc2l0ID0+IHRydWUpO1xuICAvLyAgICAgdGhpcy5fbGltaXQgPSBsaW1pdDtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgdG8oLi4ucGxhY2VzOlBsYWNlW10pOnRoaXMge1xuICAvLyAgICAgdGhpcy5fcGxhY2VzID0gcGxhY2VzO1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIHdpdGgocGFyYW1ldGVyczogeyBbcGFyYW1ldGVyOiBzdHJpbmddOiBhbnkgfSk6IHRoaXMge1xuICAvLyAgICAgdGhpcy5tYXRjaGluZyhzdGF0ZSA9PiB7XG4gIC8vICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gIC8vICAgICAgICAgY29uc3QgbWF0Y2hWYWx1ZSA9IHBhcmFtZXRlcnNba2V5XTtcbiAgLy8gICAgICAgICBjb25zdCB2aXNpdFZhbHVlID0gc3RhdGUuZ2V0KGtleSk7XG4gIC8vICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IG1hdGNoVmFsdWUgPT09ICcqJyA/ICFpc05pbCh2aXNpdFZhbHVlKSA6IHZpc2l0VmFsdWUgPT0gbWF0Y2hWYWx1ZTtcbiAgLy8gICAgICAgICAvLyBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYG1hdGNoZWQ9JHttYXRjaGVkfWAsIHBhcmFtZXRlcnMsIHZpc2l0VmFsdWUpO1xuICAvLyAgICAgICAgIHJldHVybiBhY2MgJiYgbWF0Y2hlZDtcbiAgLy8gICAgICAgfSwgdHJ1ZSk7XG4gIC8vICAgICB9KTtcbiAgLy8gICAgIHJldHVybiB0aGlzO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBsYXN0KCk6IFZpc2l0LlN0YXRlIHtcbiAgLy8gICAgIHJldHVybiBmaW5kTGFzdCh0aGlzLl9oaXN0b3J5LCB2aXNpdCA9PiB0aGlzLl9tYXRjaGVzKHZpc2l0KSlcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgLy8gQHRyYWNlXG4gIC8vICAgYWxsVGhhdE1hdGNoKCk6IFZpc2l0LlN0YXRlW10ge1xuICAvLyAgICAgcmV0dXJuIGZpbHRlcih0aGlzLl9oaXN0b3J5LCB2aXNpdCA9PiB0aGlzLl9tYXRjaGVzKHZpc2l0KSkuc2xpY2UoLXRoaXMuX2xpbWl0KTtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgLy8gQHRyYWNlXG4gIC8vICAgbW9zdFJlY2VudFZhbHVlT2Y8VD1hbnk+KHBhcmFtOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCA9IG51bGwpOiBUIHtcbiAgLy8gICAgIGNvbnN0IGxhc3RTdGF0ZVdpdGhQYXJhbSA9IGZpbmRMYXN0KHRoaXMuYWxsVGhhdE1hdGNoKCksIHN0YXRlID0+ICFpc05pbChzdGF0ZS5nZXQocGFyYW0pKSk7XG4gIC8vICAgICByZXR1cm4gaXNOaWwobGFzdFN0YXRlV2l0aFBhcmFtKSA/IGRlZmF1bHRWYWx1ZSA6IGxhc3RTdGF0ZVdpdGhQYXJhbS5nZXQocGFyYW0pO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBsaW1pdChsaW1pdDogbnVtYmVyKTogdGhpcyB7XG4gIC8vICAgICB0aGlzLl9saW1pdCA9IGxpbWl0O1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIG1hdGNoaW5nKHByZWRpY2F0ZTogKHZpc2l0OiBWaXNpdC5TdGF0ZSkgPT4gYm9vbGVhbik6IHRoaXMge1xuICAvLyAgICAgdGhpcy5fcHJlZGljYXRlID0gcHJlZGljYXRlO1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIF9tYXRjaGVzKHZpc2l0OiBWaXNpdC5TdGF0ZSkge1xuICAvLyAgICAgcmV0dXJuIHRoaXMuX2lzUGxhY2VNYXRjaCh2aXNpdCkgJiYgdGhpcy5fcHJlZGljYXRlKHZpc2l0KTtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgX2lzUGxhY2VNYXRjaCh2aXNpdDogVmlzaXQuU3RhdGUpIHtcbiAgLy8gICAgIHJldHVybiB0aGlzLl9wbGFjZXMubGVuZ3RoIDwgMSB8fCB0aGlzLl9wbGFjZXMuaW5jbHVkZXModmlzaXQucGxhY2UpXG4gIC8vICAgfVxuICAvL1xuICAvLyB9XG5cbn1cbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWhpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFLaEM7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBRWYsZUFBZSxDQUEyQjtJQUMxQyxlQUFlLENBQTJCO0lBRTFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztJQUM3QyxpQkFBaUIsR0FBVyxDQUFDLENBQUM7SUFDL0MsdUJBQXVCO1FBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLE1BQWE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3RFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFtQjtRQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsUUFBeUI7UUFDekMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxX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bUI7SUFDbkIsTUFBTTtJQUNOLEVBQUU7SUFDRiwwQkFBMEI7SUFDMUIsb0VBQW9FO0lBQ3BFLE1BQU07SUFDTixFQUFFO0lBQ0YsY0FBYztJQUNkLG9DQUFvQztJQUNwQyx1RkFBdUY7SUFDdkYsTUFBTTtJQUNOLEVBQUU7SUFDRixjQUFjO0lBQ2QseUVBQXlFO0lBQ3pFLG1HQUFtRztJQUNuRyx1RkFBdUY7SUFDdkYsTUFBTTtJQUNOLEVBQUU7SUFDRixpQ0FBaUM7SUFDakMsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQixNQUFNO0lBQ04sRUFBRTtJQUNGLGlFQUFpRTtJQUNqRSxtQ0FBbUM7SUFDbkMsbUJBQW1CO0lBQ25CLE1BQU07SUFDTixFQUFFO0lBQ0YsbUNBQW1DO0lBQ25DLGtFQUFrRTtJQUNsRSxNQUFNO0lBQ04sRUFBRTtJQUNGLHdDQUF3QztJQUN4QywyRUFBMkU7SUFDM0UsTUFBTTtJQUNOLEVBQUU7SUFDRixJQUFJO0FBRU4sQ0FBQyxFQW5GZ0IsWUFBWSxLQUFaLFlBQVksUUFtRjVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5cbmltcG9ydCB7Zmlyc3R9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7VmlzaXR9IGZyb20gXCIuL3Zpc2l0XCI7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuLyoqXG4gKiBUT0RPOiB0aGlzIHNob3VsZCBiZSB1cGRhdGVkIHRvIHN0b3JlIHRoZSBsYXN0IHggdmlzaXN0cyByYXRoZXJuIHRoYW4gYSBtYXAgb2YgcGxhY2VzIHRvIHZpc2l0IHNlZ21lbnRzLlxuICogICAgICAgVGhpcyB3b3VsZCBhbGxvdyBpdCB0byByZXR1cm4gc2VnbWVudHMgdGhhdCBhcmUgcmVsZXZlbnQgdG8gYSBwYXJ0aWN1bGFyIHBhcmVudCBwYXRoLiBDdXJyZW50bHlcbiAqICAgICAgIGl0IGp1c3QgcmV0dXJucyB0aGUgbGFzdCBzZWdtZW50IHNvIGl0IGNhbiByZXR1cm4gY2hpbGQgaWRzIHRoYXQgZG9uJ3QgYmVsb25nIHRvIHRoZSBjdXJyZW50IHBhcmVudC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VIaXN0b3J5IHtcblxuICBwcml2YXRlIF9hY3RpdmVTZWdtZW50czogUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkO1xuICBwcml2YXRlIF9wcmV2aW91c1Zpc2l0czogUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkO1xuXG4gIHByaXZhdGUgX2FyY2hpdmUgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50W10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VIaXN0b3J5RGVwdGg6IG51bWJlciA9IDQ7XG4gIG5vdGlmeU5hdmlnYXRpb25TdGFydGVkKCkge1xuICAgIGlmICh0aGlzLl9hY3RpdmVTZWdtZW50cykge1xuICAgICAgdGhpcy5hcmNoaXZlU2VnbWVudHModGhpcy5fYWN0aXZlU2VnbWVudHMudmlzaXRTZWdtZW50cyk7XG4gICAgICB0aGlzLl9wcmV2aW91c1Zpc2l0cyA9IHRoaXMuX2FjdGl2ZVNlZ21lbnRzO1xuICAgIH1cbiAgfVxuXG4gIG5vdGlmeU5hdmlnYXRpb25GaW5pc2hlZCh2aXNpdHM6IFZpc2l0KSB7XG4gICAgdGhpcy5fYWN0aXZlU2VnbWVudHMgPSBuZXcgUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkKHZpc2l0cy5zZWdtZW50cylcbiAgfVxuXG4gIHVwZGF0ZVZpc2l0U2VnbWVudCh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuX2FjdGl2ZVNlZ21lbnRzKTtcbiAgICB0aGlzLl9hY3RpdmVTZWdtZW50cy51cGRhdGUodmlzaXQpO1xuICB9XG5cbiAgbGFzdFZpc2l0SW5jbHVkZWQocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3ByZXZpb3VzVmlzaXRzPy5nZXRWaXNpdEZvcihwbGFjZURlZik7XG4gIH1cblxuICBnZXRNb3N0UmVjZW50VmlzaXRTZWdtZW50Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gZmlyc3QodGhpcy5nZXRTZWdtZW50SGlzdG9yeUZvcihwbGFjZURlZikpO1xuICB9XG5cbiAgZ2V0U2VnbWVudEhpc3RvcnlGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IFZpc2l0U2VnbWVudFtdIHtcbiAgICBsZXQgaGlzdG9yeSA9IHRoaXMuX2FyY2hpdmUuZ2V0KHBsYWNlRGVmKTtcbiAgICBpZiAoIWhpc3RvcnkpIHtcbiAgICAgIGhpc3RvcnkgPSBbXTtcbiAgICAgIHRoaXMuc2V0SGlzdG9yeShwbGFjZURlZiwgaGlzdG9yeSk7XG4gICAgfVxuICAgIHJldHVybiBoaXN0b3J5O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRIaXN0b3J5KHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24sIGhpc3Rvcnk6IFZpc2l0U2VnbWVudFtdKSB7XG4gICAgdGhpcy5fYXJjaGl2ZS5zZXQocGxhY2VEZWYsIGhpc3RvcnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFyY2hpdmVTZWdtZW50cyh2aXNpdHM6IFZpc2l0U2VnbWVudFtdKSB7XG4gICAgdmlzaXRzLmZvckVhY2goc3RhdGUgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IHRoaXMuZ2V0U2VnbWVudEhpc3RvcnlGb3Ioc3RhdGUucGxhY2VEZWZpbml0aW9uKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBmaXJzdChoaXN0b3J5KTtcbiAgICAgIGlmICghcHJldmlvdXNTdGF0ZSB8fCBzdGF0ZS5oYXNDaGFuZ2VkRnJvbShwcmV2aW91c1N0YXRlKSkge1xuICAgICAgICBoaXN0b3J5LnVuc2hpZnQoc3RhdGUpOyAvLyBMSUZPXG4gICAgICAgIHRoaXMuc2V0SGlzdG9yeShzdGF0ZS5wbGFjZURlZmluaXRpb24sIGhpc3Rvcnkuc2xpY2UoMCwgdGhpcy5wbGFjZUhpc3RvcnlEZXB0aCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlSGlzdG9yeSB7XG5cbiAgZXhwb3J0IGNsYXNzIFZpc2l0UmVjb3JkIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlzaXRTZWdtZW50czogVmlzaXRTZWdtZW50W10pIHtcbiAgICB9XG5cbiAgICB1cGRhdGUodmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgICAgdGhpcy52aXNpdFNlZ21lbnRzID0gdGhpcy52aXNpdFNlZ21lbnRzXG4gICAgICAgIC5maWx0ZXIodiA9PiB2LnBsYWNlRGVmaW5pdGlvbiAhPT0gdmlzaXQucGxhY2VEZWZpbml0aW9uKSAvLyBrZWVwIGFsbCB0aGF0IGFyZSBub3QgbWVcbiAgICAgICAgLmNvbmNhdCh2aXNpdCk7IC8vIGFuZCBhZGQgbWUgdG8gdGhlIGVuZFxuICAgIH1cblxuICAgIGdldFZpc2l0Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBWaXNpdFNlZ21lbnQgfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMudmlzaXRTZWdtZW50cy5maW5kKHYgPT4gdi5wbGFjZURlZmluaXRpb24gPT09IHBsYWNlRGVmKTtcbiAgICB9XG4gIH1cblxuICAvLyBleHBvcnQgY2xhc3MgUXVlcnkge1xuICAvLyAgIHByaXZhdGUgX2hpc3Rvcnk6IFZpc2l0LlN0YXRlW107XG4gIC8vICAgcHJpdmF0ZSBfcGxhY2VzOiBQbGFjZVtdO1xuICAvLyAgIHByaXZhdGUgX3ByZWRpY2F0ZTogKHZpc2l0OiBhbnkpID0+IGJvb2xlYW47XG4gIC8vICAgcHJpdmF0ZSBfbGltaXQ6IG51bWJlcjtcbiAgLy9cbiAgLy8gICBjb25zdHJ1Y3RvcihoaXN0b3J5LCBsaW1pdCA9IGhpc3RvcnkubGVuZ3RoKSB7XG4gIC8vICAgICB0aGlzLl9oaXN0b3J5ID0gaGlzdG9yeTtcbiAgLy8gICAgIHRoaXMuX3BsYWNlcyA9IFtdO1xuICAvLyAgICAgdGhpcy5fcHJlZGljYXRlID0gKHZpc2l0ID0+IHRydWUpO1xuICAvLyAgICAgdGhpcy5fbGltaXQgPSBsaW1pdDtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgdG8oLi4ucGxhY2VzOlBsYWNlW10pOnRoaXMge1xuICAvLyAgICAgdGhpcy5fcGxhY2VzID0gcGxhY2VzO1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIHdpdGgocGFyYW1ldGVyczogeyBbcGFyYW1ldGVyOiBzdHJpbmddOiBhbnkgfSk6IHRoaXMge1xuICAvLyAgICAgdGhpcy5tYXRjaGluZyhzdGF0ZSA9PiB7XG4gIC8vICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gIC8vICAgICAgICAgY29uc3QgbWF0Y2hWYWx1ZSA9IHBhcmFtZXRlcnNba2V5XTtcbiAgLy8gICAgICAgICBjb25zdCB2aXNpdFZhbHVlID0gc3RhdGUuZ2V0KGtleSk7XG4gIC8vICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IG1hdGNoVmFsdWUgPT09ICcqJyA/ICFpc05pbCh2aXNpdFZhbHVlKSA6IHZpc2l0VmFsdWUgPT0gbWF0Y2hWYWx1ZTtcbiAgLy8gICAgICAgICAvLyBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYG1hdGNoZWQ9JHttYXRjaGVkfWAsIHBhcmFtZXRlcnMsIHZpc2l0VmFsdWUpO1xuICAvLyAgICAgICAgIHJldHVybiBhY2MgJiYgbWF0Y2hlZDtcbiAgLy8gICAgICAgfSwgdHJ1ZSk7XG4gIC8vICAgICB9KTtcbiAgLy8gICAgIHJldHVybiB0aGlzO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBsYXN0KCk6IFZpc2l0LlN0YXRlIHtcbiAgLy8gICAgIHJldHVybiBmaW5kTGFzdCh0aGlzLl9oaXN0b3J5LCB2aXNpdCA9PiB0aGlzLl9tYXRjaGVzKHZpc2l0KSlcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgLy8gQHRyYWNlXG4gIC8vICAgYWxsVGhhdE1hdGNoKCk6IFZpc2l0LlN0YXRlW10ge1xuICAvLyAgICAgcmV0dXJuIGZpbHRlcih0aGlzLl9oaXN0b3J5LCB2aXNpdCA9PiB0aGlzLl9tYXRjaGVzKHZpc2l0KSkuc2xpY2UoLXRoaXMuX2xpbWl0KTtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgLy8gQHRyYWNlXG4gIC8vICAgbW9zdFJlY2VudFZhbHVlT2Y8VD1hbnk+KHBhcmFtOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCA9IG51bGwpOiBUIHtcbiAgLy8gICAgIGNvbnN0IGxhc3RTdGF0ZVdpdGhQYXJhbSA9IGZpbmRMYXN0KHRoaXMuYWxsVGhhdE1hdGNoKCksIHN0YXRlID0+ICFpc05pbChzdGF0ZS5nZXQocGFyYW0pKSk7XG4gIC8vICAgICByZXR1cm4gaXNOaWwobGFzdFN0YXRlV2l0aFBhcmFtKSA/IGRlZmF1bHRWYWx1ZSA6IGxhc3RTdGF0ZVdpdGhQYXJhbS5nZXQocGFyYW0pO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBsaW1pdChsaW1pdDogbnVtYmVyKTogdGhpcyB7XG4gIC8vICAgICB0aGlzLl9saW1pdCA9IGxpbWl0O1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIG1hdGNoaW5nKHByZWRpY2F0ZTogKHZpc2l0OiBWaXNpdC5TdGF0ZSkgPT4gYm9vbGVhbik6IHRoaXMge1xuICAvLyAgICAgdGhpcy5fcHJlZGljYXRlID0gcHJlZGljYXRlO1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIF9tYXRjaGVzKHZpc2l0OiBWaXNpdC5TdGF0ZSkge1xuICAvLyAgICAgcmV0dXJuIHRoaXMuX2lzUGxhY2VNYXRjaCh2aXNpdCkgJiYgdGhpcy5fcHJlZGljYXRlKHZpc2l0KTtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgX2lzUGxhY2VNYXRjaCh2aXNpdDogVmlzaXQuU3RhdGUpIHtcbiAgLy8gICAgIHJldHVybiB0aGlzLl9wbGFjZXMubGVuZ3RoIDwgMSB8fCB0aGlzLl9wbGFjZXMuaW5jbHVkZXModmlzaXQucGxhY2UpXG4gIC8vICAgfVxuICAvL1xuICAvLyB9XG5cbn1cbiJdfQ==
|