@coolon/angular-ui-powerups 0.0.88 → 0.0.90
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/bundles/coolon-angular-ui-powerups.umd.js +291 -201
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +2 -2
- package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +2 -2
- package/esm2015/lib/interaction/interaction-context.js +18 -2
- package/esm2015/lib/interaction/services/dialog-interaction.service.js +2 -2
- package/esm2015/lib/place/components/abstract-place-navigation.component.js +9 -2
- package/esm2015/lib/place/place-definition.js +16 -19
- package/esm2015/lib/place/place-router.js +122 -18
- package/esm2015/lib/place/place.module.js +6 -3
- package/esm2015/lib/place/route/guards/enter-place-guard.service.js +3 -38
- package/esm2015/lib/place/visit.js +4 -11
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +2 -2
- package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +2 -2
- package/esm5/lib/interaction/interaction-context.js +29 -2
- package/esm5/lib/interaction/services/dialog-interaction.service.js +2 -2
- package/esm5/lib/place/components/abstract-place-navigation.component.js +9 -2
- package/esm5/lib/place/place-definition.js +17 -39
- package/esm5/lib/place/place-router.js +143 -16
- package/esm5/lib/place/place.module.js +6 -3
- package/esm5/lib/place/route/guards/enter-place-guard.service.js +3 -44
- package/esm5/lib/place/visit.js +4 -14
- package/fesm2015/coolon-angular-ui-powerups.js +240 -156
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +279 -188
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +1 -1
- package/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.d.ts +1 -1
- package/lib/interaction/interaction-context.d.ts +2 -1
- package/lib/interaction/services/dialog-interaction.service.d.ts +1 -1
- package/lib/place/place-definition.d.ts +0 -4
- package/lib/place/place-router.d.ts +18 -2
- package/lib/place/route/guards/enter-place-guard.service.d.ts +0 -1
- package/lib/place/visit.d.ts +0 -2
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
5
6
|
import { GarbageCollector } from '@coolon/pectin';
|
|
6
7
|
import * as _ from 'lodash';
|
|
7
8
|
/**
|
|
@@ -22,6 +23,21 @@ export class InteractionContext extends GarbageCollector {
|
|
|
22
23
|
get currentActivity() {
|
|
23
24
|
return _.last(this.activityList.value);
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* @param {?} confirm
|
|
28
|
+
* @return {?}
|
|
29
|
+
*/
|
|
30
|
+
confirm(confirm) {
|
|
31
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
try {
|
|
33
|
+
yield this.confirmOrReject(confirm);
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
catch (_a) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
25
41
|
}
|
|
26
42
|
if (false) {
|
|
27
43
|
/**
|
|
@@ -49,7 +65,7 @@ if (false) {
|
|
|
49
65
|
* @param {?} confirm
|
|
50
66
|
* @return {?}
|
|
51
67
|
*/
|
|
52
|
-
InteractionContext.prototype.
|
|
68
|
+
InteractionContext.prototype.confirmOrReject = function (confirm) { };
|
|
53
69
|
/**
|
|
54
70
|
* Presents the confirmation to the user and runs the activity only if the user confirms.
|
|
55
71
|
* @abstract
|
|
@@ -67,4 +83,4 @@ if (false) {
|
|
|
67
83
|
*/
|
|
68
84
|
InteractionContext.prototype.alert = function (alert) { };
|
|
69
85
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFpQixnQkFBZ0IsRUFBZ0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUkvRixPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7OztBQUU1QixNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGdCQUFnQjs7OztJQVEvRDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQzs7Ozs7O0lBTUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Ozs7O0lBV0ssT0FBTyxDQUFDLE9BQWdCOztZQUM1QixJQUFJO2dCQUNGLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDcEMsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUFDLFdBQU07Z0JBQ04sT0FBTyxLQUFLLENBQUM7YUFDZDtRQUNILENBQUM7S0FBQTtDQVlGOzs7Ozs7O0lBMUNDLDBDQUE4RDs7Ozs7O0lBaUI5RCx3REFBNkI7Ozs7Ozs7O0lBRTdCLCtFQUFzRzs7Ozs7O0lBRXRHLHNFQUEwRDs7Ozs7Ozs7OztJQWlCMUQsc0ZBQXNIOzs7Ozs7SUFFdEgsMERBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgR2FyYmFnZUNvbGxlY3RvciwgTGlzdE1vZGVsLCBUcmFjZSwgVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi9hY3Rpdml0eSc7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJy4vYWxlcnQnO1xuaW1wb3J0IHsgQ29uZmlybSB9IGZyb20gJy4vY29uZmlybSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJbnRlcmFjdGlvbkNvbnRleHQgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBsaXN0IG9mIGFjdGl2aXRpZXMgdGhhdCBhcmUgaW4gcHJvZ3Jlc3MuXG4gICAqIFRoaXMgbW9kZWwgaXMgb25seSB1cGRhdGVkIGluIHRoZSBuZXh0IHRpY2sgYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gdXBkYXRlZC5cbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IGFjdGl2aXR5TGlzdDogTGlzdE1vZGVsPEFjdGl2aXR5PGFueSwgYW55Pj47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYWN0aXZpdHkgdGhhdCBpcyBjdXJyZW50bHkgYWN0aXZlLlxuICAgKiBUaGlzIG1vZGVsIGlzIG9ubHkgdXBkYXRlZCBpbiB0aGUgbmV4dCB0aWNrIGFmdGVyIHRoZSB2aWV3IGhhcyBiZWVuIHVwZGF0ZWQuXG4gICAqL1xuICBnZXQgY3VycmVudEFjdGl2aXR5KCk6IEFjdGl2aXR5PGFueSwgYW55PiB7XG4gICAgcmV0dXJuIF8ubGFzdCh0aGlzLmFjdGl2aXR5TGlzdC52YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFuIGFjdGl2aXR5IGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICAgKi9cbiAgYWJzdHJhY3QgaXNBY3RpdmUoKTogYm9vbGVhbjtcblxuICBhYnN0cmFjdCBzdGFydEFjdGl2aXR5PEQsIFIsIEU+KGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sIGRhdGE/OiBEKTogUHJvbWlzZTxSPjtcblxuICBhYnN0cmFjdCBjb25maXJtT3JSZWplY3QoY29uZmlybTogQ29uZmlybSk6IFByb21pc2U8dm9pZD47XG5cbiAgYXN5bmMgY29uZmlybShjb25maXJtOiBDb25maXJtKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlybU9yUmVqZWN0KGNvbmZpcm0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByZXNlbnRzIHRoZSBjb25maXJtYXRpb24gdG8gdGhlIHVzZXIgYW5kIHJ1bnMgdGhlIGFjdGl2aXR5IG9ubHkgaWYgdGhlIHVzZXIgY29uZmlybXMuXG4gICAqIEBwYXJhbSBjb25maXJtOkNvbmZpcm0gdGhlIGNvbmZpcm1hdGlvbiB0byBkaXNwbGF5LlxuICAgKiBAcGFyYW0gYWN0aXZpdHlUeXBlIHRoZSBhY3Rpdml0eSB0byBydW4gaWYgY29uZmlybWVkLlxuICAgKiBAcGFyYW0gZGF0YSB0aGUgYWN0aXZpdHkgZGF0YS5cbiAgICovXG4gIGFic3RyYWN0IGNvbmZpcm1UaGVuPEQsIFIsIEU+KGNvbmZpcm06IENvbmZpcm0sIGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sIGRhdGE/OiBEKTogUHJvbWlzZTxSPjtcblxuICBhYnN0cmFjdCBhbGVydChhbGVydDogQWxlcnQpOiBQcm9taXNlPHZvaWQ+O1xuXG59XG5cbiJdfQ==
|
|
@@ -210,7 +210,7 @@ export class DialogInteractionService extends InteractionContext {
|
|
|
210
210
|
* @param {?} confirm
|
|
211
211
|
* @return {?}
|
|
212
212
|
*/
|
|
213
|
-
|
|
213
|
+
confirmOrReject(confirm) {
|
|
214
214
|
return this._startActivity(ConfirmationDialogComponent, confirm, true);
|
|
215
215
|
}
|
|
216
216
|
/**
|
|
@@ -269,4 +269,4 @@ if (false) {
|
|
|
269
269
|
/** @type {?} */
|
|
270
270
|
DialogInteractionService.prototype.matDialogDefaultConfig;
|
|
271
271
|
}
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWludGVyYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vc2VydmljZXMvZGlhbG9nLWludGVyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLEdBQUcsRUFDSCxJQUFJLEVBRUosVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3RELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFFNUQsTUFBTSxPQUFPLG1DQUFtQyxHQUFHLElBQUksY0FBYyxDQUF1QixxQ0FBcUMsQ0FBQztBQUVsSSxNQUFNLEtBQU0sU0FBUSxVQUFtQjtJQUVyQztRQUNFLEtBQUss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LFNBQUMsMEJBQTBCOzs7Ozs7OztJQVIxRCxpREFBK0U7Ozs7O0lBQy9FLGlEQUFvQzs7SUFDcEMsMENBQXdDOzs7OztJQUU1QixpREFBeUM7O0lBQ3pDLDRDQUEyQjs7SUFDM0IsMENBQXVCOztJQUN2Qix5REFBNkc7O0lBQzdHLDBEQUFxRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREVGQVVMVF9PUFRJT05TLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIENvbnN0cnVjdGFibGUsXG4gIERlbGVnYXRpbmdMaXN0TW9kZWwsXG4gIERzbCxcbiAgbGFuZyxcbiAgTGlzdE1vZGVsLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi9hY3Rpdml0eSc7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJy4uL2FsZXJ0JztcbmltcG9ydCB7IEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWxlcnQtZGlhbG9nL2FsZXJ0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybVRoZW5EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbmZpcm0tdGhlbi1kaWFsb2cvY29uZmlybS10aGVuLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm0gfSBmcm9tICcuLi9jb25maXJtJztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuXG5leHBvcnQgY29uc3QgRElBTE9HX0lOVEVSQUNUSU9OX1NFUlZJQ0VfREVGQVVMVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWF0RGlhbG9nQ29uZmlnPGFueT4+KCdESUFMT0dfSU5URVJBQ1RJT05fU0VSVklDRV9ERUZBVUxUUycpO1xuXG5jbGFzcyBHdWFyZCBleHRlbmRzIFZhbHVlTW9kZWw8Ym9vbGVhbj4ge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHsgaW5pdGlhbFZhbHVlOiBmYWxzZSB9KTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5yZWFkKCk7XG4gIH1cblxuICB3aGlsZVRydWU8Uj4oZnVuOiAoKSA9PiBSKTogUiB7XG4gICAgdGhpcy5zdGFydFRyYW5zYWN0aW9uKCkuY29tbWl0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZnVuKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc3RhcnRUcmFuc2FjdGlvbigpLmNvbW1pdChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcnVuSWZGYWxzZTxSPihmdW46ICgpID0+IFIsIGRlZmF1bHRWYWx1ZTogUiA9IG51bGwpOiBSIHtcbiAgICByZXR1cm4gIXRoaXMudmFsdWUgPyBmdW4oKSA6IGRlZmF1bHRWYWx1ZTtcbiAgfVxufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0ludGVyYWN0aW9uU2VydmljZSBleHRlbmRzIEludGVyYWN0aW9uQ29udGV4dCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZpdHlMaXN0ID0gbmV3IERlbGVnYXRpbmdMaXN0TW9kZWw8QWN0aXZpdHk8YW55LCBhbnk+PigpO1xuICBwcml2YXRlIHN0YXJ0aW5nR3VhcmQgPSBuZXcgR3VhcmQoKTtcbiAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogTWF0RGlhbG9nLFxuICAgICAgICAgICAgICByZWFkb25seSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERJQUxPR19JTlRFUkFDVElPTl9TRVJWSUNFX0RFRkFVTFRTKSByZWFkb25seSBkaWFsb2dTZXJ2aWNlRGVmYXVsdHM6IE1hdERpYWxvZ0NvbmZpZzxhbnk+LFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREVGQVVMVF9PUFRJT05TKSByZWFkb25seSBtYXREaWFsb2dEZWZhdWx0Q29uZmlnOiBNYXREaWFsb2dDb25maWc8YW55PlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIGFzc2VydC5ub3ROaWwoZGlhbG9nU2VydmljZSk7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGNoYWluKHRoaXMuX2FjdGl2aXR5TGlzdCkuaXNOb3RFbXB0eSgpO1xuICB9XG5cbiAgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlLnZhbHVlO1xuICB9XG5cbiAgY2FuY2VsQWN0aXZpdHkoKSB7XG4gICAgdGhpcy5jdXJyZW50QWN0aXZpdHkuY2FuY2VsKG51bGwpO1xuICB9XG5cbiAgZ2V0IGFjdGl2aXR5TGlzdCgpOiBMaXN0TW9kZWw8QWN0aXZpdHk8YW55LCBhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2aXR5TGlzdC5yZWFkb25seTtcbiAgfVxuXG4gIHN0YXJ0QWN0aXZpdHk8RCwgUiwgRT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YT86IEQpOiBQcm9taXNlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRBY3Rpdml0eShhY3Rpdml0eVR5cGUsIGRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3RhcnRBY3Rpdml0eTxELCBSLCBFPihhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhOiBELCBkaXNhYmxlQ2xvc2U6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYEFjdGl2aXR5IGFscmVhZHkgaW4gcHJvZ3Jlc3M6ICR7dGhpcy5hY3Rpdml0eUxpc3QudmFsdWUubWFwKGEgPT4gYS5jb25zdHJ1Y3Rvci5uYW1lKS5qb2luKCcsICcpfWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdGFydGluZ0d1YXJkLndoaWxlVHJ1ZSgoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnIyMjIyMjICBTVEFSVElORycpO1xuICAgICAgLy8gdGhpcy5jdXJyZW50QWN0aXZpdHlJZCA9IHV1aWQudjEoKTtcbiAgICAgIC8vIHRoaXMubG9jYXRpb24uZ28odGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsLCBcImF1cFwiKTtcblxuICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICBjb25zdCBjb25maWc6IE1hdERpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgICAgLi4udGhpcy5tYXREaWFsb2dEZWZhdWx0Q29uZmlnLFxuICAgICAgICAuLi50aGlzLmRpYWxvZ1NlcnZpY2VEZWZhdWx0cyxcbiAgICAgICAgLi4ue1xuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZGlzYWJsZUNsb3NlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctaW50ZXJhY3Rpb24tc2VydmljZSdcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG1hdERpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LCBjb25maWcpIGFzIE1hdERpYWxvZ1JlZjxBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudDxELCBSLCBFPj47XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBhY3Rpdml0eUNvbnRhaW5lciA9IG1hdERpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgc2VsZi5zYWZlbHlVcGRhdGVBY3Rpdml0eUxpc3REZWxlZ2F0ZShhY3Rpdml0eUNvbnRhaW5lci5hY3Rpdml0eUxpc3QpO1xuXG4gICAgICAgIGFjdGl2aXR5Q29udGFpbmVyLmluaXRpYWxBY3Rpdml0eU91dGxldENvbnRleHQgPSB7XG4gICAgICAgICAgYWN0aXZpdHlDbGFzczogYWN0aXZpdHlUeXBlLFxuICAgICAgICAgIGFjdGl2aXR5RGF0YTogZGF0YSxcbiAgICAgICAgICBvbkRvbmUocmVzdWx0KSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICBtYXREaWFsb2dSZWYuY2xvc2UodHJ1ZSk7IC8vIHJldHVybiB0cnVlIHRvIGxldCB0aGUgYWZ0ZXIgY2xvc2UgbGlzdGVuZXIga25vdyB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQgaXQuXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbkNhbmNlbChlcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIG1hdERpYWxvZ1JlZi5jbG9zZSh0cnVlKTsgLy8gcmV0dXJuIHRydWUgdG8gbGV0IHRoZSBhZnRlciBjbG9zZSBsaXN0ZW5lciBrbm93IHdlJ3ZlIGFscmVhZHkgaGFuZGxlZCBpdC5cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gY2hlY2sgaWYgb3VyIG9uRG9uZS9vbkNhbmNlbCBtZXRob2RzIGFib3ZlIHdlIGNhbGxlZCBvciBpZiB3ZSB3ZXJlXG4gICAgICAgIC8vIGNsb3NlZCBieSB0aGUgdXNlciBjbGlja2luZyB0aGUgYmFja2Ryb3AuICBJZiB0aGUgbGF0ZXIgdGhlbiB3ZSBuZWVkIHRvIHJlamVjdFxuICAgICAgICAvLyBvdXIgcHJvbWlzZS5cbiAgICAgICAgbWF0RGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHByb21pc2VBbHJlYWR5RmluaXNoZWQgPT4ge1xuICAgICAgICAgIGlmICghcHJvbWlzZUFscmVhZHlGaW5pc2hlZCkge1xuICAgICAgICAgICAgcmVqZWN0KCdhdXRvLWNsb3NlZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG1hdERpYWxvZ1JlZi51cGRhdGVTaXplKCk7XG4gICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIyAgRklOSVNIRUQnKTtcbiAgICAgICAgLy8gdGhpcy5jdXJyZW50QWN0aXZpdHlJZCA9IG51bGw7XG4gICAgICAgIHNlbGYuc2FmZWx5VXBkYXRlQWN0aXZpdHlMaXN0RGVsZWdhdGUobnVsbCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRlaCBkZWxlZ2F0ZSBvbiB0aGUgbmV4dCB0aWNrIHRvIGF2b2lkIG1vZGlmeWluZyBzdGF0ZSBkdXJpbmcgdGhlIGN1cnJlbnQgY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cbiAgICogQHBhcmFtIGRlbGVnYXRlXG4gICAqL1xuICBzYWZlbHlVcGRhdGVBY3Rpdml0eUxpc3REZWxlZ2F0ZShkZWxlZ2F0ZTogTGlzdE1vZGVsPEFjdGl2aXR5PGFueSwgYW55Pj4pIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2FjdGl2aXR5TGlzdC5zZXREZWxlZ2F0ZShkZWxlZ2F0ZSkpO1xuICB9XG5cbiAgYWxlcnQoYWxlcnQ6IEFsZXJ0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVE9ETzogVGVzdCBkaXNhYmxlQ2xvc2UgPT09IGZhbHNlXG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0QWN0aXZpdHkoQWxlcnREaWFsb2dDb21wb25lbnQsIGFsZXJ0LCBmYWxzZSk7XG4gIH1cblxuICBjb25maXJtKGNvbmZpcm06IENvbmZpcm0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRBY3Rpdml0eShDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIGNvbmZpcm0sIHRydWUpO1xuICB9XG5cbiAgY29uZmlybVRoZW48RCwgUiwgRT4oY29uZmlybTogQ29uZmlybSwgYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YT86IEQpOiBQcm9taXNlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRBY3Rpdml0eTxDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudC5EYXRhPEQsIFIsIEU+LCBSLCBFPihDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgY29uZmlybSxcbiAgICAgIGFjdGl2aXR5VHlwZTogYWN0aXZpdHlUeXBlLFxuICAgICAgZGF0YTogZGF0YVxuICAgIH0sIHRydWUpO1xuICB9XG59XG4iXX0=
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWludGVyYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vc2VydmljZXMvZGlhbG9nLWludGVyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLEdBQUcsRUFDSCxJQUFJLEVBRUosVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3RELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFFNUQsTUFBTSxPQUFPLG1DQUFtQyxHQUFHLElBQUksY0FBYyxDQUF1QixxQ0FBcUMsQ0FBQztBQUVsSSxNQUFNLEtBQU0sU0FBUSxVQUFtQjtJQUVyQztRQUNFLEtBQUss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LFNBQUMsMEJBQTBCOzs7Ozs7OztJQVIxRCxpREFBK0U7Ozs7O0lBQy9FLGlEQUFvQzs7SUFDcEMsMENBQXdDOzs7OztJQUU1QixpREFBeUM7O0lBQ3pDLDRDQUEyQjs7SUFDM0IsMENBQXVCOztJQUN2Qix5REFBNkc7O0lBQzdHLDBEQUFxRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREVGQVVMVF9PUFRJT05TLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIENvbnN0cnVjdGFibGUsXG4gIERlbGVnYXRpbmdMaXN0TW9kZWwsXG4gIERzbCxcbiAgbGFuZyxcbiAgTGlzdE1vZGVsLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi9hY3Rpdml0eSc7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJy4uL2FsZXJ0JztcbmltcG9ydCB7IEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWxlcnQtZGlhbG9nL2FsZXJ0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybVRoZW5EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbmZpcm0tdGhlbi1kaWFsb2cvY29uZmlybS10aGVuLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm0gfSBmcm9tICcuLi9jb25maXJtJztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuXG5leHBvcnQgY29uc3QgRElBTE9HX0lOVEVSQUNUSU9OX1NFUlZJQ0VfREVGQVVMVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWF0RGlhbG9nQ29uZmlnPGFueT4+KCdESUFMT0dfSU5URVJBQ1RJT05fU0VSVklDRV9ERUZBVUxUUycpO1xuXG5jbGFzcyBHdWFyZCBleHRlbmRzIFZhbHVlTW9kZWw8Ym9vbGVhbj4ge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHsgaW5pdGlhbFZhbHVlOiBmYWxzZSB9KTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5yZWFkKCk7XG4gIH1cblxuICB3aGlsZVRydWU8Uj4oZnVuOiAoKSA9PiBSKTogUiB7XG4gICAgdGhpcy5zdGFydFRyYW5zYWN0aW9uKCkuY29tbWl0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZnVuKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc3RhcnRUcmFuc2FjdGlvbigpLmNvbW1pdChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcnVuSWZGYWxzZTxSPihmdW46ICgpID0+IFIsIGRlZmF1bHRWYWx1ZTogUiA9IG51bGwpOiBSIHtcbiAgICByZXR1cm4gIXRoaXMudmFsdWUgPyBmdW4oKSA6IGRlZmF1bHRWYWx1ZTtcbiAgfVxufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0ludGVyYWN0aW9uU2VydmljZSBleHRlbmRzIEludGVyYWN0aW9uQ29udGV4dCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZpdHlMaXN0ID0gbmV3IERlbGVnYXRpbmdMaXN0TW9kZWw8QWN0aXZpdHk8YW55LCBhbnk+PigpO1xuICBwcml2YXRlIHN0YXJ0aW5nR3VhcmQgPSBuZXcgR3VhcmQoKTtcbiAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogTWF0RGlhbG9nLFxuICAgICAgICAgICAgICByZWFkb25seSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERJQUxPR19JTlRFUkFDVElPTl9TRVJWSUNFX0RFRkFVTFRTKSByZWFkb25seSBkaWFsb2dTZXJ2aWNlRGVmYXVsdHM6IE1hdERpYWxvZ0NvbmZpZzxhbnk+LFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREVGQVVMVF9PUFRJT05TKSByZWFkb25seSBtYXREaWFsb2dEZWZhdWx0Q29uZmlnOiBNYXREaWFsb2dDb25maWc8YW55PlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIGFzc2VydC5ub3ROaWwoZGlhbG9nU2VydmljZSk7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGNoYWluKHRoaXMuX2FjdGl2aXR5TGlzdCkuaXNOb3RFbXB0eSgpO1xuICB9XG5cbiAgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlLnZhbHVlO1xuICB9XG5cbiAgY2FuY2VsQWN0aXZpdHkoKSB7XG4gICAgdGhpcy5jdXJyZW50QWN0aXZpdHkuY2FuY2VsKG51bGwpO1xuICB9XG5cbiAgZ2V0IGFjdGl2aXR5TGlzdCgpOiBMaXN0TW9kZWw8QWN0aXZpdHk8YW55LCBhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2aXR5TGlzdC5yZWFkb25seTtcbiAgfVxuXG4gIHN0YXJ0QWN0aXZpdHk8RCwgUiwgRT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YT86IEQpOiBQcm9taXNlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRBY3Rpdml0eShhY3Rpdml0eVR5cGUsIGRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3RhcnRBY3Rpdml0eTxELCBSLCBFPihhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhOiBELCBkaXNhYmxlQ2xvc2U6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYEFjdGl2aXR5IGFscmVhZHkgaW4gcHJvZ3Jlc3M6ICR7dGhpcy5hY3Rpdml0eUxpc3QudmFsdWUubWFwKGEgPT4gYS5jb25zdHJ1Y3Rvci5uYW1lKS5qb2luKCcsICcpfWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdGFydGluZ0d1YXJkLndoaWxlVHJ1ZSgoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnIyMjIyMjICBTVEFSVElORycpO1xuICAgICAgLy8gdGhpcy5jdXJyZW50QWN0aXZpdHlJZCA9IHV1aWQudjEoKTtcbiAgICAgIC8vIHRoaXMubG9jYXRpb24uZ28odGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsLCBcImF1cFwiKTtcblxuICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICBjb25zdCBjb25maWc6IE1hdERpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgICAgLi4udGhpcy5tYXREaWFsb2dEZWZhdWx0Q29uZmlnLFxuICAgICAgICAuLi50aGlzLmRpYWxvZ1NlcnZpY2VEZWZhdWx0cyxcbiAgICAgICAgLi4ue1xuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZGlzYWJsZUNsb3NlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctaW50ZXJhY3Rpb24tc2VydmljZSdcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG1hdERpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LCBjb25maWcpIGFzIE1hdERpYWxvZ1JlZjxBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudDxELCBSLCBFPj47XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBhY3Rpdml0eUNvbnRhaW5lciA9IG1hdERpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgc2VsZi5zYWZlbHlVcGRhdGVBY3Rpdml0eUxpc3REZWxlZ2F0ZShhY3Rpdml0eUNvbnRhaW5lci5hY3Rpdml0eUxpc3QpO1xuXG4gICAgICAgIGFjdGl2aXR5Q29udGFpbmVyLmluaXRpYWxBY3Rpdml0eU91dGxldENvbnRleHQgPSB7XG4gICAgICAgICAgYWN0aXZpdHlDbGFzczogYWN0aXZpdHlUeXBlLFxuICAgICAgICAgIGFjdGl2aXR5RGF0YTogZGF0YSxcbiAgICAgICAgICBvbkRvbmUocmVzdWx0KSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICBtYXREaWFsb2dSZWYuY2xvc2UodHJ1ZSk7IC8vIHJldHVybiB0cnVlIHRvIGxldCB0aGUgYWZ0ZXIgY2xvc2UgbGlzdGVuZXIga25vdyB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQgaXQuXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbkNhbmNlbChlcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIG1hdERpYWxvZ1JlZi5jbG9zZSh0cnVlKTsgLy8gcmV0dXJuIHRydWUgdG8gbGV0IHRoZSBhZnRlciBjbG9zZSBsaXN0ZW5lciBrbm93IHdlJ3ZlIGFscmVhZHkgaGFuZGxlZCBpdC5cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gY2hlY2sgaWYgb3VyIG9uRG9uZS9vbkNhbmNlbCBtZXRob2RzIGFib3ZlIHdlIGNhbGxlZCBvciBpZiB3ZSB3ZXJlXG4gICAgICAgIC8vIGNsb3NlZCBieSB0aGUgdXNlciBjbGlja2luZyB0aGUgYmFja2Ryb3AuICBJZiB0aGUgbGF0ZXIgdGhlbiB3ZSBuZWVkIHRvIHJlamVjdFxuICAgICAgICAvLyBvdXIgcHJvbWlzZS5cbiAgICAgICAgbWF0RGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHByb21pc2VBbHJlYWR5RmluaXNoZWQgPT4ge1xuICAgICAgICAgIGlmICghcHJvbWlzZUFscmVhZHlGaW5pc2hlZCkge1xuICAgICAgICAgICAgcmVqZWN0KCdhdXRvLWNsb3NlZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG1hdERpYWxvZ1JlZi51cGRhdGVTaXplKCk7XG4gICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIyAgRklOSVNIRUQnKTtcbiAgICAgICAgLy8gdGhpcy5jdXJyZW50QWN0aXZpdHlJZCA9IG51bGw7XG4gICAgICAgIHNlbGYuc2FmZWx5VXBkYXRlQWN0aXZpdHlMaXN0RGVsZWdhdGUobnVsbCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRlaCBkZWxlZ2F0ZSBvbiB0aGUgbmV4dCB0aWNrIHRvIGF2b2lkIG1vZGlmeWluZyBzdGF0ZSBkdXJpbmcgdGhlIGN1cnJlbnQgY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cbiAgICogQHBhcmFtIGRlbGVnYXRlXG4gICAqL1xuICBzYWZlbHlVcGRhdGVBY3Rpdml0eUxpc3REZWxlZ2F0ZShkZWxlZ2F0ZTogTGlzdE1vZGVsPEFjdGl2aXR5PGFueSwgYW55Pj4pIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2FjdGl2aXR5TGlzdC5zZXREZWxlZ2F0ZShkZWxlZ2F0ZSkpO1xuICB9XG5cbiAgYWxlcnQoYWxlcnQ6IEFsZXJ0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVE9ETzogVGVzdCBkaXNhYmxlQ2xvc2UgPT09IGZhbHNlXG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0QWN0aXZpdHkoQWxlcnREaWFsb2dDb21wb25lbnQsIGFsZXJ0LCBmYWxzZSk7XG4gIH1cblxuICBjb25maXJtT3JSZWplY3QoY29uZmlybTogQ29uZmlybSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9zdGFydEFjdGl2aXR5KENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwgY29uZmlybSwgdHJ1ZSk7XG4gIH1cblxuICBjb25maXJtVGhlbjxELCBSLCBFPihjb25maXJtOiBDb25maXJtLCBhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhPzogRCk6IFByb21pc2U8Uj4ge1xuICAgIHJldHVybiB0aGlzLl9zdGFydEFjdGl2aXR5PENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LkRhdGE8RCwgUiwgRT4sIFIsIEU+KENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBjb25maXJtLFxuICAgICAgYWN0aXZpdHlUeXBlOiBhY3Rpdml0eVR5cGUsXG4gICAgICBkYXRhOiBkYXRhXG4gICAgfSwgdHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
|
-
import { Input } from '@angular/core';
|
|
6
|
+
import { Component, Input } from '@angular/core';
|
|
7
7
|
import { Command, Dsl, ListModel, StoreInListModel, StoreInValueModel, UseDelegate, ValueModel } from '@coolon/pectin';
|
|
8
8
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
9
9
|
import { DisposableComponent } from '../../components/disposable-component';
|
|
@@ -68,6 +68,13 @@ export class AbstractPlaceNavigationComponent extends DisposableComponent {
|
|
|
68
68
|
ngOnInit() {
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
+
AbstractPlaceNavigationComponent.decorators = [
|
|
72
|
+
{ type: Component, args: [{
|
|
73
|
+
template: ''
|
|
74
|
+
}] }
|
|
75
|
+
];
|
|
76
|
+
/** @nocollapse */
|
|
77
|
+
AbstractPlaceNavigationComponent.ctorParameters = () => [];
|
|
71
78
|
AbstractPlaceNavigationComponent.propDecorators = {
|
|
72
79
|
places: [{ type: Input }],
|
|
73
80
|
placesModel: [{ type: Input }],
|
|
@@ -112,4 +119,4 @@ if (false) {
|
|
|
112
119
|
/** @type {?} */
|
|
113
120
|
AbstractPlaceNavigationComponent.prototype.activePlaceDefinition;
|
|
114
121
|
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGxhY2UtbmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvY29tcG9uZW50cy9hYnN0cmFjdC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFDTCxPQUFPLEVBRVAsR0FBRyxFQUNILFNBQVMsRUFFVCxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFDbkMsV0FBVyxFQUNYLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUU1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFLN0UsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLG1CQUFtQjtJQW9CdkU7UUFDRSxLQUFLLEVBQUUsQ0FBQztjQUNGLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDeEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGFBQWE7Ozs7UUFBQyxDQUFDLGVBQStCLEVBQUUsRUFBRTtZQUM5RSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFBO1FBQ3ZELENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxjQUFjOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUM1SCxDQUFDOzs7OztJQUdELE1BQU0sQ0FBQyxRQUF5Qjs7Y0FDeEIsT0FBTyxHQUFHLG1CQUFBLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQVc7UUFDdkQsT0FBTztZQUNMLEtBQUs7OztZQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7WUFDeEYsT0FBTzs7O1lBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDekcsSUFBSTs7O1lBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUE7U0FDOUYsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRUQsUUFBUSxDQUFDLEtBQXFCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDOzs7O0lBRUQsUUFBUTtJQUNSLENBQUM7OztZQWhERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDYjs7Ozs7cUJBR0UsS0FBSzswQkFHTCxLQUFLOzBCQUlMLEtBQUs7K0JBR0wsS0FBSzs7QUFUTjtJQURVLGdCQUFnQixDQUFDLGFBQWEsQ0FBQzs7Z0VBQ0Q7QUFHeEM7SUFEVSxXQUFXLEVBQUU7c0NBQ1YsU0FBUztxRUFBZ0M7QUFJdEQ7SUFEVSxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQztzQ0FDbEMsb0JBQW9CO3FFQUFDO0FBR2xDO0lBRFUsV0FBVyxFQUFFO3NDQUNMLFVBQVU7MEVBQXVCO0FBa0JuRDtJQURDLE9BQU8sRUFBRTs7NkNBQ08sZUFBZTs7OERBTy9COzs7SUFwQ0Qsa0RBQ3dDOztJQUV4Qyx1REFDc0Q7O0lBR3RELHVEQUNrQzs7SUFFbEMsNERBQ21EOztJQUVuRCw0REFBMkQ7O0lBRTNELDBEQUFnRTs7SUFDaEUsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBDb21tYW5kLFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEc2wsXG4gIExpc3RNb2RlbCxcbiAgTGlzdE1vZGVsQ2hhaW4sXG4gIFN0b3JlSW5MaXN0TW9kZWwsIFN0b3JlSW5WYWx1ZU1vZGVsLFxuICBVc2VEZWxlZ2F0ZSxcbiAgVmFsdWVNb2RlbCwgVmFsdWVNb2RlbENoYWluXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3IvZGlzdC9zcmMnO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2SXRlbSB9IGZyb20gJy4uL25hdi1pdGVtJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlRGVmaW5pdGlvbiB9IGZyb20gJy4uL3BsYWNlLWRlZmluaXRpb24nO1xuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuLi92aXNpdCc7XG5pbXBvcnQgeyBQbGFjZU91dGxldENvbXBvbmVudCB9IGZyb20gJy4vcGxhY2Utb3V0bGV0L3BsYWNlLW91dGxldC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0UGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5MaXN0TW9kZWwoJ3BsYWNlc01vZGVsJylcbiAgcGxhY2VzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PltdO1xuXG4gIEBJbnB1dCgpIEBVc2VEZWxlZ2F0ZSgpXG4gIHBsYWNlc01vZGVsOiBMaXN0TW9kZWw8Q29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4+O1xuXG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKCdwbGFjZU91dGxldE1vZGVsJylcbiAgcGxhY2VPdXRsZXQ6IFBsYWNlT3V0bGV0Q29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIEBVc2VEZWxlZ2F0ZSgpXG4gIHBsYWNlT3V0bGV0TW9kZWw6IFZhbHVlTW9kZWw8UGxhY2VPdXRsZXRDb21wb25lbnQ+O1xuXG4gIHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbnM6IExpc3RNb2RlbENoYWluPFBsYWNlRGVmaW5pdGlvbj47XG5cbiAgcmVhZG9ubHkgY29tbWFuZEZhY3Rvcnk6IENvbW1hbmQuRmFjdG9yeTxQbGFjZURlZmluaXRpb24sIHZvaWQ+O1xuICByZWFkb25seSBhY3RpdmVQbGFjZURlZmluaXRpb246IFZhbHVlTW9kZWxDaGFpbjxQbGFjZURlZmluaXRpb24+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLnBsYWNlRGVmaW5pdGlvbnMgPSBjaGFpbih0aGlzLnBsYWNlc01vZGVsKS5tYXAoYyA9PiBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKGMpKTtcbiAgICB0aGlzLmNvbW1hbmRGYWN0b3J5ID0gQ29tbWFuZC5jcmVhdGVGYWN0b3J5KChwbGFjZURlZmluaXRpb246UGxhY2VEZWZpbml0aW9uKSA9PiB7XG4gICAgICB0aGlzLnBsYWNlT3V0bGV0Lm5hdmlnYXRlKG5ldyBWaXNpdChwbGFjZURlZmluaXRpb24pKVxuICAgIH0pO1xuICAgIHRoaXMuYWN0aXZlUGxhY2VEZWZpbml0aW9uID0gY2hhaW4odGhpcy5wbGFjZU91dGxldE1vZGVsKS5wdWxsVmFsdWVNb2RlbChvID0+IG8uYWN0aXZlUGxhY2VNb2RlbCkucGx1Y2soXCJwbGFjZURlZmluaXRpb25cIilcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0TmF2KHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBOYXZJdGVtIHtcbiAgICBjb25zdCBuYXZJdGVtID0gcGxhY2VEZWYuZ2V0UGxhY2VEYXRhKCduYXYnKSBhcyBOYXZJdGVtO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogKCkgPT4gbmF2SXRlbSA/IG5hdkl0ZW0udGl0bGUoKSA6IHBsYWNlRGVmLnNlYXJjaFBsYWNlRGF0YShbJ25hdlRpdGxlJywgJ3RpdGxlJ10pLFxuICAgICAgdG9vbHRpcDogKCkgPT4gbmF2SXRlbSAmJiBuYXZJdGVtLnRvb2x0aXAgPyBuYXZJdGVtLnRvb2x0aXAoKSA6IHBsYWNlRGVmLmdldFBsYWNlRGF0YSgnbmF2VG9vbHRpcCcsIG51bGwpLFxuICAgICAgaWNvbjogKCkgPT4gbmF2SXRlbSAmJiBuYXZJdGVtLmljb24gPyBuYXZJdGVtLmljb24oKSA6IHBsYWNlRGVmLmdldFBsYWNlRGF0YSgnbmF2SWNvbicsIG51bGwpXG4gICAgfTtcbiAgfVxuXG4gIGlzQWN0aXZlKHBsYWNlOlBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZVBsYWNlRGVmaW5pdGlvbi5xdWVyeSgpLmVxdWFscyhwbGFjZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -113,20 +113,15 @@ export class PlaceDefinition {
|
|
|
113
113
|
return routeIdParameterDef ? visit.getParameter(routeIdParameterDef.name) : null;
|
|
114
114
|
}
|
|
115
115
|
/**
|
|
116
|
-
* Returns angular router commands that specify the route id and any route parameters. The result does
|
|
117
|
-
* not include any path information.
|
|
118
116
|
* @param {?} visit
|
|
119
117
|
* @return {?}
|
|
120
118
|
*/
|
|
121
|
-
// getFormattedRouterCommands(visit: Visit): any[] {
|
|
122
|
-
// return this.hasRouteId() ?
|
|
123
|
-
// [this.getFormattedRouteId(visit), this.getFormattedRouteParameters(visit)] :
|
|
124
|
-
// [this.getFormattedRouteParameters(visit)];
|
|
125
|
-
// }
|
|
126
119
|
getFormattedRouteId(visit) {
|
|
127
|
-
|
|
120
|
+
// Note: RouteIds are always present in the url and are just empty strings when not defined. This is
|
|
121
|
+
// mandated by the fact that redirects from <path> to <path>/:id always include the id parameter as
|
|
122
|
+
// an empty string.
|
|
123
|
+
return visit.hasRouteId() ? this.getRouteIdParameterDef().urlFormat.format(visit.getRouteId()) : "";
|
|
128
124
|
}
|
|
129
|
-
// @Trace()
|
|
130
125
|
/**
|
|
131
126
|
* @param {?} visit
|
|
132
127
|
* @param {?=} includeRouteId
|
|
@@ -211,15 +206,17 @@ export class PlaceDefinition {
|
|
|
211
206
|
}
|
|
212
207
|
else {
|
|
213
208
|
/** @type {?} */
|
|
214
|
-
const value =
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
209
|
+
const value = params.get(def.name);
|
|
210
|
+
if (def.isRouteId) { // TODO: Move this to parameter def so it's a strategy pattern
|
|
211
|
+
// because our id routes redirect if the id isn't present we always have a id
|
|
212
|
+
// parameter in our params. This will bugger our remember and defaultvalue sanitisation
|
|
213
|
+
// as it'll see that the id is present (event thought its a blank string).
|
|
214
|
+
if (!_.isEmpty(value)) {
|
|
215
|
+
result[def.name] = def.urlFormat.parse(value);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
result[def.name] = def.urlFormat.parse(value);
|
|
223
220
|
}
|
|
224
221
|
}
|
|
225
222
|
}
|
|
@@ -274,4 +271,4 @@ if (false) {
|
|
|
274
271
|
ParameterOptions.prototype.includeNonRouteParameters;
|
|
275
272
|
}
|
|
276
273
|
})(PlaceDefinition || (PlaceDefinition = {}));
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9wbGFjZS1kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUV2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd6RSxNQUFNLE9BQU8sZUFBZTs7Ozs7Ozs7O0lBRTFCLFlBQXFCLFNBQXdDLEVBQ3hDLElBQVksRUFDWixZQUFxQixFQUNyQixJQUE0QixFQUM1QixlQUEyQyxFQUMzQyxRQUEyQjtRQUwzQixjQUFTLEdBQVQsU0FBUyxDQUErQjtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBd0I7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQzNDLGFBQVEsR0FBUixRQUFRLENBQW1CO0lBQ2hELENBQUM7Ozs7SUFFRCxVQUFVO1FBQ1IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDekMsQ0FBQzs7OztJQUdELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDO0lBQ3JELENBQUM7Ozs7O0lBR0QscUJBQXFCLENBQUMsY0FBYyxHQUFHLEtBQUs7UUFDMUMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMs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SUFDOUIsK0JBQXFDOztJQUNyQywwQ0FBb0Q7O0lBQ3BELG1DQUFvQzs7QUErSGxELFdBQWlCLGVBQWU7Ozs7SUFDOUIsK0JBSUM7Ozs7UUFIQywwQ0FBeUI7O1FBQ3pCLGtEQUFpQzs7UUFDakMscURBQW9DOztBQUV4QyxDQUFDLEVBTmdCLGVBQWUsS0FBZixlQUFlLFFBTS9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYW1NYXAgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXNzZXJ0LCBDb25zdHJ1Y3RhYmxlLCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE9wdHMgfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3IvZGlzdC9zcmMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFyYW1ldGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vcm91dGUvcGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MnO1xuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuL3Zpc2l0JztcblxuZXhwb3J0IGNsYXNzIFBsYWNlRGVmaW5pdGlvbiB7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29tcG9uZW50OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgcGF0aDogc3RyaW5nLFxuICAgICAgICAgICAgICByZWFkb25seSBhdXRoZW50aWNhdGU6IGJvb2xlYW4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHJvdXRlUGFyYW1ldGVyczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGNoaWxkcmVuOiBQbGFjZURlZmluaXRpb25bXSkge1xuICB9XG5cbiAgaGFzUm91dGVJZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlUGFyYW1ldGVycy5maW5kKHAgPT4gcC5pc1JvdXRlSWQpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRSb3V0ZVBhcmFtZXRlckRlZnMoaW5jbHVkZVJvdXRlSWQgPSBmYWxzZSk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoeyBpbmNsdWRlUm91dGVJZCwgaW5jbHVkZVJvdXRlUGFyYW1ldGVyczogdHJ1ZSB9KTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKGluY2x1ZGU/OiBQbGFjZURlZmluaXRpb24uUGFyYW1ldGVyT3B0aW9ucyk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICBjb25zdCBvcHRzID0gT3B0cy5nZXQoaW5jbHVkZSk7XG4gICAgLy8gaW5jbHVkZXNcbiAgICBjb25zdCBpbmNsdWRlUm91dGVJZCA9ICFpbmNsdWRlIHx8IG9wdHMuZ2V0T3B0aW9uYWwoJ2luY2x1ZGVSb3V0ZUlkJywgZmFsc2UpO1xuICAgIGNvbnN0IGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnMgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlUm91dGVQYXJhbWV0ZXJzJywgZmFsc2UpO1xuICAgIGNvbnN0IGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnMgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzJywgZmFsc2UpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlUGFyYW1ldGVycy5maWx0ZXIocCA9PiB7XG4gICAgICByZXR1cm4gKGluY2x1ZGVSb3V0ZUlkICYmIHAuaXNSb3V0ZUlkKVxuICAgICAgICB8fCAoaW5jbHVkZVJvdXRlUGFyYW1ldGVycyAmJiBwLmlzUm91dGVQYXJhbWV0ZXIgJiYgIXAuaXNSb3V0ZUlkKSAvLyByb3V0ZSBpZCBpcyBpbmNsdWRlZCBpbiB0aGUgbGluZSBhYm92ZVxuICAgICAgICB8fCAoaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVycyAmJiAhcC5pc1JvdXRlUGFyYW1ldGVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFBsYWNlRGF0YTxUPihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLmRhdGEgP1xuICAgICAgXy5pc05pbCh0aGlzLmRhdGFba2V5XSkgPyBkZWZhdWx0VmFsdWUgOiB0aGlzLmRhdGFba2V5XSA6XG4gICAgICBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBzZWFyY2hQbGFjZURhdGE8VD4oa2V5czogc3RyaW5nW10sIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHtcbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICBjb25zdCBmb3VuZCA9IGtleXMuZmluZChrZXkgPT4gIV8uaXNOaWwodGhpcy5kYXRhW2tleV0pKTtcbiAgICAgIHJldHVybiBmb3VuZCA/IHRoaXMuZGF0YVtmb3VuZF0gOiBkZWZhdWx0VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um91dGVJZEZyb20odmlzaXQ6IFZpc2l0KSB7XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtZXRlckRlZiA9IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW1ldGVyRGVmID8gdmlzaXQuZ2V0UGFyYW1ldGVyKHJvdXRlSWRQYXJhbWV0ZXJEZWYubmFtZSkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW5ndWxhciByb3V0ZXIgY29tbWFuZHMgdGhhdCBzcGVjaWZ5IHRoZSByb3V0ZSBpZCBhbmQgYW55IHJvdXRlIHBhcmFtZXRlcnMuICBUaGUgcmVzdWx0IGRvZXNcbiAgICogbm90IGluY2x1ZGUgYW55IHBhdGggaW5mb3JtYXRpb24uXG4gICAqL1xuICAvLyBnZXRGb3JtYXR0ZWRSb3V0ZXJDb21tYW5kcyh2aXNpdDogVmlzaXQpOiBhbnlbXSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuaGFzUm91dGVJZCgpID9cbiAgLy8gICAgIFt0aGlzLmdldEZvcm1hdHRlZFJvdXRlSWQodmlzaXQpLCB0aGlzLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdCldIDpcbiAgLy8gICAgIFt0aGlzLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdCldO1xuICAvLyB9XG5cbiAgZ2V0Rm9ybWF0dGVkUm91dGVJZCh2aXNpdDogVmlzaXQpOiBhbnkge1xuICAgIHJldHVybiB2aXNpdC5oYXNSb3V0ZUlkKCkgPyB0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKS51cmxGb3JtYXQuZm9ybWF0KHZpc2l0LmdldFJvdXRlSWQoKSkgOiBudWxsO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0Rm9ybWF0dGVkUm91dGVQYXJhbWV0ZXJzKHZpc2l0OiBWaXNpdCwgaW5jbHVkZVJvdXRlSWQgPSBmYWxzZSk6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQsIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWVcbiAgICB9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlcihkZWYubmFtZSk7XG4gICAgICBpZiAoIWRlZi5pc0VtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgIGlmIChkZWYuaXNBcnJheSkge1xuICAgICAgICAgIGFzc2VydC5pc0FycmF5KHZhbHVlKTtcbiAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gdmFsdWUubWFwKHYgPT4gZGVmLnVybEZvcm1hdC5mb3JtYXQodikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFzc2VydC5pc0ZhbHNleShBcnJheS5pc0FycmF5KHZhbHVlKSk7XG4gICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQuZm9ybWF0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXROb25Sb3V0ZVBhcmFtZXRlcnModmlzaXQ6IFZpc2l0KTogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7IGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnM6IHRydWUgfSkuZm9yRWFjaChkZWYgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2aXNpdC5nZXRQYXJhbWV0ZXIoZGVmLm5hbWUpO1xuICAgICAgaWYgKCFkZWYuaXNFbXB0eVZhbHVlKHZhbHVlKSkge1xuICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcGFyc2VSb3V0ZVBhcmFtcyhwYXJhbXM6IFBhcmFtTWFwKTogeyBbcDogc3RyaW5nXTogYW55IH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBbcDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZDogdHJ1ZSxcbiAgICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWUsXG4gICAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzOiBmYWxzZVxuICAgIH0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIC8vIHBhcmFtcyB3aWxsIHJldHVybiBudWxsIGZvciBub24gZXhpc3RlbnQgbmFtZXNcbiAgICAgIGlmIChwYXJhbXMuaGFzKGRlZi5uYW1lKSkge1xuICAgICAgICBpZiAoZGVmLmlzQXJyYXkpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBwYXJhbXMuZ2V0QWxsKGRlZi5uYW1lKTtcbiAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gdmFsdWVzLm1hcCh2ID0+IGRlZi51cmxGb3JtYXQucGFyc2UodikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGVmLnVybEZvcm1hdC5wYXJzZShwYXJhbXMuZ2V0KGRlZi5uYW1lKSk7XG4gICAgICAgICAgLy8gYmVjYXVzZSBvdXIgaWQgcm91dGVzIHJlZGlyZWN0IGlmIHRoZSBpZCBpc24ndCBwcmVzc2VudCB3ZSBhbHdheXMgaGF2ZSBhIGlkXG4gICAgICAgICAgLy8gcGFyYW1ldGVyIGluIG91ciBwYXJhbXMuICBUaGlzIHdpbGwgYnVnZ2VyIG91ciByZW1lbWJlciBhbmQgZGVmYXVsdHZhbHVlIHNhbml0aXNhdGlvblxuICAgICAgICAgIC8vIGFzIGl0J2xsIHNlZSB0aGF0IHRoZSBpZCBpcyBwcmVzZW50IChldmVudCB0aG91Z2h0IGl0cyBudWxsKS4gIFRoZSBzYW5pdGlzYXRpb24gY2FuJ3RcbiAgICAgICAgICAvLyBjaGVjayBmb3IgbnVsbCBhcyB0aGF0J3MgYSB2YWxpZCB2YWx1ZSBmb3IgdGhlIGlkLlxuICAgICAgICAgIGNvbnN0IGlzRW1wdHlSb3V0ZUlkID0gZGVmLmlzUm91dGVJZCAmJiBkZWYuaXNFbXB0eVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICBpZiAoIWlzRW1wdHlSb3V0ZUlkKSB7XG4gICAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGxhY2VEZWZpbml0aW9uIHtcbiAgZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXJPcHRpb25zIHtcbiAgICBpbmNsdWRlUm91dGVJZD86IGJvb2xlYW47XG4gICAgaW5jbHVkZVJvdXRlUGFyYW1ldGVycz86IGJvb2xlYW47XG4gICAgaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVycz86IGJvb2xlYW47XG4gIH1cbn1cbiJdfQ==
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9wbGFjZS1kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUV2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd6RSxNQUFNLE9BQU8sZUFBZTs7Ozs7Ozs7O0lBRTFCLFlBQXFCLFNBQXdDLEVBQ3hDLElBQVksRUFDWixZQUFxQixFQUNyQixJQUE0QixFQUM1QixlQUEyQyxFQUMzQyxRQUEyQjtRQUwzQixjQUFTLEdBQVQsU0FBUyxDQUErQjtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBd0I7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQzNDLGFBQVEsR0FBUixRQUFRLENBQW1CO0lBQ2hELENBQUM7Ozs7SUFFRCxVQUFVO1FBQ1IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDekMsQ0FBQzs7OztJQUdELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDO0lBQ3JELENBQUM7Ozs7O0lBR0QscUJBQXFCLENBQUMsY0FBYyxHQUFHLEtBQUs7UUFDMUMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMs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QU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FFRjtBQS9HQztJQURDLE9BQU8sRUFBRTs7OzRDQUNnQixtQkFBbUI7NkRBRTVDO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7NERBR1Q7QUFHRDtJQURDLE9BQU8sRUFBRTs7Ozs0REFZVDs7O0lBbENXLG9DQUFpRDs7SUFDakQsK0JBQXFCOztJQUNyQix1Q0FBOEI7O0lBQzlCLCtCQUFxQzs7SUFDckMsMENBQW9EOztJQUNwRCxtQ0FBb0M7O0FBeUhsRCxXQUFpQixlQUFlOzs7O0lBQzlCLCtCQUlDOzs7O1FBSEMsMENBQXlCOztRQUN6QixrREFBaUM7O1FBQ2pDLHFEQUFvQzs7QUFFeEMsQ0FBQyxFQU5nQixlQUFlLEtBQWYsZUFBZSxRQU0vQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcmFtTWFwIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGFzc2VydCwgQ29uc3RydWN0YWJsZSwgVHJhY2UgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBPcHRzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBNZW1vaXplIH0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yL2Rpc3Qvc3JjJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi92aXNpdCc7XG5cbmV4cG9ydCBjbGFzcyBQbGFjZURlZmluaXRpb24ge1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgYXV0aGVudGljYXRlOiBib29sZWFuLFxuICAgICAgICAgICAgICByZWFkb25seSBkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgICAgICAgICAgICByZWFkb25seSByb3V0ZVBhcmFtZXRlcnM6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdLFxuICAgICAgICAgICAgICByZWFkb25seSBjaGlsZHJlbjogUGxhY2VEZWZpbml0aW9uW10pIHtcbiAgfVxuXG4gIGhhc1JvdXRlSWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRSb3V0ZUlkUGFyYW1ldGVyRGVmKCk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKTogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZVBhcmFtZXRlcnMuZmluZChwID0+IHAuaXNSb3V0ZUlkKTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0Um91dGVQYXJhbWV0ZXJEZWZzKGluY2x1ZGVSb3V0ZUlkID0gZmFsc2UpOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKHsgaW5jbHVkZVJvdXRlSWQsIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWUgfSk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFZpc2l0UGFyYW1ldGVyRGVmcyhpbmNsdWRlPzogUGxhY2VEZWZpbml0aW9uLlBhcmFtZXRlck9wdGlvbnMpOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXSB7XG4gICAgY29uc3Qgb3B0cyA9IE9wdHMuZ2V0KGluY2x1ZGUpO1xuICAgIC8vIGluY2x1ZGVzXG4gICAgY29uc3QgaW5jbHVkZVJvdXRlSWQgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlUm91dGVJZCcsIGZhbHNlKTtcbiAgICBjb25zdCBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzID0gIWluY2x1ZGUgfHwgb3B0cy5nZXRPcHRpb25hbCgnaW5jbHVkZVJvdXRlUGFyYW1ldGVycycsIGZhbHNlKTtcbiAgICBjb25zdCBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzID0gIWluY2x1ZGUgfHwgb3B0cy5nZXRPcHRpb25hbCgnaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVycycsIGZhbHNlKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZVBhcmFtZXRlcnMuZmlsdGVyKHAgPT4ge1xuICAgICAgcmV0dXJuIChpbmNsdWRlUm91dGVJZCAmJiBwLmlzUm91dGVJZClcbiAgICAgICAgfHwgKGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnMgJiYgcC5pc1JvdXRlUGFyYW1ldGVyICYmICFwLmlzUm91dGVJZCkgLy8gcm91dGUgaWQgaXMgaW5jbHVkZWQgaW4gdGhlIGxpbmUgYWJvdmVcbiAgICAgICAgfHwgKGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnMgJiYgIXAuaXNSb3V0ZVBhcmFtZXRlcik7XG4gICAgfSk7XG4gIH1cblxuICBnZXRQbGFjZURhdGE8VD4oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhID9cbiAgICAgIF8uaXNOaWwodGhpcy5kYXRhW2tleV0pID8gZGVmYXVsdFZhbHVlIDogdGhpcy5kYXRhW2tleV0gOlxuICAgICAgZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgc2VhcmNoUGxhY2VEYXRhPFQ+KGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgY29uc3QgZm91bmQgPSBrZXlzLmZpbmQoa2V5ID0+ICFfLmlzTmlsKHRoaXMuZGF0YVtrZXldKSk7XG4gICAgICByZXR1cm4gZm91bmQgPyB0aGlzLmRhdGFbZm91bmRdIDogZGVmYXVsdFZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldFJvdXRlSWRGcm9tKHZpc2l0OiBWaXNpdCkge1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbWV0ZXJEZWYgPSB0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKTtcbiAgICByZXR1cm4gcm91dGVJZFBhcmFtZXRlckRlZiA/IHZpc2l0LmdldFBhcmFtZXRlcihyb3V0ZUlkUGFyYW1ldGVyRGVmLm5hbWUpIDogbnVsbDtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZFJvdXRlSWQodmlzaXQ6IFZpc2l0KTogYW55IHtcbiAgICAvLyBOb3RlOiBSb3V0ZUlkcyBhcmUgYWx3YXlzIHByZXNlbnQgaW4gdGhlIHVybCBhbmQgYXJlIGp1c3QgZW1wdHkgc3RyaW5ncyB3aGVuIG5vdCBkZWZpbmVkLiAgVGhpcyBpc1xuICAgIC8vIG1hbmRhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgcmVkaXJlY3RzIGZyb20gPHBhdGg+IHRvIDxwYXRoPi86aWQgYWx3YXlzIGluY2x1ZGUgdGhlIGlkIHBhcmFtZXRlciBhc1xuICAgIC8vIGFuIGVtcHR5IHN0cmluZy5cbiAgICByZXR1cm4gdmlzaXQuaGFzUm91dGVJZCgpID8gdGhpcy5nZXRSb3V0ZUlkUGFyYW1ldGVyRGVmKCkudXJsRm9ybWF0LmZvcm1hdCh2aXNpdC5nZXRSb3V0ZUlkKCkpIDogXCJcIjtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdDogVmlzaXQsIGluY2x1ZGVSb3V0ZUlkID0gZmFsc2UpOiB7IFtwOiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtwOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIHRoaXMuZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKHtcbiAgICAgIGluY2x1ZGVSb3V0ZUlkLCBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlXG4gICAgfSkuZm9yRWFjaChkZWYgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2aXNpdC5nZXRQYXJhbWV0ZXIoZGVmLm5hbWUpO1xuICAgICAgaWYgKCFkZWYuaXNFbXB0eVZhbHVlKHZhbHVlKSkge1xuICAgICAgICBpZiAoZGVmLmlzQXJyYXkpIHtcbiAgICAgICAgICBhc3NlcnQuaXNBcnJheSh2YWx1ZSk7XG4gICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IHZhbHVlLm1hcCh2ID0+IGRlZi51cmxGb3JtYXQuZm9ybWF0KHYpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhc3NlcnQuaXNGYWxzZXkoQXJyYXkuaXNBcnJheSh2YWx1ZSkpO1xuICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSBkZWYudXJsRm9ybWF0LmZvcm1hdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0Tm9uUm91dGVQYXJhbWV0ZXJzKHZpc2l0OiBWaXNpdCk6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoeyBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzOiB0cnVlIH0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyKGRlZi5uYW1lKTtcbiAgICAgIGlmICghZGVmLmlzRW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHBhcnNlUm91dGVQYXJhbXMocGFyYW1zOiBQYXJhbU1hcCk6IHsgW3A6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW3A6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQ6IHRydWUsXG4gICAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogZmFsc2VcbiAgICB9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICAvLyBwYXJhbXMgd2lsbCByZXR1cm4gbnVsbCBmb3Igbm9uIGV4aXN0ZW50IG5hbWVzXG4gICAgICBpZiAocGFyYW1zLmhhcyhkZWYubmFtZSkpIHtcbiAgICAgICAgaWYgKGRlZi5pc0FycmF5KSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gcGFyYW1zLmdldEFsbChkZWYubmFtZSk7XG4gICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IHZhbHVlcy5tYXAodiA9PiBkZWYudXJsRm9ybWF0LnBhcnNlKHYpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtcy5nZXQoZGVmLm5hbWUpO1xuICAgICAgICAgIGlmIChkZWYuaXNSb3V0ZUlkKSB7IC8vIFRPRE86IE1vdmUgdGhpcyB0byBwYXJhbWV0ZXIgZGVmIHNvIGl0J3MgYSBzdHJhdGVneSBwYXR0ZXJuXG4gICAgICAgICAgICAvLyBiZWNhdXNlIG91ciBpZCByb3V0ZXMgcmVkaXJlY3QgaWYgdGhlIGlkIGlzbid0IHByZXNlbnQgd2UgYWx3YXlzIGhhdmUgYSBpZFxuICAgICAgICAgICAgLy8gcGFyYW1ldGVyIGluIG91ciBwYXJhbXMuICBUaGlzIHdpbGwgYnVnZ2VyIG91ciByZW1lbWJlciBhbmQgZGVmYXVsdHZhbHVlIHNhbml0aXNhdGlvblxuICAgICAgICAgICAgLy8gYXMgaXQnbGwgc2VlIHRoYXQgdGhlIGlkIGlzIHByZXNlbnQgKGV2ZW50IHRob3VnaHQgaXRzIGEgYmxhbmsgc3RyaW5nKS5cbiAgICAgICAgICAgIGlmICghXy5pc0VtcHR5KHZhbHVlKSkge1xuICAgICAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gZGVmLnVybEZvcm1hdC5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSBkZWYudXJsRm9ybWF0LnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZURlZmluaXRpb24ge1xuICBleHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlck9wdGlvbnMge1xuICAgIGluY2x1ZGVSb3V0ZUlkPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbiAgfVxufVxuIl19
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Location } from '@angular/common';
|
|
7
7
|
import { Injectable } from '@angular/core';
|
|
8
|
-
import { NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';
|
|
8
|
+
import { NavigationEnd, NavigationError, NavigationStart, Router, UrlSegment, UrlSerializer } from '@angular/router';
|
|
9
9
|
import { Dsl, GarbageCollector, MutableListModel, MutableValueModel, Trace } from '@coolon/pectin';
|
|
10
10
|
import _ from 'lodash';
|
|
11
11
|
import { NavigationSession } from './navigation-session';
|
|
@@ -18,12 +18,14 @@ import * as i3 from "./place-history";
|
|
|
18
18
|
export class PlaceRouter extends GarbageCollector {
|
|
19
19
|
/**
|
|
20
20
|
* @param {?} router
|
|
21
|
+
* @param {?} urlSerializer
|
|
21
22
|
* @param {?} angularLocation
|
|
22
23
|
* @param {?} placeHistory
|
|
23
24
|
*/
|
|
24
|
-
constructor(router, angularLocation, placeHistory) {
|
|
25
|
+
constructor(router, urlSerializer, angularLocation, placeHistory) {
|
|
25
26
|
super();
|
|
26
27
|
this.router = router;
|
|
28
|
+
this.urlSerializer = urlSerializer;
|
|
27
29
|
this.angularLocation = angularLocation;
|
|
28
30
|
this.placeHistory = placeHistory;
|
|
29
31
|
this.firstRoute = true;
|
|
@@ -129,21 +131,19 @@ export class PlaceRouter extends GarbageCollector {
|
|
|
129
131
|
* @return {?}
|
|
130
132
|
*/
|
|
131
133
|
router => {
|
|
132
|
-
// we have to to use the definition for route id as our redirection always includes
|
|
133
|
-
// the id in the url segements (but leaves it blank when there's no id). I.e. in the
|
|
134
|
-
// no id case we're doing the following redirect [<placePath>, ""] -> ["..", <id>]
|
|
135
134
|
/** @type {?} */
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
});
|
|
135
|
+
const commands = this.createUrlManipulator(this.router.routerState.snapshot).createRedirectCommandsFor(next);
|
|
136
|
+
// // we have to to use the definition for route id as our redirection always includes
|
|
137
|
+
// // the id in the url segements (but leaves it blank when there's no id). I.e. in the
|
|
138
|
+
// // no id case we're doing the following redirect [<placePath>, ""] -> ["..", <id>]
|
|
139
|
+
// const relativePath = !!previous.placeDefinition.hasRouteId() ? '..' : '.';
|
|
140
|
+
// const commands = [
|
|
141
|
+
// relativePath,
|
|
142
|
+
// ...this.createRouteParameters(next),
|
|
143
|
+
// ...this.extractChildPath(activatedRoute.snapshot)
|
|
144
|
+
// ];
|
|
145
|
+
console.log('### Push Changes to route Redirect', { commands });
|
|
146
|
+
return router.navigate(commands);
|
|
147
147
|
}));
|
|
148
148
|
}
|
|
149
149
|
});
|
|
@@ -229,6 +229,13 @@ export class PlaceRouter extends GarbageCollector {
|
|
|
229
229
|
*/
|
|
230
230
|
child => child.url)));
|
|
231
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* @param {?} snapshot
|
|
234
|
+
* @return {?}
|
|
235
|
+
*/
|
|
236
|
+
createUrlManipulator(snapshot) {
|
|
237
|
+
return new PlaceRouter.UrlManipulator(this.urlSerializer.parse(snapshot.url));
|
|
238
|
+
}
|
|
232
239
|
}
|
|
233
240
|
PlaceRouter.decorators = [
|
|
234
241
|
{ type: Injectable, args: [{
|
|
@@ -238,10 +245,11 @@ PlaceRouter.decorators = [
|
|
|
238
245
|
/** @nocollapse */
|
|
239
246
|
PlaceRouter.ctorParameters = () => [
|
|
240
247
|
{ type: Router },
|
|
248
|
+
{ type: UrlSerializer },
|
|
241
249
|
{ type: Location },
|
|
242
250
|
{ type: PlaceHistory }
|
|
243
251
|
];
|
|
244
|
-
/** @nocollapse */ PlaceRouter.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Location), i0.ɵɵinject(i3.PlaceHistory)); }, token: PlaceRouter, providedIn: "root" });
|
|
252
|
+
/** @nocollapse */ PlaceRouter.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i1.UrlSerializer), i0.ɵɵinject(i2.Location), i0.ɵɵinject(i3.PlaceHistory)); }, token: PlaceRouter, providedIn: "root" });
|
|
245
253
|
tslib_1.__decorate([
|
|
246
254
|
Trace(),
|
|
247
255
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -273,9 +281,105 @@ if (false) {
|
|
|
273
281
|
* @private
|
|
274
282
|
*/
|
|
275
283
|
PlaceRouter.prototype.router;
|
|
284
|
+
/**
|
|
285
|
+
* @type {?}
|
|
286
|
+
* @private
|
|
287
|
+
*/
|
|
288
|
+
PlaceRouter.prototype.urlSerializer;
|
|
276
289
|
/** @type {?} */
|
|
277
290
|
PlaceRouter.prototype.angularLocation;
|
|
278
291
|
/** @type {?} */
|
|
279
292
|
PlaceRouter.prototype.placeHistory;
|
|
280
293
|
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utcm91dGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLXJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFHTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixNQUFNLEVBQ1AsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBRUwsR0FBRyxFQUNILGdCQUFnQixFQUdoQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLEtBQUssRUFFTixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7QUFNaEMsTUFBTSxPQUFPLFdBQVksU0FBUSxnQkFBZ0I7Ozs7OztJQVUvQyxZQUE2QixNQUFjLEVBQVcsZUFBeUIsRUFBVyxZQUEwQjtRQUNsSCxLQUFLLEVBQUUsQ0FBQztRQURtQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVcsb0JBQWUsR0FBZixlQUFlLENBQVU7UUFBVyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVI1RyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRVQsNEJBQXVCLEdBQUcsSUFBSSxpQkFBaUIsRUFBcUIsQ0FBQztRQUNyRSxrQkFBYSxHQUFHLElBQUksZ0JBQWdCLEVBQVMsQ0FBQztjQU92RCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxL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Ozs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDOzs7WUFySkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBckJDLE1BQU07WUFSQyxRQUFRO1lBdUJSLFlBQVk7OztBQW1FbkI7SUFEQyxLQUFLLEVBQUU7OzZDQUNjLEtBQUs7OzJDQVUxQjs7Ozs7O0lBcEVELGlDQUEwQjs7Ozs7SUFFMUIsOENBQXNGOzs7OztJQUN0RixvQ0FBK0Q7O0lBRS9ELDhDQUF5RDs7SUFDekQsdUNBQXNFOzs7OztJQUUxRCw2QkFBK0I7O0lBQUUsc0NBQWtDOztJQUFFLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlLFxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBOYXZpZ2F0aW9uRW5kLFxuICBOYXZpZ2F0aW9uRXJyb3IsXG4gIE5hdmlnYXRpb25TdGFydCxcbiAgUm91dGVyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBEc2wsXG4gIEdhcmJhZ2VDb2xsZWN0b3IsXG4gIEhhc09uZUluZGV4Q2hhaW4sXG4gIExpc3RNb2RlbCxcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFRyYWNlLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2Vzc2lvbiB9IGZyb20gJy4vbmF2aWdhdGlvbi1zZXNzaW9uJztcbmltcG9ydCB7IFBsYWNlSGlzdG9yeSB9IGZyb20gJy4vcGxhY2UtaGlzdG9yeSc7XG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4vdmlzaXQnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlUm91dGVyIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgcHJpdmF0ZSBmaXJzdFJvdXRlID0gdHJ1ZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPE5hdmlnYXRpb25TZXNzaW9uPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVWaXNpdHMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxWaXNpdD4oKTtcblxuICByZWFkb25seSBuYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZTogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgcmVhZG9ubHkgYWN0aXZlVmlzaXRJbmRleDogSGFzT25lSW5kZXhDaGFpbjwncGxhY2VEZWZpbml0aW9uJywgVmlzaXQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsIHJlYWRvbmx5IGFuZ3VsYXJMb2NhdGlvbjogTG9jYXRpb24sIHJlYWRvbmx5IHBsYWNlSGlzdG9yeTogUGxhY2VIaXN0b3J5KSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuYWN0aXZlVmlzaXRJbmRleCA9IGNoYWluKHRoaXMuX2FjdGl2ZVZpc2l0cykuaW5kZXhCeSgncGxhY2VEZWZpbml0aW9uJyk7XG5cbiAgICBhbmd1bGFyTG9jYXRpb24ub25VcmxDaGFuZ2UodXJsID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGBsb2NhdGlvbi5vblVybENoYW5nZSAtPiAke3VybH1gKTtcbiAgICB9KTtcblxuICAgIC8vIFRPRE86IG1ha2Ugc2V0dXAgdGhlIGNhbGxiYWNrcyBpbiBkdXJpbmcgbW9kdWxlIGluaXRpYXRpb24gdG8gbWFrZSB0aGlzIHRlc3RhYmxlLlxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgLy8gUm91dGluZyBldmVudCBzZXF1ZW5jZVxuICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gTmF2aWdhdGlvblN0YXJ0IC0+IC4uLi4gLT4gTmF2aWdhdGlvbkNhbmNlbCAtLT4gcmVkaXJlY3QsIGdvIGFyb3VuZCBhZ2FpbiBpbiB0aGUgc2FtZSBzZXNzaW9uXG4gICAgICAvLyBOYXZpZ2F0aW9uU3RhcnQgLT4gLi4uLiAtPiBOYXZpZ2F0aW9uRW5kIC0tPiBuYXZpZ2F0aW9uIGNvbXBsZXRlLCBlbmQgc2Vzc2lvbi5cbiAgICAgIC8vIE5hdmlnYXRpb25TdGFydCAtPiAuLi4uIC0+IE5hdmlnYXRpb25FcnJvciAtLT4gbmF2aWdhdGlvbiBjYW5jZWxlZCwgZW5kIHNlc3Npb24uXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgIHRoaXMub25Bbmd1bGFyUm91dGVyU3RhcnRlZChldmVudCk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XG4gICAgICAgIHRoaXMub25Bbmd1bGFyUm91dGVyRmluaXNoZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubmF2aWdhdGlvblNlc3Npb25BY3RpdmUgPSBjaGFpbih0aGlzLm5hdmlnYXRpb25TZXNzaW9uTW9kZWwpLmlzTm90TmlsKCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZS5zdWJzY3JpYmUoYWN0aXZlID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCduYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZScsIGFjdGl2ZSk7XG4gICAgfSk7XG4gICAgLy8gY29uc3QgdHhvID0gbmV3IFRyYW5zYWN0aW9uT2JzZXJ2ZXIoKS5vbkV2ZW50KGUgPT4gY29uc29sZS5sb2coZS50b1N0cmluZygpKSk7XG4gICAgLy8gdHhvLm9ic2VydmUoJ3RoaXMubmF2aWdhdGlvblNlc3Npb25Nb2RlbCcsIHRoaXMubmF2aWdhdGlvblNlc3Npb25Nb2RlbCk7XG4gIH1cblxuICBnZXQgbmF2aWdhdGlvblNlc3Npb24oKTogTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlO1xuICB9XG5cbiAgZ2V0IG5hdmlnYXRpb25TZXNzaW9uTW9kZWwoKTogVmFsdWVNb2RlbDxOYXZpZ2F0aW9uU2Vzc2lvbj4ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnJlYWRvbmx5O1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVZpc2l0cygpOiBMaXN0TW9kZWw8VmlzaXQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVmlzaXRzLnJlYWRvbmx5O1xuICB9XG5cbiAgLyoqXG4gICAqICBwbGFjZVJvdXRlci5uYXZpZ2F0ZShwbGFjZURlc3RpbmF0aW9ucy5zb21lUGxhY2UuY3JlYXRlVmlzaXQocm91dGVJZCwgLi4udmlzaXRQYXJhbXMpKTtcbiAgICogQHBhcmFtIHZpc2l0XG4gICAqL1xuICBAVHJhY2UoKVxuICBhc3luYyBuYXZpZ2F0ZSh2aXNpdDogVmlzaXQsIG9wdGlvbnM/OiB7IHJlbGF0aXZlVG86IEFjdGl2YXRlZFJvdXRlIH0pIHtcbiAgICB0aGlzLmRvTmF2aWdhdGlvbih2aXNpdCwgYXN5bmMgcm91dGVyID0+IHtcbiAgICAgIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgICB2aXNpdC5wbGFjZURlZmluaXRpb24ucGF0aCxcbiAgICAgICAgLi4udGhpcy5jcmVhdGVSb3V0ZVBhcmFtZXRlcnModmlzaXQpXG4gICAgICBdO1xuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMsIHtcbiAgICAgICAgcmVsYXRpdmVUbzogb3B0aW9ucyA/IG9wdGlvbnMucmVsYXRpdmVUbyA6IG51bGxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgcHVzaFZpc2l0Q2hhbmdlc1RvUm91dGUoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcmV2aW91czogVmlzaXQsIG5leHQ6IFZpc2l0KSB7XG5cbiAgICAvLyB3ZSBoYXZlIHRvIHB1c2ggdG8gaGlzdG9yeSBzbyBvdXIgcmVtZW1iZXIgc2FuaXRpc2VycyBkb24ndCBwaWNrIHVwIHRoZSBwcmV2aW91cyB2YWx1ZVxuICAgIC8vIHdoZW4gaXQncyBiZWVuIGNsZWFyZWQgYnkgdGhlIHVzZXIuXG4gICAgdGhpcy5wbGFjZUhpc3RvcnkuYWRkKG5leHQpO1xuXG4gICAgLy8gRklYTUU6IG5vIHJvdXRlIGlkIC0+IHJvdXRlIGlkIGR1cGxpY2F0ZXMgcm91dGUgcGFyYW1ldGVyc1xuICAgIGlmIChuZXh0Lmhhc1JvdXRpbmdDaGFuZ2VkRnJvbShwcmV2aW91cykpIHtcbiAgICAgIHJldHVybiB0aGlzLmRvTmF2aWdhdGlvbihuZXh0LCByb3V0ZXIgPT4ge1xuICAgICAgICAvLyB3ZSBoYXZlIHRvIHRvIHVzZSB0aGUgZGVmaW5pdGlvbiBmb3Igcm91dGUgaWQgYXMgb3VyIHJlZGlyZWN0aW9uIGFsd2F5cyBpbmNsdWRlc1xuICAgICAgICAvLyB0aGUgaWQgaW4gdGhlIHVybCBzZWdlbWVudHMgKGJ1dCBsZWF2ZXMgaXQgYmxhbmsgd2hlbiB0aGVyZSdzIG5vIGlkKS4gSS5lLiBpbiB0aGVcbiAgICAgICAgLy8gbm8gaWQgY2FzZSB3ZSdyZSBkb2luZyB0aGUgZm9sbG93aW5nIHJlZGlyZWN0IFs8cGxhY2VQYXRoPiwgXCJcIl0gLT4gW1wiLi5cIiwgPGlkPl1cbiAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gISFwcmV2aW91cy5wbGFjZURlZmluaXRpb24uaGFzUm91dGVJZCgpID8gJy4uJyA6ICcuJztcbiAgICAgICAgY29uc3QgY29tbWFuZHMgPSBbXG4gICAgICAgICAgcmVsYXRpdmVQYXRoLFxuICAgICAgICAgIC4uLnRoaXMuY3JlYXRlUm91dGVQYXJhbWV0ZXJzKG5leHQpLFxuICAgICAgICAgIC4uLnRoaXMuZXh0cmFjdENoaWxkUGF0aChhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdClcbiAgICAgICAgXTtcbiAgICAgICAgY29uc29sZS5sb2coJyMjIyBQdXNoIENoYW5nZXMgdG8gcm91dGUgUmVkaXJlY3QnLCB7IGNvbW1hbmRzLCByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC51cmwgfSk7XG4gICAgICAgIHJldHVybiByb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMsIHtcbiAgICAgICAgICByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRvTmF2aWdhdGlvbih2aXNpdDogVmlzaXQsIGN1c3RvbU5hdmlnYXRpb246IChyb3V0ZXI6IFJvdXRlcikgPT4gYW55KSB7XG4gICAgdGhpcy5fbmF2aWdhdGlvblNlc3Npb25Nb2RlbC52YWx1ZSA9IE5hdmlnYXRpb25TZXNzaW9uLmNyZWF0ZUludGVybmFsKHZpc2l0KTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY3VzdG9tTmF2aWdhdGlvbih0aGlzLnJvdXRlcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25TZXNzaW9uICYmICF0aGlzLnJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpKSB7XG4gICAgICAgIHRoaXMub25Bbmd1bGFyUm91dGVyRmluaXNoZWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJvdXRlUGFyYW1ldGVycyh2aXNpdDogVmlzaXQpIHtcbiAgICBjb25zdCBkZWYgPSB2aXNpdC5wbGFjZURlZmluaXRpb247XG4gICAgcmV0dXJuIHZpc2l0Lmhhc1JvdXRlSWQoKSA/XG4gICAgICBbZGVmLmdldEZvcm1hdHRlZFJvdXRlSWQodmlzaXQpLCBkZWYuZ2V0Rm9ybWF0dGVkUm91dGVQYXJhbWV0ZXJzKHZpc2l0KV0gOlxuICAgICAgW2RlZi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQpXTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgb25Bbmd1bGFyUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgaWYgKCF0aGlzLm5hdmlnYXRpb25TZXNzaW9uKSB7IC8vIFdlIGJlZW4gYWN0aXZhdGVkIGJ5IGFuIGV4dGVybmFsIHJvdXRlIHJhdGhlciB0aGFuIHBsYWNlUm91dGVyLmdvKHZpc2l0KVxuICAgICAgY29uc29sZS5sb2coJ25hdmlnYXRpb24gc3RhcnRlZCcsIHsgZmlyc3RUaW1lOiB0aGlzLmZpcnN0Um91dGUgfSk7XG4gICAgICBjb25zdCBzZXNzaW9uID0gTmF2aWdhdGlvblNlc3Npb24uY3JlYXRlRXh0ZXJuYWwodGhpcy5maXJzdFJvdXRlKTtcbiAgICAgIGlmIChldmVudC5uYXZpZ2F0aW9uVHJpZ2dlciA9PT0gJ3BvcHN0YXRlJykge1xuICAgICAgICBzZXNzaW9uLnNldFBvcHN0YXRlUmV0dXJuKHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnVybCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlID0gc2Vzc2lvbjtcbiAgICB9XG4gICAgdGhpcy5maXJzdFJvdXRlID0gZmFsc2U7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIG9uQW5ndWxhclJvdXRlckZpbmlzaGVkKCkge1xuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlO1xuICAgIC8vIFVwZGF0ZSB2aXNpdHMgYmVmb3JlIHdlIGVuZCB0aGUgbmF2aWdhdGlvbiBzZXNzaW9uLiAgVGhpcyBhbGxvd3MgdGhlIHBsYWNlIG91dCBsZXQgdG9cbiAgICAvLyBnYXRlIGlnbm9yZSBjaGFuZ2VzIHRoYXQgb2NjdXIgd2hpbGUgdGhlIHZpc2l0IGlzIGFjdGl2ZVxuICAgIGNvbnN0IHZpc2l0cyA9IHNlc3Npb24uZ2V0VmlzaXRzKCk7XG4gICAgdmlzaXRzLmZvckVhY2godiA9PiB7XG4gICAgICB0aGlzLnBsYWNlSGlzdG9yeS5hZGQodik7XG4gICAgfSk7XG4gICAgdGhpcy5fYWN0aXZlVmlzaXRzLnZhbHVlID0gdmlzaXRzO1xuXG4gICAgdGhpcy5fbmF2aWdhdGlvblNlc3Npb25Nb2RlbC52YWx1ZSA9IG51bGw7XG4gIH1cblxuICBleHRyYWN0Q2hpbGRQYXRoKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYW55W10ge1xuICAgIHJldHVybiBfLmZsYXR0ZW4oYWN0aXZhdGVkUm91dGUuY2hpbGRyZW4ubWFwKGNoaWxkID0+IGNoaWxkLnVybCkpO1xuICB9XG59XG4iXX0=
|
|
294
|
+
(function (PlaceRouter) {
|
|
295
|
+
class UrlManipulator {
|
|
296
|
+
/**
|
|
297
|
+
* @param {?} urlTree
|
|
298
|
+
*/
|
|
299
|
+
constructor(urlTree) {
|
|
300
|
+
this.urlTree = urlTree;
|
|
301
|
+
console.log({ segments: this.urlTree.root.children.primary.segments });
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* @return {?}
|
|
305
|
+
*/
|
|
306
|
+
cloneUrlSegmentList() {
|
|
307
|
+
return [...this.urlTree.root.children.primary.segments];
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* @param {?} visit
|
|
311
|
+
* @return {?}
|
|
312
|
+
*/
|
|
313
|
+
updateVisitSegments(visit) {
|
|
314
|
+
// Ugly, but it works for now.
|
|
315
|
+
/** @type {?} */
|
|
316
|
+
const segments = this.cloneUrlSegmentList();
|
|
317
|
+
/** @type {?} */
|
|
318
|
+
const visitSegments = this.convertToUrlSegments(visit);
|
|
319
|
+
/** @type {?} */
|
|
320
|
+
const replaceAt = segments.findIndex((/**
|
|
321
|
+
* @param {?} segment
|
|
322
|
+
* @return {?}
|
|
323
|
+
*/
|
|
324
|
+
segment => segment.path === visitSegments[0].path));
|
|
325
|
+
// do not use the return value, it's the items that were removed!
|
|
326
|
+
segments.splice(replaceAt, visitSegments.length, ...visitSegments);
|
|
327
|
+
return segments;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Converts the visit into segments. Please not that these segments are not e
|
|
331
|
+
* @param {?} visit
|
|
332
|
+
* @return {?}
|
|
333
|
+
*/
|
|
334
|
+
convertToUrlSegments(visit) {
|
|
335
|
+
return visit.placeDefinition.hasRouteId() ?
|
|
336
|
+
[
|
|
337
|
+
// NOTE:
|
|
338
|
+
// It's important to attach the params to the root path and not the id. If we attach them
|
|
339
|
+
// to an empty id then the angular router won't match the pattern.
|
|
340
|
+
new UrlSegment(visit.placeDefinition.path, visit.placeDefinition.getFormattedRouteParameters(visit)),
|
|
341
|
+
new UrlSegment(visit.placeDefinition.getFormattedRouteId(visit), {})
|
|
342
|
+
]
|
|
343
|
+
:
|
|
344
|
+
[
|
|
345
|
+
new UrlSegment(visit.placeDefinition.path, visit.placeDefinition.getFormattedRouteParameters(visit))
|
|
346
|
+
];
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* @param {?} visit
|
|
350
|
+
* @return {?}
|
|
351
|
+
*/
|
|
352
|
+
createRedirectCommandsFor(visit) {
|
|
353
|
+
/** @type {?} */
|
|
354
|
+
const segments = this.updateVisitSegments(visit);
|
|
355
|
+
/** @type {?} */
|
|
356
|
+
const commands = [];
|
|
357
|
+
segments.forEach((/**
|
|
358
|
+
* @param {?} s
|
|
359
|
+
* @return {?}
|
|
360
|
+
*/
|
|
361
|
+
s => {
|
|
362
|
+
commands.push(s.path);
|
|
363
|
+
if (s.parameterMap.keys.length > 0) {
|
|
364
|
+
commands.push(s.parameters);
|
|
365
|
+
}
|
|
366
|
+
}));
|
|
367
|
+
return commands;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
tslib_1.__decorate([
|
|
371
|
+
Trace(),
|
|
372
|
+
tslib_1.__metadata("design:type", Function),
|
|
373
|
+
tslib_1.__metadata("design:paramtypes", [Visit]),
|
|
374
|
+
tslib_1.__metadata("design:returntype", Array)
|
|
375
|
+
], UrlManipulator.prototype, "createRedirectCommandsFor", null);
|
|
376
|
+
PlaceRouter.UrlManipulator = UrlManipulator;
|
|
377
|
+
if (false) {
|
|
378
|
+
/**
|
|
379
|
+
* @type {?}
|
|
380
|
+
* @private
|
|
381
|
+
*/
|
|
382
|
+
UrlManipulator.prototype.urlTree;
|
|
383
|
+
}
|
|
384
|
+
})(PlaceRouter || (PlaceRouter = {}));
|
|
385
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utcm91dGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLXJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFHTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixNQUFNLEVBRU4sVUFBVSxFQUNWLGFBQWEsRUFFZCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFFTCxHQUFHLEVBQ0gsZ0JBQWdCLEVBR2hCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsS0FBSyxFQUVOLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7OztBQU1oQyxNQUFNLE9BQU8sV0FBWSxTQUFRLGdCQUFnQjs7Ozs7OztJQVUvQyxZQUE2QixNQUFjLEVBQ2QsYUFBNEIsRUFDcEMsZUFBeUIsRUFDekIsWUFBMEI7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFKbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUFVO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBWHZDLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFVCw0QkFBdUIsR0FBRyxJQUFJLGlCQUFpQixFQUFxQixDQUFDO1FBQ3JFLGtCQUFhLEdBQUcsSUFBSSxnQkFBZ0Is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QVksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDbEMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQzdCO1lBQ0gsQ0FBQyxFQUFDLENBQUM7WUFDSCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO0tBRUY7SUFiQztRQURDLEtBQUssRUFBRTs7aURBQ3lCLEtBQUs7O21FQVdyQztJQW5EVSwwQkFBYyxpQkFxRDFCLENBQUE7Ozs7OztRQW5EYSxpQ0FBd0I7O0FBb0R4QyxDQUFDLEVBekRnQixXQUFXLEtBQVgsV0FBVyxRQXlEM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZSxcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgTmF2aWdhdGlvbkVycm9yLFxuICBOYXZpZ2F0aW9uU3RhcnQsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgVXJsU2VnbWVudCxcbiAgVXJsU2VyaWFsaXplcixcbiAgVXJsVHJlZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBIYXNPbmVJbmRleENoYWluLFxuICBMaXN0TW9kZWwsXG4gIE11dGFibGVMaXN0TW9kZWwsXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBUcmFjZSxcbiAgVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlc3Npb24gfSBmcm9tICcuL25hdmlnYXRpb24tc2Vzc2lvbic7XG5pbXBvcnQgeyBQbGFjZUhpc3RvcnkgfSBmcm9tICcuL3BsYWNlLWhpc3RvcnknO1xuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuL3Zpc2l0JztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQbGFjZVJvdXRlciBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIHByaXZhdGUgZmlyc3RSb3V0ZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvblNlc3Npb25Nb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxOYXZpZ2F0aW9uU2Vzc2lvbj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlVmlzaXRzID0gbmV3IE11dGFibGVMaXN0TW9kZWw8VmlzaXQ+KCk7XG5cbiAgcmVhZG9ubHkgbmF2aWdhdGlvblNlc3Npb25BY3RpdmU6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHJlYWRvbmx5IGFjdGl2ZVZpc2l0SW5kZXg6IEhhc09uZUluZGV4Q2hhaW48J3BsYWNlRGVmaW5pdGlvbicsIFZpc2l0PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVybFNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGFuZ3VsYXJMb2NhdGlvbjogTG9jYXRpb24sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHBsYWNlSGlzdG9yeTogUGxhY2VIaXN0b3J5KSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuYWN0aXZlVmlzaXRJbmRleCA9IGNoYWluKHRoaXMuX2FjdGl2ZVZpc2l0cykuaW5kZXhCeSgncGxhY2VEZWZpbml0aW9uJyk7XG5cbiAgICBhbmd1bGFyTG9jYXRpb24ub25VcmxDaGFuZ2UodXJsID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGBsb2NhdGlvbi5vblVybENoYW5nZSAtPiAke3VybH1gKTtcbiAgICB9KTtcblxuICAgIC8vIFRPRE86IG1ha2Ugc2V0dXAgdGhlIGNhbGxiYWNrcyBpbiBkdXJpbmcgbW9kdWxlIGluaXRpYXRpb24gdG8gbWFrZSB0aGlzIHRlc3RhYmxlLlxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgLy8gUm91dGluZyBldmVudCBzZXF1ZW5jZVxuICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gTmF2aWdhdGlvblN0YXJ0IC0+IC4uLi4gLT4gTmF2aWdhdGlvbkNhbmNlbCAtLT4gcmVkaXJlY3QsIGdvIGFyb3VuZCBhZ2FpbiBpbiB0aGUgc2FtZSBzZXNzaW9uXG4gICAgICAvLyBOYXZpZ2F0aW9uU3RhcnQgLT4gLi4uLiAtPiBOYXZpZ2F0aW9uRW5kIC0tPiBuYXZpZ2F0aW9uIGNvbXBsZXRlLCBlbmQgc2Vzc2lvbi5cbiAgICAgIC8vIE5hdmlnYXRpb25TdGFydCAtPiAuLi4uIC0+IE5hdmlnYXRpb25FcnJvciAtLT4gbmF2aWdhdGlvbiBjYW5jZWxlZCwgZW5kIHNlc3Npb24uXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgIHRoaXMub25Bbmd1bGFyUm91dGVyU3RhcnRlZChldmVudCk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XG4gICAgICAgIHRoaXMub25Bbmd1bGFyUm91dGVyRmluaXNoZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubmF2aWdhdGlvblNlc3Npb25BY3RpdmUgPSBjaGFpbih0aGlzLm5hdmlnYXRpb25TZXNzaW9uTW9kZWwpLmlzTm90TmlsKCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZS5zdWJzY3JpYmUoYWN0aXZlID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCduYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZScsIGFjdGl2ZSk7XG4gICAgfSk7XG4gICAgLy8gY29uc3QgdHhvID0gbmV3IFRyYW5zYWN0aW9uT2JzZXJ2ZXIoKS5vbkV2ZW50KGUgPT4gY29uc29sZS5sb2coZS50b1N0cmluZygpKSk7XG4gICAgLy8gdHhvLm9ic2VydmUoJ3RoaXMubmF2aWdhdGlvblNlc3Npb25Nb2RlbCcsIHRoaXMubmF2aWdhdGlvblNlc3Npb25Nb2RlbCk7XG4gIH1cblxuICBnZXQgbmF2aWdhdGlvblNlc3Npb24oKTogTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlO1xuICB9XG5cbiAgZ2V0IG5hdmlnYXRpb25TZXNzaW9uTW9kZWwoKTogVmFsdWVNb2RlbDxOYXZpZ2F0aW9uU2Vzc2lvbj4ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnJlYWRvbmx5O1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVZpc2l0cygpOiBMaXN0TW9kZWw8VmlzaXQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVmlzaXRzLnJlYWRvbmx5O1xuICB9XG5cbiAgLyoqXG4gICAqICBwbGFjZVJvdXRlci5uYXZpZ2F0ZShwbGFjZURlc3RpbmF0aW9ucy5zb21lUGxhY2UuY3JlYXRlVmlzaXQocm91dGVJZCwgLi4udmlzaXRQYXJhbXMpKTtcbiAgICogQHBhcmFtIHZpc2l0XG4gICAqL1xuICBAVHJhY2UoKVxuICBhc3luYyBuYXZpZ2F0ZSh2aXNpdDogVmlzaXQsIG9wdGlvbnM/OiB7IHJlbGF0aXZlVG86IEFjdGl2YXRlZFJvdXRlIH0pIHtcbiAgICB0aGlzLmRvTmF2aWdhdGlvbih2aXNpdCwgYXN5bmMgcm91dGVyID0+IHtcbiAgICAgIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgICB2aXNpdC5wbGFjZURlZmluaXRpb24ucGF0aCxcbiAgICAgICAgLi4udGhpcy5jcmVhdGVSb3V0ZVBhcmFtZXRlcnModmlzaXQpXG4gICAgICBdO1xuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMsIHtcbiAgICAgICAgcmVsYXRpdmVUbzogb3B0aW9ucyA/IG9wdGlvbnMucmVsYXRpdmVUbyA6IG51bGxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgcHVzaFZpc2l0Q2hhbmdlc1RvUm91dGUoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcmV2aW91czogVmlzaXQsIG5leHQ6IFZpc2l0KSB7XG5cbiAgICAvLyB3ZSBoYXZlIHRvIHB1c2ggdG8gaGlzdG9yeSBzbyBvdXIgcmVtZW1iZXIgc2FuaXRpc2VycyBkb24ndCBwaWNrIHVwIHRoZSBwcmV2aW91cyB2YWx1ZVxuICAgIC8vIHdoZW4gaXQncyBiZWVuIGNsZWFyZWQgYnkgdGhlIHVzZXIuXG4gICAgdGhpcy5wbGFjZUhpc3RvcnkuYWRkKG5leHQpO1xuXG4gICAgLy8gRklYTUU6IG5vIHJvdXRlIGlkIC0+IHJvdXRlIGlkIGR1cGxpY2F0ZXMgcm91dGUgcGFyYW1ldGVyc1xuICAgIGlmIChuZXh0Lmhhc1JvdXRpbmdDaGFuZ2VkRnJvbShwcmV2aW91cykpIHtcbiAgICAgIHJldHVybiB0aGlzLmRvTmF2aWdhdGlvbihuZXh0LCByb3V0ZXIgPT4ge1xuICAgICAgICBjb25zdCBjb21tYW5kcyA9IHRoaXMuY3JlYXRlVXJsTWFuaXB1bGF0b3IodGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QpLmNyZWF0ZVJlZGlyZWN0Q29tbWFuZHNGb3IobmV4dCk7XG4gICAgICAgIC8vIC8vIHdlIGhhdmUgdG8gdG8gdXNlIHRoZSBkZWZpbml0aW9uIGZvciByb3V0ZSBpZCBhcyBvdXIgcmVkaXJlY3Rpb24gYWx3YXlzIGluY2x1ZGVzXG4gICAgICAgIC8vIC8vIHRoZSBpZCBpbiB0aGUgdXJsIHNlZ2VtZW50cyAoYnV0IGxlYXZlcyBpdCBibGFuayB3aGVuIHRoZXJlJ3Mgbm8gaWQpLiBJLmUuIGluIHRoZVxuICAgICAgICAvLyAvLyBubyBpZCBjYXNlIHdlJ3JlIGRvaW5nIHRoZSBmb2xsb3dpbmcgcmVkaXJlY3QgWzxwbGFjZVBhdGg+LCBcIlwiXSAtPiBbXCIuLlwiLCA8aWQ+XVxuICAgICAgICAvLyBjb25zdCByZWxhdGl2ZVBhdGggPSAhIXByZXZpb3VzLnBsYWNlRGVmaW5pdGlvbi5oYXNSb3V0ZUlkKCkgPyAnLi4nIDogJy4nO1xuICAgICAgICAvLyBjb25zdCBjb21tYW5kcyA9IFtcbiAgICAgICAgLy8gICByZWxhdGl2ZVBhdGgsXG4gICAgICAgIC8vICAgLi4udGhpcy5jcmVhdGVSb3V0ZVBhcmFtZXRlcnMobmV4dCksXG4gICAgICAgIC8vICAgLi4udGhpcy5leHRyYWN0Q2hpbGRQYXRoKGFjdGl2YXRlZFJvdXRlLnNuYXBzaG90KVxuICAgICAgICAvLyBdO1xuICAgICAgICBjb25zb2xlLmxvZygnIyMjIFB1c2ggQ2hhbmdlcyB0byByb3V0ZSBSZWRpcmVjdCcsIHsgY29tbWFuZHMgfSk7XG4gICAgICAgIHJldHVybiByb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZG9OYXZpZ2F0aW9uKHZpc2l0OiBWaXNpdCwgY3VzdG9tTmF2aWdhdGlvbjogKHJvdXRlcjogUm91dGVyKSA9PiBhbnkpIHtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlID0gTmF2aWdhdGlvblNlc3Npb24uY3JlYXRlSW50ZXJuYWwodmlzaXQpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjdXN0b21OYXZpZ2F0aW9uKHRoaXMucm91dGVyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKHRoaXMubmF2aWdhdGlvblNlc3Npb24gJiYgIXRoaXMucm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCkpIHtcbiAgICAgICAgdGhpcy5vbkFuZ3VsYXJSb3V0ZXJGaW5pc2hlZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUm91dGVQYXJhbWV0ZXJzKHZpc2l0OiBWaXNpdCkge1xuICAgIGNvbnN0IGRlZiA9IHZpc2l0LnBsYWNlRGVmaW5pdGlvbjtcbiAgICByZXR1cm4gdmlzaXQuaGFzUm91dGVJZCgpID9cbiAgICAgIFtkZWYuZ2V0Rm9ybWF0dGVkUm91dGVJZCh2aXNpdCksIGRlZi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQpXSA6XG4gICAgICBbZGVmLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdCldO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHJpdmF0ZSBvbkFuZ3VsYXJSb3V0ZXJTdGFydGVkKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNlc3Npb24pIHsgLy8gV2UgYmVlbiBhY3RpdmF0ZWQgYnkgYW4gZXh0ZXJuYWwgcm91dGUgcmF0aGVyIHRoYW4gcGxhY2VSb3V0ZXIuZ28odmlzaXQpXG4gICAgICBjb25zb2xlLmxvZygnbmF2aWdhdGlvbiBzdGFydGVkJywgeyBmaXJzdFRpbWU6IHRoaXMuZmlyc3RSb3V0ZSB9KTtcbiAgICAgIGNvbnN0IHNlc3Npb24gPSBOYXZpZ2F0aW9uU2Vzc2lvbi5jcmVhdGVFeHRlcm5hbCh0aGlzLmZpcnN0Um91dGUpO1xuICAgICAgaWYgKGV2ZW50Lm5hdmlnYXRpb25UcmlnZ2VyID09PSAncG9wc3RhdGUnKSB7XG4gICAgICAgIHNlc3Npb24uc2V0UG9wc3RhdGVSZXR1cm4odGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX25hdmlnYXRpb25TZXNzaW9uTW9kZWwudmFsdWUgPSBzZXNzaW9uO1xuICAgIH1cbiAgICB0aGlzLmZpcnN0Um91dGUgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgb25Bbmd1bGFyUm91dGVyRmluaXNoZWQoKSB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMuX25hdmlnYXRpb25TZXNzaW9uTW9kZWwudmFsdWU7XG4gICAgLy8gVXBkYXRlIHZpc2l0cyBiZWZvcmUgd2UgZW5kIHRoZSBuYXZpZ2F0aW9uIHNlc3Npb24uICBUaGlzIGFsbG93cyB0aGUgcGxhY2Ugb3V0IGxldCB0b1xuICAgIC8vIGdhdGUgaWdub3JlIGNoYW5nZXMgdGhhdCBvY2N1ciB3aGlsZSB0aGUgdmlzaXQgaXMgYWN0aXZlXG4gICAgY29uc3QgdmlzaXRzID0gc2Vzc2lvbi5nZXRWaXNpdHMoKTtcbiAgICB2aXNpdHMuZm9yRWFjaCh2ID0+IHtcbiAgICAgIHRoaXMucGxhY2VIaXN0b3J5LmFkZCh2KTtcbiAgICB9KTtcbiAgICB0aGlzLl9hY3RpdmVWaXNpdHMudmFsdWUgPSB2aXNpdHM7XG5cbiAgICB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIGV4dHJhY3RDaGlsZFBhdGgoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBhbnlbXSB7XG4gICAgcmV0dXJuIF8uZmxhdHRlbihhY3RpdmF0ZWRSb3V0ZS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gY2hpbGQudXJsKSk7XG4gIH1cblxuICBjcmVhdGVVcmxNYW5pcHVsYXRvcihzbmFwc2hvdDogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFBsYWNlUm91dGVyLlVybE1hbmlwdWxhdG9yIHtcbiAgICByZXR1cm4gbmV3IFBsYWNlUm91dGVyLlVybE1hbmlwdWxhdG9yKHRoaXMudXJsU2VyaWFsaXplci5wYXJzZShzbmFwc2hvdC51cmwpKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGxhY2VSb3V0ZXIge1xuXG5cbiAgZXhwb3J0IGNsYXNzIFVybE1hbmlwdWxhdG9yIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdXJsVHJlZTogVXJsVHJlZSkge1xuICAgICAgY29uc29sZS5sb2coeyBzZWdtZW50czogdGhpcy51cmxUcmVlLnJvb3QuY2hpbGRyZW4ucHJpbWFyeS5zZWdtZW50cyB9KTtcbiAgICB9XG5cbiAgICBjbG9uZVVybFNlZ21lbnRMaXN0KCk6IFVybFNlZ21lbnRbXSB7XG4gICAgICByZXR1cm4gWy4uLnRoaXMudXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHNdO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpc2l0U2VnbWVudHModmlzaXQ6IFZpc2l0KTogVXJsU2VnbWVudFtdIHtcbiAgICAgIC8vIFVnbHksIGJ1dCBpdCB3b3JrcyBmb3Igbm93LlxuICAgICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLmNsb25lVXJsU2VnbWVudExpc3QoKTtcbiAgICAgIGNvbnN0IHZpc2l0U2VnbWVudHMgPSB0aGlzLmNvbnZlcnRUb1VybFNlZ21lbnRzKHZpc2l0KTtcbiAgICAgIGNvbnN0IHJlcGxhY2VBdCA9IHNlZ21lbnRzLmZpbmRJbmRleChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCA9PT0gdmlzaXRTZWdtZW50c1swXS5wYXRoKTtcbiAgICAgIC8vIGRvIG5vdCB1c2UgdGhlIHJldHVybiB2YWx1ZSwgaXQncyB0aGUgaXRlbXMgdGhhdCB3ZXJlIHJlbW92ZWQhXG4gICAgICBzZWdtZW50cy5zcGxpY2UocmVwbGFjZUF0LCB2aXNpdFNlZ21lbnRzLmxlbmd0aCwgLi4udmlzaXRTZWdtZW50cyk7XG4gICAgICByZXR1cm4gc2VnbWVudHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIHZpc2l0IGludG8gc2VnbWVudHMuICBQbGVhc2Ugbm90IHRoYXQgdGhlc2Ugc2VnbWVudHMgYXJlIG5vdCBlXG4gICAgICogQHBhcmFtIHZpc2l0XG4gICAgICovXG4gICAgY29udmVydFRvVXJsU2VnbWVudHModmlzaXQ6IFZpc2l0KTogVXJsU2VnbWVudFtdIHtcbiAgICAgIHJldHVybiB2aXNpdC5wbGFjZURlZmluaXRpb24uaGFzUm91dGVJZCgpID9cbiAgICAgICAgW1xuICAgICAgICAgIC8vIE5PVEU6XG4gICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gYXR0YWNoIHRoZSBwYXJhbXMgdG8gdGhlIHJvb3QgcGF0aCBhbmQgbm90IHRoZSBpZC4gIElmIHdlIGF0dGFjaCB0aGVtXG4gICAgICAgICAgLy8gdG8gYW4gZW1wdHkgaWQgdGhlbiB0aGUgYW5ndWxhciByb3V0ZXIgd29uJ3QgbWF0Y2ggdGhlIHBhdHRlcm4uXG4gICAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXQucGxhY2VEZWZpbml0aW9uLnBhdGgsIHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQpKSxcbiAgICAgICAgICBuZXcgVXJsU2VnbWVudCh2aXNpdC5wbGFjZURlZmluaXRpb24uZ2V0Rm9ybWF0dGVkUm91dGVJZCh2aXNpdCksIHt9KV1cbiAgICAgICAgOlxuICAgICAgICBbXG4gICAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXQucGxhY2VEZWZpbml0aW9uLnBhdGgsIHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQpKVxuICAgICAgICBdO1xuICAgIH1cblxuXG4gICAgQFRyYWNlKClcbiAgICBjcmVhdGVSZWRpcmVjdENvbW1hbmRzRm9yKHZpc2l0OiBWaXNpdCk6IGFueVtdIHtcblxuICAgICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnVwZGF0ZVZpc2l0U2VnbWVudHModmlzaXQpO1xuICAgICAgY29uc3QgY29tbWFuZHMgPSBbXTtcbiAgICAgIHNlZ21lbnRzLmZvckVhY2gocyA9PiB7XG4gICAgICAgIGNvbW1hbmRzLnB1c2gocy5wYXRoKTtcbiAgICAgICAgaWYgKHMucGFyYW1ldGVyTWFwLmtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbW1hbmRzLnB1c2gocy5wYXJhbWV0ZXJzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gY29tbWFuZHM7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==
|