@coolon/angular-ui-powerups 0.0.66 → 0.0.68
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 +2207 -1737
- 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 +24 -22
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +24 -22
- package/esm2015/index.js +2 -2
- package/esm2015/lib/angular-ui-powerups.module.js +6 -3
- package/esm2015/lib/components/index.js +2 -1
- package/esm2015/lib/components/noop/noop.component.js +19 -0
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +2 -2
- package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +2 -2
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -2
- package/esm2015/lib/interaction/components/interaction-outlet/interaction-outlet.component.js +19 -0
- package/esm2015/lib/interaction/guards/interaction-guard.service.js +85 -0
- package/esm2015/lib/interaction/index.js +3 -2
- package/esm2015/lib/interaction/interaction.module.js +8 -3
- package/esm2015/lib/interaction/services/dialog-interaction.service.js +30 -5
- package/esm2015/lib/place/components/abstract-place-navigation.component.js +5 -5
- package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +2 -2
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +60 -66
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +2 -2
- package/esm2015/lib/place/index.js +9 -8
- package/esm2015/lib/place/navigation-session.js +147 -0
- package/esm2015/lib/place/place-component.js +18 -14
- package/esm2015/lib/place/place-definition.js +197 -5
- package/esm2015/lib/place/place-history.js +3 -2
- package/esm2015/lib/place/place-router.js +186 -89
- package/esm2015/lib/place/route/formatter.js +63 -0
- package/esm2015/lib/place/route/guards/leave-place.guard.js +193 -0
- package/esm2015/lib/place/route/guards/place-route.guard.js +243 -0
- package/esm2015/lib/place/route/parameter-decorators.js +35 -18
- package/esm2015/lib/place/route/parameter-definition.class.js +123 -67
- package/esm2015/lib/place/route/parameter-sanitiser.js +4 -3
- package/esm2015/lib/place/route/parameter-snapshot.js +11 -388
- package/esm2015/lib/place/route/visit-sanitiser.js +88 -0
- package/esm2015/lib/place/visit.js +107 -8
- package/esm2015/public_api.js +4 -4
- package/esm5/coolon-angular-ui-powerups.js +24 -22
- package/esm5/index.js +2 -2
- package/esm5/lib/angular-ui-powerups.module.js +6 -3
- package/esm5/lib/components/index.js +2 -1
- package/esm5/lib/components/noop/noop.component.js +21 -0
- package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +2 -2
- package/esm5/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +2 -2
- package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -2
- package/esm5/lib/interaction/components/interaction-outlet/interaction-outlet.component.js +21 -0
- package/esm5/lib/interaction/guards/interaction-guard.service.js +94 -0
- package/esm5/lib/interaction/index.js +3 -2
- package/esm5/lib/interaction/interaction.module.js +8 -3
- package/esm5/lib/interaction/services/dialog-interaction.service.js +28 -5
- package/esm5/lib/place/components/abstract-place-navigation.component.js +5 -5
- package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +2 -2
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +70 -82
- package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +2 -2
- package/esm5/lib/place/index.js +9 -8
- package/esm5/lib/place/navigation-session.js +193 -0
- package/esm5/lib/place/place-component.js +19 -15
- package/esm5/lib/place/place-definition.js +253 -5
- package/esm5/lib/place/place-history.js +7 -3
- package/esm5/lib/place/place-router.js +242 -107
- package/esm5/lib/place/route/formatter.js +96 -0
- package/esm5/lib/place/route/guards/leave-place.guard.js +152 -0
- package/esm5/lib/place/route/guards/place-route.guard.js +273 -0
- package/esm5/lib/place/route/parameter-decorators.js +35 -18
- package/esm5/lib/place/route/parameter-definition.class.js +179 -76
- package/esm5/lib/place/route/parameter-sanitiser.js +4 -3
- package/esm5/lib/place/route/parameter-snapshot.js +11 -480
- package/esm5/lib/place/route/visit-sanitiser.js +99 -0
- package/esm5/lib/place/visit.js +160 -8
- package/esm5/public_api.js +4 -4
- package/fesm2015/coolon-angular-ui-powerups.js +1493 -1124
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +2166 -1700
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/noop/noop.component.d.ts +3 -0
- package/lib/interaction/components/interaction-outlet/interaction-outlet.component.d.ts +3 -0
- package/lib/interaction/guards/interaction-guard.service.d.ts +13 -0
- package/lib/interaction/index.d.ts +2 -1
- package/lib/interaction/services/dialog-interaction.service.d.ts +5 -1
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +12 -12
- package/lib/place/index.d.ts +5 -4
- package/lib/place/navigation-session.d.ts +26 -0
- package/lib/place/place-component.d.ts +3 -3
- package/lib/place/place-definition.d.ts +30 -3
- package/lib/place/place-history.d.ts +3 -3
- package/lib/place/place-router.d.ts +26 -19
- package/lib/place/route/{parameter-type.d.ts → formatter.d.ts} +5 -5
- package/lib/place/{guards → route/guards}/leave-place.guard.d.ts +4 -3
- package/lib/place/route/guards/place-route.guard.d.ts +27 -0
- package/lib/place/route/parameter-decorators.d.ts +14 -6
- package/lib/place/route/parameter-definition.class.d.ts +21 -17
- package/lib/place/route/parameter-sanitiser.d.ts +3 -2
- package/lib/place/route/parameter-snapshot.d.ts +4 -26
- package/lib/place/route/visit-sanitiser.d.ts +12 -0
- package/lib/place/visit.d.ts +24 -3
- package/package.json +1 -1
- package/schematics/place-routes/place-class-scanner.d.ts +2 -2
- package/schematics/place-routes/place-class-scanner.js +7 -7
- package/schematics/place-routes/place-class-scanner.js.map +1 -1
- package/schematics/place-routes/place-def.d.ts +3 -2
- package/schematics/place-routes/place-def.js +21 -12
- package/schematics/place-routes/place-def.js.map +1 -1
- package/schematics/place-routes/templates/place-destinations.ts.template +5 -3
- package/schematics/place-routes/templates/place-routes.ts.template +10 -1
- package/schematics/place-routes/templates/place-visits.ts.template +21 -0
- package/esm2015/lib/interaction/guards/close-interaction.guard.js +0 -62
- package/esm2015/lib/place/guards/leave-place.guard.js +0 -159
- package/esm2015/lib/place/guards/place-route.guard.js +0 -74
- package/esm2015/lib/place/route/parameter-type.js +0 -61
- package/esm2015/lib/place/route/route-parameter-value.js +0 -230
- package/esm5/lib/interaction/guards/close-interaction.guard.js +0 -66
- package/esm5/lib/place/guards/leave-place.guard.js +0 -117
- package/esm5/lib/place/guards/place-route.guard.js +0 -78
- package/esm5/lib/place/route/parameter-type.js +0 -94
- package/esm5/lib/place/route/route-parameter-value.js +0 -316
- package/lib/interaction/guards/close-interaction.guard.d.ts +0 -12
- package/lib/place/guards/place-route.guard.d.ts +0 -10
- package/lib/place/route/route-parameter-value.d.ts +0 -42
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
6
|
-
import { RouterOutlet } from '@angular/router';
|
|
5
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
6
|
+
import { Router, RouterOutlet } from '@angular/router';
|
|
7
7
|
import { Dsl, Guard, MutableValueModel } from '@coolon/pectin';
|
|
8
8
|
import { DisposableComponent } from '../../../components/disposable-component';
|
|
9
9
|
import { PlaceHistory } from '../../place-history';
|
|
10
10
|
import { PlaceRouter } from '../../place-router';
|
|
11
|
-
import { ParameterSnapshot } from '../../route/parameter-snapshot';
|
|
12
11
|
import { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';
|
|
13
12
|
/**
|
|
14
13
|
* @record
|
|
@@ -30,64 +29,64 @@ if (false) {
|
|
|
30
29
|
export class PlaceOutletComponent extends DisposableComponent {
|
|
31
30
|
/**
|
|
32
31
|
* @param {?} router
|
|
32
|
+
* @param {?} placeRouter
|
|
33
33
|
* @param {?} placeHistory
|
|
34
34
|
*/
|
|
35
|
-
constructor(router, placeHistory) {
|
|
35
|
+
constructor(router, placeRouter, placeHistory) {
|
|
36
36
|
super();
|
|
37
37
|
this.router = router;
|
|
38
|
+
this.placeRouter = placeRouter;
|
|
38
39
|
this.placeHistory = placeHistory;
|
|
39
40
|
this.animate = true;
|
|
41
|
+
this.placeChanged = new EventEmitter();
|
|
40
42
|
this._activePlace = new MutableValueModel();
|
|
41
|
-
this._incomingRouteChange = new Guard();
|
|
42
43
|
this._inOutletUpdate = new Guard();
|
|
43
44
|
this._activatedRouteModel = new MutableValueModel();
|
|
44
45
|
this._placeDefinition = new MutableValueModel();
|
|
45
|
-
|
|
46
|
+
/**
|
|
47
|
+
* TODO: This is now really a visit
|
|
48
|
+
*/
|
|
49
|
+
this._placeVisit = new MutableValueModel();
|
|
46
50
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
51
|
+
// Handle incoming route changes.
|
|
47
52
|
/** @type {?} */
|
|
48
|
-
const
|
|
49
|
-
* @param {?} ar
|
|
50
|
-
* @return {?}
|
|
51
|
-
*/
|
|
52
|
-
ar => ar.paramMap));
|
|
53
|
+
const inRouteVisitUpdate = new Guard();
|
|
53
54
|
/** @type {?} */
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
* @
|
|
57
|
-
*/
|
|
58
|
-
ar => ar.url));
|
|
59
|
-
this.placeConfigured = valueOf.all(chain(this._inOutletUpdate).isFalsey(), this._placeDefinition, paramMap, urls).areTruthy();
|
|
60
|
-
when.anyOf(paramMap, urls).changes((/**
|
|
55
|
+
const routeVisit = chain(this._activePlace).pluck('placeDefinition').findIn(placeRouter.activeVisitIndex);
|
|
56
|
+
when.valueOf(routeVisit).changes((/**
|
|
57
|
+
* @param {?} visit
|
|
61
58
|
* @return {?}
|
|
62
59
|
*/
|
|
63
|
-
() => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
});
|
|
76
|
-
when.valueOf(this._resolvedParameters).changes((/**
|
|
60
|
+
(visit) => {
|
|
61
|
+
if (visit) {
|
|
62
|
+
inRouteVisitUpdate.whileTrue((/**
|
|
63
|
+
* @return {?}
|
|
64
|
+
*/
|
|
65
|
+
() => {
|
|
66
|
+
this._placeVisit.value = visit;
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
// Handle component based changes
|
|
71
|
+
when.valueOf(this._placeVisit).changes((/**
|
|
77
72
|
* @param {?} next
|
|
78
73
|
* @param {?} previous
|
|
79
74
|
* @return {?}
|
|
80
75
|
*/
|
|
81
76
|
(next, previous) => {
|
|
82
|
-
this.
|
|
83
|
-
this.pushChangesToRoute(next, previous);
|
|
77
|
+
this.pushVisitChangesToRoute(next, previous);
|
|
84
78
|
}), {
|
|
85
|
-
unless:
|
|
79
|
+
unless: inRouteVisitUpdate
|
|
86
80
|
});
|
|
81
|
+
chain(this._activePlace)
|
|
82
|
+
.postponeWhile(placeRouter.navigationSessionActive)
|
|
83
|
+
.subscribe((/**
|
|
84
|
+
* @param {?} place
|
|
85
|
+
* @return {?}
|
|
86
|
+
*/
|
|
87
|
+
place => this.placeChanged.emit(place)));
|
|
87
88
|
// const txo = new TransactionObserver().onEvent(e => console.log(e.toString()));
|
|
88
|
-
// txo.observe('
|
|
89
|
-
// txo.observe('urls', urls);
|
|
90
|
-
// txo.observe('this._resolvedParameters', this._resolvedParameters);
|
|
89
|
+
// txo.observe('inRouteVisitUpdate', inRouteVisitUpdate);
|
|
91
90
|
}
|
|
92
91
|
/**
|
|
93
92
|
* @return {?}
|
|
@@ -95,15 +94,19 @@ export class PlaceOutletComponent extends DisposableComponent {
|
|
|
95
94
|
ngOnInit() {
|
|
96
95
|
}
|
|
97
96
|
/**
|
|
97
|
+
* @param {?} next
|
|
98
|
+
* @param {?} previous
|
|
98
99
|
* @return {?}
|
|
99
100
|
*/
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
pushVisitChangesToRoute(next, previous) {
|
|
102
|
+
/** @type {?} */
|
|
103
|
+
const activatedRoute = this._activatedRouteModel.value;
|
|
104
|
+
this.placeRouter.pushVisitChangesToRoute(activatedRoute, previous, next);
|
|
102
105
|
}
|
|
103
106
|
/**
|
|
104
107
|
* @return {?}
|
|
105
108
|
*/
|
|
106
|
-
get
|
|
109
|
+
get activePlaceModel() {
|
|
107
110
|
return this._activePlace.readonly;
|
|
108
111
|
}
|
|
109
112
|
/**
|
|
@@ -120,7 +123,7 @@ export class PlaceOutletComponent extends DisposableComponent {
|
|
|
120
123
|
this._activePlace.value = place;
|
|
121
124
|
this._activatedRouteModel.value = routerOutlet.activatedRoute;
|
|
122
125
|
this._placeDefinition.value = place.placeDefinition;
|
|
123
|
-
place.initialiseBindings(this.
|
|
126
|
+
place.initialiseBindings(this._placeVisit);
|
|
124
127
|
}
|
|
125
128
|
catch (error) {
|
|
126
129
|
console.error(error);
|
|
@@ -162,22 +165,11 @@ export class PlaceOutletComponent extends DisposableComponent {
|
|
|
162
165
|
}
|
|
163
166
|
}
|
|
164
167
|
/**
|
|
165
|
-
* @param {?}
|
|
166
|
-
* @param {?} previous
|
|
168
|
+
* @param {?} placeDestination
|
|
167
169
|
* @return {?}
|
|
168
170
|
*/
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const activatedRoute = this._activatedRouteModel.value;
|
|
172
|
-
this.router.pushParameterChangesToRoute(activatedRoute, previous, next);
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* @param {?} snapshot
|
|
176
|
-
* @param {?} callback
|
|
177
|
-
* @return {?}
|
|
178
|
-
*/
|
|
179
|
-
sanitise(snapshot, callback) {
|
|
180
|
-
return snapshot;
|
|
171
|
+
activate(placeDestination) {
|
|
172
|
+
// this.router.
|
|
181
173
|
}
|
|
182
174
|
}
|
|
183
175
|
PlaceOutletComponent.decorators = [
|
|
@@ -190,28 +182,27 @@ PlaceOutletComponent.decorators = [
|
|
|
190
182
|
];
|
|
191
183
|
/** @nocollapse */
|
|
192
184
|
PlaceOutletComponent.ctorParameters = () => [
|
|
185
|
+
{ type: Router },
|
|
193
186
|
{ type: PlaceRouter },
|
|
194
187
|
{ type: PlaceHistory }
|
|
195
188
|
];
|
|
196
189
|
PlaceOutletComponent.propDecorators = {
|
|
197
190
|
animate: [{ type: Input }],
|
|
191
|
+
placeChanged: [{ type: Output }],
|
|
198
192
|
routerOut: [{ type: ViewChild, args: ['routeOutlet', { static: true },] }]
|
|
199
193
|
};
|
|
200
194
|
if (false) {
|
|
201
195
|
/** @type {?} */
|
|
202
196
|
PlaceOutletComponent.prototype.animate;
|
|
203
197
|
/** @type {?} */
|
|
198
|
+
PlaceOutletComponent.prototype.placeChanged;
|
|
199
|
+
/** @type {?} */
|
|
204
200
|
PlaceOutletComponent.prototype.routerOut;
|
|
205
201
|
/**
|
|
206
202
|
* @type {?}
|
|
207
203
|
* @private
|
|
208
204
|
*/
|
|
209
205
|
PlaceOutletComponent.prototype._activePlace;
|
|
210
|
-
/**
|
|
211
|
-
* @type {?}
|
|
212
|
-
* @private
|
|
213
|
-
*/
|
|
214
|
-
PlaceOutletComponent.prototype._incomingRouteChange;
|
|
215
206
|
/**
|
|
216
207
|
* @type {?}
|
|
217
208
|
* @private
|
|
@@ -227,22 +218,25 @@ if (false) {
|
|
|
227
218
|
* @private
|
|
228
219
|
*/
|
|
229
220
|
PlaceOutletComponent.prototype._placeDefinition;
|
|
230
|
-
/** @type {?} */
|
|
231
|
-
PlaceOutletComponent.prototype._resolvedParameters;
|
|
232
221
|
/**
|
|
222
|
+
* TODO: This is now really a visit
|
|
233
223
|
* @type {?}
|
|
234
|
-
* @private
|
|
235
224
|
*/
|
|
236
|
-
PlaceOutletComponent.prototype.
|
|
225
|
+
PlaceOutletComponent.prototype._placeVisit;
|
|
237
226
|
/**
|
|
238
227
|
* @type {?}
|
|
239
228
|
* @private
|
|
240
229
|
*/
|
|
241
230
|
PlaceOutletComponent.prototype.router;
|
|
231
|
+
/**
|
|
232
|
+
* @type {?}
|
|
233
|
+
* @private
|
|
234
|
+
*/
|
|
235
|
+
PlaceOutletComponent.prototype.placeRouter;
|
|
242
236
|
/**
|
|
243
237
|
* @type {?}
|
|
244
238
|
* @private
|
|
245
239
|
*/
|
|
246
240
|
PlaceOutletComponent.prototype.placeHistory;
|
|
247
241
|
}
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFrQixZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQTBCLEdBQUcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBR2hFLHVCQU1DOzs7SUFMQyxtQ0FBeUM7Ozs7O0lBRXpDLDZEQUErRDs7OztJQUUvRCxrREFBcUI7O0FBU3ZCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7Ozs7O0lBa0IzRCxZQUE2QixNQUFtQixFQUFtQixZQUEwQjtRQUMzRixLQUFLLEVBQUUsQ0FBQztRQURtQixXQUFNLEdBQU4sTUFBTSxDQUFhO1FBQW1CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBZjdGLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFLRSxpQkFBWSxHQUFHLElBQUksaUJBQWlCLEVBQWtCLENBQUM7UUFFdkQseUJBQW9CLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztR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MkIsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFFLENBQUM7Ozs7OztJQUVELFFBQVEsQ0FBQyxRQUEyQixFQUFFLFFBQWdEO1FBQ3BGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OztZQWxIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztnQkFDNUMsa1lBQTRDO2dCQUU1QyxVQUFVLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzs7YUFDekM7Ozs7WUFuQlEsV0FBVztZQURYLFlBQVk7OztzQkF1QmxCLEtBQUs7d0JBR0wsU0FBUyxTQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Ozs7SUFIMUMsdUNBQ2U7O0lBRWYseUNBQ3dCOzs7OztJQUV4Qiw0Q0FBd0U7Ozs7O0lBRXhFLG9EQUFvRDs7Ozs7SUFDcEQsK0NBQStDOzs7OztJQUMvQyxvREFBZ0Y7Ozs7O0lBQ2hGLGdEQUE2RTs7SUFFN0UsbURBQTBFOzs7OztJQUMxRSwrQ0FBZ0Q7Ozs7O0lBRXBDLHNDQUFvQzs7Ozs7SUFBRSw0Q0FBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlck91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCb29sZWFuVmFsdWVNb2RlbENoYWluLCBEc2wsIEd1YXJkLCBNdXRhYmxlVmFsdWVNb2RlbCwgVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3BsYWNlLWRlZmluaXRpb24nO1xuaW1wb3J0IHsgUGxhY2VIaXN0b3J5IH0gZnJvbSAnLi4vLi4vcGxhY2UtaGlzdG9yeSc7XG5pbXBvcnQgeyBQbGFjZVJvdXRlciB9IGZyb20gJy4uLy4uL3BsYWNlLXJvdXRlcic7XG5cbmltcG9ydCB7IFBhcmFtZXRlclNuYXBzaG90IH0gZnJvbSAnLi4vLi4vcm91dGUvcGFyYW1ldGVyLXNuYXBzaG90JztcbmltcG9ydCB7IExFRlRfUklHSFRfUExBQ0VfQU5JTUFUSU9OIH0gZnJvbSAnLi9yb3V0ZS1hbmltYXRpb25zJztcblxuLy8gUXVpY2sgaGFjayB0byBhdm9pZCBjaXJjdWxhciByZWZlcmVuY2VzIGJldHdlZW4gdGhpcyBhbmQgUGxhY2VDb21wb25lbnRzLlxuaW50ZXJmYWNlIFBsYWNlUmVmIHtcbiAgcmVhZG9ubHkgcGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb25cblxuICBpbml0aWFsaXNlQmluZGluZ3MocGFyYW06IFZhbHVlTW9kZWw8UGFyYW1ldGVyU25hcHNob3Q+KTogdm9pZDtcblxuICBvblBsYWNlUmVhZHkoKTogdm9pZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci11aS1wb3dlcnVwcy1wbGFjZS1vdXRsZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGxhY2Utb3V0bGV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGxhY2Utb3V0bGV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtMRUZUX1JJR0hUX1BMQUNFX0FOSU1BVElPTl1cbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VPdXRsZXRDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBhbmltYXRlID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKCdyb3V0ZU91dGxldCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHJvdXRlck91dDogUm91dGVyT3V0bGV0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZVBsYWNlID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFBsYWNlQ29tcG9uZW50PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luY29taW5nUm91dGVDaGFuZ2UgPSBuZXcgR3VhcmQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5PdXRsZXRVcGRhdGUgPSBuZXcgR3VhcmQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGVkUm91dGVNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxBY3RpdmF0ZWRSb3V0ZT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2VEZWZpbml0aW9uID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFBsYWNlRGVmaW5pdGlvbj4oKTtcblxuICByZWFkb25seSBfcmVzb2x2ZWRQYXJhbWV0ZXJzID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFBhcmFtZXRlclNuYXBzaG90PigpO1xuICBwcml2YXRlIHBsYWNlQ29uZmlndXJlZDogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUGxhY2VSb3V0ZXIsIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnkpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICBjb25zdCBwYXJhbU1hcCA9IGNoYWluKHRoaXMuX2FjdGl2YXRlZFJvdXRlTW9kZWwpLnB1bGxPYnNlcnZhYmxlVmFsdWUoYXIgPT4gYXIucGFyYW1NYXApO1xuICAgIGNvbnN0IHVybHMgPSBjaGFpbih0aGlzLl9hY3RpdmF0ZWRSb3V0ZU1vZGVsKS5wdWxsT2JzZXJ2YWJsZVZhbHVlKGFyID0+IGFyLnVybCk7XG5cbiAgICB0aGlzLnBsYWNlQ29uZmlndXJlZCA9IHZhbHVlT2YuYWxsKFxuICAgICAgY2hhaW4odGhpcy5faW5PdXRsZXRVcGRhdGUpLmlzRmFsc2V5KCksXG4gICAgICB0aGlzLl9wbGFjZURlZmluaXRpb24sXG4gICAgICBwYXJhbU1hcCxcbiAgICAgIHVybHNcbiAgICApLmFyZVRydXRoeSgpO1xuXG4gICAgd2hlbi5hbnlPZihwYXJhbU1hcCwgdXJscykuY2hhbmdlcygoKSA9PiB7XG4gICAgICBjb25zdCBzbmFwc2hvdCA9IFBhcmFtZXRlclNuYXBzaG90LmNyZWF0ZSh0aGlzLl9wbGFjZURlZmluaXRpb24udmFsdWUsIHBhcmFtTWFwLnZhbHVlLCB1cmxzLnZhbHVlKTtcbiAgICAgIHRoaXMuX2luY29taW5nUm91dGVDaGFuZ2Uud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVzb2x2ZWRQYXJhbWV0ZXJzLnZhbHVlID0gc25hcHNob3Q7XG4gICAgICAgIHRoaXMucGxhY2VIaXN0b3J5LmFkZChzbmFwc2hvdCk7XG4gICAgICB9KTtcbiAgICB9LCB7XG4gICAgICBwb3N0cG9uZVVudGlsOiB0aGlzLnBsYWNlQ29uZmlndXJlZFxuICAgIH0pO1xuXG4gICAgd2hlbi52YWx1ZU9mKHRoaXMuX3Jlc29sdmVkUGFyYW1ldGVycykuY2hhbmdlcygobmV4dCwgcHJldmlvdXMpID0+IHtcbiAgICAgIHRoaXMucGxhY2VIaXN0b3J5LmFkZChuZXh0KTsgLy8gdGhlIGFib3ZlIHJvdXRlIGNoYW5nZSBkb2Vzbid0IHNlZW0gdG8gcHJvcGFnYXRlIGJhY2sgaW4sIHNvIEknbSBhZGQgdGhlIHN0YXRlIHRvIHRoZSBoaXN0b3J5IG1hbnVhbGx5IGZvciBub3cuXG4gICAgICB0aGlzLnB1c2hDaGFuZ2VzVG9Sb3V0ZShuZXh0LCBwcmV2aW91cyk7XG4gICAgfSwge1xuICAgICAgdW5sZXNzOiB0aGlzLmluY29taW5nUm91dGVDaGFuZ2VcbiAgICB9KTtcblxuICAgIC8vIGNvbnN0IHR4byA9IG5ldyBUcmFuc2FjdGlvbk9ic2VydmVyKCkub25FdmVudChlID0+IGNvbnNvbGUubG9nKGUudG9TdHJpbmcoKSkpO1xuICAgIC8vIHR4by5vYnNlcnZlKCdwYXJhbU1hcCcsIHBhcmFtTWFwKTtcbiAgICAvLyB0eG8ub2JzZXJ2ZSgndXJscycsIHVybHMpO1xuICAgIC8vIHR4by5vYnNlcnZlKCd0aGlzLl9yZXNvbHZlZFBhcmFtZXRlcnMnLCB0aGlzLl9yZXNvbHZlZFBhcmFtZXRlcnMpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBnZXQgaW5jb21pbmdSb3V0ZUNoYW5nZSgpOiBWYWx1ZU1vZGVsPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faW5jb21pbmdSb3V0ZUNoYW5nZTtcbiAgfVxuXG4gIGdldCBhY3RpdmVQbGFjZSgpOiBWYWx1ZU1vZGVsPFBsYWNlQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBsYWNlLnJlYWRvbmx5O1xuICB9XG5cbiAgb25PdXRsZXRBY3RpdmF0ZWQocm91dGVyT3V0bGV0OiBSb3V0ZXJPdXRsZXQsIHBsYWNlOiBQbGFjZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX2luT3V0bGV0VXBkYXRlLndoaWxlVHJ1ZSgoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLl9hY3RpdmVQbGFjZS52YWx1ZSA9IHBsYWNlO1xuICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZU1vZGVsLnZhbHVlID0gcm91dGVyT3V0bGV0LmFjdGl2YXRlZFJvdXRlO1xuICAgICAgICB0aGlzLl9wbGFjZURlZmluaXRpb24udmFsdWUgPSBwbGFjZS5wbGFjZURlZmluaXRpb247XG4gICAgICAgIHBsYWNlLmluaXRpYWxpc2VCaW5kaW5ncyh0aGlzLl9yZXNvbHZlZFBhcmFtZXRlcnMpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCF0aGlzLmFuaW1hdGUpIHtcbiAgICAgIC8vIHdlJ3JlIG5vdCBhbmltYXRpbmcgc28gdHJpZ2dlciBhbnkgcG9zdCBhbmltYXRpb24gY2FsbGJhY2tzIG5vdy5cbiAgICAgIHRoaXMuYW5pbWF0aW9uRG9uZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uT3V0bGV0RGVhY3RpdmF0ZWQocm91dGVyT3V0bGV0OiBSb3V0ZXJPdXRsZXQsICRldmVudDogUGxhY2VSZWYpIHtcbiAgICB0aGlzLl9pbk91dGxldFVwZGF0ZS53aGlsZVRydWUoKCkgPT4ge1xuICAgICAgdGhpcy5fYWN0aXZlUGxhY2UudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC52YWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLl9wbGFjZURlZmluaXRpb24udmFsdWUgPSBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0UGxhY2VPcmRlcihvdXRsZXQ6IFJvdXRlck91dGxldCkge1xuICAgIHJldHVybiB0aGlzLmFuaW1hdGUgJiYgb3V0bGV0ICYmIG91dGxldC5hY3RpdmF0ZWRSb3V0ZURhdGEgJiYgb3V0bGV0LmFjdGl2YXRlZFJvdXRlRGF0YVsncGxhY2VPcmRlciddO1xuICB9XG5cbiAgYW5pbWF0aW9uRG9uZSgpIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlUGxhY2UudmFsdWUpIHtcbiAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlLnZhbHVlLm9uUGxhY2VSZWFkeSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1c2hDaGFuZ2VzVG9Sb3V0ZShuZXh0OiBQYXJhbWV0ZXJTbmFwc2hvdCwgcHJldmlvdXM6IFBhcmFtZXRlclNuYXBzaG90KSB7XG4gICAgY29uc3QgYWN0aXZhdGVkUm91dGUgPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZU1vZGVsLnZhbHVlO1xuICAgIHRoaXMucm91dGVyLnB1c2hQYXJhbWV0ZXJDaGFuZ2VzVG9Sb3V0ZShhY3RpdmF0ZWRSb3V0ZSwgcHJldmlvdXMsIG5leHQpO1xuICB9XG5cbiAgc2FuaXRpc2Uoc25hcHNob3Q6IFBhcmFtZXRlclNuYXBzaG90LCBjYWxsYmFjazogKHNhbml0aXNlZDogUGFyYW1ldGVyU25hcHNob3QpID0+IHZvaWQpIHtcbiAgICByZXR1cm4gc25hcHNob3Q7XG4gIH1cblxuXG59XG4iXX0=
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWtCLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBbUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBR2hFLHVCQU1DOzs7SUFMQyxtQ0FBeUM7Ozs7O0lBRXpDLDZEQUFtRDs7OztJQUVuRCxrREFBcUI7O0FBU3ZCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7Ozs7OztJQW9CM0QsWUFBNkIsTUFBYyxFQUFtQixXQUF3QixFQUFtQixZQUEwQjtRQUNqSSxLQUFLLEVBQUUsQ0FBQztRQURtQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQW1CLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQW1CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBakJuSSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBR04saUJBQVksR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUsxQyxpQkFBWSxHQUFH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K0M7Ozs7O0lBQy9DLG9EQUFnRjs7Ozs7SUFDaEYsZ0RBQTZFOzs7OztJQUc3RSwyQ0FBc0Q7Ozs7O0lBRTFDLHNDQUErQjs7Ozs7SUFBRSwyQ0FBeUM7Ozs7O0lBQUUsNENBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRHNsLCBHdWFyZCwgTXV0YWJsZVZhbHVlTW9kZWwsIFRyYW5zYWN0aW9uT2JzZXJ2ZXIsIFZhbHVlTW9kZWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFjZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFBsYWNlSGlzdG9yeSB9IGZyb20gJy4uLy4uL3BsYWNlLWhpc3RvcnknO1xuaW1wb3J0IHsgUGxhY2VSb3V0ZXIgfSBmcm9tICcuLi8uLi9wbGFjZS1yb3V0ZXInO1xuXG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4uLy4uL3Zpc2l0JztcbmltcG9ydCB7IExFRlRfUklHSFRfUExBQ0VfQU5JTUFUSU9OIH0gZnJvbSAnLi9yb3V0ZS1hbmltYXRpb25zJztcblxuLy8gUXVpY2sgaGFjayB0byBhdm9pZCBjaXJjdWxhciByZWZlcmVuY2VzIGJldHdlZW4gdGhpcyBhbmQgUGxhY2VDb21wb25lbnRzLlxuaW50ZXJmYWNlIFBsYWNlUmVmIHtcbiAgcmVhZG9ubHkgcGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb25cblxuICBpbml0aWFsaXNlQmluZGluZ3MocGFyYW06IFZhbHVlTW9kZWw8VmlzaXQ+KTogdm9pZDtcblxuICBvblBsYWNlUmVhZHkoKTogdm9pZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci11aS1wb3dlcnVwcy1wbGFjZS1vdXRsZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGxhY2Utb3V0bGV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGxhY2Utb3V0bGV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtMRUZUX1JJR0hUX1BMQUNFX0FOSU1BVElPTl1cbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VPdXRsZXRDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBhbmltYXRlID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgcGxhY2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxQbGFjZUNvbXBvbmVudD4oKTtcblxuICBAVmlld0NoaWxkKCdyb3V0ZU91dGxldCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHJvdXRlck91dDogUm91dGVyT3V0bGV0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZVBsYWNlID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFBsYWNlQ29tcG9uZW50PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luT3V0bGV0VXBkYXRlID0gbmV3IEd1YXJkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2YXRlZFJvdXRlTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8QWN0aXZhdGVkUm91dGU+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BsYWNlRGVmaW5pdGlvbiA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxQbGFjZURlZmluaXRpb24+KCk7XG5cbiAgLyoqIFRPRE86IFRoaXMgaXMgbm93IHJlYWxseSBhIHZpc2l0ICovXG4gIHJlYWRvbmx5IF9wbGFjZVZpc2l0ID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFZpc2l0PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyLCBwcml2YXRlIHJlYWRvbmx5IHBsYWNlSGlzdG9yeTogUGxhY2VIaXN0b3J5KSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuXG4gICAgLy8gSGFuZGxlIGluY29taW5nIHJvdXRlIGNoYW5nZXMuXG4gICAgY29uc3QgaW5Sb3V0ZVZpc2l0VXBkYXRlID0gbmV3IEd1YXJkKCk7XG4gICAgY29uc3Qgcm91dGVWaXNpdCA9IGNoYWluKHRoaXMuX2FjdGl2ZVBsYWNlKS5wbHVjaygncGxhY2VEZWZpbml0aW9uJykuZmluZEluKHBsYWNlUm91dGVyLmFjdGl2ZVZpc2l0SW5kZXgpO1xuICAgIHdoZW4udmFsdWVPZihyb3V0ZVZpc2l0KS5jaGFuZ2VzKCh2aXNpdCkgPT4ge1xuICAgICAgaWYgKHZpc2l0KSB7XG4gICAgICAgIGluUm91dGVWaXNpdFVwZGF0ZS53aGlsZVRydWUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3BsYWNlVmlzaXQudmFsdWUgPSB2aXNpdDtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBjb21wb25lbnQgYmFzZWQgY2hhbmdlc1xuICAgIHdoZW4udmFsdWVPZih0aGlzLl9wbGFjZVZpc2l0KS5jaGFuZ2VzKChuZXh0LCBwcmV2aW91cykgPT4ge1xuICAgICAgdGhpcy5wdXNoVmlzaXRDaGFuZ2VzVG9Sb3V0ZShuZXh0LCBwcmV2aW91cyk7XG4gICAgfSwge1xuICAgICAgdW5sZXNzOiBpblJvdXRlVmlzaXRVcGRhdGVcbiAgICB9KTtcblxuICAgIGNoYWluKHRoaXMuX2FjdGl2ZVBsYWNlKVxuICAgICAgLnBvc3Rwb25lV2hpbGUocGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb25BY3RpdmUpXG4gICAgICAuc3Vic2NyaWJlKHBsYWNlID0+IHRoaXMucGxhY2VDaGFuZ2VkLmVtaXQocGxhY2UpKTtcblxuICAgIC8vIGNvbnN0IHR4byA9IG5ldyBUcmFuc2FjdGlvbk9ic2VydmVyKCkub25FdmVudChlID0+IGNvbnNvbGUubG9nKGUudG9TdHJpbmcoKSkpO1xuICAgIC8vIHR4by5vYnNlcnZlKCdpblJvdXRlVmlzaXRVcGRhdGUnLCBpblJvdXRlVmlzaXRVcGRhdGUpO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIHB1c2hWaXNpdENoYW5nZXNUb1JvdXRlKG5leHQ6IFZpc2l0LCBwcmV2aW91czogVmlzaXQpIHtcbiAgICBjb25zdCBhY3RpdmF0ZWRSb3V0ZSA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlTW9kZWwudmFsdWU7XG4gICAgdGhpcy5wbGFjZVJvdXRlci5wdXNoVmlzaXRDaGFuZ2VzVG9Sb3V0ZShhY3RpdmF0ZWRSb3V0ZSwgcHJldmlvdXMsIG5leHQpO1xuICB9XG5cblxuICBnZXQgYWN0aXZlUGxhY2VNb2RlbCgpOiBWYWx1ZU1vZGVsPFBsYWNlQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBsYWNlLnJlYWRvbmx5O1xuICB9XG5cbiAgb25PdXRsZXRBY3RpdmF0ZWQocm91dGVyT3V0bGV0OiBSb3V0ZXJPdXRsZXQsIHBsYWNlOiBQbGFjZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX2luT3V0bGV0VXBkYXRlLndoaWxlVHJ1ZSgoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLl9hY3RpdmVQbGFjZS52YWx1ZSA9IHBsYWNlO1xuICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZU1vZGVsLnZhbHVlID0gcm91dGVyT3V0bGV0LmFjdGl2YXRlZFJvdXRlO1xuICAgICAgICB0aGlzLl9wbGFjZURlZmluaXRpb24udmFsdWUgPSBwbGFjZS5wbGFjZURlZmluaXRpb247XG4gICAgICAgIHBsYWNlLmluaXRpYWxpc2VCaW5kaW5ncyh0aGlzLl9wbGFjZVZpc2l0KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghdGhpcy5hbmltYXRlKSB7XG4gICAgICAvLyB3ZSdyZSBub3QgYW5pbWF0aW5nIHNvIHRyaWdnZXIgYW55IHBvc3QgYW5pbWF0aW9uIGNhbGxiYWNrcyBub3cuXG4gICAgICB0aGlzLmFuaW1hdGlvbkRvbmUoKTtcbiAgICB9XG4gIH1cblxuICBvbk91dGxldERlYWN0aXZhdGVkKHJvdXRlck91dGxldDogUm91dGVyT3V0bGV0LCAkZXZlbnQ6IFBsYWNlUmVmKSB7XG4gICAgdGhpcy5faW5PdXRsZXRVcGRhdGUud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlTW9kZWwudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5fcGxhY2VEZWZpbml0aW9uLnZhbHVlID0gbnVsbDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFBsYWNlT3JkZXIob3V0bGV0OiBSb3V0ZXJPdXRsZXQpIHtcbiAgICByZXR1cm4gdGhpcy5hbmltYXRlICYmIG91dGxldCAmJiBvdXRsZXQuYWN0aXZhdGVkUm91dGVEYXRhICYmIG91dGxldC5hY3RpdmF0ZWRSb3V0ZURhdGFbJ3BsYWNlT3JkZXInXTtcbiAgfVxuXG4gIGFuaW1hdGlvbkRvbmUoKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZVBsYWNlLnZhbHVlKSB7XG4gICAgICB0aGlzLl9hY3RpdmVQbGFjZS52YWx1ZS5vblBsYWNlUmVhZHkoKTtcbiAgICB9XG4gIH1cblxuICBhY3RpdmF0ZShwbGFjZURlc3RpbmF0aW9uOiBWaXNpdCkge1xuICAgIC8vIHRoaXMucm91dGVyLlxuICB9XG5cblxufVxuIl19
|
package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js
CHANGED
|
@@ -12,10 +12,10 @@ export class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationCompo
|
|
|
12
12
|
TabbedPlaceNavigationComponent.decorators = [
|
|
13
13
|
{ type: Component, args: [{
|
|
14
14
|
selector: 'angular-ui-powerups-tabbed-place-navigation',
|
|
15
|
-
template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [active]=\"rla.isActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span>{{getNav(place).title()}}</span>\n </a>\n</nav>\n",
|
|
15
|
+
template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n [replaceUrl]=\"true\"\n routerLinkActive #rla=\"routerLinkActive\"\n [active]=\"rla.isActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span>{{getNav(place).title()}}</span>\n </a>\n</nav>\n",
|
|
16
16
|
styles: [""]
|
|
17
17
|
}] }
|
|
18
18
|
];
|
|
19
19
|
/** @nocollapse */
|
|
20
20
|
TabbedPlaceNavigationComponent.ctorParameters = () => [];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2NvbXBvbmVudHMvdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTzFGLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxnQ0FBZ0M7SUFDbEY7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7OztZQVJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNkNBQTZDO2dCQUN2RCxnYkFBdUQ7O2FBRXhEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0LXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci11aS1wb3dlcnVwcy10YWJiZWQtcGxhY2UtbmF2aWdhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJiZWQtcGxhY2UtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFiYmVkUGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RQbGFjZU5hdmlnYXRpb25Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG4iXX0=
|
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
* @file Automatically generated by barrelsby.
|
|
7
7
|
*/
|
|
8
8
|
export {} from "./nav-item";
|
|
9
|
+
export { NavigationSession } from "./navigation-session";
|
|
9
10
|
export { DEFINITION_META_DATA_KEY, ROUTE_PARAMETER_LIST_KEY, PlaceComponent } from "./place-component";
|
|
10
11
|
export { PlaceDefinition } from "./place-definition";
|
|
11
12
|
export { PlaceHistory } from "./place-history";
|
|
12
13
|
export { PlaceRouter } from "./place-router";
|
|
13
14
|
export { Place } from "./place.decorator";
|
|
14
15
|
export { PlaceModule } from "./place.module";
|
|
15
|
-
export {} from "./visit";
|
|
16
|
+
export { Visit } from "./visit";
|
|
16
17
|
export { AbstractPlaceNavigationComponent } from "./components/abstract-place-navigation.component";
|
|
17
18
|
export { BusyOverlayComponent } from "./components/busy-overlay/busy-overlay.component";
|
|
18
19
|
export { EmptyStateComponent } from "./components/empty-state/empty-state.component";
|
|
@@ -20,13 +21,13 @@ export { ListPlaceNavComponent } from "./components/list-place-nav/list-place-na
|
|
|
20
21
|
export { PlaceOutletComponent } from "./components/place-outlet/place-outlet.component";
|
|
21
22
|
export { leftRightPlaceAnimation, LEFT_RIGHT_PLACE_ANIMATION } from "./components/place-outlet/route-animations";
|
|
22
23
|
export { TabbedPlaceNavigationComponent } from "./components/tabbed-place-navigation/tabbed-place-navigation.component";
|
|
23
|
-
export {
|
|
24
|
-
export { PlaceRouteGuard } from "./guards/place-route.guard";
|
|
24
|
+
export { Formatter } from "./route/formatter";
|
|
25
25
|
export {} from "./route/json-types";
|
|
26
|
-
export { RouteId,
|
|
26
|
+
export { RouteId, VisitParameter, VisitParameterList } from "./route/parameter-decorators";
|
|
27
27
|
export { ParameterDefinition } from "./route/parameter-definition.class";
|
|
28
28
|
export {} from "./route/parameter-sanitiser";
|
|
29
|
-
export {
|
|
30
|
-
export {
|
|
31
|
-
export {
|
|
32
|
-
|
|
29
|
+
export {} from "./route/parameter-snapshot";
|
|
30
|
+
export { VisitSanitiser } from "./route/visit-sanitiser";
|
|
31
|
+
export { LeavePlaceGuard } from "./route/guards/leave-place.guard";
|
|
32
|
+
export { PlaceRouteGuard } from "./route/guards/place-route.guard";
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLGVBQWMsWUFBWSxDQUFDO0FBQzNCLGtDQUFjLHNCQUFzQixDQUFDO0FBQ3JDLG1GQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGdDQUFjLG9CQUFvQixDQUFDO0FBQ25DLDZCQUFjLGlCQUFpQixDQUFDO0FBQ2hDLDRCQUFjLGdCQUFnQixDQUFDO0FBQy9CLHNCQUFjLG1CQUFtQixDQUFDO0FBQ2xDLDRCQUFjLGdCQUFnQixDQUFDO0FBQy9CLHNCQUFjLFNBQVMsQ0FBQztBQUN4QixpREFBYyxrREFBa0QsQ0FBQztBQUNqRSxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSxvQ0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxzQ0FBYyxzREFBc0QsQ0FBQztBQUNyRSxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSxvRUFBYyw0Q0FBNEMsQ0FBQztBQUMzRCwrQ0FBYyx3RUFBd0UsQ0FBQztBQUN2RiwwQkFBYyxtQkFBbUIsQ0FBQztBQUNsQyxlQUFjLG9CQUFvQixDQUFDO0FBQ25DLDREQUFjLDhCQUE4QixDQUFDO0FBQzdDLG9DQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNkJBQTZCLENBQUM7QUFDNUMsZUFBYyw0QkFBNEIsQ0FBQztBQUMzQywrQkFBYyx5QkFBeUIsQ0FBQztBQUN4QyxnQ0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxnQ0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGUgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYmFycmVsc2J5LlxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL25hdi1pdGVtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uYXZpZ2F0aW9uLXNlc3Npb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UtZGVmaW5pdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UtaGlzdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2Utcm91dGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS5kZWNvcmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmlzaXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvYWJzdHJhY3QtcGxhY2UtbmF2aWdhdGlvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvYnVzeS1vdmVybGF5L2J1c3ktb3ZlcmxheS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL2xpc3QtcGxhY2UtbmF2L2xpc3QtcGxhY2UtbmF2LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9wbGFjZS1vdXRsZXQvcGxhY2Utb3V0bGV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9wbGFjZS1vdXRsZXQvcm91dGUtYW5pbWF0aW9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy90YWJiZWQtcGxhY2UtbmF2aWdhdGlvbi90YWJiZWQtcGxhY2UtbmF2aWdhdGlvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL2Zvcm1hdHRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvanNvbi10eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLWRlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItc2FuaXRpc2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItc25hcHNob3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3Zpc2l0LXNhbml0aXNlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9ndWFyZHMvcGxhY2Utcm91dGUuZ3VhcmRcIjtcbiJdfQ==
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @abstract
|
|
7
|
+
*/
|
|
8
|
+
export class NavigationSession {
|
|
9
|
+
/**
|
|
10
|
+
* @protected
|
|
11
|
+
* @param {?} firstNavigation
|
|
12
|
+
*/
|
|
13
|
+
constructor(firstNavigation) {
|
|
14
|
+
this.firstNavigation = firstNavigation;
|
|
15
|
+
this._alreadyAccepted = [];
|
|
16
|
+
this._visits = new Map();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @param {?} visit
|
|
20
|
+
* @return {?}
|
|
21
|
+
*/
|
|
22
|
+
storeVisit(visit) {
|
|
23
|
+
this._visits.set(visit.placeDefinition, visit);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @param {?} placeDef
|
|
27
|
+
* @return {?}
|
|
28
|
+
*/
|
|
29
|
+
getVisitFor(placeDef) {
|
|
30
|
+
return this._visits.get(placeDef);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @param {?} params
|
|
34
|
+
* @return {?}
|
|
35
|
+
*/
|
|
36
|
+
mergePrivatePlaceParameters(params) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
// @Trace()
|
|
40
|
+
/**
|
|
41
|
+
* @param {?} placeComponent
|
|
42
|
+
* @return {?}
|
|
43
|
+
*/
|
|
44
|
+
alreadyAccepted(placeComponent) {
|
|
45
|
+
return this._alreadyAccepted.includes(placeComponent);
|
|
46
|
+
}
|
|
47
|
+
// @Trace()
|
|
48
|
+
/**
|
|
49
|
+
* @param {?} component
|
|
50
|
+
* @return {?}
|
|
51
|
+
*/
|
|
52
|
+
rememberAcceptanceOf(component) {
|
|
53
|
+
this._alreadyAccepted.push(component);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @param {?} url
|
|
57
|
+
* @return {?}
|
|
58
|
+
*/
|
|
59
|
+
setPopstateReturn(url) {
|
|
60
|
+
this._popStateReturnUrl = url;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @return {?}
|
|
64
|
+
*/
|
|
65
|
+
get isPopState() {
|
|
66
|
+
return !!this._popStateReturnUrl;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @return {?}
|
|
70
|
+
*/
|
|
71
|
+
get popStateReturnUrl() {
|
|
72
|
+
return this._popStateReturnUrl;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* @return {?}
|
|
76
|
+
*/
|
|
77
|
+
getVisits() {
|
|
78
|
+
return Array.from(this._visits.values());
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (false) {
|
|
82
|
+
/**
|
|
83
|
+
* @type {?}
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
NavigationSession.prototype._alreadyAccepted;
|
|
87
|
+
/**
|
|
88
|
+
* @type {?}
|
|
89
|
+
* @private
|
|
90
|
+
*/
|
|
91
|
+
NavigationSession.prototype._visits;
|
|
92
|
+
/**
|
|
93
|
+
* @type {?}
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
NavigationSession.prototype._popStateReturnUrl;
|
|
97
|
+
/** @type {?} */
|
|
98
|
+
NavigationSession.prototype.isExternal;
|
|
99
|
+
/** @type {?} */
|
|
100
|
+
NavigationSession.prototype.firstNavigation;
|
|
101
|
+
}
|
|
102
|
+
(function (NavigationSession) {
|
|
103
|
+
class External extends NavigationSession {
|
|
104
|
+
/**
|
|
105
|
+
* @param {?} isFirstTime
|
|
106
|
+
*/
|
|
107
|
+
constructor(isFirstTime) {
|
|
108
|
+
super(isFirstTime);
|
|
109
|
+
this.isExternal = true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (false) {
|
|
113
|
+
/** @type {?} */
|
|
114
|
+
External.prototype.isExternal;
|
|
115
|
+
}
|
|
116
|
+
class Internal extends NavigationSession {
|
|
117
|
+
/**
|
|
118
|
+
* @param {?} visit
|
|
119
|
+
*/
|
|
120
|
+
constructor(visit) {
|
|
121
|
+
super(false);
|
|
122
|
+
this.isExternal = false;
|
|
123
|
+
this.storeVisit(visit);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (false) {
|
|
127
|
+
/** @type {?} */
|
|
128
|
+
Internal.prototype.isExternal;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @param {?} visit
|
|
132
|
+
* @return {?}
|
|
133
|
+
*/
|
|
134
|
+
function createInternal(visit) {
|
|
135
|
+
return new Internal(visit);
|
|
136
|
+
}
|
|
137
|
+
NavigationSession.createInternal = createInternal;
|
|
138
|
+
/**
|
|
139
|
+
* @param {?} firstTimeRoute
|
|
140
|
+
* @return {?}
|
|
141
|
+
*/
|
|
142
|
+
function createExternal(firstTimeRoute) {
|
|
143
|
+
return new External(firstTimeRoute);
|
|
144
|
+
}
|
|
145
|
+
NavigationSession.createExternal = createExternal;
|
|
146
|
+
})(NavigationSession || (NavigationSession = {}));
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS0EsTUFBTSxPQUFnQixpQkFBaUI7Ozs7O0lBU3JDLFlBQStCLGVBQXdCO1FBQXhCLG9CQUFlLEdBQWYsZUFBZSxDQUFTO1FBUC9DLHFCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFeEMsWUFBTyxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO0lBTXBELENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLEtBQVk7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxRQUF5QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7O0lBRUQsMkJBQTJCLENBQUMsTUFBNEI7UUFDdEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7Ozs7SUFHRCxlQUFlLENBQUMsY0FBOEI7UUFDNUMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Ozs7OztJQUdELG9CQUFvQixDQUFDLFNBQXlCO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Ozs7SUFFRCxpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUM7SUFDaEMsQ0FBQzs7OztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDOzs7O0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQzs7OztJQUVELFNBQVM7UUFDUCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjs7Ozs7O0lBL0NDLDZDQUFnRDs7Ozs7SUFFaEQsb0NBQW9EOzs7OztJQUNwRCwrQ0FBbUM7O0lBRW5DLHVDQUFzQzs7SUFFaEIsNENBQWlDOztBQTBDekQsV0FBaUIsaUJBQWlCO0lBRWhDLE1BQU0sUUFBUyxTQUFRLGlCQUFpQjs7OztRQUd0QyxZQUFZLFdBQW9CO1lBQzlCLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUhaLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFJM0IsQ0FBQztLQUNGOzs7UUFMQyw4QkFBMkI7O0lBTzdCLE1BQU0sUUFBUyxTQUFRLGlCQUFpQjs7OztRQUd0QyxZQUFZLEtBQVk7WUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBSE4sZUFBVSxHQUFHLEtBQUssQ0FBQztZQUkxQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7S0FDRjs7O1FBTkMsOEJBQTRCOzs7Ozs7SUFROUIsU0FBZ0IsY0FBYyxDQUFDLEtBQVk7UUFDekMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRmUsZ0NBQWMsaUJBRTdCLENBQUE7Ozs7O0lBRUQsU0FBZ0IsY0FBYyxDQUFDLGNBQXVCO1FBQ3BELE9BQU8sSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUZlLGdDQUFjLGlCQUU3QixDQUFBO0FBR0gsQ0FBQyxFQTVCZ0IsaUJBQWlCLEtBQWpCLGlCQUFpQixRQTRCakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi92aXNpdCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG5cbiAgcHJpdmF0ZSBfYWxyZWFkeUFjY2VwdGVkOiBQbGFjZUNvbXBvbmVudFtdID0gW107XG5cbiAgcHJpdmF0ZSBfdmlzaXRzID0gbmV3IE1hcDxQbGFjZURlZmluaXRpb24sIFZpc2l0PigpO1xuICBwcml2YXRlIF9wb3BTdGF0ZVJldHVyblVybDogc3RyaW5nO1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzRXh0ZXJuYWw6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZpcnN0TmF2aWdhdGlvbjogYm9vbGVhbikge1xuICB9XG5cbiAgc3RvcmVWaXNpdCh2aXNpdDogVmlzaXQpIHtcbiAgICB0aGlzLl92aXNpdHMuc2V0KHZpc2l0LnBsYWNlRGVmaW5pdGlvbiwgdmlzaXQpO1xuICB9XG5cbiAgZ2V0VmlzaXRGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiB0aGlzLl92aXNpdHMuZ2V0KHBsYWNlRGVmKTtcbiAgfVxuXG4gIG1lcmdlUHJpdmF0ZVBsYWNlUGFyYW1ldGVycyhwYXJhbXM6IHsgW3A6IHN0cmluZ106IGFueSB9KTogTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYWxyZWFkeUFjY2VwdGVkKHBsYWNlQ29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hbHJlYWR5QWNjZXB0ZWQuaW5jbHVkZXMocGxhY2VDb21wb25lbnQpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcmVtZW1iZXJBY2NlcHRhbmNlT2YoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX2FscmVhZHlBY2NlcHRlZC5wdXNoKGNvbXBvbmVudCk7XG4gIH1cblxuICBzZXRQb3BzdGF0ZVJldHVybih1cmw6IHN0cmluZykge1xuICAgIHRoaXMuX3BvcFN0YXRlUmV0dXJuVXJsID0gdXJsO1xuICB9XG5cbiAgZ2V0IGlzUG9wU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fcG9wU3RhdGVSZXR1cm5Vcmw7XG4gIH1cblxuICBnZXQgcG9wU3RhdGVSZXR1cm5VcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcFN0YXRlUmV0dXJuVXJsO1xuICB9XG5cbiAgZ2V0VmlzaXRzKCk6IFZpc2l0W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0cy52YWx1ZXMoKSk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG5cbiAgY2xhc3MgRXh0ZXJuYWwgZXh0ZW5kcyBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgcmVhZG9ubHkgaXNFeHRlcm5hbCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpc0ZpcnN0VGltZTogYm9vbGVhbikge1xuICAgICAgc3VwZXIoaXNGaXJzdFRpbWUpO1xuICAgIH1cbiAgfVxuXG4gIGNsYXNzIEludGVybmFsIGV4dGVuZHMgTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJlYWRvbmx5IGlzRXh0ZXJuYWwgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHZpc2l0OiBWaXNpdCkge1xuICAgICAgc3VwZXIoZmFsc2UpO1xuICAgICAgdGhpcy5zdG9yZVZpc2l0KHZpc2l0KTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlSW50ZXJuYWwodmlzaXQ6IFZpc2l0KTogTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJldHVybiBuZXcgSW50ZXJuYWwodmlzaXQpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4dGVybmFsKGZpcnN0VGltZVJvdXRlOiBib29sZWFuKTogTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJldHVybiBuZXcgRXh0ZXJuYWwoZmlyc3RUaW1lUm91dGUpO1xuICB9XG5cblxufVxuXG4iXX0=
|
|
@@ -20,13 +20,13 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
20
20
|
super();
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* @param {?}
|
|
23
|
+
* @param {?} visit
|
|
24
24
|
* @return {?}
|
|
25
25
|
*/
|
|
26
|
-
initialiseBindings(
|
|
27
|
-
assert.isNil(this.
|
|
28
|
-
this.
|
|
29
|
-
this.placeDefinition.
|
|
26
|
+
initialiseBindings(visit) {
|
|
27
|
+
assert.isNil(this.visit);
|
|
28
|
+
this.visit = visit;
|
|
29
|
+
this.placeDefinition.getVisitParameterDefs().forEach((/**
|
|
30
30
|
* @param {?} parameterDef
|
|
31
31
|
* @return {?}
|
|
32
32
|
*/
|
|
@@ -44,21 +44,25 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
44
44
|
/** @type {?} */
|
|
45
45
|
const model = (/** @type {?} */ (this[parameterDef.propertyName]));
|
|
46
46
|
// this.txo.observe(parameterDef.propertyName, model);
|
|
47
|
-
this.registerDisposable(new Binding(this.
|
|
47
|
+
this.registerDisposable(new Binding(this.visit, model, {
|
|
48
48
|
/**
|
|
49
|
-
* @param {?}
|
|
49
|
+
* @param {?} visit
|
|
50
50
|
* @return {?}
|
|
51
51
|
*/
|
|
52
|
-
toRight(
|
|
53
|
-
|
|
52
|
+
toRight(visit) {
|
|
53
|
+
/** @type {?} */
|
|
54
|
+
const value = visit.getParameter(parameterDef.name);
|
|
55
|
+
// console.log('push to component', {name:parameterDef.name, value, visit});
|
|
56
|
+
return value;
|
|
54
57
|
},
|
|
55
58
|
/**
|
|
56
59
|
* @param {?} value
|
|
57
|
-
* @param {?=}
|
|
60
|
+
* @param {?=} currentVisit
|
|
58
61
|
* @return {?}
|
|
59
62
|
*/
|
|
60
|
-
toLeft(value,
|
|
61
|
-
|
|
63
|
+
toLeft(value, currentVisit) {
|
|
64
|
+
console.log('push to route', { name: parameterDef.name, value, currentVisit });
|
|
65
|
+
return currentVisit.replace(parameterDef, value);
|
|
62
66
|
}
|
|
63
67
|
}));
|
|
64
68
|
}
|
|
@@ -100,7 +104,7 @@ if (false) {
|
|
|
100
104
|
* @type {?}
|
|
101
105
|
* @private
|
|
102
106
|
*/
|
|
103
|
-
PlaceComponent.prototype.
|
|
107
|
+
PlaceComponent.prototype.visit;
|
|
104
108
|
}
|
|
105
109
|
(function (PlaceComponent) {
|
|
106
110
|
/**
|
|
@@ -137,4 +141,4 @@ if (false) {
|
|
|
137
141
|
}
|
|
138
142
|
PlaceComponent.injectDefinition = injectDefinition;
|
|
139
143
|
})(PlaceComponent || (PlaceComponent = {}));
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFtQyxJQUFJLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xFLE9BQU8sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFLckQsTUFBTSxPQUFPLHdCQUF3QixHQUFHLDBCQUEwQjs7O0FBRWxFLE1BQU0sT0FBTyx3QkFBd0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUM7QUFFeEUsTUFBTSxPQUFPLGNBQWUsU0FBUSxtQkFBbUI7SUFJckQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7Ozs7O0lBRU0sa0JBQWtCLENBQUMsS0FBd0I7UUFDaEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE9BQU87Ozs7UUFBQyxZQUFZLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7OztJQUVPLGNBQWMsQ0FBTyxZQUF1Qzs7Y0FDNUQsS0FBSyxHQUFHLG1CQUFBLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQXVCO1FBQ3BFLHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7Ozs7O1lBQ3JELE9BQU8sQ0FBQyxLQUFZOztzQkFDWixLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNuRCw0RUFBNEU7Z0JBQzVFLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQzs7Ozs7O1lBQ0QsTUFBTSxDQUFDLEtBQVEsRUFBRSxZQUFvQjtnQkFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsRUFBQyxJQUFJLEVBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQztnQkFDNUUsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCxDQUFDO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOzs7O0lBR0QsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sY0FBYyxDQUFDLGFBQWEsQ0FBQyxtQkFBQSxtQkFBQSxJQUFJLENBQUMsV0FBVyxFQUFPLEVBQWlDLENBQUMsQ0FBQztJQUNoRyxDQUFDOzs7O0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUM7SUFDN0QsQ0FBQzs7OztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7SUFFRCxZQUFZO0lBQ1osQ0FBQztDQUVGO0FBZkM7SUFEQyxPQUFPLEVBQUU7c0NBQ2EsZUFBZTs7cURBRXJDOzs7Ozs7SUFqQ0QsK0JBQWlDOztBQWdEbkMsV0FBaUIsY0FBYzs7Ozs7SUFFN0IsU0FBZ0IsMkJBQTJCLENBQUMsTUFBVztRQUNyRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBQSxNQUFNLEVBQXNCLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUZlLDBDQUEyQiw4QkFFMUMsQ0FBQTs7Ozs7SUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFvQztRQUNyRSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUZlLGlDQUFrQixxQkFFakMsQ0FBQTs7Ozs7SUFFRCxTQUFnQixhQUFhLENBQUMsS0FBb0M7UUFDaEUsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFGZSw0QkFBYSxnQkFFNUIsQ0FBQTs7Ozs7O0lBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBb0MsRUFBRSxVQUEyQjtRQUNoRyxPQUFPLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRmUsK0JBQWdCLG1CQUUvQixDQUFBO0FBRUgsQ0FBQyxFQWxCZ0IsY0FBYyxLQUFkLGNBQWMsUUFrQjlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0LCBCaW5kaW5nLCBDb25zdHJ1Y3RhYmxlLCBJTXV0YWJsZUhhc1ZhbHVlLCBsYW5nLCBWYWx1ZU1vZGVsIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgS2xhc3MgfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3InO1xuaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlRGVmaW5pdGlvbiB9IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4vdmlzaXQnO1xuXG4vLyBSQUtFOiBtYWtpbmcgdGhpcyBTeW1ib2woLi4uKSBicm9rZSB0aGluZ3MuXG5leHBvcnQgY29uc3QgREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZID0gJ1BMQUNFX0RFRklOSVRJT05fT1BUSU9OUyc7XG4vLyB0aGlzIG9uZSBzZWVtcyBvay5cbmV4cG9ydCBjb25zdCBST1VURV9QQVJBTUVURVJfTElTVF9LRVkgPSBTeW1ib2woJ3BsYWNlOnJvdXRlOnBhcmFtZXRlcnMnKTtcblxuZXhwb3J0IGNsYXNzIFBsYWNlQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSB2aXNpdDogVmFsdWVNb2RlbDxWaXNpdD47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXNlQmluZGluZ3ModmlzaXQ6IFZhbHVlTW9kZWw8VmlzaXQ+KSB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMudmlzaXQpO1xuICAgIHRoaXMudmlzaXQgPSB2aXNpdDtcbiAgICB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRWaXNpdFBhcmFtZXRlckRlZnMoKS5mb3JFYWNoKHBhcmFtZXRlckRlZiA9PiB7XG4gICAgICB0aGlzLmluc3RhbGxCaW5kaW5nKHBhcmFtZXRlckRlZik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxCaW5kaW5nPFQsIFM+KHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBTPikge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpc1twYXJhbWV0ZXJEZWYucHJvcGVydHlOYW1lXSBhcyBJTXV0YWJsZUhhc1ZhbHVlPFM+O1xuICAgIC8vIHRoaXMudHhvLm9ic2VydmUocGFyYW1ldGVyRGVmLnByb3BlcnR5TmFtZSwgbW9kZWwpO1xuICAgIHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBCaW5kaW5nKHRoaXMudmlzaXQsIG1vZGVsLCB7XG4gICAgICB0b1JpZ2h0KHZpc2l0OiBWaXNpdCk6IFMge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlcihwYXJhbWV0ZXJEZWYubmFtZSk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdwdXNoIHRvIGNvbXBvbmVudCcsIHtuYW1lOnBhcmFtZXRlckRlZi5uYW1lLCB2YWx1ZSwgdmlzaXR9KTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICAgIHRvTGVmdCh2YWx1ZTogUywgY3VycmVudFZpc2l0PzogVmlzaXQpOiBWaXNpdCB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdwdXNoIHRvIHJvdXRlJywge25hbWU6cGFyYW1ldGVyRGVmLm5hbWUsIHZhbHVlLCBjdXJyZW50VmlzaXR9KTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRWaXNpdC5yZXBsYWNlKHBhcmFtZXRlckRlZiwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0IHBsYWNlRGVmaW5pdGlvbigpOiBQbGFjZURlZmluaXRpb24ge1xuICAgIHJldHVybiBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHRoaXMuY29uc3RydWN0b3IgYXMgYW55IGFzIENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTtcbiAgfVxuXG4gIGdldCBjaGlsZFBsYWNlcygpOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PltdIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZURlZmluaXRpb24uY2hpbGRyZW4ubWFwKGQgPT4gZC5jb21wb25lbnQpO1xuICB9XG5cbiAgY2FuRGVhY3RpdmF0ZSgpOiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBvblBsYWNlUmVhZHkoKSB7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlQ29tcG9uZW50IHtcblxuICBleHBvcnQgZnVuY3Rpb24gaXNQbGFjZUNvbXBvbmVudENvbnN0cnVjdG9yKHRhcmdldDogYW55KTogdGFyZ2V0IGlzIENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+IHtcbiAgICByZXR1cm4gbGFuZy5jb25zdHJ1Y3RvckNoYWluKHRhcmdldCBhcyBDb25zdHJ1Y3RhYmxlPGFueT4pLmluY2x1ZGVzKFBsYWNlQ29tcG9uZW50KTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZVBhcmFtZXRlcnMoa2xhc3M6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10ge1xuICAgIHJldHVybiBLbGFzcy5nZXQoa2xhc3MpLmdldE1ldGFkYXRhTGlzdChST1VURV9QQVJBTUVURVJfTElTVF9LRVkpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERlZmluaXRpb24oa2xhc3M6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogUGxhY2VEZWZpbml0aW9uIHtcbiAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShERUZJTklUSU9OX01FVEFfREFUQV9LRVksIGtsYXNzKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpbmplY3REZWZpbml0aW9uKGtsYXNzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiwgZGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShERUZJTklUSU9OX01FVEFfREFUQV9LRVksIGRlZmluaXRpb24sIGtsYXNzKTtcbiAgfVxuXG59XG4iXX0=
|