@coolon/angular-ui-powerups 0.0.31 → 0.0.33
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 +1056 -901
- 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/coolon-angular-ui-powerups.js +2 -2
- package/esm2015/index.js +2 -2
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +34 -5
- package/esm2015/lib/place/components/place-outlet/route-animations.js +29 -17
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +3 -3
- package/esm2015/lib/place/guards/leave-place.guard.js +18 -2
- package/esm2015/lib/place/i-place-component.js +17 -0
- package/esm2015/lib/place/i-place-service.js +16 -0
- package/esm2015/lib/place/index.js +7 -3
- package/esm2015/lib/place/place-component.js +165 -7
- package/esm2015/lib/place/place.decorator.js +7 -87
- package/esm2015/lib/place/place.service.js +47 -8
- package/esm2015/lib/place/route/resolved-parameter.js +16 -0
- package/esm2015/lib/place/route/resolved-route-parameter-snapshot.js +106 -0
- package/esm2015/lib/place/route/route-parameter-bindings.js +14 -158
- package/esm2015/lib/place/route/visit-snapshot.js +7 -0
- package/esm2015/public_api.js +2 -2
- package/esm5/coolon-angular-ui-powerups.js +2 -2
- package/esm5/index.js +2 -2
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +41 -5
- package/esm5/lib/place/components/place-outlet/route-animations.js +29 -17
- package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +3 -3
- package/esm5/lib/place/guards/leave-place.guard.js +18 -2
- package/esm5/lib/place/i-place-component.js +17 -0
- package/esm5/lib/place/i-place-service.js +16 -0
- package/esm5/lib/place/index.js +7 -3
- package/esm5/lib/place/place-component.js +195 -7
- package/esm5/lib/place/place.decorator.js +7 -97
- package/esm5/lib/place/place.service.js +52 -10
- package/esm5/lib/place/route/resolved-parameter.js +16 -0
- package/esm5/lib/place/route/resolved-route-parameter-snapshot.js +129 -0
- package/esm5/lib/place/route/route-parameter-bindings.js +13 -185
- package/esm5/lib/place/route/visit-snapshot.js +11 -0
- package/esm5/public_api.js +2 -2
- package/fesm2015/coolon-angular-ui-powerups.js +835 -701
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +1054 -901
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +4 -0
- package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +1 -2
- package/lib/place/i-place-component.d.ts +5 -0
- package/lib/place/i-place-service.d.ts +10 -0
- package/lib/place/index.d.ts +5 -1
- package/lib/place/place-component.d.ts +40 -2
- package/lib/place/place.decorator.d.ts +1 -25
- package/lib/place/place.service.d.ts +13 -2
- package/lib/place/route/resolved-parameter.d.ts +5 -0
- package/lib/place/route/resolved-route-parameter-snapshot.d.ts +12 -0
- package/lib/place/route/route-parameter-bindings.d.ts +3 -4
- package/lib/place/route/visit-snapshot.d.ts +2 -0
- package/package.json +1 -1
- package/styles/styles.scss +10 -0
- package/esm2015/lib/place/abstract-place-component.js +0 -50
- package/esm5/lib/place/abstract-place-component.js +0 -57
- package/lib/place/abstract-place-component.d.ts +0 -11
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Injectable, Injector } from '@angular/core';
|
|
6
6
|
import { Router } from '@angular/router';
|
|
7
|
+
import { lang } from '@coolon/pectin';
|
|
8
|
+
import { PlaceComponent } from '../place-component';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
import * as i1 from "@angular/router";
|
|
9
11
|
export class LeavePlaceGuard {
|
|
@@ -23,7 +25,21 @@ export class LeavePlaceGuard {
|
|
|
23
25
|
* @return {?}
|
|
24
26
|
*/
|
|
25
27
|
canDeactivate(component, currentRoute, currentState, nextState) {
|
|
26
|
-
|
|
28
|
+
/** @type {?} */
|
|
29
|
+
const placeComponent = nextState ?
|
|
30
|
+
(/** @type {?} */ (nextState.root.firstChild.component)) :
|
|
31
|
+
null;
|
|
32
|
+
/** @type {?} */
|
|
33
|
+
const nextPlaceDefinition = lang.constructorChain(placeComponent).includes(PlaceComponent) ?
|
|
34
|
+
PlaceComponent.getDefinition((/** @type {?} */ ((/** @type {?} */ (placeComponent))))) :
|
|
35
|
+
null;
|
|
36
|
+
if (nextPlaceDefinition.isDescriptorFor(component)) {
|
|
37
|
+
// console.log("Same place different route. Do we need a place component hook for this??");
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return component.canDeactivate(nextPlaceDefinition, nextState);
|
|
42
|
+
}
|
|
27
43
|
}
|
|
28
44
|
}
|
|
29
45
|
LeavePlaceGuard.decorators = [
|
|
@@ -49,4 +65,4 @@ if (false) {
|
|
|
49
65
|
*/
|
|
50
66
|
LeavePlaceGuard.prototype.injector;
|
|
51
67
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQXlDLE1BQU0sRUFBZ0MsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RyxPQUFPLEVBQWlCLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBS3BELE1BQU0sT0FBTyxlQUFlOzs7OztJQUUxQixZQUFvQixNQUFjLEVBQVUsUUFBa0I7UUFBMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDOUQsQ0FBQzs7Ozs7Ozs7SUFFRCxhQUFhLENBQUMsU0FBeUIsRUFBRSxZQUFvQyxFQUFFLFlBQWlDLEVBQUUsU0FBK0I7O2NBRXpJLGNBQWMsR0FBdUIsU0FBUyxDQUFDLENBQUM7WUFDcEQsbUJBQUEsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFzQixDQUFDLENBQUM7WUFDM0QsSUFBSTs7Y0FFQSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDMUYsY0FBYyxDQUFDLGFBQWEsQ0FBQyxtQkFBQSxtQkFBQSxjQUFjLEVBQVcsRUFBaUMsQ0FBQyxDQUFDLENBQUM7WUFDMUYsSUFBSTtRQUVOLElBQUksbUJBQW1CLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2xELDRGQUE0RjtZQUM1RixPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDaEU7SUFFSCxDQUFDOzs7WUF6QkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBUCtDLE1BQU07WUFEakMsUUFBUTs7Ozs7Ozs7SUFXZixpQ0FBc0I7Ozs7O0lBQUUsbUNBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkRlYWN0aXZhdGUsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb25zdHJ1Y3RhYmxlLCBsYW5nIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi9wbGFjZS1jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMZWF2ZVBsYWNlR3VhcmQgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPFBsYWNlQ29tcG9uZW50PiB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xuXG4gICAgY29uc3QgcGxhY2VDb21wb25lbnQ6IENvbnN0cnVjdGFibGU8YW55PiA9IG5leHRTdGF0ZSA/XG4gICAgICBuZXh0U3RhdGUucm9vdC5maXJzdENoaWxkLmNvbXBvbmVudCBhcyBDb25zdHJ1Y3RhYmxlPGFueT4gOlxuICAgICAgbnVsbDtcblxuICAgIGNvbnN0IG5leHRQbGFjZURlZmluaXRpb24gPSBsYW5nLmNvbnN0cnVjdG9yQ2hhaW4ocGxhY2VDb21wb25lbnQpLmluY2x1ZGVzKFBsYWNlQ29tcG9uZW50KSA/XG4gICAgICBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHBsYWNlQ29tcG9uZW50IGFzIHVua25vd24gYXMgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pIDpcbiAgICAgIG51bGw7XG5cbiAgICBpZiAobmV4dFBsYWNlRGVmaW5pdGlvbi5pc0Rlc2NyaXB0b3JGb3IoY29tcG9uZW50KSkge1xuICAgICAgLy8gY29uc29sZS5sb2coXCJTYW1lIHBsYWNlIGRpZmZlcmVudCByb3V0ZS4gIERvIHdlIG5lZWQgYSBwbGFjZSBjb21wb25lbnQgaG9vayBmb3IgdGhpcz8/XCIpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb21wb25lbnQuY2FuRGVhY3RpdmF0ZShuZXh0UGxhY2VEZWZpbml0aW9uLCBuZXh0U3RhdGUpO1xuICAgIH1cblxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @record
|
|
7
|
+
*/
|
|
8
|
+
export function IPlaceComponent() { }
|
|
9
|
+
if (false) {
|
|
10
|
+
/** @type {?} */
|
|
11
|
+
IPlaceComponent.prototype.activatedRoute;
|
|
12
|
+
/**
|
|
13
|
+
* @return {?}
|
|
14
|
+
*/
|
|
15
|
+
IPlaceComponent.prototype.onPlaceReady = function () { };
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1wbGFjZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvaS1wbGFjZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBLHFDQUdDOzs7SUFGQyx5Q0FBd0M7Ozs7SUFDeEMseURBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBsYWNlQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlO1xuICBvblBsYWNlUmVhZHkoKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @record
|
|
7
|
+
*/
|
|
8
|
+
export function IPlaceService() { }
|
|
9
|
+
if (false) {
|
|
10
|
+
/**
|
|
11
|
+
* @param {?} params
|
|
12
|
+
* @return {?}
|
|
13
|
+
*/
|
|
14
|
+
IPlaceService.prototype.notifyRouteParametersChanged = function (params) { };
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1wbGFjZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2ktcGxhY2Utc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0EsbUNBT0M7Ozs7OztJQU5DLDZFQUtHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9pLXBsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNvbHZlZFJvdXRlUGFyYW1ldGVyU25hcHNob3QgfSBmcm9tICcuL3JvdXRlL3Jlc29sdmVkLXJvdXRlLXBhcmFtZXRlci1zbmFwc2hvdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBsYWNlU2VydmljZSB7XG4gIG5vdGlmeVJvdXRlUGFyYW1ldGVyc0NoYW5nZWQocGFyYW1zOiB7XG4gICAgcGxhY2VDb21wb25lbnQ6IElQbGFjZUNvbXBvbmVudCxcbiAgICBuZXh0OiBSZXNvbHZlZFJvdXRlUGFyYW1ldGVyU25hcHNob3QsXG4gICAgcHJldmlvdXM6IFJlc29sdmVkUm91dGVQYXJhbWV0ZXJTbmFwc2hvdCxcbiAgICB1cGRhdGVSb3V0ZTogYm9vbGVhblxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @file Automatically generated by barrelsby.
|
|
7
7
|
*/
|
|
8
|
-
export {
|
|
9
|
-
export {} from "./place-
|
|
8
|
+
export {} from "./i-place-component";
|
|
9
|
+
export {} from "./i-place-service";
|
|
10
|
+
export { DEFINITION_META_DATA_KEY, PlaceComponent } from "./place-component";
|
|
10
11
|
export { Place } from "./place.decorator";
|
|
11
12
|
export { PlaceModule } from "./place.module";
|
|
12
13
|
export { PlaceService } from "./place.service";
|
|
@@ -22,6 +23,9 @@ export { RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParam
|
|
|
22
23
|
export {} from "./route/parameter-definition.class";
|
|
23
24
|
export {} from "./route/parameter-sanitiser";
|
|
24
25
|
export { ParameterType } from "./route/parameter-type";
|
|
26
|
+
export {} from "./route/resolved-parameter";
|
|
27
|
+
export { ResolvedRouteParameterSnapshot } from "./route/resolved-route-parameter-snapshot";
|
|
25
28
|
export { RouteParameterBindings } from "./route/route-parameter-bindings";
|
|
26
29
|
export { Sanitiser, RouteParameterSanitiser } from "./route/route-parameter-sanitiser";
|
|
27
|
-
|
|
30
|
+
export { VisitSnapshot } from "./route/visit-snapshot";
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLGVBQWMscUJBQXFCLENBQUM7QUFDcEMsZUFBYyxtQkFBbUIsQ0FBQztBQUNsQyx5REFBYyxtQkFBbUIsQ0FBQztBQUNsQyxzQkFBYyxtQkFBbUIsQ0FBQztBQUNsQyw0QkFBYyxnQkFBZ0IsQ0FBQztBQUMvQiw2QkFBYyxpQkFBaUIsQ0FBQztBQUNoQyxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSxvQ0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSwyQ0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCwrQ0FBYyx3RUFBd0UsQ0FBQztBQUN2RixnQ0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxnQ0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxlQUFjLG9CQUFvQixDQUFDO0FBQ25DLGdHQUFjLDhCQUE4QixDQUFDO0FBQzdDLGVBQWMsb0NBQW9DLENBQUM7QUFDbkQsZUFBYyw2QkFBNkIsQ0FBQztBQUM1Qyw4QkFBYyx3QkFBd0IsQ0FBQztBQUN2QyxlQUFjLDRCQUE0QixDQUFDO0FBQzNDLCtDQUFjLDJDQUEyQyxDQUFDO0FBQzFELHVDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELG1EQUFjLG1DQUFtQyxDQUFDO0FBQ2xELDhCQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBiYXJyZWxzYnkuXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vaS1wbGFjZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ktcGxhY2Utc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UtY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS5kZWNvcmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2Uuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9idXN5LW92ZXJsYXkvYnVzeS1vdmVybGF5LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3BsYWNlLW91dGxldC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3JvdXRlLWFuaW1hdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ndWFyZHMvbGVhdmUtcGxhY2UuZ3VhcmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2d1YXJkcy9wbGFjZS1yb3V0ZS5ndWFyZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvanNvbi10eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLWRlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItc2FuaXRpc2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItdHlwZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcmVzb2x2ZWQtcGFyYW1ldGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9yZXNvbHZlZC1yb3V0ZS1wYXJhbWV0ZXItc25hcHNob3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3JvdXRlLXBhcmFtZXRlci1iaW5kaW5nc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcm91dGUtcGFyYW1ldGVyLXNhbml0aXNlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvdmlzaXQtc25hcHNob3RcIjtcbiJdfQ==
|
|
@@ -2,14 +2,172 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { assert, lang, Trace } from '@coolon/pectin';
|
|
7
|
+
import { Memoize } from '@typescript-plus/fast-memoize-decorator';
|
|
8
|
+
import * as _ from 'lodash';
|
|
9
|
+
import 'reflect-metadata';
|
|
10
|
+
import { DisposableComponent } from '../components/disposable-component';
|
|
11
|
+
import { RouteParameterBindings } from './route/route-parameter-bindings';
|
|
12
|
+
// RAKE: making this Symbol(...) broke things.
|
|
13
|
+
/** @type {?} */
|
|
14
|
+
export const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';
|
|
15
|
+
export class PlaceComponent extends DisposableComponent {
|
|
16
|
+
/**
|
|
17
|
+
* @param {?} activatedRoute
|
|
18
|
+
* @param {?} placeService
|
|
19
|
+
*/
|
|
20
|
+
constructor(activatedRoute, placeService) {
|
|
21
|
+
super();
|
|
22
|
+
this.activatedRoute = activatedRoute;
|
|
23
|
+
this.routeBindingMediator = this.registerDisposable(new RouteParameterBindings(this, placeService));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @return {?}
|
|
27
|
+
*/
|
|
28
|
+
get placeConfig() {
|
|
29
|
+
return PlaceComponent.getDefinition((/** @type {?} */ ((/** @type {?} */ (this.constructor)))));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @param {?=} nextPlace
|
|
33
|
+
* @param {?=} nextState
|
|
34
|
+
* @return {?}
|
|
35
|
+
*/
|
|
36
|
+
canDeactivate(nextPlace, nextState) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
10
39
|
/**
|
|
11
40
|
* @return {?}
|
|
12
41
|
*/
|
|
13
|
-
|
|
42
|
+
onPlaceReady() {
|
|
43
|
+
}
|
|
14
44
|
}
|
|
15
|
-
|
|
45
|
+
tslib_1.__decorate([
|
|
46
|
+
Memoize(),
|
|
47
|
+
tslib_1.__metadata("design:type", PlaceComponent.Definition),
|
|
48
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
49
|
+
], PlaceComponent.prototype, "placeConfig", null);
|
|
50
|
+
tslib_1.__decorate([
|
|
51
|
+
Trace(),
|
|
52
|
+
tslib_1.__metadata("design:type", Function),
|
|
53
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
54
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
55
|
+
], PlaceComponent.prototype, "onPlaceReady", null);
|
|
56
|
+
if (false) {
|
|
57
|
+
/**
|
|
58
|
+
* @type {?}
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
61
|
+
PlaceComponent.prototype.routeBindingMediator;
|
|
62
|
+
/** @type {?} */
|
|
63
|
+
PlaceComponent.prototype.activatedRoute;
|
|
64
|
+
}
|
|
65
|
+
(function (PlaceComponent) {
|
|
66
|
+
class Definition {
|
|
67
|
+
/**
|
|
68
|
+
* @param {?} component
|
|
69
|
+
* @param {?} options
|
|
70
|
+
*/
|
|
71
|
+
constructor(component, options) {
|
|
72
|
+
this.component = component;
|
|
73
|
+
assert.notNil(options);
|
|
74
|
+
this.path = options.path;
|
|
75
|
+
this.order = options.order;
|
|
76
|
+
this.data = options.data;
|
|
77
|
+
this.authenticate = _.isNil(options.authenticate) || options.authenticate;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @param {?} construcable
|
|
81
|
+
* @return {?}
|
|
82
|
+
*/
|
|
83
|
+
isDescriptorForType(construcable) {
|
|
84
|
+
return lang.constructorChain(construcable).includes(PlaceComponent);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @param {?} placeComponent
|
|
88
|
+
* @return {?}
|
|
89
|
+
*/
|
|
90
|
+
isDescriptorFor(placeComponent) {
|
|
91
|
+
return placeComponent.constructor === this.component;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @template T
|
|
95
|
+
* @param {?} key
|
|
96
|
+
* @param {?=} defaultValue
|
|
97
|
+
* @return {?}
|
|
98
|
+
*/
|
|
99
|
+
getData(key, defaultValue) {
|
|
100
|
+
return this.data ?
|
|
101
|
+
_.isNil(this.data[key]) ? defaultValue : this.data[key] :
|
|
102
|
+
defaultValue;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @template T
|
|
106
|
+
* @param {?} keys
|
|
107
|
+
* @param {?=} defaultValue
|
|
108
|
+
* @return {?}
|
|
109
|
+
*/
|
|
110
|
+
searchData(keys, defaultValue) {
|
|
111
|
+
if (this.data) {
|
|
112
|
+
/** @type {?} */
|
|
113
|
+
const found = keys.find((/**
|
|
114
|
+
* @param {?} key
|
|
115
|
+
* @return {?}
|
|
116
|
+
*/
|
|
117
|
+
key => !_.isNil(this.data[key])));
|
|
118
|
+
return found ? this.data[found] : defaultValue;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
return defaultValue;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
PlaceComponent.Definition = Definition;
|
|
126
|
+
if (false) {
|
|
127
|
+
/** @type {?} */
|
|
128
|
+
Definition.prototype.path;
|
|
129
|
+
/** @type {?} */
|
|
130
|
+
Definition.prototype.authenticate;
|
|
131
|
+
/** @type {?} */
|
|
132
|
+
Definition.prototype.order;
|
|
133
|
+
/** @type {?} */
|
|
134
|
+
Definition.prototype.data;
|
|
135
|
+
/** @type {?} */
|
|
136
|
+
Definition.prototype.component;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* @record
|
|
140
|
+
*/
|
|
141
|
+
function Options() { }
|
|
142
|
+
PlaceComponent.Options = Options;
|
|
143
|
+
if (false) {
|
|
144
|
+
/** @type {?} */
|
|
145
|
+
Options.prototype.path;
|
|
146
|
+
/** @type {?} */
|
|
147
|
+
Options.prototype.order;
|
|
148
|
+
/** @type {?|undefined} */
|
|
149
|
+
Options.prototype.data;
|
|
150
|
+
/** @type {?|undefined} */
|
|
151
|
+
Options.prototype.authenticate;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* @param {?} klass
|
|
155
|
+
* @return {?}
|
|
156
|
+
*/
|
|
157
|
+
function getDefinition(klass) {
|
|
158
|
+
/** @type {?} */
|
|
159
|
+
const placeOptions = Reflect.getMetadata(DEFINITION_META_DATA_KEY, klass);
|
|
160
|
+
return new Definition(klass, placeOptions);
|
|
161
|
+
}
|
|
162
|
+
PlaceComponent.getDefinition = getDefinition;
|
|
163
|
+
/**
|
|
164
|
+
* @param {?} klass
|
|
165
|
+
* @param {?} options
|
|
166
|
+
* @return {?}
|
|
167
|
+
*/
|
|
168
|
+
function injectDefinition(klass, options) {
|
|
169
|
+
Reflect.defineMetadata(DEFINITION_META_DATA_KEY, options, klass);
|
|
170
|
+
}
|
|
171
|
+
PlaceComponent.injectDefinition = injectDefinition;
|
|
172
|
+
})(PlaceComponent || (PlaceComponent = {}));
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQWlCLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRzFFLE1BQU0sT0FBTyx3QkFBd0IsR0FBRywwQkFBMEI7QUFFbEUsTUFBTSxPQUFPLGNBQWUsU0FBUSxtQkFBbUI7Ozs7O0lBSXJELFlBQXFCLGNBQThCLEVBQUUsWUFBMkI7UUFDOUUsS0FBSyxFQUFFLENBQUM7UUFEVyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFFakQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Ozs7SUFHRCxJQUFJLFdBQVc7UUFDYixPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUMsbUJBQUEsbUJBQUEsSUFBSSxDQUFDLFdBQVcsRUFBTyxFQUFpQyxDQUFDLENBQUM7SUFDaEcsQ0FBQzs7Ozs7O0lBRUQsYUFBYSxDQUFDLFNBQXFDLEVBQUUsU0FBK0I7UUFDbEYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7O0lBR0QsWUFBWTtJQUNaLENBQUM7Q0FFRjtBQVpDO0lBREMsT0FBTyxFQUFFO3NDQUNTLGNBQWMsQ0FBQyxVQUFVOztpREFFM0M7QUFPRDtJQURDLEtBQUssRUFBRTs7OztrREFFUDs7Ozs7O0lBbEJELDhDQUFxRDs7SUFFekMsd0NBQXVDOztBQW9CckQsV0FBaUIsY0FBYztJQUU3QixNQUFhLFVBQVU7Ozs7O1FBTXJCLFlBQXFCLFNBQXdDLEVBQUUsT0FBK0I7WUFBekUsY0FBUyxHQUFULFNBQVMsQ0FBK0I7WUFDM0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDNUUsQ0FBQzs7Ozs7UUFFRCxtQkFBbUIsQ0FBQyxZQUEyQztZQUM3RCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEUsQ0FBQzs7Ozs7UUFFRCxlQUFlLENBQUMsY0FBOEI7WUFDNUMsT0FBTyxjQUFjLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdkQsQ0FBQzs7Ozs7OztRQUVELE9BQU8sQ0FBSSxHQUFXLEVBQUUsWUFBZ0I7WUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDekQsWUFBWSxDQUFDO1FBQ2pCLENBQUM7Ozs7Ozs7UUFFRCxVQUFVLENBQUksSUFBYyxFQUFFLFlBQWdCO1lBQzVDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTs7c0JBQ1AsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJOzs7O2dCQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQztnQkFDeEQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQzthQUNoRDtpQkFBTTtnQkFDTCxPQUFPLFlBQVksQ0FBQzthQUNyQjtRQUNILENBQUM7S0FDRjtJQXBDWSx5QkFBVSxhQW9DdEIsQ0FBQTs7O1FBbkNDLDBCQUFzQjs7UUFDdEIsa0NBQStCOztRQUMvQiwyQkFBdUI7O1FBQ3ZCLDBCQUFzQzs7UUFFMUIsK0JBQWlEOzs7OztJQWlDL0Qsc0JBTUM7Ozs7UUFMQyx1QkFBYTs7UUFDYix3QkFBYzs7UUFDZCx1QkFBOEI7O1FBQzlCLCtCQUFzQjs7Ozs7O0lBSXhCLFNBQWdCLGFBQWEsQ0FBQyxLQUFvQzs7Y0FDMUQsWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDO1FBQ3pFLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFIZSw0QkFBYSxnQkFHNUIsQ0FBQTs7Ozs7O0lBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBb0MsRUFBRSxPQUFnQjtRQUNyRixPQUFPLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRmUsK0JBQWdCLG1CQUUvQixDQUFBO0FBR0gsQ0FBQyxFQTNEZ0IsY0FBYyxLQUFkLGNBQWMsUUEyRDlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXNzZXJ0LCBDb25zdHJ1Y3RhYmxlLCBsYW5nLCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3InO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7IElQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4vaS1wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgSVBsYWNlU2VydmljZSB9IGZyb20gJy4vaS1wbGFjZS1zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlUGFyYW1ldGVyQmluZGluZ3MgfSBmcm9tICcuL3JvdXRlL3JvdXRlLXBhcmFtZXRlci1iaW5kaW5ncyc7XG5cbi8vIFJBS0U6IG1ha2luZyB0aGlzIFN5bWJvbCguLi4pIGJyb2tlIHRoaW5ncy5cbmV4cG9ydCBjb25zdCBERUZJTklUSU9OX01FVEFfREFUQV9LRVkgPSAnUExBQ0VfREVGSU5JVElPTl9PUFRJT05TJztcblxuZXhwb3J0IGNsYXNzIFBsYWNlQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIElQbGFjZUNvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSByb3V0ZUJpbmRpbmdNZWRpYXRvcjogUm91dGVQYXJhbWV0ZXJCaW5kaW5ncztcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHBsYWNlU2VydmljZTogSVBsYWNlU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yb3V0ZUJpbmRpbmdNZWRpYXRvciA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBSb3V0ZVBhcmFtZXRlckJpbmRpbmdzKHRoaXMsIHBsYWNlU2VydmljZSkpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXQgcGxhY2VDb25maWcoKTogUGxhY2VDb21wb25lbnQuRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIFBsYWNlQ29tcG9uZW50LmdldERlZmluaXRpb24odGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkgYXMgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pO1xuICB9XG5cbiAgY2FuRGVhY3RpdmF0ZShuZXh0UGxhY2U/OiBQbGFjZUNvbXBvbmVudC5EZWZpbml0aW9uLCBuZXh0U3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgb25QbGFjZVJlYWR5KCkge1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZUNvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGNsYXNzIERlZmluaXRpb24ge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBhdXRoZW50aWNhdGU6IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgb3JkZXI6IG51bWJlcjtcbiAgICByZWFkb25seSBkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29tcG9uZW50OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Piwgb3B0aW9uczogUGxhY2VDb21wb25lbnQuT3B0aW9ucykge1xuICAgICAgYXNzZXJ0Lm5vdE5pbChvcHRpb25zKTtcbiAgICAgIHRoaXMucGF0aCA9IG9wdGlvbnMucGF0aDtcbiAgICAgIHRoaXMub3JkZXIgPSBvcHRpb25zLm9yZGVyO1xuICAgICAgdGhpcy5kYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgdGhpcy5hdXRoZW50aWNhdGUgPSBfLmlzTmlsKG9wdGlvbnMuYXV0aGVudGljYXRlKSB8fCBvcHRpb25zLmF1dGhlbnRpY2F0ZTtcbiAgICB9XG5cbiAgICBpc0Rlc2NyaXB0b3JGb3JUeXBlKGNvbnN0cnVjYWJsZTogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pIHtcbiAgICAgIHJldHVybiBsYW5nLmNvbnN0cnVjdG9yQ2hhaW4oY29uc3RydWNhYmxlKS5pbmNsdWRlcyhQbGFjZUNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgaXNEZXNjcmlwdG9yRm9yKHBsYWNlQ29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCkge1xuICAgICAgcmV0dXJuIHBsYWNlQ29tcG9uZW50LmNvbnN0cnVjdG9yID09PSB0aGlzLmNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBnZXREYXRhPFQ+KGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhID9cbiAgICAgICAgXy5pc05pbCh0aGlzLmRhdGFba2V5XSkgPyBkZWZhdWx0VmFsdWUgOiB0aGlzLmRhdGFba2V5XSA6XG4gICAgICAgIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICBzZWFyY2hEYXRhPFQ+KGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kID0ga2V5cy5maW5kKGtleSA9PiAhXy5pc05pbCh0aGlzLmRhdGFba2V5XSkpO1xuICAgICAgICByZXR1cm4gZm91bmQgPyB0aGlzLmRhdGFbZm91bmRdIDogZGVmYXVsdFZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG9yZGVyOiBudW1iZXI7XG4gICAgZGF0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH0sIC8vIGRlZmF1bHRzIHRvIHRydWVcbiAgICBhdXRoZW50aWNhdGU/OiBib29sZWFuIC8vIGRlZmF1bHRzIHRvIHRydWVcbiAgICAvLyBjaGlsZE9mPzogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD5cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXREZWZpbml0aW9uKGtsYXNzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik6IERlZmluaXRpb24ge1xuICAgIGNvbnN0IHBsYWNlT3B0aW9ucyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZLCBrbGFzcyk7XG4gICAgcmV0dXJuIG5ldyBEZWZpbml0aW9uKGtsYXNzLCBwbGFjZU9wdGlvbnMpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGluamVjdERlZmluaXRpb24oa2xhc3M6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShERUZJTklUSU9OX01FVEFfREFUQV9LRVksIG9wdGlvbnMsIGtsYXNzKTtcbiAgfVxuXG5cbn1cbiJdfQ==
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import 'reflect-metadata';
|
|
5
|
+
import { lang } from '@coolon/pectin';
|
|
6
|
+
import { PlaceComponent } from './place-component';
|
|
8
7
|
/**
|
|
9
8
|
* @param {?} options
|
|
10
9
|
* @return {?}
|
|
@@ -15,89 +14,10 @@ export function Place(options) {
|
|
|
15
14
|
* @return {?}
|
|
16
15
|
*/
|
|
17
16
|
(target) => {
|
|
18
|
-
|
|
17
|
+
if (!lang.constructorChain((/** @type {?} */ (target))).includes(PlaceComponent)) {
|
|
18
|
+
lang.illegalState(`${target} must extend PlaceComponent to use the @Place decorator`);
|
|
19
|
+
}
|
|
20
|
+
PlaceComponent.injectDefinition((/** @type {?} */ (target)), options);
|
|
19
21
|
});
|
|
20
22
|
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @record
|
|
24
|
-
*/
|
|
25
|
-
function Options() { }
|
|
26
|
-
Place.Options = Options;
|
|
27
|
-
if (false) {
|
|
28
|
-
/** @type {?} */
|
|
29
|
-
Options.prototype.path;
|
|
30
|
-
/** @type {?} */
|
|
31
|
-
Options.prototype.order;
|
|
32
|
-
/** @type {?|undefined} */
|
|
33
|
-
Options.prototype.data;
|
|
34
|
-
/** @type {?|undefined} */
|
|
35
|
-
Options.prototype.authenticate;
|
|
36
|
-
}
|
|
37
|
-
class Descriptor {
|
|
38
|
-
/**
|
|
39
|
-
* @param {?} placeClass
|
|
40
|
-
* @param {?} options
|
|
41
|
-
*/
|
|
42
|
-
constructor(placeClass, options) {
|
|
43
|
-
assert.notNil(options);
|
|
44
|
-
this.path = options.path;
|
|
45
|
-
this.order = options.order;
|
|
46
|
-
this.data = options.data;
|
|
47
|
-
this.authenticate = _.isNil(options.authenticate) || options.authenticate;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* @template T
|
|
51
|
-
* @param {?} key
|
|
52
|
-
* @param {?=} defaultValue
|
|
53
|
-
* @return {?}
|
|
54
|
-
*/
|
|
55
|
-
getData(key, defaultValue) {
|
|
56
|
-
return this.data ?
|
|
57
|
-
_.isNil(this.data[key]) ? defaultValue : this.data[key] :
|
|
58
|
-
defaultValue;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* @template T
|
|
62
|
-
* @param {?} keys
|
|
63
|
-
* @param {?=} defaultValue
|
|
64
|
-
* @return {?}
|
|
65
|
-
*/
|
|
66
|
-
searchData(keys, defaultValue) {
|
|
67
|
-
if (this.data) {
|
|
68
|
-
/** @type {?} */
|
|
69
|
-
const found = keys.find((/**
|
|
70
|
-
* @param {?} key
|
|
71
|
-
* @return {?}
|
|
72
|
-
*/
|
|
73
|
-
key => !_.isNil(this.data[key])));
|
|
74
|
-
return found ? this.data[found] : defaultValue;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
return defaultValue;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
Place.Descriptor = Descriptor;
|
|
82
|
-
if (false) {
|
|
83
|
-
/** @type {?} */
|
|
84
|
-
Descriptor.prototype.path;
|
|
85
|
-
/** @type {?} */
|
|
86
|
-
Descriptor.prototype.authenticate;
|
|
87
|
-
/** @type {?} */
|
|
88
|
-
Descriptor.prototype.order;
|
|
89
|
-
/** @type {?} */
|
|
90
|
-
Descriptor.prototype.data;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* @param {?} klass
|
|
94
|
-
* @return {?}
|
|
95
|
-
*/
|
|
96
|
-
function getDescriptor(klass) {
|
|
97
|
-
/** @type {?} */
|
|
98
|
-
const placeOptions = Reflect.getMetadata('place.options', klass);
|
|
99
|
-
return new Descriptor(klass, placeOptions);
|
|
100
|
-
}
|
|
101
|
-
Place.getDescriptor = getDescriptor;
|
|
102
|
-
})(Place || (Place = {}));
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLGtCQUFrQixDQUFDOzs7OztBQUcxQixNQUFNLFVBQVUsS0FBSyxDQUFDLE9BQXNCO0lBQzFDOzs7O0lBQU8sQ0FBQyxNQUFnQixFQUFFLEVBQUU7UUFDMUIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELENBQUMsRUFBQztBQUNKLENBQUM7QUFFRCxXQUFpQixLQUFLOzs7O0lBQ3BCLHNCQU1DOzs7O1FBTEMsdUJBQWE7O1FBQ2Isd0JBQWM7O1FBQ2QsdUJBQTJCOztRQUMzQiwrQkFBc0I7O0lBSXhCLE1BQWEsVUFBVTs7Ozs7UUFNckIsWUFBWSxVQUF5QyxFQUFFLE9BQWdCO1lBQ3JFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzVFLENBQUM7Ozs7Ozs7UUFFRCxPQUFPLENBQUksR0FBVSxFQUFFLFlBQWU7WUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDekQsWUFBWSxDQUFDO1FBQ2pCLENBQUM7Ozs7Ozs7UUFDRCxVQUFVLENBQUksSUFBYSxFQUFFLFlBQWU7WUFDMUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFOztzQkFDUCxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUk7Ozs7Z0JBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDO2dCQUN4RCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2FBQ2hEO2lCQUFNO2dCQUNMLE9BQU8sWUFBWSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQztLQUNGO0lBM0JZLGdCQUFVLGFBMkJ0QixDQUFBOzs7UUExQkMsMEJBQXNCOztRQUN0QixrQ0FBK0I7O1FBQy9CLDJCQUF1Qjs7UUFDdkIsMEJBQW1DOzs7Ozs7SUF5QnJDLFNBQWdCLGFBQWEsQ0FBQyxLQUFvQzs7Y0FDMUQsWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQztRQUNoRSxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBSGUsbUJBQWEsZ0JBRzVCLENBQUE7QUFDSCxDQUFDLEVBMUNnQixLQUFLLEtBQUwsS0FBSyxRQTBDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NlcnQsIENvbnN0cnVjdGFibGUgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuL3BsYWNlLWNvbXBvbmVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBQbGFjZShvcHRpb25zOiBQbGFjZS5PcHRpb25zKSB7XG4gIHJldHVybiAodGFyZ2V0OiBGdW5jdGlvbikgPT4ge1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoJ3BsYWNlLm9wdGlvbnMnLCBvcHRpb25zLCB0YXJnZXQpO1xuICB9O1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlIHtcbiAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgb3JkZXI6IG51bWJlcjtcbiAgICBkYXRhPzoge1trZXk6c3RyaW5nXTogYW55fSwgLy8gZGVmYXVsdHMgdG8gdHJ1ZVxuICAgIGF1dGhlbnRpY2F0ZT86IGJvb2xlYW4gLy8gZGVmYXVsdHMgdG8gdHJ1ZVxuICAgIC8vIGNoaWxkT2Y/OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PlxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIERlc2NyaXB0b3Ige1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBhdXRoZW50aWNhdGU6IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgb3JkZXI6IG51bWJlcjtcbiAgICByZWFkb25seSBkYXRhOiB7W2tleTpzdHJpbmddOiBhbnl9O1xuXG4gICAgY29uc3RydWN0b3IocGxhY2VDbGFzczogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgIGFzc2VydC5ub3ROaWwob3B0aW9ucyk7XG4gICAgICB0aGlzLnBhdGggPSBvcHRpb25zLnBhdGg7XG4gICAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlcjtcbiAgICAgIHRoaXMuZGF0YSA9IG9wdGlvbnMuZGF0YTtcbiAgICAgIHRoaXMuYXV0aGVudGljYXRlID0gXy5pc05pbChvcHRpb25zLmF1dGhlbnRpY2F0ZSkgfHwgb3B0aW9ucy5hdXRoZW50aWNhdGU7XG4gICAgfVxuXG4gICAgZ2V0RGF0YTxUPihrZXk6c3RyaW5nLCBkZWZhdWx0VmFsdWU/OlQpOlQge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YSA/XG4gICAgICAgIF8uaXNOaWwodGhpcy5kYXRhW2tleV0pID8gZGVmYXVsdFZhbHVlIDogdGhpcy5kYXRhW2tleV0gOlxuICAgICAgICBkZWZhdWx0VmFsdWU7XG4gICAgfVxuICAgIHNlYXJjaERhdGE8VD4oa2V5czpzdHJpbmdbXSwgZGVmYXVsdFZhbHVlPzpUKTpUIHtcbiAgICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgICAgY29uc3QgZm91bmQgPSBrZXlzLmZpbmQoa2V5ID0+ICFfLmlzTmlsKHRoaXMuZGF0YVtrZXldKSk7XG4gICAgICAgIHJldHVybiBmb3VuZCA/IHRoaXMuZGF0YVtmb3VuZF0gOiBkZWZhdWx0VmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yKGtsYXNzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik6IERlc2NyaXB0b3Ige1xuICAgIGNvbnN0IHBsYWNlT3B0aW9ucyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ3BsYWNlLm9wdGlvbnMnLCBrbGFzcyk7XG4gICAgcmV0dXJuIG5ldyBEZXNjcmlwdG9yKGtsYXNzLCBwbGFjZU9wdGlvbnMpO1xuICB9XG59XG4iXX0=
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFpQixJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBRW5ELE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBK0I7SUFDbkQ7Ozs7SUFBTyxDQUFDLE1BQWdCLEVBQUUsRUFBRTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFBLE1BQU0sRUFBc0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMvRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSx5REFBeUQsQ0FBQyxDQUFBO1NBQ3hGO1FBQ0QsY0FBYyxDQUFDLGdCQUFnQixDQUFDLG1CQUFBLE1BQU0sRUFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgbGFuZyB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gUGxhY2Uob3B0aW9uczogUGxhY2VDb21wb25lbnQuT3B0aW9ucykge1xuICByZXR1cm4gKHRhcmdldDogRnVuY3Rpb24pID0+IHtcbiAgICBpZiAoIWxhbmcuY29uc3RydWN0b3JDaGFpbih0YXJnZXQgYXMgQ29uc3RydWN0YWJsZTxhbnk+KS5pbmNsdWRlcyhQbGFjZUNvbXBvbmVudCkpIHtcbiAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYCR7dGFyZ2V0fSBtdXN0IGV4dGVuZCBQbGFjZUNvbXBvbmVudCB0byB1c2UgdGhlIEBQbGFjZSBkZWNvcmF0b3JgKVxuICAgIH1cbiAgICBQbGFjZUNvbXBvbmVudC5pbmplY3REZWZpbml0aW9uKHRhcmdldCBhcyBDb25zdHJ1Y3RhYmxlPGFueT4sIG9wdGlvbnMpO1xuICB9O1xufVxuXG4iXX0=
|
|
@@ -4,10 +4,18 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Injectable } from '@angular/core';
|
|
7
|
-
import {
|
|
7
|
+
import { Router } from '@angular/router';
|
|
8
|
+
import { GarbageCollector, MutableListModel, Trace } from '@coolon/pectin';
|
|
9
|
+
import { PlaceComponent } from './place-component';
|
|
8
10
|
import * as i0 from "@angular/core";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
import * as i1 from "@angular/router";
|
|
12
|
+
export class PlaceService extends GarbageCollector {
|
|
13
|
+
/**
|
|
14
|
+
* @param {?} router
|
|
15
|
+
*/
|
|
16
|
+
constructor(router) {
|
|
17
|
+
super();
|
|
18
|
+
this.router = router;
|
|
11
19
|
this._activePlaces = new MutableListModel();
|
|
12
20
|
}
|
|
13
21
|
/**
|
|
@@ -30,6 +38,24 @@ export class PlaceService {
|
|
|
30
38
|
onDeactivate(place) {
|
|
31
39
|
this._activePlaces.remove(place);
|
|
32
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* @param {?} params
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
notifyRouteParametersChanged(params) {
|
|
46
|
+
// We update the router state...
|
|
47
|
+
if (params.updateRoute) {
|
|
48
|
+
/** @type {?} */
|
|
49
|
+
const routeId = params.next.getFormattedRouteId();
|
|
50
|
+
/** @type {?} */
|
|
51
|
+
const relativePath = !!params.previous.hasRouteId() ? '..' : '.';
|
|
52
|
+
/** @type {?} */
|
|
53
|
+
const path = routeId ? [relativePath, routeId, params.next.getFormattedParameters()] : [relativePath, params.next.getFormattedParameters()];
|
|
54
|
+
this.router.navigate(path, {
|
|
55
|
+
relativeTo: params.placeComponent.activatedRoute
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
33
59
|
}
|
|
34
60
|
PlaceService.decorators = [
|
|
35
61
|
{ type: Injectable, args: [{
|
|
@@ -37,25 +63,38 @@ PlaceService.decorators = [
|
|
|
37
63
|
},] }
|
|
38
64
|
];
|
|
39
65
|
/** @nocollapse */
|
|
40
|
-
PlaceService.ctorParameters = () => [
|
|
41
|
-
|
|
66
|
+
PlaceService.ctorParameters = () => [
|
|
67
|
+
{ type: Router }
|
|
68
|
+
];
|
|
69
|
+
/** @nocollapse */ PlaceService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PlaceService_Factory() { return new PlaceService(i0.ɵɵinject(i1.Router)); }, token: PlaceService, providedIn: "root" });
|
|
42
70
|
tslib_1.__decorate([
|
|
43
71
|
Trace(),
|
|
44
72
|
tslib_1.__metadata("design:type", Function),
|
|
45
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
73
|
+
tslib_1.__metadata("design:paramtypes", [PlaceComponent]),
|
|
46
74
|
tslib_1.__metadata("design:returntype", void 0)
|
|
47
75
|
], PlaceService.prototype, "onActivate", null);
|
|
48
76
|
tslib_1.__decorate([
|
|
49
77
|
Trace(),
|
|
50
78
|
tslib_1.__metadata("design:type", Function),
|
|
51
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
79
|
+
tslib_1.__metadata("design:paramtypes", [PlaceComponent]),
|
|
52
80
|
tslib_1.__metadata("design:returntype", void 0)
|
|
53
81
|
], PlaceService.prototype, "onDeactivate", null);
|
|
82
|
+
tslib_1.__decorate([
|
|
83
|
+
Trace(),
|
|
84
|
+
tslib_1.__metadata("design:type", Function),
|
|
85
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
86
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
87
|
+
], PlaceService.prototype, "notifyRouteParametersChanged", null);
|
|
54
88
|
if (false) {
|
|
55
89
|
/**
|
|
56
90
|
* @type {?}
|
|
57
91
|
* @private
|
|
58
92
|
*/
|
|
59
93
|
PlaceService.prototype._activePlaces;
|
|
94
|
+
/**
|
|
95
|
+
* @type {?}
|
|
96
|
+
* @protected
|
|
97
|
+
*/
|
|
98
|
+
PlaceService.prototype.router;
|
|
60
99
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9wbGFjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQU1uRCxNQUFNLE9BQU8sWUFBYSxTQUFRLGdCQUFnQjs7OztJQUloRCxZQUFzQixNQUFjO1FBQ2xDLEtBQUssRUFBRSxDQUFDO1FBRFksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUY1QixrQkFBYSxHQUFHLElBQUksZ0JBQWdCLEVBQWtCLENBQUM7SUFJL0QsQ0FBQzs7OztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQzs7Ozs7SUFHRCxVQUFVLENBQUMsS0FBcUI7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzs7Ozs7SUFHRCxZQUFZLENBQUMsS0FBcUI7UUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7Ozs7SUFHRCw0QkFBNEIsQ0FBQyxNQUs1QjtRQUNDLGdDQUFnQztRQUNoQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7O2tCQUNoQixPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTs7a0JBQzNDLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHOztrQkFDMUQsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDM0ksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUN6QixVQUFVLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxjQUFjO2FBQ2pELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7O1lBekNGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVJ3QixNQUFNOzs7QUFzQjdCO0lBREMsS0FBSyxFQUFFOzs2Q0FDVSxjQUFjOzs4Q0FFL0I7QUFHRDtJQURDLEtBQUssRUFBRTs7NkNBQ1ksY0FBYzs7Z0RBRWpDO0FBR0Q7SUFEQyxLQUFLLEVBQUU7Ozs7Z0VBZ0JQOzs7Ozs7SUFwQ0QscUNBQStEOzs7OztJQUVuRCw4QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEdhcmJhZ2VDb2xsZWN0b3IsIE11dGFibGVMaXN0TW9kZWwsIFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgSVBsYWNlU2VydmljZSB9IGZyb20gJy4vaS1wbGFjZS1zZXJ2aWNlJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlclNuYXBzaG90IH0gZnJvbSAnLi9yb3V0ZS9yZXNvbHZlZC1yb3V0ZS1wYXJhbWV0ZXItc25hcHNob3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQbGFjZVNlcnZpY2UgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIGltcGxlbWVudHMgSVBsYWNlU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlUGxhY2VzID0gbmV3IE11dGFibGVMaXN0TW9kZWw8UGxhY2VDb21wb25lbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJvdXRlcjogUm91dGVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVQbGFjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBsYWNlcy5yZWFkb25seTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIG9uQWN0aXZhdGUocGxhY2U6IFBsYWNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fYWN0aXZlUGxhY2VzLnB1c2gocGxhY2UpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgb25EZWFjdGl2YXRlKHBsYWNlOiBQbGFjZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX2FjdGl2ZVBsYWNlcy5yZW1vdmUocGxhY2UpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgbm90aWZ5Um91dGVQYXJhbWV0ZXJzQ2hhbmdlZChwYXJhbXM6IHtcbiAgICBwbGFjZUNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsXG4gICAgbmV4dDogUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlclNuYXBzaG90LFxuICAgIHByZXZpb3VzOiBSZXNvbHZlZFJvdXRlUGFyYW1ldGVyU25hcHNob3QsXG4gICAgdXBkYXRlUm91dGU6IGJvb2xlYW5cbiAgfSkge1xuICAgIC8vIFdlIHVwZGF0ZSB0aGUgcm91dGVyIHN0YXRlLi4uXG4gICAgaWYgKHBhcmFtcy51cGRhdGVSb3V0ZSkge1xuICAgICAgY29uc3Qgcm91dGVJZCA9IHBhcmFtcy5uZXh0LmdldEZvcm1hdHRlZFJvdXRlSWQoKTtcbiAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9ICEhcGFyYW1zLnByZXZpb3VzLmhhc1JvdXRlSWQoKSA/ICcuLicgOiAnLic7XG4gICAgICBjb25zdCBwYXRoID0gcm91dGVJZCA/IFtyZWxhdGl2ZVBhdGgsIHJvdXRlSWQsIHBhcmFtcy5uZXh0LmdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKV0gOiBbcmVsYXRpdmVQYXRoLCBwYXJhbXMubmV4dC5nZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCldO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocGF0aCwge1xuICAgICAgICByZWxhdGl2ZVRvOiBwYXJhbXMucGxhY2VDb21wb25lbnQuYWN0aXZhdGVkUm91dGVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @record
|
|
7
|
+
* @template T
|
|
8
|
+
*/
|
|
9
|
+
export function ResolvedParameter() { }
|
|
10
|
+
if (false) {
|
|
11
|
+
/** @type {?} */
|
|
12
|
+
ResolvedParameter.prototype.parameterDef;
|
|
13
|
+
/** @type {?} */
|
|
14
|
+
ResolvedParameter.prototype.resolvedValue;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZWQtcGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3Jlc29sdmVkLXBhcmFtZXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBLHVDQUdDOzs7SUFGQyx5Q0FBcUM7O0lBQ3JDLDBDQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFBhcmFtZXRlcjxUPiB7XG4gIHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPjtcbiAgcmVzb2x2ZWRWYWx1ZTogVDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { Trace } from '@coolon/pectin';
|
|
7
|
+
export class ResolvedRouteParameterSnapshot {
|
|
8
|
+
/**
|
|
9
|
+
* @param {?} parameters
|
|
10
|
+
*/
|
|
11
|
+
constructor(parameters) {
|
|
12
|
+
this.parameters = parameters;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @template T
|
|
16
|
+
* @param {?} parameter
|
|
17
|
+
* @return {?}
|
|
18
|
+
*/
|
|
19
|
+
get(parameter) {
|
|
20
|
+
/** @type {?} */
|
|
21
|
+
const resolved = this.parameters.find((/**
|
|
22
|
+
* @param {?} p
|
|
23
|
+
* @return {?}
|
|
24
|
+
*/
|
|
25
|
+
p => p.parameterDef === parameter));
|
|
26
|
+
return resolved ? resolved.resolvedValue : null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @template T
|
|
30
|
+
* @param {?} parameter
|
|
31
|
+
* @param {?} value
|
|
32
|
+
* @return {?}
|
|
33
|
+
*/
|
|
34
|
+
replace(parameter, value) {
|
|
35
|
+
return new ResolvedRouteParameterSnapshot(this.parameters.filter((/**
|
|
36
|
+
* @param {?} p
|
|
37
|
+
* @return {?}
|
|
38
|
+
*/
|
|
39
|
+
p => p.parameterDef !== parameter)).concat({
|
|
40
|
+
parameterDef: parameter,
|
|
41
|
+
resolvedValue: value
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @return {?}
|
|
46
|
+
*/
|
|
47
|
+
getFormattedRouteId() {
|
|
48
|
+
/** @type {?} */
|
|
49
|
+
const routeIdParam = this.getRouteIdParam();
|
|
50
|
+
return routeIdParam ? routeIdParam.parameterDef.type.format(routeIdParam.resolvedValue) : null;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @private
|
|
54
|
+
* @return {?}
|
|
55
|
+
*/
|
|
56
|
+
getRouteIdParam() {
|
|
57
|
+
return this.parameters.find((/**
|
|
58
|
+
* @param {?} p
|
|
59
|
+
* @return {?}
|
|
60
|
+
*/
|
|
61
|
+
p => p.parameterDef.isRouteId));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @return {?}
|
|
65
|
+
*/
|
|
66
|
+
getFormattedParameters() {
|
|
67
|
+
/** @type {?} */
|
|
68
|
+
const params = {};
|
|
69
|
+
/** @type {?} */
|
|
70
|
+
const routeIdParam = this.parameters.filter((/**
|
|
71
|
+
* @param {?} p
|
|
72
|
+
* @return {?}
|
|
73
|
+
*/
|
|
74
|
+
p => !p.parameterDef.isRouteId)).forEach((/**
|
|
75
|
+
* @param {?} p
|
|
76
|
+
* @return {?}
|
|
77
|
+
*/
|
|
78
|
+
p => {
|
|
79
|
+
params[p.parameterDef.name] = p.parameterDef.type.format(p.resolvedValue);
|
|
80
|
+
}));
|
|
81
|
+
return params;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @return {?}
|
|
85
|
+
*/
|
|
86
|
+
hasRouteId() {
|
|
87
|
+
return !!this.getRouteIdParam();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
tslib_1.__decorate([
|
|
91
|
+
Trace(),
|
|
92
|
+
tslib_1.__metadata("design:type", Function),
|
|
93
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
94
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
95
|
+
], ResolvedRouteParameterSnapshot.prototype, "getFormattedRouteId", null);
|
|
96
|
+
tslib_1.__decorate([
|
|
97
|
+
Trace(),
|
|
98
|
+
tslib_1.__metadata("design:type", Function),
|
|
99
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
100
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
101
|
+
], ResolvedRouteParameterSnapshot.prototype, "getFormattedParameters", null);
|
|
102
|
+
if (false) {
|
|
103
|
+
/** @type {?} */
|
|
104
|
+
ResolvedRouteParameterSnapshot.prototype.parameters;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZWQtcm91dGUtcGFyYW1ldGVyLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3Jlc29sdmVkLXJvdXRlLXBhcmFtZXRlci1zbmFwc2hvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl2QyxNQUFNLE9BQU8sOEJBQThCOzs7O0lBQ3pDLFlBQXFCLFVBQW9DO1FBQXBDLGVBQVUsR0FBVixVQUFVLENBQTBCO0lBQ3pELENBQUM7Ozs7OztJQUVELEdBQUcsQ0FBSSxTQUFpQzs7Y0FDaEMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUM7UUFDeEUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRCxDQUFDOzs7Ozs7O0lBRUQsT0FBTyxDQUFJLFNBQWlDLEVBQUUsS0FBUTtRQUNwRCxPQUFPLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBQyxDQUFDLE1BQU0sQ0FBQztZQUN6RyxZQUFZLEVBQUUsU0FBUztZQUN2QixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Ozs7SUFHQSxtQkFBbUI7O2NBQ1osWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUU7UUFDM0MsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRyxDQUFDOzs7OztJQUVPLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFDLENBQUM7SUFDN0QsQ0FBQzs7OztJQUdELHNCQUFzQjs7Y0FDZCxNQUFNLEdBQUcsRUFBRTs7Y0FDWCxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFDLENBQUMsT0FBTzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RGLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUUsQ0FBQyxFQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7OztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBckJFO0lBREEsS0FBSyxFQUFFOzs7O3lFQUlQO0FBT0Q7SUFEQyxLQUFLLEVBQUU7Ozs7NEVBT1A7OztJQWhDVyxvREFBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgUGFyYW1ldGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vcGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MnO1xuaW1wb3J0IHsgUmVzb2x2ZWRQYXJhbWV0ZXIgfSBmcm9tICcuL3Jlc29sdmVkLXBhcmFtZXRlcic7XG5cbmV4cG9ydCBjbGFzcyBSZXNvbHZlZFJvdXRlUGFyYW1ldGVyU25hcHNob3Qge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJzOiBSZXNvbHZlZFBhcmFtZXRlcjxhbnk+W10pIHtcbiAgfVxuXG4gIGdldDxUPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VD4pOiBUIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHRoaXMucGFyYW1ldGVycy5maW5kKHAgPT4gcC5wYXJhbWV0ZXJEZWYgPT09IHBhcmFtZXRlcik7XG4gICAgcmV0dXJuIHJlc29sdmVkID8gcmVzb2x2ZWQucmVzb2x2ZWRWYWx1ZSA6IG51bGw7XG4gIH1cblxuICByZXBsYWNlPFQ+KHBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPiwgdmFsdWU6IFQpOiBSZXNvbHZlZFJvdXRlUGFyYW1ldGVyU25hcHNob3Qge1xuICAgIHJldHVybiBuZXcgUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlclNuYXBzaG90KHRoaXMucGFyYW1ldGVycy5maWx0ZXIocCA9PiBwLnBhcmFtZXRlckRlZiAhPT0gcGFyYW1ldGVyKS5jb25jYXQoe1xuICAgICAgcGFyYW1ldGVyRGVmOiBwYXJhbWV0ZXIsXG4gICAgICByZXNvbHZlZFZhbHVlOiB2YWx1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gICBnZXRGb3JtYXR0ZWRSb3V0ZUlkKCkge1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbSA9IHRoaXMuZ2V0Um91dGVJZFBhcmFtKCk7XG4gICAgcmV0dXJuIHJvdXRlSWRQYXJhbSA/IHJvdXRlSWRQYXJhbS5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQocm91dGVJZFBhcmFtLnJlc29sdmVkVmFsdWUpIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um91dGVJZFBhcmFtKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnMuZmluZChwID0+IHAucGFyYW1ldGVyRGVmLmlzUm91dGVJZCk7XG4gIH1cblxuICBAVHJhY2UoKVxuICBnZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbSA9IHRoaXMucGFyYW1ldGVycy5maWx0ZXIocCA9PiAhcC5wYXJhbWV0ZXJEZWYuaXNSb3V0ZUlkKS5mb3JFYWNoKHAgPT4ge1xuICAgICAgcGFyYW1zW3AucGFyYW1ldGVyRGVmLm5hbWVdID0gcC5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQocC5yZXNvbHZlZFZhbHVlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgaGFzUm91dGVJZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldFJvdXRlSWRQYXJhbSgpO1xuICB9XG59XG4iXX0=
|