@coolon/angular-ui-powerups 0.0.32 → 0.0.34
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 +847 -765
- 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 +33 -4
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +3 -3
- package/esm2015/lib/place/guards/leave-place.guard.js +1 -1
- 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 +8 -4
- package/esm2015/lib/place/place-component.js +163 -7
- package/esm2015/lib/place/place.decorator.js +7 -87
- package/esm2015/lib/place/place.service.js +47 -8
- package/esm2015/lib/place/route/parameter-decorators.js +1 -42
- 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 +40 -4
- package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +3 -3
- package/esm5/lib/place/guards/leave-place.guard.js +1 -1
- 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 +8 -4
- package/esm5/lib/place/place-component.js +191 -7
- package/esm5/lib/place/place.decorator.js +7 -97
- package/esm5/lib/place/place.service.js +52 -10
- package/esm5/lib/place/route/parameter-decorators.js +1 -42
- 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 +777 -712
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +843 -761
- 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 +39 -1
- package/lib/place/place.decorator.d.ts +1 -25
- package/lib/place/place.service.d.ts +13 -2
- package/lib/place/route/parameter-decorators.d.ts +0 -12
- 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/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
|
@@ -2,14 +2,170 @@
|
|
|
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
|
+
* @return {?}
|
|
33
|
+
*/
|
|
34
|
+
canDeactivate() {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
10
37
|
/**
|
|
11
38
|
* @return {?}
|
|
12
39
|
*/
|
|
13
|
-
|
|
40
|
+
onPlaceReady() {
|
|
41
|
+
}
|
|
14
42
|
}
|
|
15
|
-
|
|
43
|
+
tslib_1.__decorate([
|
|
44
|
+
Memoize(),
|
|
45
|
+
tslib_1.__metadata("design:type", PlaceComponent.Definition),
|
|
46
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
47
|
+
], PlaceComponent.prototype, "placeConfig", null);
|
|
48
|
+
tslib_1.__decorate([
|
|
49
|
+
Trace(),
|
|
50
|
+
tslib_1.__metadata("design:type", Function),
|
|
51
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
52
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
53
|
+
], PlaceComponent.prototype, "onPlaceReady", null);
|
|
54
|
+
if (false) {
|
|
55
|
+
/**
|
|
56
|
+
* @type {?}
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
PlaceComponent.prototype.routeBindingMediator;
|
|
60
|
+
/** @type {?} */
|
|
61
|
+
PlaceComponent.prototype.activatedRoute;
|
|
62
|
+
}
|
|
63
|
+
(function (PlaceComponent) {
|
|
64
|
+
class Definition {
|
|
65
|
+
/**
|
|
66
|
+
* @param {?} component
|
|
67
|
+
* @param {?} options
|
|
68
|
+
*/
|
|
69
|
+
constructor(component, options) {
|
|
70
|
+
this.component = component;
|
|
71
|
+
assert.notNil(options);
|
|
72
|
+
this.path = options.path;
|
|
73
|
+
this.order = options.order;
|
|
74
|
+
this.data = options.data;
|
|
75
|
+
this.authenticate = _.isNil(options.authenticate) || options.authenticate;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @param {?} construcable
|
|
79
|
+
* @return {?}
|
|
80
|
+
*/
|
|
81
|
+
isDescriptorForType(construcable) {
|
|
82
|
+
return lang.constructorChain(construcable).includes(PlaceComponent);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @param {?} placeComponent
|
|
86
|
+
* @return {?}
|
|
87
|
+
*/
|
|
88
|
+
isDescriptorFor(placeComponent) {
|
|
89
|
+
return placeComponent.constructor === this.component;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @template T
|
|
93
|
+
* @param {?} key
|
|
94
|
+
* @param {?=} defaultValue
|
|
95
|
+
* @return {?}
|
|
96
|
+
*/
|
|
97
|
+
getData(key, defaultValue) {
|
|
98
|
+
return this.data ?
|
|
99
|
+
_.isNil(this.data[key]) ? defaultValue : this.data[key] :
|
|
100
|
+
defaultValue;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @template T
|
|
104
|
+
* @param {?} keys
|
|
105
|
+
* @param {?=} defaultValue
|
|
106
|
+
* @return {?}
|
|
107
|
+
*/
|
|
108
|
+
searchData(keys, defaultValue) {
|
|
109
|
+
if (this.data) {
|
|
110
|
+
/** @type {?} */
|
|
111
|
+
const found = keys.find((/**
|
|
112
|
+
* @param {?} key
|
|
113
|
+
* @return {?}
|
|
114
|
+
*/
|
|
115
|
+
key => !_.isNil(this.data[key])));
|
|
116
|
+
return found ? this.data[found] : defaultValue;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return defaultValue;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
PlaceComponent.Definition = Definition;
|
|
124
|
+
if (false) {
|
|
125
|
+
/** @type {?} */
|
|
126
|
+
Definition.prototype.path;
|
|
127
|
+
/** @type {?} */
|
|
128
|
+
Definition.prototype.authenticate;
|
|
129
|
+
/** @type {?} */
|
|
130
|
+
Definition.prototype.order;
|
|
131
|
+
/** @type {?} */
|
|
132
|
+
Definition.prototype.data;
|
|
133
|
+
/** @type {?} */
|
|
134
|
+
Definition.prototype.component;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* @record
|
|
138
|
+
*/
|
|
139
|
+
function Options() { }
|
|
140
|
+
PlaceComponent.Options = Options;
|
|
141
|
+
if (false) {
|
|
142
|
+
/** @type {?} */
|
|
143
|
+
Options.prototype.path;
|
|
144
|
+
/** @type {?} */
|
|
145
|
+
Options.prototype.order;
|
|
146
|
+
/** @type {?|undefined} */
|
|
147
|
+
Options.prototype.data;
|
|
148
|
+
/** @type {?|undefined} */
|
|
149
|
+
Options.prototype.authenticate;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @param {?} klass
|
|
153
|
+
* @return {?}
|
|
154
|
+
*/
|
|
155
|
+
function getDefinition(klass) {
|
|
156
|
+
/** @type {?} */
|
|
157
|
+
const placeOptions = Reflect.getMetadata(DEFINITION_META_DATA_KEY, klass);
|
|
158
|
+
return new Definition(klass, placeOptions);
|
|
159
|
+
}
|
|
160
|
+
PlaceComponent.getDefinition = getDefinition;
|
|
161
|
+
/**
|
|
162
|
+
* @param {?} klass
|
|
163
|
+
* @param {?} options
|
|
164
|
+
* @return {?}
|
|
165
|
+
*/
|
|
166
|
+
function injectDefinition(klass, options) {
|
|
167
|
+
Reflect.defineMetadata(DEFINITION_META_DATA_KEY, options, klass);
|
|
168
|
+
}
|
|
169
|
+
PlaceComponent.injectDefinition = injectDefinition;
|
|
170
|
+
})(PlaceComponent || (PlaceComponent = {}));
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQWlCLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRzFFLE1BQU0sT0FBTyx3QkFBd0IsR0FBRywwQkFBMEI7QUFFbEUsTUFBTSxPQUFPLGNBQWUsU0FBUSxtQkFBbUI7Ozs7O0lBSXJELFlBQXFCLGNBQThCLEVBQUUsWUFBMkI7UUFDOUUsS0FBSyxFQUFFLENBQUM7UUFEVyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFFakQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Ozs7SUFHRCxJQUFJLFdBQVc7UUFDYixPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUMsbUJBQUEsbUJBQUEsSUFBSSxDQUFDLFdBQVcsRUFBTyxFQUFpQyxDQUFDLENBQUM7SUFDaEcsQ0FBQzs7OztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7SUFHRCxZQUFZO0lBQ1osQ0FBQztDQUVGO0FBWkM7SUFEQyxPQUFPLEVBQUU7c0NBQ1MsY0FBYyxDQUFDLFVBQVU7O2lEQUUzQztBQU9EO0lBREMsS0FBSyxFQUFFOzs7O2tEQUVQOzs7Ozs7SUFsQkQsOENBQXFEOztJQUV6Qyx3Q0FBdUM7O0FBb0JyRCxXQUFpQixjQUFjO0lBRTdCLE1BQWEsVUFBVTs7Ozs7UUFNckIsWUFBcUIsU0FBd0MsRUFBRSxPQUErQjtZQUF6RSxjQUFTLEdBQVQsU0FBUyxDQUErQjtZQUMzRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQztRQUM1RSxDQUFDOzs7OztRQUVELG1CQUFtQixDQUFDLFlBQTJDO1lBQzdELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RSxDQUFDOzs7OztRQUVELGVBQWUsQ0FBQyxjQUE4QjtZQUM1QyxPQUFPLGNBQWMsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN2RCxDQUFDOzs7Ozs7O1FBRUQsT0FBTyxDQUFJLEdBQVcsRUFBRSxZQUFnQjtZQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxZQUFZLENBQUM7UUFDakIsQ0FBQzs7Ozs7OztRQUVELFVBQVUsQ0FBSSxJQUFjLEVBQUUsWUFBZ0I7WUFDNUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFOztzQkFDUCxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUk7Ozs7Z0JBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDO2dCQUN4RCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2FBQ2hEO2lCQUFNO2dCQUNMLE9BQU8sWUFBWSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQztLQUNGO0lBcENZLHlCQUFVLGFBb0N0QixDQUFBOzs7UUFuQ0MsMEJBQXNCOztRQUN0QixrQ0FBK0I7O1FBQy9CLDJCQUF1Qjs7UUFDdkIsMEJBQXNDOztRQUUxQiwrQkFBaUQ7Ozs7O0lBaUMvRCxzQkFNQzs7OztRQUxDLHVCQUFhOztRQUNiLHdCQUFjOztRQUNkLHVCQUE4Qjs7UUFDOUIsK0JBQXNCOzs7Ozs7SUFJeEIsU0FBZ0IsYUFBYSxDQUFDLEtBQW9DOztjQUMxRCxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUM7UUFDekUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUhlLDRCQUFhLGdCQUc1QixDQUFBOzs7Ozs7SUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFvQyxFQUFFLE9BQWdCO1FBQ3JGLE9BQU8sQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFGZSwrQkFBZ0IsbUJBRS9CLENBQUE7QUFHSCxDQUFDLEVBM0RnQixjQUFjLEtBQWQsY0FBYyxRQTJEOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBhc3NlcnQsIENvbnN0cnVjdGFibGUsIGxhbmcsIFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgTWVtb2l6ZSB9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvcic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgSVBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9pLXBsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBJUGxhY2VTZXJ2aWNlIH0gZnJvbSAnLi9pLXBsYWNlLXNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVQYXJhbWV0ZXJCaW5kaW5ncyB9IGZyb20gJy4vcm91dGUvcm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzJztcblxuLy8gUkFLRTogbWFraW5nIHRoaXMgU3ltYm9sKC4uLikgYnJva2UgdGhpbmdzLlxuZXhwb3J0IGNvbnN0IERFRklOSVRJT05fTUVUQV9EQVRBX0tFWSA9ICdQTEFDRV9ERUZJTklUSU9OX09QVElPTlMnO1xuXG5leHBvcnQgY2xhc3MgUGxhY2VDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgSVBsYWNlQ29tcG9uZW50IHtcblxuICBwcml2YXRlIHJvdXRlQmluZGluZ01lZGlhdG9yOiBSb3V0ZVBhcmFtZXRlckJpbmRpbmdzO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcGxhY2VTZXJ2aWNlOiBJUGxhY2VTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJvdXRlQmluZGluZ01lZGlhdG9yID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IFJvdXRlUGFyYW1ldGVyQmluZGluZ3ModGhpcywgcGxhY2VTZXJ2aWNlKSk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldCBwbGFjZUNvbmZpZygpOiBQbGFjZUNvbXBvbmVudC5EZWZpbml0aW9uIHtcbiAgICByZXR1cm4gUGxhY2VDb21wb25lbnQuZ2V0RGVmaW5pdGlvbih0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSBhcyBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik7XG4gIH1cblxuICBjYW5EZWFjdGl2YXRlKCk6IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIG9uUGxhY2VSZWFkeSgpIHtcbiAgfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGxhY2VDb21wb25lbnQge1xuXG4gIGV4cG9ydCBjbGFzcyBEZWZpbml0aW9uIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXV0aGVudGljYXRlOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IG9yZGVyOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sIG9wdGlvbnM6IFBsYWNlQ29tcG9uZW50Lk9wdGlvbnMpIHtcbiAgICAgIGFzc2VydC5ub3ROaWwob3B0aW9ucyk7XG4gICAgICB0aGlzLnBhdGggPSBvcHRpb25zLnBhdGg7XG4gICAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlcjtcbiAgICAgIHRoaXMuZGF0YSA9IG9wdGlvbnMuZGF0YTtcbiAgICAgIHRoaXMuYXV0aGVudGljYXRlID0gXy5pc05pbChvcHRpb25zLmF1dGhlbnRpY2F0ZSkgfHwgb3B0aW9ucy5hdXRoZW50aWNhdGU7XG4gICAgfVxuXG4gICAgaXNEZXNjcmlwdG9yRm9yVHlwZShjb25zdHJ1Y2FibGU6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KSB7XG4gICAgICByZXR1cm4gbGFuZy5jb25zdHJ1Y3RvckNoYWluKGNvbnN0cnVjYWJsZSkuaW5jbHVkZXMoUGxhY2VDb21wb25lbnQpO1xuICAgIH1cblxuICAgIGlzRGVzY3JpcHRvckZvcihwbGFjZUNvbXBvbmVudDogUGxhY2VDb21wb25lbnQpIHtcbiAgICAgIHJldHVybiBwbGFjZUNvbXBvbmVudC5jb25zdHJ1Y3RvciA9PT0gdGhpcy5jb21wb25lbnQ7XG4gICAgfVxuXG4gICAgZ2V0RGF0YTxUPihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YSA/XG4gICAgICAgIF8uaXNOaWwodGhpcy5kYXRhW2tleV0pID8gZGVmYXVsdFZhbHVlIDogdGhpcy5kYXRhW2tleV0gOlxuICAgICAgICBkZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgc2VhcmNoRGF0YTxUPihrZXlzOiBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgICBjb25zdCBmb3VuZCA9IGtleXMuZmluZChrZXkgPT4gIV8uaXNOaWwodGhpcy5kYXRhW2tleV0pKTtcbiAgICAgICAgcmV0dXJuIGZvdW5kID8gdGhpcy5kYXRhW2ZvdW5kXSA6IGRlZmF1bHRWYWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICAgIHBhdGg6IHN0cmluZyxcbiAgICBvcmRlcjogbnVtYmVyO1xuICAgIGRhdGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCAvLyBkZWZhdWx0cyB0byB0cnVlXG4gICAgYXV0aGVudGljYXRlPzogYm9vbGVhbiAvLyBkZWZhdWx0cyB0byB0cnVlXG4gICAgLy8gY2hpbGRPZj86IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVmaW5pdGlvbihrbGFzczogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pOiBEZWZpbml0aW9uIHtcbiAgICBjb25zdCBwbGFjZU9wdGlvbnMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKERFRklOSVRJT05fTUVUQV9EQVRBX0tFWSwga2xhc3MpO1xuICAgIHJldHVybiBuZXcgRGVmaW5pdGlvbihrbGFzcywgcGxhY2VPcHRpb25zKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpbmplY3REZWZpbml0aW9uKGtsYXNzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Piwgb3B0aW9uczogT3B0aW9ucykge1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZLCBvcHRpb25zLCBrbGFzcyk7XG4gIH1cblxuXG59XG4iXX0=
|
|
@@ -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
|
|
@@ -51,26 +51,6 @@ export function RouteId(type, options) {
|
|
|
51
51
|
UseDelegate()(prototype, propertyKey);
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
/**
|
|
55
|
-
* @deprecated use RouteParameter instead.
|
|
56
|
-
* @template T
|
|
57
|
-
* @param {?} type
|
|
58
|
-
* @param {?=} options
|
|
59
|
-
* @return {?}
|
|
60
|
-
*/
|
|
61
|
-
export function QueryParameter(type, options) {
|
|
62
|
-
return (/**
|
|
63
|
-
* @param {?} prototype
|
|
64
|
-
* @param {?} propertyKey
|
|
65
|
-
* @return {?}
|
|
66
|
-
*/
|
|
67
|
-
(prototype, propertyKey) => {
|
|
68
|
-
/** @type {?} */
|
|
69
|
-
const param = createDefinition(propertyKey, type, options, false);
|
|
70
|
-
Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);
|
|
71
|
-
UseDelegate()(prototype, propertyKey);
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
54
|
/**
|
|
75
55
|
* @template T
|
|
76
56
|
* @param {?} type
|
|
@@ -91,27 +71,6 @@ export function RouteParameter(type, options) {
|
|
|
91
71
|
UseDelegate()(prototype, propertyKey);
|
|
92
72
|
});
|
|
93
73
|
}
|
|
94
|
-
/**
|
|
95
|
-
* @deprecated use RouteParameterList instead
|
|
96
|
-
* @template E
|
|
97
|
-
* @param {?} elementType
|
|
98
|
-
* @param {?=} options
|
|
99
|
-
* @return {?}
|
|
100
|
-
*/
|
|
101
|
-
export function QueryParameterList(elementType, options) {
|
|
102
|
-
// assert.isTruthy(type.isValid());
|
|
103
|
-
return (/**
|
|
104
|
-
* @param {?} prototype
|
|
105
|
-
* @param {?} propertyKey
|
|
106
|
-
* @return {?}
|
|
107
|
-
*/
|
|
108
|
-
(prototype, propertyKey) => {
|
|
109
|
-
/** @type {?} */
|
|
110
|
-
const param = createArrayDefinition(propertyKey, elementType, options);
|
|
111
|
-
Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);
|
|
112
|
-
UseDelegate()(prototype, propertyKey);
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
74
|
/**
|
|
116
75
|
* @template E
|
|
117
76
|
* @param {?} elementType
|
|
@@ -179,4 +138,4 @@ function createArrayDefinition(propertyName, type, options) {
|
|
|
179
138
|
};
|
|
180
139
|
return def;
|
|
181
140
|
}
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvcGFyYW1ldGVyLWRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRXBFLHNDQUlDOzs7SUFIQyw4QkFBWTs7SUFDWixvQ0FBa0I7O0lBQ2xCLHFDQUFpRDs7Ozs7O0FBR25ELDBDQUlDOzs7SUFIQyxrQ0FBWTs7SUFDWix3Q0FBa0I7O0lBQ2xCLDZDQUF1RDs7Ozs7Ozs7QUFHekQsTUFBTSxVQUFVLE9BQU8sQ0FBNEIsSUFBc0IsRUFBRSxPQUE2QjtJQUN0RyxtQ0FBbUM7SUFDbkM7Ozs7O0lBQU8sQ0FBQyxTQUFpQixFQUFFLFdBQTRCLEVBQUUsRUFBRTs7Y0FDbkQsS0FBSyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQztRQUNoRSxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xHLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4QyxDQUFDLEVBQUM7QUFDSixDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBSSxJQUFzQixFQUFFLE9BQTZCO0lBQ3JGLG1DQUFtQztJQUNuQzs7Ozs7SUFBTyxDQUFDLFNBQWlCLEVBQUUsV0FBNEIsRUFBRSxFQUFFOztjQUNuRCxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQ2pFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEcsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsRUFBQztBQUNKLENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUksV0FBNkIsRUFBRSxPQUFpQztJQUNwRyxtQ0FBbUM7SUFDbkM7Ozs7O0lBQU8sQ0FBQyxTQUFpQixFQUFFLFdBQTRCLEVBQUUsRUFBRTs7Y0FDbkQsS0FBSyxHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDO1FBQ3RFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEcsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsRUFBQztBQUNKLENBQUM7Ozs7Ozs7OztBQUVELFNBQVMsZ0JBQWdCLENBQUksWUFBNkIsRUFBRSxJQUFzQixFQUFFLE9BQTRCLEVBQUUsT0FBZ0I7O1VBQzFILElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzs7VUFDeEIsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUU7O1VBQzdELEdBQUcsR0FBMkI7UUFDbEMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDO1FBQ2xELFlBQVksRUFBRSxvQkFBb0I7UUFDbEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7UUFDOUMsU0FBUyxFQUFFLE9BQU87UUFDbEIsT0FBTyxFQUFFLEtBQUs7S0FDZjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQzs7Ozs7Ozs7QUFFRCxTQUFTLHFCQUFxQixDQUFJLFlBQTZCLEVBQUUsSUFBc0IsRUFBRSxPQUFnQzs7VUFDakgsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDOztVQUN4QixvQkFBb0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRTs7VUFFN0QsR0FBRyxHQUFnQztRQUN2QyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7UUFDbEQsWUFBWSxFQUFFLG9CQUFvQjtRQUNsQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQztRQUNsRCxTQUFTLEVBQUUsS0FBSztRQUNoQixPQUFPLEVBQUUsSUFBSTtLQUNkO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0LCBDb25zdHJ1Y3RhYmxlLCBVc2VEZWxlZ2F0ZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEtsYXNzLCBPcHRzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTYW5pdGlzZXIgfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuaW1wb3J0IHsgUGFyYW1ldGVyVHlwZSB9IGZyb20gJy4vcGFyYW1ldGVyLXR5cGUnO1xuaW1wb3J0IHsgUm91dGVQYXJhbWV0ZXJCaW5kaW5ncyB9IGZyb20gJy4vcm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXJPcHRpb25zPFQ+IHtcbiAgYXM/OiBzdHJpbmc7XG4gIG9wdGlvbmFsPzpib29sZWFuO1xuICBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFBhcmFtZXRlck9wdGlvbnM8VD4ge1xuICBhcz86IHN0cmluZztcbiAgb3B0aW9uYWw/OmJvb2xlYW47XG4gIGxpc3RTYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUW10+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJvdXRlSWQ8VCBleHRlbmRzIHN0cmluZyB8IG51bWJlcj4odHlwZTogUGFyYW1ldGVyVHlwZTxUPiwgb3B0aW9ucz86IFBhcmFtZXRlck9wdGlvbnM8VD4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIC8vIGFzc2VydC5pc1RydXRoeSh0eXBlLmlzVmFsaWQoKSk7XG4gIHJldHVybiAocHJvdG90eXBlOiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IGNyZWF0ZURlZmluaXRpb24ocHJvcGVydHlLZXksIHR5cGUsIG9wdGlvbnMsIHRydWUpO1xuICAgIEtsYXNzLmdldChwcm90b3R5cGUpLmFkZFRvT3duTWV0YWRhdGFMaXN0KFJvdXRlUGFyYW1ldGVyQmluZGluZ3MuUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZLCBwYXJhbSk7XG4gICAgVXNlRGVsZWdhdGUoKShwcm90b3R5cGUsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJvdXRlUGFyYW1ldGVyPFQ+KHR5cGU6IFBhcmFtZXRlclR5cGU8VD4sIG9wdGlvbnM/OiBQYXJhbWV0ZXJPcHRpb25zPFQ+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAvLyBhc3NlcnQuaXNUcnV0aHkodHlwZS5pc1ZhbGlkKCkpO1xuICByZXR1cm4gKHByb3RvdHlwZTogT2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBjcmVhdGVEZWZpbml0aW9uKHByb3BlcnR5S2V5LCB0eXBlLCBvcHRpb25zLCBmYWxzZSk7XG4gICAgS2xhc3MuZ2V0KHByb3RvdHlwZSkuYWRkVG9Pd25NZXRhZGF0YUxpc3QoUm91dGVQYXJhbWV0ZXJCaW5kaW5ncy5ST1VURV9QQVJBTUVURVJfTElTVF9LRVksIHBhcmFtKTtcbiAgICBVc2VEZWxlZ2F0ZSgpKHByb3RvdHlwZSwgcHJvcGVydHlLZXkpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUm91dGVQYXJhbWV0ZXJMaXN0PEU+KGVsZW1lbnRUeXBlOiBQYXJhbWV0ZXJUeXBlPEU+LCBvcHRpb25zPzogTGlzdFBhcmFtZXRlck9wdGlvbnM8RT4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIC8vIGFzc2VydC5pc1RydXRoeSh0eXBlLmlzVmFsaWQoKSk7XG4gIHJldHVybiAocHJvdG90eXBlOiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IGNyZWF0ZUFycmF5RGVmaW5pdGlvbihwcm9wZXJ0eUtleSwgZWxlbWVudFR5cGUsIG9wdGlvbnMpO1xuICAgIEtsYXNzLmdldChwcm90b3R5cGUpLmFkZFRvT3duTWV0YWRhdGFMaXN0KFJvdXRlUGFyYW1ldGVyQmluZGluZ3MuUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZLCBwYXJhbSk7XG4gICAgVXNlRGVsZWdhdGUoKShwcm90b3R5cGUsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVmaW5pdGlvbjxUPihwcm9wZXJ0eU5hbWU6IHN5bWJvbCB8IHN0cmluZywgdHlwZTogUGFyYW1ldGVyVHlwZTxUPiwgb3B0aW9uczogUGFyYW1ldGVyT3B0aW9uczxUPiwgcm91dGVJZDogYm9vbGVhbikge1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIGNvbnN0IHByb3BlcnR5TmFtZUFzU3RyaW5nID0gYXNzZXJ0Lm5vdE5pbChwcm9wZXJ0eU5hbWUpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IGRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPiA9IHtcbiAgICBuYW1lOiBvcHRzLmdldE9wdGlvbmFsKCdhcycsIHByb3BlcnR5TmFtZUFzU3RyaW5nKSxcbiAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZUFzU3RyaW5nLFxuICAgIHR5cGU6IGFzc2VydC5ub3ROaWwodHlwZSksXG4gICAgc2FuaXRpc2VyOiBvcHRzLmdldE9wdGlvbmFsKCdzYW5pdGlzZXInLCBudWxsKSxcbiAgICBpc1JvdXRlSWQ6IHJvdXRlSWQsXG4gICAgaXNBcnJheTogZmFsc2VcbiAgfTtcbiAgcmV0dXJuIGRlZjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQXJyYXlEZWZpbml0aW9uPFQ+KHByb3BlcnR5TmFtZTogc3ltYm9sIHwgc3RyaW5nLCB0eXBlOiBQYXJhbWV0ZXJUeXBlPFQ+LCBvcHRpb25zOiBMaXN0UGFyYW1ldGVyT3B0aW9uczxUPikge1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIGNvbnN0IHByb3BlcnR5TmFtZUFzU3RyaW5nID0gYXNzZXJ0Lm5vdE5pbChwcm9wZXJ0eU5hbWUpLnRvU3RyaW5nKCk7XG5cbiAgY29uc3QgZGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFRbXT4gPSB7XG4gICAgbmFtZTogb3B0cy5nZXRPcHRpb25hbCgnYXMnLCBwcm9wZXJ0eU5hbWVBc1N0cmluZyksXG4gICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWVBc1N0cmluZyxcbiAgICB0eXBlOiBhc3NlcnQubm90TmlsKHR5cGUpLFxuICAgIHNhbml0aXNlcjogb3B0cy5nZXRPcHRpb25hbCgnbGlzdFNhbml0aXNlcicsIG51bGwpLFxuICAgIGlzUm91dGVJZDogZmFsc2UsXG4gICAgaXNBcnJheTogdHJ1ZVxuICB9O1xuICByZXR1cm4gZGVmO1xufVxuIl19
|
|
@@ -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=
|