@coolon/angular-ui-powerups 0.0.71 → 0.0.74
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 +1514 -1260
- 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.d.ts +34 -32
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +34 -32
- package/esm2015/index.js +2 -2
- package/esm2015/lib/angular-ui-powerups.module.js +8 -22
- package/esm2015/lib/components/components.module.js +47 -0
- package/esm2015/lib/components/forms/number-input/number-input.component.js +2 -2
- package/esm2015/lib/components/forms/password-input/password-input.component.js +2 -2
- package/esm2015/lib/components/forms/select-input/select-input.component.js +2 -2
- package/esm2015/lib/components/forms/string-input/string-input.component.js +2 -2
- package/esm2015/lib/components/index.js +2 -1
- package/esm2015/lib/components/noop/noop.component.js +2 -2
- package/esm2015/lib/directives/directives.module.js +36 -0
- package/esm2015/lib/directives/index.js +2 -1
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +3 -3
- package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +2 -2
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +3 -3
- package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +3 -3
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +3 -3
- package/esm2015/lib/interaction/components/interaction-outlet/interaction-outlet.component.js +2 -2
- package/esm2015/lib/interaction/services/dialog-interaction.service.js +3 -1
- package/esm2015/lib/place/components/abstract-place-navigation.component.js +38 -3
- package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js +2 -2
- package/esm2015/lib/place/components/empty-state/empty-state.component.js +3 -3
- package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +3 -3
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +64 -29
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +3 -3
- package/esm2015/lib/place/index.js +2 -2
- package/esm2015/lib/place/place-definition.js +2 -6
- package/esm2015/lib/place/place-router.js +7 -9
- package/esm2015/lib/place/place.decorator.js +4 -4
- package/esm2015/lib/place/place.module.js +4 -2
- package/esm2015/lib/place/route/guards/enter-place-guard.service.js +283 -0
- package/esm2015/lib/place/route/guards/leave-place.guard.js +70 -50
- package/esm2015/lib/place/visit.js +10 -1
- package/esm2015/public_api.js +4 -4
- package/esm5/coolon-angular-ui-powerups.js +34 -32
- package/esm5/index.js +2 -2
- package/esm5/lib/angular-ui-powerups.module.js +8 -22
- package/esm5/lib/components/components.module.js +51 -0
- package/esm5/lib/components/forms/number-input/number-input.component.js +2 -2
- package/esm5/lib/components/forms/password-input/password-input.component.js +2 -2
- package/esm5/lib/components/forms/select-input/select-input.component.js +2 -2
- package/esm5/lib/components/forms/string-input/string-input.component.js +2 -2
- package/esm5/lib/components/index.js +2 -1
- package/esm5/lib/components/noop/noop.component.js +2 -2
- package/esm5/lib/directives/directives.module.js +40 -0
- package/esm5/lib/directives/index.js +2 -1
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +3 -3
- package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +2 -2
- package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +3 -3
- package/esm5/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +3 -3
- package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +3 -3
- package/esm5/lib/interaction/components/interaction-outlet/interaction-outlet.component.js +2 -2
- package/esm5/lib/interaction/services/dialog-interaction.service.js +3 -1
- package/esm5/lib/place/components/abstract-place-navigation.component.js +38 -3
- package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js +2 -2
- package/esm5/lib/place/components/empty-state/empty-state.component.js +3 -3
- package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +3 -3
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +72 -34
- package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +3 -3
- package/esm5/lib/place/index.js +2 -2
- package/esm5/lib/place/place-definition.js +2 -5
- package/esm5/lib/place/place-router.js +11 -10
- package/esm5/lib/place/place.decorator.js +4 -4
- package/esm5/lib/place/place.module.js +4 -2
- package/esm5/lib/place/route/guards/enter-place-guard.service.js +319 -0
- package/esm5/lib/place/route/guards/leave-place.guard.js +72 -8
- package/esm5/lib/place/visit.js +13 -1
- package/esm5/public_api.js +4 -4
- package/fesm2015/coolon-angular-ui-powerups.js +1176 -992
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +1444 -1194
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/components.module.d.ts +2 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/directives/directives.module.d.ts +2 -0
- package/lib/directives/index.d.ts +1 -0
- package/lib/place/components/abstract-place-navigation.component.d.ts +7 -1
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +7 -5
- package/lib/place/index.d.ts +1 -1
- package/lib/place/place-definition.d.ts +1 -2
- package/lib/place/place.decorator.d.ts +1 -1
- package/lib/place/route/guards/{place-route.guard.d.ts → enter-place-guard.service.d.ts} +6 -4
- package/lib/place/visit.d.ts +2 -0
- package/package.json +1 -1
- package/schematics/place-routes/place-builder.js +0 -1
- package/schematics/place-routes/place-builder.js.map +1 -1
- package/schematics/place-routes/place-class-scanner.d.ts +1 -0
- package/schematics/place-routes/place-class-scanner.js +7 -2
- package/schematics/place-routes/place-class-scanner.js.map +1 -1
- package/schematics/place-routes/place-def.d.ts +4 -3
- package/schematics/place-routes/place-def.js +40 -25
- package/schematics/place-routes/place-def.js.map +1 -1
- package/schematics/place-routes/templates/place-routes.ts.template +1 -1
- package/styles/styles.scss +1 -1
- package/esm2015/lib/place/route/guards/place-route.guard.js +0 -243
- package/esm5/lib/place/route/guards/place-route.guard.js +0 -273
|
@@ -0,0 +1,319 @@
|
|
|
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 { Injectable, Injector } from '@angular/core';
|
|
7
|
+
import { Router, UrlSerializer } from '@angular/router';
|
|
8
|
+
import { lang } from '@coolon/pectin';
|
|
9
|
+
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
10
|
+
import { PlaceComponent } from '../../place-component';
|
|
11
|
+
import { PlaceHistory } from '../../place-history';
|
|
12
|
+
import { PlaceRouter } from '../../place-router';
|
|
13
|
+
import { Visit } from '../../visit';
|
|
14
|
+
import { VisitSanitiser } from '../visit-sanitiser';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "@angular/router";
|
|
17
|
+
import * as i2 from "../../place-router";
|
|
18
|
+
import * as i3 from "../../place-history";
|
|
19
|
+
var EnterPlaceGuard = /** @class */ (function () {
|
|
20
|
+
function EnterPlaceGuard(router, urlSerializer, placeRouter, placeHistory, injector) {
|
|
21
|
+
this.router = router;
|
|
22
|
+
this.urlSerializer = urlSerializer;
|
|
23
|
+
this.placeRouter = placeRouter;
|
|
24
|
+
this.placeHistory = placeHistory;
|
|
25
|
+
this.injector = injector;
|
|
26
|
+
}
|
|
27
|
+
// @Trace()
|
|
28
|
+
// @Trace()
|
|
29
|
+
/**
|
|
30
|
+
* @param {?} activatedRoute
|
|
31
|
+
* @param {?} state
|
|
32
|
+
* @return {?}
|
|
33
|
+
*/
|
|
34
|
+
EnterPlaceGuard.prototype.canActivate =
|
|
35
|
+
// @Trace()
|
|
36
|
+
/**
|
|
37
|
+
* @param {?} activatedRoute
|
|
38
|
+
* @param {?} state
|
|
39
|
+
* @return {?}
|
|
40
|
+
*/
|
|
41
|
+
function (activatedRoute, state) {
|
|
42
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var placeDefinition, params, parsedParams, initialVisit, sanitiser, sanitisedVisit, routerStateUrlTree, commands;
|
|
44
|
+
return tslib_1.__generator(this, function (_a) {
|
|
45
|
+
switch (_a.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
if (!PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) return [3 /*break*/, 2];
|
|
48
|
+
placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
|
|
49
|
+
// Parse our route params.
|
|
50
|
+
params = new EnterPlaceGuard.ConsolidatedParameterMap(activatedRoute.paramMap, activatedRoute.url);
|
|
51
|
+
parsedParams = placeDefinition.parseRouteParams(params);
|
|
52
|
+
initialVisit = this.placeRouter.navigationSession.getVisitFor(placeDefinition) || new Visit(placeDefinition, parsedParams);
|
|
53
|
+
sanitiser = new VisitSanitiser(activatedRoute, this.router, this.placeHistory, this.injector);
|
|
54
|
+
return [4 /*yield*/, sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams))];
|
|
55
|
+
case 1:
|
|
56
|
+
sanitisedVisit = _a.sent();
|
|
57
|
+
// Save the visit with any updated parameters. We need to save it so we remember any non route parameters
|
|
58
|
+
this.placeRouter.navigationSession.storeVisit(sanitisedVisit);
|
|
59
|
+
if (initialVisit.hasRoutingChangedFrom(sanitisedVisit)) {
|
|
60
|
+
routerStateUrlTree = this.urlSerializer.parse(state.url);
|
|
61
|
+
// Regenerate the url
|
|
62
|
+
commands = this.createRedirectCommands(sanitisedVisit, tslib_1.__spread(routerStateUrlTree.root.children.primary.segments)).commands;
|
|
63
|
+
console.log('##### Place Guard Redirect', commands);
|
|
64
|
+
return [2 /*return*/, this.router.createUrlTree(commands, {
|
|
65
|
+
replaceUrl: true,
|
|
66
|
+
skipLocationChange: false
|
|
67
|
+
})];
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return [2 /*return*/, true];
|
|
71
|
+
}
|
|
72
|
+
return [3 /*break*/, 3];
|
|
73
|
+
case 2: return [2 /*return*/, lang.illegalState("expected component to be an instance of PlaceComponent, got " + activatedRoute.component)];
|
|
74
|
+
case 3: return [2 /*return*/];
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* @private
|
|
81
|
+
* @param {?} sanitisedVisit
|
|
82
|
+
* @param {?} path
|
|
83
|
+
* @return {?}
|
|
84
|
+
*/
|
|
85
|
+
EnterPlaceGuard.prototype.createRedirectCommands = /**
|
|
86
|
+
* @private
|
|
87
|
+
* @param {?} sanitisedVisit
|
|
88
|
+
* @param {?} path
|
|
89
|
+
* @return {?}
|
|
90
|
+
*/
|
|
91
|
+
function (sanitisedVisit, path) {
|
|
92
|
+
// Ugly, but it works for now.
|
|
93
|
+
/** @type {?} */
|
|
94
|
+
var newSegments = sanitisedVisit.getUrlSegments();
|
|
95
|
+
/** @type {?} */
|
|
96
|
+
var replaceAt = path.findIndex((/**
|
|
97
|
+
* @param {?} segment
|
|
98
|
+
* @return {?}
|
|
99
|
+
*/
|
|
100
|
+
function (segment) { return segment.path === newSegments[0].path; }));
|
|
101
|
+
/** @type {?} */
|
|
102
|
+
var newPath = tslib_1.__spread(path);
|
|
103
|
+
newPath.splice.apply(newPath, tslib_1.__spread([replaceAt, newSegments.length], newSegments)); // do not use the return value, it's the items that were removed!
|
|
104
|
+
// do not use the return value, it's the items that were removed!
|
|
105
|
+
/** @type {?} */
|
|
106
|
+
var commands = [];
|
|
107
|
+
newPath.forEach((/**
|
|
108
|
+
* @param {?} s
|
|
109
|
+
* @return {?}
|
|
110
|
+
*/
|
|
111
|
+
function (s) {
|
|
112
|
+
commands.push(s.path);
|
|
113
|
+
if (s.parameterMap.keys.length > 0) {
|
|
114
|
+
commands.push(s.parameters);
|
|
115
|
+
}
|
|
116
|
+
}));
|
|
117
|
+
return { newPath: newPath, commands: commands };
|
|
118
|
+
};
|
|
119
|
+
EnterPlaceGuard.decorators = [
|
|
120
|
+
{ type: Injectable, args: [{
|
|
121
|
+
providedIn: 'root'
|
|
122
|
+
},] }
|
|
123
|
+
];
|
|
124
|
+
/** @nocollapse */
|
|
125
|
+
EnterPlaceGuard.ctorParameters = function () { return [
|
|
126
|
+
{ type: Router },
|
|
127
|
+
{ type: UrlSerializer },
|
|
128
|
+
{ type: PlaceRouter },
|
|
129
|
+
{ type: PlaceHistory },
|
|
130
|
+
{ type: Injector }
|
|
131
|
+
]; };
|
|
132
|
+
/** @nocollapse */ EnterPlaceGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function EnterPlaceGuard_Factory() { return new EnterPlaceGuard(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i1.UrlSerializer), i0.ɵɵinject(i2.PlaceRouter), i0.ɵɵinject(i3.PlaceHistory), i0.ɵɵinject(i0.INJECTOR)); }, token: EnterPlaceGuard, providedIn: "root" });
|
|
133
|
+
return EnterPlaceGuard;
|
|
134
|
+
}());
|
|
135
|
+
export { EnterPlaceGuard };
|
|
136
|
+
if (false) {
|
|
137
|
+
/**
|
|
138
|
+
* @type {?}
|
|
139
|
+
* @private
|
|
140
|
+
*/
|
|
141
|
+
EnterPlaceGuard.prototype.router;
|
|
142
|
+
/**
|
|
143
|
+
* @type {?}
|
|
144
|
+
* @private
|
|
145
|
+
*/
|
|
146
|
+
EnterPlaceGuard.prototype.urlSerializer;
|
|
147
|
+
/**
|
|
148
|
+
* @type {?}
|
|
149
|
+
* @private
|
|
150
|
+
*/
|
|
151
|
+
EnterPlaceGuard.prototype.placeRouter;
|
|
152
|
+
/**
|
|
153
|
+
* @type {?}
|
|
154
|
+
* @private
|
|
155
|
+
*/
|
|
156
|
+
EnterPlaceGuard.prototype.placeHistory;
|
|
157
|
+
/**
|
|
158
|
+
* @type {?}
|
|
159
|
+
* @private
|
|
160
|
+
*/
|
|
161
|
+
EnterPlaceGuard.prototype.injector;
|
|
162
|
+
}
|
|
163
|
+
(function (EnterPlaceGuard) {
|
|
164
|
+
/**
|
|
165
|
+
* This a work around for the fact that an activated route with multiple segments doesn't
|
|
166
|
+
* include the segment params in the paramMap as well as each segment returns an empty
|
|
167
|
+
* param map even when `parameter`s has content.
|
|
168
|
+
*/
|
|
169
|
+
var ConsolidatedParameterMap = /** @class */ (function () {
|
|
170
|
+
function ConsolidatedParameterMap(paramMap, urlSegments) {
|
|
171
|
+
this.paramMaps = [paramMap].concat((urlSegments || []).map((/**
|
|
172
|
+
* @param {?} s
|
|
173
|
+
* @return {?}
|
|
174
|
+
*/
|
|
175
|
+
function (s) { return new ParamMapAdapter(s.parameters); }))).filter((/**
|
|
176
|
+
* @param {?} m
|
|
177
|
+
* @return {?}
|
|
178
|
+
*/
|
|
179
|
+
function (m) { return !!m; })); // the activated route param map can be null
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* @param {?} name
|
|
183
|
+
* @return {?}
|
|
184
|
+
*/
|
|
185
|
+
ConsolidatedParameterMap.prototype.get = /**
|
|
186
|
+
* @param {?} name
|
|
187
|
+
* @return {?}
|
|
188
|
+
*/
|
|
189
|
+
function (name) {
|
|
190
|
+
/** @type {?} */
|
|
191
|
+
var paramMap = this.paramMaps.find((/**
|
|
192
|
+
* @param {?} m
|
|
193
|
+
* @return {?}
|
|
194
|
+
*/
|
|
195
|
+
function (m) { return m.has(name); }));
|
|
196
|
+
return paramMap.get(name);
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* @param {?} name
|
|
200
|
+
* @return {?}
|
|
201
|
+
*/
|
|
202
|
+
ConsolidatedParameterMap.prototype.getAll = /**
|
|
203
|
+
* @param {?} name
|
|
204
|
+
* @return {?}
|
|
205
|
+
*/
|
|
206
|
+
function (name) {
|
|
207
|
+
/** @type {?} */
|
|
208
|
+
var paramMap = this.paramMaps.find((/**
|
|
209
|
+
* @param {?} m
|
|
210
|
+
* @return {?}
|
|
211
|
+
*/
|
|
212
|
+
function (m) { return m.has(name); }));
|
|
213
|
+
return paramMap.getAll(name);
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* @param {?} name
|
|
217
|
+
* @return {?}
|
|
218
|
+
*/
|
|
219
|
+
ConsolidatedParameterMap.prototype.has = /**
|
|
220
|
+
* @param {?} name
|
|
221
|
+
* @return {?}
|
|
222
|
+
*/
|
|
223
|
+
function (name) {
|
|
224
|
+
return !!this.paramMaps.find((/**
|
|
225
|
+
* @param {?} m
|
|
226
|
+
* @return {?}
|
|
227
|
+
*/
|
|
228
|
+
function (m) { return m.has(name); }));
|
|
229
|
+
};
|
|
230
|
+
Object.defineProperty(ConsolidatedParameterMap.prototype, "keys", {
|
|
231
|
+
get: /**
|
|
232
|
+
* @return {?}
|
|
233
|
+
*/
|
|
234
|
+
function () {
|
|
235
|
+
return this.paramMaps.reduce((/**
|
|
236
|
+
* @param {?} result
|
|
237
|
+
* @param {?} params
|
|
238
|
+
* @return {?}
|
|
239
|
+
*/
|
|
240
|
+
function (result, params) { return result.concat(params.keys); }), []);
|
|
241
|
+
},
|
|
242
|
+
enumerable: true,
|
|
243
|
+
configurable: true
|
|
244
|
+
});
|
|
245
|
+
tslib_1.__decorate([
|
|
246
|
+
Memoize(),
|
|
247
|
+
tslib_1.__metadata("design:type", Array),
|
|
248
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
249
|
+
], ConsolidatedParameterMap.prototype, "keys", null);
|
|
250
|
+
return ConsolidatedParameterMap;
|
|
251
|
+
}());
|
|
252
|
+
EnterPlaceGuard.ConsolidatedParameterMap = ConsolidatedParameterMap;
|
|
253
|
+
if (false) {
|
|
254
|
+
/**
|
|
255
|
+
* @type {?}
|
|
256
|
+
* @private
|
|
257
|
+
*/
|
|
258
|
+
ConsolidatedParameterMap.prototype.paramMaps;
|
|
259
|
+
}
|
|
260
|
+
var ParamMapAdapter = /** @class */ (function () {
|
|
261
|
+
function ParamMapAdapter(params) {
|
|
262
|
+
this.params = params;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* @param {?} name
|
|
266
|
+
* @return {?}
|
|
267
|
+
*/
|
|
268
|
+
ParamMapAdapter.prototype.get = /**
|
|
269
|
+
* @param {?} name
|
|
270
|
+
* @return {?}
|
|
271
|
+
*/
|
|
272
|
+
function (name) {
|
|
273
|
+
return this.params[name];
|
|
274
|
+
};
|
|
275
|
+
/**
|
|
276
|
+
* @param {?} name
|
|
277
|
+
* @return {?}
|
|
278
|
+
*/
|
|
279
|
+
ParamMapAdapter.prototype.getAll = /**
|
|
280
|
+
* @param {?} name
|
|
281
|
+
* @return {?}
|
|
282
|
+
*/
|
|
283
|
+
function (name) {
|
|
284
|
+
/** @type {?} */
|
|
285
|
+
var value = this.get(name);
|
|
286
|
+
return Array.isArray(value) ? value : [value];
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* @param {?} name
|
|
290
|
+
* @return {?}
|
|
291
|
+
*/
|
|
292
|
+
ParamMapAdapter.prototype.has = /**
|
|
293
|
+
* @param {?} name
|
|
294
|
+
* @return {?}
|
|
295
|
+
*/
|
|
296
|
+
function (name) {
|
|
297
|
+
return this.keys.includes(name);
|
|
298
|
+
};
|
|
299
|
+
Object.defineProperty(ParamMapAdapter.prototype, "keys", {
|
|
300
|
+
get: /**
|
|
301
|
+
* @return {?}
|
|
302
|
+
*/
|
|
303
|
+
function () {
|
|
304
|
+
return Object.keys(this.params);
|
|
305
|
+
},
|
|
306
|
+
enumerable: true,
|
|
307
|
+
configurable: true
|
|
308
|
+
});
|
|
309
|
+
return ParamMapAdapter;
|
|
310
|
+
}());
|
|
311
|
+
if (false) {
|
|
312
|
+
/**
|
|
313
|
+
* @type {?}
|
|
314
|
+
* @private
|
|
315
|
+
*/
|
|
316
|
+
ParamMapAdapter.prototype.params;
|
|
317
|
+
}
|
|
318
|
+
})(EnterPlaceGuard || (EnterPlaceGuard = {}));
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50ZXItcGxhY2UtZ3VhcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9ndWFyZHMvZW50ZXItcGxhY2UtZ3VhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFJTCxNQUFNLEVBR04sYUFBYSxFQUVkLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFFcEQ7SUFLRSx5QkFBNkIsTUFBYyxFQUN2QixhQUE0QixFQUNuQixXQUF3QixFQUN4QixZQUEwQixFQUMxQixRQUFrQjtRQUpsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3ZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDL0MsQ0FBQztJQUVELFdBQVc7Ozs7Ozs7SUFDTCxxQ0FBVzs7Ozs7OztJQUFqQixVQUFrQixjQUFzQyxFQUFFLEtBQTBCOzs7Ozs7NkJBQzlFLGNBQWMsQ0FBQywy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SUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsc0JBQUksaUNBQUk7Ozs7WUFBUjtnQkFDRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7OztXQUFBO1FBRUgsc0JBQUM7SUFBRCxDQUFDLEFBckJELElBcUJDOzs7Ozs7UUFwQmEsaUNBQWdEOztBQXFCaEUsQ0FBQyxFQTFEZ0IsZUFBZSxLQUFmLGVBQWUsUUEwRC9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIENhbkFjdGl2YXRlLFxuICBQYXJhbU1hcCxcbiAgUm91dGVyLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBVcmxTZWdtZW50LFxuICBVcmxTZXJpYWxpemVyLFxuICBVcmxUcmVlXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBsYW5nIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgTWVtb2l6ZSB9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvci9kaXN0L3NyYyc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFjZUhpc3RvcnkgfSBmcm9tICcuLi8uLi9wbGFjZS1oaXN0b3J5JztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi4vLi4vcGxhY2Utcm91dGVyJztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi4vLi4vdmlzaXQnO1xuaW1wb3J0IHsgVmlzaXRTYW5pdGlzZXIgfSBmcm9tICcuLi92aXNpdC1zYW5pdGlzZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFbnRlclBsYWNlR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwbGFjZUhpc3Rvcnk6IFBsYWNlSGlzdG9yeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbkFjdGl2YXRlKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHtcbiAgICBpZiAoUGxhY2VDb21wb25lbnQuaXNQbGFjZUNvbXBvbmVudENvbnN0cnVjdG9yKGFjdGl2YXRlZFJvdXRlLmNvbXBvbmVudCkpIHtcbiAgICAgIGNvbnN0IHBsYWNlRGVmaW5pdGlvbiA9IFBsYWNlQ29tcG9uZW50LmdldERlZmluaXRpb24oYWN0aXZhdGVkUm91dGUuY29tcG9uZW50KTtcbiAgICAgIC8vIFBhcnNlIG91ciByb3V0ZSBwYXJhbXMuXG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgRW50ZXJQbGFjZUd1YXJkLkNvbnNvbGlkYXRlZFBhcmFtZXRlck1hcChhY3RpdmF0ZWRSb3V0ZS5wYXJhbU1hcCwgYWN0aXZhdGVkUm91dGUudXJsKTtcbiAgICAgIGNvbnN0IHBhcnNlZFBhcmFtcyA9IHBsYWNlRGVmaW5pdGlvbi5wYXJzZVJvdXRlUGFyYW1zKHBhcmFtcyk7XG5cbiAgICAgIGNvbnN0IGluaXRpYWxWaXNpdCA9IHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24uZ2V0VmlzaXRGb3IocGxhY2VEZWZpbml0aW9uKSB8fCBuZXcgVmlzaXQocGxhY2VEZWZpbml0aW9uLCBwYXJzZWRQYXJhbXMpO1xuICAgICAgY29uc3Qgc2FuaXRpc2VyID0gbmV3IFZpc2l0U2FuaXRpc2VyKGFjdGl2YXRlZFJvdXRlLCB0aGlzLnJvdXRlciwgdGhpcy5wbGFjZUhpc3RvcnksIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgY29uc3Qgc2FuaXRpc2VkVmlzaXQgPSBhd2FpdCBzYW5pdGlzZXIuc2FuaXRpc2UoaW5pdGlhbFZpc2l0Lm1lcmdlUm91dGVQYXJhbWV0ZXJzKHBhcnNlZFBhcmFtcykpO1xuXG4gICAgICAvLyBTYXZlIHRoZSB2aXNpdCB3aXRoIGFueSB1cGRhdGVkIHBhcmFtZXRlcnMuICBXZSBuZWVkIHRvIHNhdmUgaXQgc28gd2UgcmVtZW1iZXIgYW55IG5vbiByb3V0ZSBwYXJhbWV0ZXJzXG4gICAgICB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uLnN0b3JlVmlzaXQoc2FuaXRpc2VkVmlzaXQpO1xuICAgICAgaWYgKGluaXRpYWxWaXNpdC5oYXNSb3V0aW5nQ2hhbmdlZEZyb20oc2FuaXRpc2VkVmlzaXQpKSB7XG4gICAgICAgIGNvbnN0IHJvdXRlclN0YXRlVXJsVHJlZSA9IHRoaXMudXJsU2VyaWFsaXplci5wYXJzZShzdGF0ZS51cmwpO1xuXG4gICAgICAgIC8vIFJlZ2VuZXJhdGUgdGhlIHVybFxuICAgICAgICBjb25zdCB7IGNvbW1hbmRzIH0gPSB0aGlzLmNyZWF0ZVJlZGlyZWN0Q29tbWFuZHMoc2FuaXRpc2VkVmlzaXQsIFsuLi5yb3V0ZXJTdGF0ZVVybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5LnNlZ21lbnRzXSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIFBsYWNlIEd1YXJkIFJlZGlyZWN0JywgY29tbWFuZHMpO1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcywge1xuICAgICAgICAgIHJlcGxhY2VVcmw6IHRydWUsXG4gICAgICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYGV4cGVjdGVkIGNvbXBvbmVudCB0byBiZSBhbiBpbnN0YW5jZSBvZiBQbGFjZUNvbXBvbmVudCwgZ290ICR7YWN0aXZhdGVkUm91dGUuY29tcG9uZW50fWApO1xuICAgIH1cbiAgfVxuXG5cbiAgcHJpdmF0ZSBjcmVhdGVSZWRpcmVjdENvbW1hbmRzKHNhbml0aXNlZFZpc2l0LCBwYXRoKSB7XG4gICAgLy8gVWdseSwgYnV0IGl0IHdvcmtzIGZvciBub3cuXG4gICAgY29uc3QgbmV3U2VnbWVudHMgPSBzYW5pdGlzZWRWaXNpdC5nZXRVcmxTZWdtZW50cygpO1xuICAgIGNvbnN0IHJlcGxhY2VBdCA9IHBhdGguZmluZEluZGV4KHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoID09PSBuZXdTZWdtZW50c1swXS5wYXRoKTtcbiAgICBjb25zdCBuZXdQYXRoID0gWy4uLnBhdGhdO1xuICAgIG5ld1BhdGguc3BsaWNlKHJlcGxhY2VBdCwgbmV3U2VnbWVudHMubGVuZ3RoLCAuLi5uZXdTZWdtZW50cyk7IC8vIGRvIG5vdCB1c2UgdGhlIHJldHVybiB2YWx1ZSwgaXQncyB0aGUgaXRlbXMgdGhhdCB3ZXJlIHJlbW92ZWQhXG5cbiAgICBjb25zdCBjb21tYW5kcyA9IFtdO1xuICAgIG5ld1BhdGguZm9yRWFjaChzID0+IHtcbiAgICAgIGNvbW1hbmRzLnB1c2gocy5wYXRoKTtcbiAgICAgIGlmIChzLnBhcmFtZXRlck1hcC5rZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29tbWFuZHMucHVzaChzLnBhcmFtZXRlcnMpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB7IG5ld1BhdGgsIGNvbW1hbmRzIH07XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBFbnRlclBsYWNlR3VhcmQge1xuICAvKipcbiAgICogVGhpcyBhIHdvcmsgYXJvdW5kIGZvciB0aGUgZmFjdCB0aGF0IGFuIGFjdGl2YXRlZCByb3V0ZSB3aXRoIG11bHRpcGxlIHNlZ21lbnRzIGRvZXNuJ3RcbiAgICogaW5jbHVkZSB0aGUgc2VnbWVudCBwYXJhbXMgaW4gdGhlIHBhcmFtTWFwIGFzIHdlbGwgYXMgZWFjaCBzZWdtZW50IHJldHVybnMgYW4gZW1wdHlcbiAgICogcGFyYW0gbWFwIGV2ZW4gd2hlbiBgcGFyYW1ldGVyYHMgaGFzIGNvbnRlbnQuXG4gICAqL1xuICBleHBvcnQgY2xhc3MgQ29uc29saWRhdGVkUGFyYW1ldGVyTWFwIGltcGxlbWVudHMgUGFyYW1NYXAge1xuXG4gICAgcHJpdmF0ZSBwYXJhbU1hcHM6IFBhcmFtTWFwW107XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJhbU1hcDogUGFyYW1NYXAsIHVybFNlZ21lbnRzOiBVcmxTZWdtZW50W10pIHtcbiAgICAgIHRoaXMucGFyYW1NYXBzID0gW3BhcmFtTWFwXS5jb25jYXQoXG4gICAgICAgICh1cmxTZWdtZW50cyB8fCBbXSkubWFwKHMgPT4gbmV3IFBhcmFtTWFwQWRhcHRlcihzLnBhcmFtZXRlcnMpKVxuICAgICAgKS5maWx0ZXIobSA9PiAhIW0pOyAvLyB0aGUgYWN0aXZhdGVkIHJvdXRlIHBhcmFtIG1hcCBjYW4gYmUgbnVsbFxuICAgIH1cblxuICAgIGdldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgIGNvbnN0IHBhcmFtTWFwID0gdGhpcy5wYXJhbU1hcHMuZmluZChtID0+IG0uaGFzKG5hbWUpKTtcbiAgICAgIHJldHVybiBwYXJhbU1hcC5nZXQobmFtZSk7XG4gICAgfVxuXG4gICAgZ2V0QWxsKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgIGNvbnN0IHBhcmFtTWFwID0gdGhpcy5wYXJhbU1hcHMuZmluZChtID0+IG0uaGFzKG5hbWUpKTtcbiAgICAgIHJldHVybiBwYXJhbU1hcC5nZXRBbGwobmFtZSk7XG4gICAgfVxuXG4gICAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICEhdGhpcy5wYXJhbU1hcHMuZmluZChtID0+IG0uaGFzKG5hbWUpKTtcbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgZ2V0IGtleXMoKTogc3RyaW5nW10ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyYW1NYXBzLnJlZHVjZSgocmVzdWx0LCBwYXJhbXMpID0+IHJlc3VsdC5jb25jYXQocGFyYW1zLmtleXMpLCBbXSk7XG4gICAgfVxuICB9XG5cbiAgY2xhc3MgUGFyYW1NYXBBZGFwdGVyIGltcGxlbWVudHMgUGFyYW1NYXAge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGFyYW1zOiB7IFtwOiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgIH1cblxuICAgIGdldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmFtc1tuYW1lXTtcbiAgICB9XG5cbiAgICBnZXRBbGwobmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChuYW1lKTtcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICB9XG5cbiAgICBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5rZXlzLmluY2x1ZGVzKG5hbWUpO1xuICAgIH1cblxuICAgIGdldCBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnBhcmFtcyk7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Location } from '@angular/common';
|
|
7
7
|
import { Injectable, Injector } from '@angular/core';
|
|
8
|
-
import { Router } from '@angular/router';
|
|
8
|
+
import { Router, RouterStateSnapshot } from '@angular/router';
|
|
9
|
+
import { Trace } from '@coolon/pectin';
|
|
9
10
|
import { InteractionContext } from '../../../interaction/interaction-context';
|
|
11
|
+
import { PlaceDefinition } from '../../place-definition';
|
|
10
12
|
import { PlaceRouter } from '../../place-router';
|
|
11
13
|
import * as i0 from "@angular/core";
|
|
12
14
|
import * as i1 from "@angular/router";
|
|
@@ -24,17 +26,74 @@ var LeavePlaceGuard = /** @class */ (function () {
|
|
|
24
26
|
/**
|
|
25
27
|
* @private
|
|
26
28
|
* @param {?} nextState
|
|
27
|
-
* @param {?}
|
|
29
|
+
* @param {?} placeDefinition
|
|
28
30
|
* @return {?}
|
|
29
31
|
*/
|
|
30
32
|
LeavePlaceGuard.prototype.isLeavingTheCurrentPlace = /**
|
|
31
33
|
* @private
|
|
32
34
|
* @param {?} nextState
|
|
33
|
-
* @param {?}
|
|
35
|
+
* @param {?} placeDefinition
|
|
34
36
|
* @return {?}
|
|
35
37
|
*/
|
|
36
|
-
function (nextState,
|
|
38
|
+
function (nextState, placeDefinition) {
|
|
37
39
|
// TODO: this will break with child routes... need to examine the router states properly.
|
|
40
|
+
// console.log('canDeactivate', {
|
|
41
|
+
// staticPath: placeDefinitionPath,
|
|
42
|
+
// currentStateUrl: currentState.url,
|
|
43
|
+
// nextStateUrl: nextState.url
|
|
44
|
+
// // alreadyDeclined: this._alreadyAccepted
|
|
45
|
+
// });
|
|
46
|
+
// Example of the above when navigating to a different child route.
|
|
47
|
+
// canDeactivate {staticPath: "/hero-details",
|
|
48
|
+
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-details",
|
|
49
|
+
// nextStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats"
|
|
50
|
+
// }
|
|
51
|
+
// TODO: this will break with child routes... need to examine the router states properly.
|
|
52
|
+
// console.log('canDeactivate', {
|
|
53
|
+
// staticPath: placeDefinitionPath,
|
|
54
|
+
// currentStateUrl: currentState.url,
|
|
55
|
+
// nextStateUrl: nextState.url
|
|
56
|
+
// // alreadyDeclined: this._alreadyAccepted
|
|
57
|
+
// });
|
|
58
|
+
// Example of the above when navigating to a different child route.
|
|
59
|
+
// canDeactivate {staticPath: "/hero-details",
|
|
60
|
+
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-details",
|
|
61
|
+
// nextStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats"
|
|
62
|
+
// }
|
|
63
|
+
// Example clicking on router tab of the parent component (de-activates the parent due to route param changes)
|
|
64
|
+
// canDeactivate {
|
|
65
|
+
// staticPath: "/hero-stats",
|
|
66
|
+
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
67
|
+
// nextStateUrl: "/route-parameters/"
|
|
68
|
+
// }
|
|
69
|
+
// canDeactivate {
|
|
70
|
+
// staticPath: "/route-parameters",
|
|
71
|
+
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
72
|
+
// nextStateUrl: "/route-parameters/"
|
|
73
|
+
// }
|
|
74
|
+
// logger.class.js:54 ParameterSnapshot.sanitise -> {idModel: -1, pv: undefined, pl: Array(0), dv: undefined, dl: Array(0), …}
|
|
75
|
+
// parameter-snapshot.ts:20 {name: "idModel", mine: -1, theirs: null}
|
|
76
|
+
// place-router.ts:28 redirect path (3) ["route-parameters", "-1", {…}]
|
|
77
|
+
// canDeactivate {
|
|
78
|
+
// staticPath: "/hero-stats",
|
|
79
|
+
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
80
|
+
// nextStateUrl: "/route-parameters/-1"
|
|
81
|
+
// }
|
|
82
|
+
// canDeactivate {
|
|
83
|
+
// staticPath: "/route-parameters",
|
|
84
|
+
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
85
|
+
// nextStateUrl: "/route-parameters/-1"
|
|
86
|
+
// }
|
|
87
|
+
// logger.class.js:54 ParameterSnapshot.sanitise -> {idModel: -1, pv: undefined, pl: Array(0), dv: "A", dl: Array(3), …}
|
|
88
|
+
// parameter-snapshot.ts:20 {name: "dv", mine: "A", theirs: undefined}
|
|
89
|
+
// place-router.ts:28 redirect path (3) ["route-parameters", "-1", {…}]
|
|
90
|
+
// canDeactivate {
|
|
91
|
+
// staticPath: "/hero-stats",
|
|
92
|
+
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
93
|
+
// nextStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c"
|
|
94
|
+
// }
|
|
95
|
+
/** @type {?} */
|
|
96
|
+
var placeDefinitionPath = "/" + placeDefinition.path;
|
|
38
97
|
return !nextState.url.startsWith(placeDefinitionPath);
|
|
39
98
|
};
|
|
40
99
|
/**
|
|
@@ -53,11 +112,10 @@ var LeavePlaceGuard = /** @class */ (function () {
|
|
|
53
112
|
*/
|
|
54
113
|
function (component, currentRoute, currentState, nextState) {
|
|
55
114
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
56
|
-
var
|
|
115
|
+
var self_1, canLeave;
|
|
57
116
|
return tslib_1.__generator(this, function (_a) {
|
|
58
117
|
switch (_a.label) {
|
|
59
118
|
case 0:
|
|
60
|
-
placeDefinitionPath = "/" + component.placeDefinition.path;
|
|
61
119
|
if (!this.placeRouter.navigationSession.alreadyAccepted(component)) return [3 /*break*/, 1];
|
|
62
120
|
// We'll get called multiple times if there's any parameter sanitisation so
|
|
63
121
|
// we always return true if we accepted on a previous cycle of the current
|
|
@@ -66,7 +124,7 @@ var LeavePlaceGuard = /** @class */ (function () {
|
|
|
66
124
|
case 1:
|
|
67
125
|
self_1 = this;
|
|
68
126
|
canLeave = true;
|
|
69
|
-
if (!this.isLeavingTheCurrentPlace(nextState,
|
|
127
|
+
if (!this.isLeavingTheCurrentPlace(nextState, component.placeDefinition)) return [3 /*break*/, 4];
|
|
70
128
|
// we check the interaction first, so that components that don't need to check if they're in an
|
|
71
129
|
// interaction during the canDeactivate cycle.
|
|
72
130
|
// TODO: Add tests: show dialog -> hit back -> same route
|
|
@@ -125,6 +183,12 @@ var LeavePlaceGuard = /** @class */ (function () {
|
|
|
125
183
|
{ type: Location }
|
|
126
184
|
]; };
|
|
127
185
|
/** @nocollapse */ LeavePlaceGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LeavePlaceGuard_Factory() { return new LeavePlaceGuard(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i2.PlaceRouter), i0.ɵɵinject(i3.InteractionContext), i0.ɵɵinject(i4.Location)); }, token: LeavePlaceGuard, providedIn: "root" });
|
|
186
|
+
tslib_1.__decorate([
|
|
187
|
+
Trace(),
|
|
188
|
+
tslib_1.__metadata("design:type", Function),
|
|
189
|
+
tslib_1.__metadata("design:paramtypes", [RouterStateSnapshot, PlaceDefinition]),
|
|
190
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
191
|
+
], LeavePlaceGuard.prototype, "isLeavingTheCurrentPlace", null);
|
|
128
192
|
return LeavePlaceGuard;
|
|
129
193
|
}());
|
|
130
194
|
export { LeavePlaceGuard };
|
|
@@ -149,4 +213,4 @@ if (false) {
|
|
|
149
213
|
/** @type {?} */
|
|
150
214
|
LeavePlaceGuard.prototype.angularLocation;
|
|
151
215
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBeUMsTUFBTSxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBRWpEO0lBS0UseUJBQW9CLE1BQWMsRUFDZCxRQUFrQixFQUNsQixXQUF3QixFQUN2QixrQkFBc0MsRUFBVyxlQUF5QjtRQUgzRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN2Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVcsb0JBQWUsR0FBZixlQUFlLENBQVU7SUFDL0YsQ0FBQzs7Ozs7OztJQUVPLGtEQUF3Qjs7Ozs7O0lBQWhDLFVBQWlDLFNBQThCLEVBQUUsbUJBQTJCO1FBQzFGLHlGQUF5RjtRQUN6RixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN4RCxDQUFDOzs7Ozs7OztJQUVLLHVDQUFhOzs7Ozs7O0lBQW5CLFVBQW9CLFNBQXlCLEVBQUUsWUFBb0MsRUFBRSxZQUFpQyxFQUFFLFNBQStCOzs7Ozs7d0JBQy9JLG1CQUFtQixHQUFHLE1BQUksU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFNOzZCQWdENUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQTdELHdCQUE2RDt3QkFDL0QsMkVBQTJFO3dCQUMzRSwwRUFBMEU7d0JBQzFFLHNCQUFzQjt3QkFDdEIsc0JBQU8sSUFBSSxFQUFDOzt3QkFFTixTQUFPLElBQUk7d0JBQ2IsUUFBUSxHQUFHLElBQUk7NkJBRWYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxFQUE3RCx3QkFBNkQ7d0JBQy9ELCtGQUErRjt3QkFDL0YsOENBQThDO3dCQUM5Qyx5REFBeUQ7d0JBQ3pELElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxFQUFFOzRCQUN0QyxRQUFRLEdBQUcsS0FBSyxDQUFDOzRCQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQzs0QkFDakYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3REOzZCQUtHLFFBQVEsRUFBUix3QkFBUTt3QkFFQyxxQkFBTSxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUE7O3dCQUQxQyxzSEFBc0g7d0JBQ3RILFFBQVEsR0FBRyxTQUErQixDQUFDOzs7O3dCQVU3QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsRUFBRTs0QkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7NEJBQ2pGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNyRCxRQUFRLEdBQUcsS0FBSyxDQUFDO3lCQUNsQjs2QkFBTTs0QkFDTCxRQUFRLEdBQUcsSUFBSSxDQUFDO3lCQUNqQjs7O3dCQUdILElBQUksUUFBUSxFQUFFOzRCQUNaLDJFQUEyRTs0QkFDM0UsaUZBQWlGOzRCQUNqRixNQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO3lCQUNwRTs2QkFBTTs0QkFDTCx5RUFBeUU7NEJBQ3pFLDZFQUE2RTs0QkFDN0UsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRTtnQ0FDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2dDQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLENBQUM7NkJBQy9FO3lCQUNGO3dCQUVELHNCQUFPLFFBQVEsRUFBQzs7OztLQUVuQjs7Z0JBM0hGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBUCtDLE1BQU07Z0JBRGpDLFFBQVE7Z0JBSXBCLFdBQVc7Z0JBRlgsa0JBQWtCO2dCQUhsQixRQUFROzs7MEJBQWpCO0NBbUlDLEFBNUhELElBNEhDO1NBekhZLGVBQWU7Ozs7OztJQUVkLGlDQUFzQjs7Ozs7SUFDdEIsbUNBQTBCOzs7OztJQUMxQixzQ0FBZ0M7O0lBQ2hDLDZDQUErQzs7SUFBRSwwQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuRGVhY3RpdmF0ZSwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VSb3V0ZXIgfSBmcm9tICcuLi8uLi9wbGFjZS1yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMZWF2ZVBsYWNlR3VhcmQgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPFBsYWNlQ29tcG9uZW50PiB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyLFxuICAgICAgICAgICAgICByZWFkb25seSBpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCwgcmVhZG9ubHkgYW5ndWxhckxvY2F0aW9uOiBMb2NhdGlvbikge1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xlYXZpbmdUaGVDdXJyZW50UGxhY2UobmV4dFN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBwbGFjZURlZmluaXRpb25QYXRoOiBzdHJpbmcpIHtcbiAgICAvLyBUT0RPOiB0aGlzIHdpbGwgYnJlYWsgd2l0aCBjaGlsZCByb3V0ZXMuLi4gbmVlZCB0byBleGFtaW5lIHRoZSByb3V0ZXIgc3RhdGVzIHByb3Blcmx5LlxuICAgIHJldHVybiAhbmV4dFN0YXRlLnVybC5zdGFydHNXaXRoKHBsYWNlRGVmaW5pdGlvblBhdGgpO1xuICB9XG5cbiAgYXN5bmMgY2FuRGVhY3RpdmF0ZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50Um91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGN1cnJlbnRTdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCwgbmV4dFN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHBsYWNlRGVmaW5pdGlvblBhdGggPSBgLyR7Y29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRofWA7XG4gICAgLy8gY29uc29sZS5sb2coJ2NhbkRlYWN0aXZhdGUnLCB7XG4gICAgLy8gICBzdGF0aWNQYXRoOiBwbGFjZURlZmluaXRpb25QYXRoLFxuICAgIC8vICAgY3VycmVudFN0YXRlVXJsOiBjdXJyZW50U3RhdGUudXJsLFxuICAgIC8vICAgbmV4dFN0YXRlVXJsOiBuZXh0U3RhdGUudXJsXG4gICAgLy8gICAvLyBhbHJlYWR5RGVjbGluZWQ6IHRoaXMuX2FscmVhZHlBY2NlcHRlZFxuICAgIC8vIH0pO1xuICAgIC8vIEV4YW1wbGUgb2YgdGhlIGFib3ZlIHdoZW4gbmF2aWdhdGluZyB0byBhIGRpZmZlcmVudCBjaGlsZCByb3V0ZS5cbiAgICAvLyBjYW5EZWFjdGl2YXRlIHtzdGF0aWNQYXRoOiBcIi9oZXJvLWRldGFpbHNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1kZXRhaWxzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tc3RhdHNcIlxuICAgIC8vIH1cblxuICAgIC8vIEV4YW1wbGUgY2xpY2tpbmcgb24gcm91dGVyIHRhYiBvZiB0aGUgcGFyZW50IGNvbXBvbmVudCAoZGUtYWN0aXZhdGVzIHRoZSBwYXJlbnQgZHVlIHRvIHJvdXRlIHBhcmFtIGNoYW5nZXMpXG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7XG4gICAgLy8gICAgc3RhdGljUGF0aDogXCIvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzL1wiXG4gICAgLy8gfVxuICAgIC8vIGNhbkRlYWN0aXZhdGUge1xuICAgIC8vICAgIHN0YXRpY1BhdGg6IFwiL3JvdXRlLXBhcmFtZXRlcnNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy9cIlxuICAgIC8vIH1cbiAgICAvLyBsb2dnZXIuY2xhc3MuanM6NTQgUGFyYW1ldGVyU25hcHNob3Quc2FuaXRpc2UgLT4ge2lkTW9kZWw6IC0xLCBwdjogdW5kZWZpbmVkLCBwbDogQXJyYXkoMCksIGR2OiB1bmRlZmluZWQsIGRsOiBBcnJheSgwKSzCoOKApn1cbiAgICAvLyBwYXJhbWV0ZXItc25hcHNob3QudHM6MjAge25hbWU6IFwiaWRNb2RlbFwiLCBtaW5lOiAtMSwgdGhlaXJzOiBudWxsfVxuICAgIC8vIHBsYWNlLXJvdXRlci50czoyOCByZWRpcmVjdCBwYXRoICgzKcKgW1wicm91dGUtcGFyYW1ldGVyc1wiLCBcIi0xXCIsIHvigKZ9XVxuICAgIC8vIGNhbkRlYWN0aXZhdGUge1xuICAgIC8vICAgIHN0YXRpY1BhdGg6IFwiL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMVwiXG4gICAgLy8gfVxuICAgIC8vIGNhbkRlYWN0aXZhdGUge1xuICAgIC8vICAgIHN0YXRpY1BhdGg6IFwiL3JvdXRlLXBhcmFtZXRlcnNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMVwiXG4gICAgLy8gfVxuICAgIC8vIGxvZ2dlci5jbGFzcy5qczo1NCBQYXJhbWV0ZXJTbmFwc2hvdC5zYW5pdGlzZSAtPiB7aWRNb2RlbDogLTEsIHB2OiB1bmRlZmluZWQsIHBsOiBBcnJheSgwKSwgZHY6IFwiQVwiLCBkbDogQXJyYXkoMykswqDigKZ9XG4gICAgLy8gcGFyYW1ldGVyLXNuYXBzaG90LnRzOjIwIHtuYW1lOiBcImR2XCIsIG1pbmU6IFwiQVwiLCB0aGVpcnM6IHVuZGVmaW5lZH1cbiAgICAvLyBwbGFjZS1yb3V0ZXIudHM6MjggcmVkaXJlY3QgcGF0aCAoMynCoFtcInJvdXRlLXBhcmFtZXRlcnNcIiwgXCItMVwiLCB74oCmfV1cbiAgICAvLyBjYW5EZWFjdGl2YXRlIHtcbiAgICAvLyAgICBzdGF0aWNQYXRoOiBcIi9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgY3VycmVudFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBuZXh0U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGNcIlxuICAgIC8vIH1cblxuXG4gICAgLy8gVE9ETzogQWRkIHRlc3RzXG4gICAgaWYgKHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24uYWxyZWFkeUFjY2VwdGVkKGNvbXBvbmVudCkpIHtcbiAgICAgIC8vIFdlJ2xsIGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUncyBhbnkgcGFyYW1ldGVyIHNhbml0aXNhdGlvbiBzb1xuICAgICAgLy8gd2UgYWx3YXlzIHJldHVybiB0cnVlIGlmIHdlIGFjY2VwdGVkIG9uIGEgcHJldmlvdXMgY3ljbGUgb2YgdGhlIGN1cnJlbnRcbiAgICAgIC8vIG5hdmlnYXRpb24gc2Vzc2lvbi5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAgIGxldCBjYW5MZWF2ZSA9IHRydWU7XG5cbiAgICAgIGlmICh0aGlzLmlzTGVhdmluZ1RoZUN1cnJlbnRQbGFjZShuZXh0U3RhdGUsIHBsYWNlRGVmaW5pdGlvblBhdGgpKSB7XG4gICAgICAgIC8vIHdlIGNoZWNrIHRoZSBpbnRlcmFjdGlvbiBmaXJzdCwgc28gdGhhdCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgbmVlZCB0byBjaGVjayBpZiB0aGV5J3JlIGluIGFuXG4gICAgICAgIC8vIGludGVyYWN0aW9uIGR1cmluZyB0aGUgY2FuRGVhY3RpdmF0ZSBjeWNsZS5cbiAgICAgICAgLy8gVE9ETzogQWRkIHRlc3RzOiBzaG93IGRpYWxvZyAtPiBoaXQgYmFjayAtPiBzYW1lIHJvdXRlXG4gICAgICAgIGlmICh0aGlzLmludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgY2FuTGVhdmUgPSBmYWxzZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnY2FuY2VsbGluZycsIHsgYWN0aXZpdHk6IHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmN1cnJlbnRBY3Rpdml0eSB9KTtcbiAgICAgICAgICB0aGlzLmludGVyYWN0aW9uQ29udGV4dC5jdXJyZW50QWN0aXZpdHkuY2FuY2VsKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vIGludGVyYWN0aW9uIGluIHByb2dyZXNzLCBzbyBhc2sgdGhlIGNvbXBvbmVudCAuXG4gICAgICAgIC8vIFRoaXMgbWF5IHN0YXJ0IGFuIGludGVyYWN0aW9uLCBoZW5jZSBjaGVja2luZyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBhYm92ZS4gSS5lLiBpZiB0aGUgcGxhY2UgcG9wcyB1cCB0aGUgZGlhbG9nLCBhbmRcbiAgICAgICAgLy8gdGhlIHVzZXIgY2xpY2tzIGJhY2sgYWdhaW4sIHdlJ2xsIHJlLWVudGVyIGhlcmUgYW5kIGdvIGJhbmcgd2hlbiB0aGUgY29tcG9uZW50IHRyaWVzIHRvIG9wZW4gYW5vdGhlclxuICAgICAgICAvLyBkaWFsb2cuXG4gICAgICAgIGlmIChjYW5MZWF2ZSkge1xuICAgICAgICAgIC8vIFRPRE86IEFkZCB0ZXN0czogaGl0IGJhY2sgLT4gY29uZmlybSBsZWF2ZSBkaWFsb2cgLT4gaGl0IGJhY2sgLT4gY2xvc2UgZGlhbG9nIC0+ICBoaXQgYmFjayAtPiBjb25maXJtIGxlYXZlIGRpYWxvZy5cbiAgICAgICAgICBjYW5MZWF2ZSA9IGF3YWl0IGNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC8vIFdlIGFsc28gYmxvY2sgYmFjayBidXR0b24gcGFyYW1ldGVyIGNoYW5nZXMgd2hpbGUgdGhlIGRpYWxvZyBpcyBvcGVuLlxuICAgICAgICAvLyBOT1RFOiBOb3cgdGhhdCBJJ20gY2F0Y2hpbmcgcGFyYW1ldGVyIGNoYW5nZXMgSSBjb3VsZCBwb3NzaWJseSByZXRyeSB1c2luZyBhIGZyYWdtZW50IG9yXG4gICAgICAgIC8vIHF1ZXJ5IHBhcmFtZXRlciB0byB0cmFjayB0aGUgZGlhbG9nIGJlaW5nIG9wZW4uICBQcmV2aW91c2x5IEkgd2FzIGp1c3QgY2hlY2tpbmcgdGhpcyBvblxuICAgICAgICAvLyBwYXRoIGNoYW5nZXMuLi4gaWYgdGhhdCB3b3JrZWQgaXQnZCBmaXggdGhlIGNhc2Ugd2hlcmUgdGhlIGJhY2sgYnV0dG9uIGJyZWFrcyB3aXRoIGFuIGFjdGl2aXR5XG4gICAgICAgIC8vIG9wZW4gb24gdGhlIGZpcnN0IHBhZ2U6IGh0dHBzOi8vY29vbG9uLmF0bGFzc2lhbi5uZXQvYnJvd3NlL0FVUC0zM1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnY2FuY2VsbGluZycsIHsgYWN0aXZpdHk6IHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmN1cnJlbnRBY3Rpdml0eSB9KTtcbiAgICAgICAgICB0aGlzLmludGVyYWN0aW9uQ29udGV4dC5jdXJyZW50QWN0aXZpdHkuY2FuY2VsKG51bGwpO1xuICAgICAgICAgIGNhbkxlYXZlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2FuTGVhdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjYW5MZWF2ZSkge1xuICAgICAgICAvLyBXZSdsbCBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlJ3MgYW55IHBhcmFtZXRlciBzYW5pdGlzYXRpb24gc29cbiAgICAgICAgLy8gd2UgcmVtZW1iZXIgdGhlIGFjY2VwdGFuY2UgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY3VycmVudCBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgICAgIHNlbGYucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24ucmVtZW1iZXJBY2NlcHRhbmNlT2YoY29tcG9uZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdXJsIHdoZW4gYSBndWFyZCBjYW5jZWxzIHRoZSBiYWNrIGJ1dHRvbi5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNTg2I2lzc3VlY29tbWVudC00MzI3OTU3MjBcbiAgICAgICAgaWYgKHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24uaXNQb3BTdGF0ZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWxsZWQgZHVyaW5nIHBvcHN0YXRlJyk7XG4gICAgICAgICAgdGhpcy5hbmd1bGFyTG9jYXRpb24uZ28odGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5wb3BTdGF0ZVJldHVyblVybCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNhbkxlYXZlO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBeUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQUVqRDtJQUtFLHlCQUFvQixNQUFjLEVBQ2QsUUFBa0IsRUFDbEIsV0FBd0IsRUFDdkIsa0JBQXNDLEVBQ3RDLGVBQXlCO1FBSjFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3ZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQVU7SUFDOUMsQ0FBQzs7Ozs7OztJQUdPLGtEQUF3Qjs7Ozs7O0lBQWhDLFVBQWlDLFNBQThCLEVBQUUsZUFBZ0M7UUFDL0YseUZBQXlGO1FBQ3pGLGlDQUFpQztRQUNqQyxxQ0FBcUM7UUFDckMsdUNBQXVDO1FBQ3ZDLGdDQUFnQztRQUNoQyw4Q0FBOEM7UUFDOUMsTUFBTTtRQUNOLG1FQUFtRTtRQUNuRSw4Q0FBOEM7UUFDOUMseUZB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Ozs7OztJQUMxQixzQ0FBZ0M7O0lBQ2hDLDZDQUErQzs7SUFDL0MsMENBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkRlYWN0aXZhdGUsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBQbGFjZVJvdXRlciB9IGZyb20gJy4uLy4uL3BsYWNlLXJvdXRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExlYXZlUGxhY2VHdWFyZCBpbXBsZW1lbnRzIENhbkRlYWN0aXZhdGU8UGxhY2VDb21wb25lbnQ+IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXIsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0LFxuICAgICAgICAgICAgICByZWFkb25seSBhbmd1bGFyTG9jYXRpb246IExvY2F0aW9uKSB7XG4gIH1cblxuICBAVHJhY2UoKVxuICBwcml2YXRlIGlzTGVhdmluZ1RoZUN1cnJlbnRQbGFjZShuZXh0U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgLy8gVE9ETzogdGhpcyB3aWxsIGJyZWFrIHdpdGggY2hpbGQgcm91dGVzLi4uIG5lZWQgdG8gZXhhbWluZSB0aGUgcm91dGVyIHN0YXRlcyBwcm9wZXJseS5cbiAgICAvLyBjb25zb2xlLmxvZygnY2FuRGVhY3RpdmF0ZScsIHtcbiAgICAvLyAgIHN0YXRpY1BhdGg6IHBsYWNlRGVmaW5pdGlvblBhdGgsXG4gICAgLy8gICBjdXJyZW50U3RhdGVVcmw6IGN1cnJlbnRTdGF0ZS51cmwsXG4gICAgLy8gICBuZXh0U3RhdGVVcmw6IG5leHRTdGF0ZS51cmxcbiAgICAvLyAgIC8vIGFscmVhZHlEZWNsaW5lZDogdGhpcy5fYWxyZWFkeUFjY2VwdGVkXG4gICAgLy8gfSk7XG4gICAgLy8gRXhhbXBsZSBvZiB0aGUgYWJvdmUgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgZGlmZmVyZW50IGNoaWxkIHJvdXRlLlxuICAgIC8vIGNhbkRlYWN0aXZhdGUge3N0YXRpY1BhdGg6IFwiL2hlcm8tZGV0YWlsc1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLWRldGFpbHNcIixcbiAgICAvLyAgICBuZXh0U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiXG4gICAgLy8gfVxuXG4gICAgLy8gRXhhbXBsZSBjbGlja2luZyBvbiByb3V0ZXIgdGFiIG9mIHRoZSBwYXJlbnQgY29tcG9uZW50IChkZS1hY3RpdmF0ZXMgdGhlIHBhcmVudCBkdWUgdG8gcm91dGUgcGFyYW0gY2hhbmdlcylcbiAgICAvLyBjYW5EZWFjdGl2YXRlIHtcbiAgICAvLyAgICBzdGF0aWNQYXRoOiBcIi9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgY3VycmVudFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBuZXh0U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvXCJcbiAgICAvLyB9XG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7XG4gICAgLy8gICAgc3RhdGljUGF0aDogXCIvcm91dGUtcGFyYW1ldGVyc1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzL1wiXG4gICAgLy8gfVxuICAgIC8vIGxvZ2dlci5jbGFzcy5qczo1NCBQYXJhbWV0ZXJTbmFwc2hvdC5zYW5pdGlzZSAtPiB7aWRNb2RlbDogLTEsIHB2OiB1bmRlZmluZWQsIHBsOiBBcnJheSgwKSwgZHY6IHVuZGVmaW5lZCwgZGw6IEFycmF5KDApLMKg4oCmfVxuICAgIC8vIHBhcmFtZXRlci1zbmFwc2hvdC50czoyMCB7bmFtZTogXCJpZE1vZGVsXCIsIG1pbmU6IC0xLCB0aGVpcnM6IG51bGx9XG4gICAgLy8gcGxhY2Utcm91dGVyLnRzOjI4IHJlZGlyZWN0IHBhdGggKDMpwqBbXCJyb3V0ZS1wYXJhbWV0ZXJzXCIsIFwiLTFcIiwge+KApn1dXG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7XG4gICAgLy8gICAgc3RhdGljUGF0aDogXCIvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xXCJcbiAgICAvLyB9XG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7XG4gICAgLy8gICAgc3RhdGljUGF0aDogXCIvcm91dGUtcGFyYW1ldGVyc1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xXCJcbiAgICAvLyB9XG4gICAgLy8gbG9nZ2VyLmNsYXNzLmpzOjU0IFBhcmFtZXRlclNuYXBzaG90LnNhbml0aXNlIC0+IHtpZE1vZGVsOiAtMSwgcHY6IHVuZGVmaW5lZCwgcGw6IEFycmF5KDApLCBkdjogXCJBXCIsIGRsOiBBcnJheSgzKSzCoOKApn1cbiAgICAvLyBwYXJhbWV0ZXItc25hcHNob3QudHM6MjAge25hbWU6IFwiZHZcIiwgbWluZTogXCJBXCIsIHRoZWlyczogdW5kZWZpbmVkfVxuICAgIC8vIHBsYWNlLXJvdXRlci50czoyOCByZWRpcmVjdCBwYXRoICgzKcKgW1wicm91dGUtcGFyYW1ldGVyc1wiLCBcIi0xXCIsIHvigKZ9XVxuICAgIC8vIGNhbkRlYWN0aXZhdGUge1xuICAgIC8vICAgIHN0YXRpY1BhdGg6IFwiL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsY1wiXG4gICAgLy8gfVxuICAgIGNvbnN0IHBsYWNlRGVmaW5pdGlvblBhdGggPSBgLyR7cGxhY2VEZWZpbml0aW9uLnBhdGh9YDtcbiAgICByZXR1cm4gIW5leHRTdGF0ZS51cmwuc3RhcnRzV2l0aChwbGFjZURlZmluaXRpb25QYXRoKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcblxuICAgIC8vIFRPRE86IEFkZCB0ZXN0c1xuICAgIGlmICh0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uLmFscmVhZHlBY2NlcHRlZChjb21wb25lbnQpKSB7XG4gICAgICAvLyBXZSdsbCBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlJ3MgYW55IHBhcmFtZXRlciBzYW5pdGlzYXRpb24gc29cbiAgICAgIC8vIHdlIGFsd2F5cyByZXR1cm4gdHJ1ZSBpZiB3ZSBhY2NlcHRlZCBvbiBhIHByZXZpb3VzIGN5Y2xlIG9mIHRoZSBjdXJyZW50XG4gICAgICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICBsZXQgY2FuTGVhdmUgPSB0cnVlO1xuXG4gICAgICBpZiAodGhpcy5pc0xlYXZpbmdUaGVDdXJyZW50UGxhY2UobmV4dFN0YXRlLCBjb21wb25lbnQucGxhY2VEZWZpbml0aW9uKSkge1xuICAgICAgICAvLyB3ZSBjaGVjayB0aGUgaW50ZXJhY3Rpb24gZmlyc3QsIHNvIHRoYXQgY29tcG9uZW50cyB0aGF0IGRvbid0IG5lZWQgdG8gY2hlY2sgaWYgdGhleSdyZSBpbiBhblxuICAgICAgICAvLyBpbnRlcmFjdGlvbiBkdXJpbmcgdGhlIGNhbkRlYWN0aXZhdGUgY3ljbGUuXG4gICAgICAgIC8vIFRPRE86IEFkZCB0ZXN0czogc2hvdyBkaWFsb2cgLT4gaGl0IGJhY2sgLT4gc2FtZSByb3V0ZVxuICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKSkge1xuICAgICAgICAgIGNhbkxlYXZlID0gZmFsc2U7XG4gICAgICAgICAgY29uc29sZS5sb2coJ2NhbmNlbGxpbmcnLCB7IGFjdGl2aXR5OiB0aGlzLmludGVyYWN0aW9uQ29udGV4dC5jdXJyZW50QWN0aXZpdHkgfSk7XG4gICAgICAgICAgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuY3VycmVudEFjdGl2aXR5LmNhbmNlbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBObyBpbnRlcmFjdGlvbiBpbiBwcm9ncmVzcywgc28gYXNrIHRoZSBjb21wb25lbnQgLlxuICAgICAgICAvLyBUaGlzIG1heSBzdGFydCBhbiBpbnRlcmFjdGlvbiwgaGVuY2UgY2hlY2tpbmcgdGhlIGludGVyYWN0aW9uIGNvbnRleHQgYWJvdmUuIEkuZS4gaWYgdGhlIHBsYWNlIHBvcHMgdXAgdGhlIGRpYWxvZywgYW5kXG4gICAgICAgIC8vIHRoZSB1c2VyIGNsaWNrcyBiYWNrIGFnYWluLCB3ZSdsbCByZS1lbnRlciBoZXJlIGFuZCBnbyBiYW5nIHdoZW4gdGhlIGNvbXBvbmVudCB0cmllcyB0byBvcGVuIGFub3RoZXJcbiAgICAgICAgLy8gZGlhbG9nLlxuICAgICAgICBpZiAoY2FuTGVhdmUpIHtcbiAgICAgICAgICAvLyBUT0RPOiBBZGQgdGVzdHM6IGhpdCBiYWNrIC0+IGNvbmZpcm0gbGVhdmUgZGlhbG9nIC0+IGhpdCBiYWNrIC0+IGNsb3NlIGRpYWxvZyAtPiAgaGl0IGJhY2sgLT4gY29uZmlybSBsZWF2ZSBkaWFsb2cuXG4gICAgICAgICAgY2FuTGVhdmUgPSBhd2FpdCBjb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2UgYWxzbyBibG9jayBiYWNrIGJ1dHRvbiBwYXJhbWV0ZXIgY2hhbmdlcyB3aGlsZSB0aGUgZGlhbG9nIGlzIG9wZW4uXG4gICAgICAgIC8vIE5PVEU6IE5vdyB0aGF0IEknbSBjYXRjaGluZyBwYXJhbWV0ZXIgY2hhbmdlcyBJIGNvdWxkIHBvc3NpYmx5IHJldHJ5IHVzaW5nIGEgZnJhZ21lbnQgb3JcbiAgICAgICAgLy8gcXVlcnkgcGFyYW1ldGVyIHRvIHRyYWNrIHRoZSBkaWFsb2cgYmVpbmcgb3Blbi4gIFByZXZpb3VzbHkgSSB3YXMganVzdCBjaGVja2luZyB0aGlzIG9uXG4gICAgICAgIC8vIHBhdGggY2hhbmdlcy4uLiBpZiB0aGF0IHdvcmtlZCBpdCdkIGZpeCB0aGUgY2FzZSB3aGVyZSB0aGUgYmFjayBidXR0b24gYnJlYWtzIHdpdGggYW4gYWN0aXZpdHlcbiAgICAgICAgLy8gb3BlbiBvbiB0aGUgZmlyc3QgcGFnZTogaHR0cHM6Ly9jb29sb24uYXRsYXNzaWFuLm5ldC9icm93c2UvQVVQLTMzXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWxsaW5nJywgeyBhY3Rpdml0eTogdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuY3VycmVudEFjdGl2aXR5IH0pO1xuICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmN1cnJlbnRBY3Rpdml0eS5jYW5jZWwobnVsbCk7XG4gICAgICAgICAgY2FuTGVhdmUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjYW5MZWF2ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNhbkxlYXZlKSB7XG4gICAgICAgIC8vIFdlJ2xsIGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUncyBhbnkgcGFyYW1ldGVyIHNhbml0aXNhdGlvbiBzb1xuICAgICAgICAvLyB3ZSByZW1lbWJlciB0aGUgYWNjZXB0YW5jZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjdXJyZW50IG5hdmlnYXRpb24gc2Vzc2lvbi5cbiAgICAgICAgc2VsZi5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5yZW1lbWJlckFjY2VwdGFuY2VPZihjb21wb25lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQW5ndWxhciBkb2Vzbid0IHByZXNlcnZlIHRoZSB1cmwgd2hlbiBhIGd1YXJkIGNhbmNlbHMgdGhlIGJhY2sgYnV0dG9uLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTM1ODYjaXNzdWVjb21tZW50LTQzMjc5NTcyMFxuICAgICAgICBpZiAodGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5pc1BvcFN0YXRlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ2NhbmNlbGxlZCBkdXJpbmcgcG9wc3RhdGUnKTtcbiAgICAgICAgICB0aGlzLmFuZ3VsYXJMb2NhdGlvbi5nbyh0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uLnBvcFN0YXRlUmV0dXJuVXJsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2FuTGVhdmU7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/esm5/lib/place/visit.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
|
+
import { UrlSegment } from '@angular/router';
|
|
6
7
|
import * as _ from 'lodash';
|
|
7
8
|
/**
|
|
8
9
|
* @record
|
|
@@ -159,6 +160,17 @@ var Visit = /** @class */ (function () {
|
|
|
159
160
|
var sameNonRouteParameters = _.isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
|
|
160
161
|
return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
|
|
161
162
|
};
|
|
163
|
+
/**
|
|
164
|
+
* @return {?}
|
|
165
|
+
*/
|
|
166
|
+
Visit.prototype.getUrlSegments = /**
|
|
167
|
+
* @return {?}
|
|
168
|
+
*/
|
|
169
|
+
function () {
|
|
170
|
+
return this.placeDefinition.hasRouteId() ?
|
|
171
|
+
[new UrlSegment(this.placeDefinition.path, {}), new UrlSegment(this.placeDefinition.getFormattedRouteId(this), this.placeDefinition.getFormattedRouteParameters(this))] :
|
|
172
|
+
[new UrlSegment(this.placeDefinition.path, this.placeDefinition.getFormattedRouteParameters(this))];
|
|
173
|
+
};
|
|
162
174
|
return Visit;
|
|
163
175
|
}());
|
|
164
176
|
export { Visit };
|
|
@@ -171,4 +183,4 @@ if (false) {
|
|
|
171
183
|
*/
|
|
172
184
|
Visit.prototype.visitParameters;
|
|
173
185
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvdmlzaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7Ozs7QUFJNUIscUJBRUM7QUFHRDtJQUVFLGVBQXFCLGVBQWdDLEVBQW1CLGVBQTRCO1FBQTVCLGdDQUFBLEVBQUEsb0JBQTRCO1FBQS9FLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFtQixvQkFBZSxHQUFmLGVBQWUsQ0FBYTtJQUNwRyxDQUFDO0lBRUQsV0FBVzs7Ozs7SUFDWCwwQkFBVTs7Ozs7SUFBVjtRQUNFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFdBQVc7Ozs7O0lBQ1gsMEJBQVU7Ozs7O0lBQVY7UUFDRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7O09BS0c7Ozs7Ozs7O0lBQ0gsNEJBQVk7Ozs7Ozs7SUFBWixVQUFhLGFBQXFCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVzs7Ozs7O0lBQ1gsNEJBQVk7Ozs7OztJQUFaLFVBQWEsYUFBcUI7UUFDaEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7Ozs7OztJQUVELHVCQUFPOzs7Ozs7SUFBUCxVQUFXLFNBQXNDLEVBQUUsS0FBUTs7UUFDekQsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENB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YXIvcm91dGVyJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBsYWNlRGVmaW5pdGlvbiB9IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5cbmludGVyZmFjZSBQYXJhbXMge1xuICBbcDogc3RyaW5nXTogYW55XG59XG5cblxuZXhwb3J0IGNsYXNzIFZpc2l0IHtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwbGFjZURlZmluaXRpb246IFBsYWNlRGVmaW5pdGlvbiwgcHJpdmF0ZSByZWFkb25seSB2aXNpdFBhcmFtZXRlcnM6IFBhcmFtcyA9IHt9KSB7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXRSb3V0ZUlkKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucGxhY2VEZWZpbml0aW9uLmdldFJvdXRlSWRGcm9tKHRoaXMpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgaGFzUm91dGVJZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5nZXRSb3V0ZUlkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBwbGFjZSBwYXJhbWV0ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuICBUaGUgcGFyYW1ldGVyXG4gICAqIG5hbWUgaXMgdGFrZW4gZnJvbSB0aGUgYGFzYCBvcHRpb24sIGUuZy4ge2FzOiAnYUN1c3RvbU5hbWUnfSBvdGhlcndpc2UgaXQgaXMgdGhlXG4gICAqIHNhbWUgYXMgdGhlIHRoZSBWYWx1ZU1vZGVsIHByb3BlcnR5IG5hbWUuXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJOYW1lIHRoZSBmaWVsZCBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBtb2RlbCBvciB0aGUgYGFzYCBvcHRpb24gaWYgc3BlY2lmaWVkLlxuICAgKi9cbiAgZ2V0UGFyYW1ldGVyKHBhcmFtZXRlck5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaXRQYXJhbWV0ZXJzW3BhcmFtZXRlck5hbWVdO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgaGFzUGFyYW1ldGVyKHBhcmFtZXRlck5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnZpc2l0UGFyYW1ldGVycykuaW5jbHVkZXMocGFyYW1ldGVyTmFtZSk7XG4gIH1cblxuICByZXBsYWNlPFM+KHBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnksIFM+LCB2YWx1ZTogUyk6IFZpc2l0IHtcbiAgICByZXR1cm4gbmV3IFZpc2l0KHRoaXMucGxhY2VEZWZpbml0aW9uLCB7IC4uLnRoaXMudmlzaXRQYXJhbWV0ZXJzLCBbcGFyYW1ldGVyLm5hbWVdOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIG1lcmdlUm91dGVQYXJhbWV0ZXJzPFM+KHJvdXRlUGFyYW1zOiB7IFtwOiBzdHJpbmddOiBhbnkgfSk6IFZpc2l0IHtcbiAgICAvLyB0b2RvOiB3aGl0ZWxpc3QgcGFyYW1ldGVycy5cbiAgICBjb25zdCByb3V0ZVBhcmFtZXRlcktleXMgPSBPYmplY3Qua2V5cyhyb3V0ZVBhcmFtcyk7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgdGhpcy5wbGFjZURlZmluaXRpb24uZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKCkuZm9yRWFjaChkZWYgPT4ge1xuICAgICAgaWYgKGRlZi5pc1JvdXRlSWQgfHwgZGVmLmlzUm91dGVQYXJhbWV0ZXIpIHtcbiAgICAgICAgaWYgKHJvdXRlUGFyYW1ldGVyS2V5cy5pbmNsdWRlcyhkZWYubmFtZSkpIHtcbiAgICAgICAgICBwYXJhbXNbZGVmLm5hbWVdID0gcm91dGVQYXJhbXNbZGVmLm5hbWVdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb3B5IG5vbiByb3V0ZSBwYXJhbXMgYXMgaXMsIGJ1dCBvbmx5IGlmIHRoZXkgYWxyZWFkeSBleGlzdCBvdGhlcndpc2Ugd2UnbGwgaW5qZWN0IG5pbCB2YWx1ZXMgYW5kIGJyZWFrIHRoZVxuICAgICAgICAvLyBkZWZhdWx0cyBhbmQgcmVtZW1iZXIgc2FuaXRpc2F0aW9uIHByb2Nlc3MuXG4gICAgICAgIGlmICh0aGlzLmhhc1BhcmFtZXRlcihkZWYubmFtZSkpIHtcbiAgICAgICAgICBwYXJhbXNbZGVmLm5hbWVdID0gdGhpcy5nZXRQYXJhbWV0ZXIoZGVmLm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBWaXNpdCh0aGlzLnBsYWNlRGVmaW5pdGlvbiwgcGFyYW1zKTtcbiAgfVxuXG4gIGhhc1JvdXRpbmdDaGFuZ2VkRnJvbShvdGhlcjogVmlzaXQpOiBib29sZWFuIHtcbiAgICBjb25zdCBzYW1lUGxhY2UgPSBvdGhlci5wbGFjZURlZmluaXRpb24gPT09IHRoaXMucGxhY2VEZWZpbml0aW9uO1xuICAgIGNvbnN0IHNhbWVSb3V0ZVBhcmFtZXRlcnMgPSBfLmlzRXF1YWwoXG4gICAgICB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModGhpcywgdHJ1ZSksXG4gICAgICB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnMob3RoZXIsIHRydWUpXG4gICAgKTtcbiAgICByZXR1cm4gIXNhbWVQbGFjZSB8fCAhc2FtZVJvdXRlUGFyYW1ldGVycztcbiAgfVxuXG4gIGhhc0NoYW5nZWRGcm9tKG90aGVyOiBWaXNpdCkge1xuICAgIGNvbnN0IHNhbWVOb25Sb3V0ZVBhcmFtZXRlcnMgPSBfLmlzRXF1YWwoXG4gICAgICB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXROb25Sb3V0ZVBhcmFtZXRlcnModGhpcyksXG4gICAgICB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXROb25Sb3V0ZVBhcmFtZXRlcnMob3RoZXIpXG4gICAgKTtcbiAgICByZXR1cm4gIXNhbWVOb25Sb3V0ZVBhcmFtZXRlcnMgfHwgdGhpcy5oYXNSb3V0aW5nQ2hhbmdlZEZyb20ob3RoZXIpO1xuICB9XG5cbiAgZ2V0VXJsU2VnbWVudHMoKTogVXJsU2VnbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZURlZmluaXRpb24uaGFzUm91dGVJZCgpID9cbiAgICAgIFtuZXcgVXJsU2VnbWVudCh0aGlzLnBsYWNlRGVmaW5pdGlvbi5wYXRoLCB7fSksIG5ldyBVcmxTZWdtZW50KHRoaXMucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlSWQodGhpcyksIHRoaXMucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh0aGlzKSldIDpcbiAgICAgIFtuZXcgVXJsU2VnbWVudCh0aGlzLnBsYWNlRGVmaW5pdGlvbi5wYXRoLCB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModGhpcykpXTtcbiAgfVxufVxuIl19
|
package/esm5/public_api.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export { AngularUiPowerupsModule } from './lib/angular-ui-powerups.module';
|
|
6
6
|
export { slideDownAndUpAnimation } from './lib/animations';
|
|
7
|
-
export { DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, NoopComponent, Bounds, Dimension, Point } from './lib/components';
|
|
8
|
-
export { CommandDirective, FocusBindingDirective } from './lib/directives';
|
|
7
|
+
export { ComponentsModule, DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, NoopComponent, Bounds, Dimension, Point } from './lib/components';
|
|
8
|
+
export { CommandDirective, DirectivesModule, FocusBindingDirective } from './lib/directives';
|
|
9
9
|
export { AbstractActivity, ACTIVITY_DATA, Activity, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmThenDialogComponent, ConfirmationDialogComponent, InteractionOutletComponent, InteractionGuard, DIALOG_INTERACTION_SERVICE_DEFAULTS, DialogInteractionService } from './lib/interaction';
|
|
10
|
-
export { NavigationSession, DEFINITION_META_DATA_KEY, ROUTE_PARAMETER_LIST_KEY, PlaceComponent, PlaceDefinition, PlaceHistory, PlaceRouter, Place, PlaceModule, Visit, AbstractPlaceNavigationComponent, BusyOverlayComponent, EmptyStateComponent, ListPlaceNavComponent, PlaceOutletComponent, leftRightPlaceAnimation, LEFT_RIGHT_PLACE_ANIMATION, TabbedPlaceNavigationComponent, Formatter, RouteId, VisitParameter, VisitParameterList, ParameterDefinition, VisitSanitiser,
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
export { NavigationSession, DEFINITION_META_DATA_KEY, ROUTE_PARAMETER_LIST_KEY, PlaceComponent, PlaceDefinition, PlaceHistory, PlaceRouter, Place, PlaceModule, Visit, AbstractPlaceNavigationComponent, BusyOverlayComponent, EmptyStateComponent, ListPlaceNavComponent, PlaceOutletComponent, leftRightPlaceAnimation, LEFT_RIGHT_PLACE_ANIMATION, TabbedPlaceNavigationComponent, Formatter, RouteId, VisitParameter, VisitParameterList, ParameterDefinition, VisitSanitiser, EnterPlaceGuard, LeavePlaceGuard } from './lib/place';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHdDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHVPQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDBFQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGtWQUFjLG1CQUFtQixDQUFDO0FBQ2xDLDJmQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdWktcG93ZXJ1cHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsYWNlJztcbiJdfQ==
|