@coolon/angular-ui-powerups 0.0.98 → 0.0.101
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 +1351 -1109
- 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 +19 -19
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +19 -19
- package/esm2015/index.js +2 -2
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +19 -5
- package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +13 -3
- package/esm2015/lib/interaction/index.js +5 -4
- package/esm2015/lib/interaction/interaction-context.js +7 -53
- package/esm2015/lib/interaction/interaction.module.js +3 -3
- package/esm2015/lib/interaction/services/interaction.service.js +228 -0
- package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js +62 -0
- package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js +145 -0
- package/esm2015/lib/interaction/services/modal-interaction-context.factory.js +17 -0
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +3 -3
- package/esm2015/lib/place/guards/abstract-place.guard.js +13 -12
- package/esm2015/lib/place/guards/interaction.guard.js +27 -19
- package/esm2015/lib/place/guards/navigation-state.js +309 -246
- package/esm2015/lib/place/place-router.js +160 -115
- package/esm2015/lib/place/url-snapshot.js +91 -19
- package/esm2015/public_api.js +2 -2
- package/esm5/coolon-angular-ui-powerups.js +19 -19
- package/esm5/index.js +2 -2
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +23 -14
- package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +10 -3
- package/esm5/lib/interaction/index.js +5 -4
- package/esm5/lib/interaction/interaction-context.js +8 -61
- package/esm5/lib/interaction/interaction.module.js +3 -3
- package/esm5/lib/interaction/services/interaction.service.js +271 -0
- package/esm5/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js +65 -0
- package/esm5/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js +170 -0
- package/esm5/lib/interaction/services/modal-interaction-context.factory.js +27 -0
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +3 -3
- package/esm5/lib/place/guards/abstract-place.guard.js +15 -14
- package/esm5/lib/place/guards/interaction.guard.js +25 -17
- package/esm5/lib/place/guards/navigation-state.js +422 -292
- package/esm5/lib/place/place-router.js +182 -133
- package/esm5/lib/place/url-snapshot.js +105 -21
- package/esm5/public_api.js +2 -2
- package/fesm2015/coolon-angular-ui-powerups.js +1112 -918
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +1302 -1060
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +1 -0
- package/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.d.ts +3 -1
- package/lib/interaction/index.d.ts +4 -3
- package/lib/interaction/interaction-context.d.ts +2 -11
- package/lib/interaction/services/interaction.service.d.ts +46 -0
- package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +15 -0
- package/lib/interaction/services/{dialog-interaction-context.d.ts → mat-dialog-interaction/dialog-interaction-context.d.ts} +2 -2
- package/lib/interaction/services/modal-interaction-context.factory.d.ts +4 -0
- package/lib/place/guards/abstract-place.guard.d.ts +1 -1
- package/lib/place/guards/interaction.guard.d.ts +3 -3
- package/lib/place/guards/navigation-state.d.ts +65 -37
- package/lib/place/place-router.d.ts +15 -22
- package/lib/place/url-snapshot.d.ts +18 -6
- package/package.json +1 -1
- package/schematics/place-routes/templates/place-routes.ts.template +3 -3
- package/styles/styles.scss +1 -1
- package/esm2015/lib/interaction/services/dialog-interaction-context.js +0 -163
- package/esm2015/lib/interaction/services/dialog-interaction.service.js +0 -151
- package/esm2015/lib/interaction/services/modal-interaction.service.js +0 -109
- package/esm5/lib/interaction/services/dialog-interaction-context.js +0 -188
- package/esm5/lib/interaction/services/dialog-interaction.service.js +0 -179
- package/esm5/lib/interaction/services/modal-interaction.service.js +0 -153
- package/lib/interaction/services/dialog-interaction.service.d.ts +0 -24
- package/lib/interaction/services/modal-interaction.service.d.ts +0 -15
|
@@ -0,0 +1,228 @@
|
|
|
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 } from '@angular/core';
|
|
7
|
+
import { Dsl, GarbageCollector, lang, MutableListModel, MutableValueModel } from '@coolon/pectin';
|
|
8
|
+
import { assert } from '@coolon/typescript-utilities';
|
|
9
|
+
import { ModalInteractionContextFactory } from './modal-interaction-context.factory';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "./modal-interaction-context.factory";
|
|
12
|
+
/** @type {?} */
|
|
13
|
+
let inplaceMonitorCount = 0;
|
|
14
|
+
export class InteractionService {
|
|
15
|
+
/**
|
|
16
|
+
* @param {?} modelInteractionContextFactory
|
|
17
|
+
*/
|
|
18
|
+
constructor(modelInteractionContextFactory) {
|
|
19
|
+
this.modelInteractionContextFactory = modelInteractionContextFactory;
|
|
20
|
+
this.garbage = new GarbageCollector();
|
|
21
|
+
this.exclusiveContext = new MutableValueModel();
|
|
22
|
+
this._activeModalInteractionContextModel = new MutableValueModel();
|
|
23
|
+
this._activeInlineInteractionContextModel = new MutableValueModel();
|
|
24
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this.garbage);
|
|
25
|
+
this._activeInteractionContext = chain(this._activeModalInteractionContextModel)
|
|
26
|
+
.otherwise(this._activeInlineInteractionContextModel)
|
|
27
|
+
.pluck('interactionContext');
|
|
28
|
+
this.active = chain(this._activeInteractionContext).isNotNil();
|
|
29
|
+
this.modelInteractionActive = chain(this._activeModalInteractionContextModel).isNotNil();
|
|
30
|
+
this.inlineInteractionActive = chain(this._activeInlineInteractionContextModel).isNotNil();
|
|
31
|
+
// TODO: chain.concat(listOrValueModels) would be nice.
|
|
32
|
+
this.activeInteractionContextIds = chain(new MutableListModel())
|
|
33
|
+
.append(this._activeInlineInteractionContextModel)
|
|
34
|
+
.append(this._activeModalInteractionContextModel)
|
|
35
|
+
.rejectNil()
|
|
36
|
+
.pluck('id');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @return {?}
|
|
40
|
+
*/
|
|
41
|
+
isActive() {
|
|
42
|
+
return this.active.value;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @param {?} disposable
|
|
46
|
+
* @return {?}
|
|
47
|
+
*/
|
|
48
|
+
createModalInteractionContextFor(disposable) {
|
|
49
|
+
/** @type {?} */
|
|
50
|
+
const context = this.modelInteractionContextFactory.createInteractionContext();
|
|
51
|
+
disposable.registerDisposable(new InteractionService.Monitor('modal', context, this._activeModalInteractionContextModel, this.exclusiveContext));
|
|
52
|
+
return context;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @param {?} interactionContext
|
|
56
|
+
* @return {?}
|
|
57
|
+
*/
|
|
58
|
+
_registerInplaceInteractionContext(interactionContext) {
|
|
59
|
+
interactionContext.registerDisposable(new InteractionService.Monitor(`ip${++inplaceMonitorCount}`, interactionContext, this._activeInlineInteractionContextModel, this.exclusiveContext));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @return {?}
|
|
63
|
+
*/
|
|
64
|
+
getCurrentActivity() {
|
|
65
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
assert.isTruthy(this.isActive());
|
|
67
|
+
return this._activeInteractionContext.value.getCurrentActivity();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Creates an interaction context that will prevent any other contexts from starting an
|
|
72
|
+
* activity until it is disposed. This is intended for use by the router for passing
|
|
73
|
+
* to PlaceComponent.canDeactivate(interactionContext). This ensures components don't
|
|
74
|
+
* try and interact in a way that we can't track and synchronise with the browser back
|
|
75
|
+
* button.
|
|
76
|
+
* @return {?}
|
|
77
|
+
*/
|
|
78
|
+
_createExclusiveModalInteractionContext() {
|
|
79
|
+
this.exclusiveContext.value = this.modelInteractionContextFactory.createInteractionContext();
|
|
80
|
+
/** @type {?} */
|
|
81
|
+
const self = this;
|
|
82
|
+
this.exclusiveContext.value.registerDisposable({
|
|
83
|
+
/**
|
|
84
|
+
* @return {?}
|
|
85
|
+
*/
|
|
86
|
+
dispose() {
|
|
87
|
+
self.exclusiveContext.value = null;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
return this.exclusiveContext.value;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
InteractionService.decorators = [
|
|
94
|
+
{ type: Injectable, args: [{
|
|
95
|
+
providedIn: 'root'
|
|
96
|
+
},] }
|
|
97
|
+
];
|
|
98
|
+
/** @nocollapse */
|
|
99
|
+
InteractionService.ctorParameters = () => [
|
|
100
|
+
{ type: ModalInteractionContextFactory }
|
|
101
|
+
];
|
|
102
|
+
/** @nocollapse */ InteractionService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function InteractionService_Factory() { return new InteractionService(i0.ɵɵinject(i1.ModalInteractionContextFactory)); }, token: InteractionService, providedIn: "root" });
|
|
103
|
+
if (false) {
|
|
104
|
+
/**
|
|
105
|
+
* @type {?}
|
|
106
|
+
* @private
|
|
107
|
+
*/
|
|
108
|
+
InteractionService.prototype.garbage;
|
|
109
|
+
/** @type {?} */
|
|
110
|
+
InteractionService.prototype.active;
|
|
111
|
+
/**
|
|
112
|
+
* @type {?}
|
|
113
|
+
* @private
|
|
114
|
+
*/
|
|
115
|
+
InteractionService.prototype.exclusiveContext;
|
|
116
|
+
/**
|
|
117
|
+
* @type {?}
|
|
118
|
+
* @private
|
|
119
|
+
*/
|
|
120
|
+
InteractionService.prototype._activeModalInteractionContextModel;
|
|
121
|
+
/**
|
|
122
|
+
* @type {?}
|
|
123
|
+
* @private
|
|
124
|
+
*/
|
|
125
|
+
InteractionService.prototype._activeInlineInteractionContextModel;
|
|
126
|
+
/**
|
|
127
|
+
* @type {?}
|
|
128
|
+
* @private
|
|
129
|
+
*/
|
|
130
|
+
InteractionService.prototype._activeInteractionContext;
|
|
131
|
+
/** @type {?} */
|
|
132
|
+
InteractionService.prototype.activeInteractionContextIds;
|
|
133
|
+
/** @type {?} */
|
|
134
|
+
InteractionService.prototype.modelInteractionActive;
|
|
135
|
+
/** @type {?} */
|
|
136
|
+
InteractionService.prototype.inlineInteractionActive;
|
|
137
|
+
/** @type {?} */
|
|
138
|
+
InteractionService.prototype.modelInteractionContextFactory;
|
|
139
|
+
}
|
|
140
|
+
(function (InteractionService) {
|
|
141
|
+
/**
|
|
142
|
+
* @record
|
|
143
|
+
*/
|
|
144
|
+
function Callback() { }
|
|
145
|
+
InteractionService.Callback = Callback;
|
|
146
|
+
if (false) {
|
|
147
|
+
/**
|
|
148
|
+
* @param {?} monitor
|
|
149
|
+
* @return {?}
|
|
150
|
+
*/
|
|
151
|
+
Callback.prototype.onStarted = function (monitor) { };
|
|
152
|
+
/**
|
|
153
|
+
* @param {?} monitor
|
|
154
|
+
* @return {?}
|
|
155
|
+
*/
|
|
156
|
+
Callback.prototype.onFinished = function (monitor) { };
|
|
157
|
+
}
|
|
158
|
+
class Monitor extends GarbageCollector {
|
|
159
|
+
/**
|
|
160
|
+
* @param {?} id
|
|
161
|
+
* @param {?} interactionContext
|
|
162
|
+
* @param {?} currentActiveMonitor
|
|
163
|
+
* @param {?} exclusiveContext
|
|
164
|
+
*/
|
|
165
|
+
constructor(id, interactionContext, currentActiveMonitor, exclusiveContext) {
|
|
166
|
+
super();
|
|
167
|
+
this.id = id;
|
|
168
|
+
this.interactionContext = interactionContext;
|
|
169
|
+
this.currentActiveMonitor = currentActiveMonitor;
|
|
170
|
+
this.exclusiveContext = exclusiveContext;
|
|
171
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
172
|
+
when.valueOf(interactionContext.active).becomesTruthy((/**
|
|
173
|
+
* @return {?}
|
|
174
|
+
*/
|
|
175
|
+
() => this.onStarted()));
|
|
176
|
+
when.valueOf(interactionContext.active).becomesFalsey((/**
|
|
177
|
+
* @return {?}
|
|
178
|
+
*/
|
|
179
|
+
() => this.onFinished()));
|
|
180
|
+
interactionContext.registerDisposable(this);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* @protected
|
|
184
|
+
* @return {?}
|
|
185
|
+
*/
|
|
186
|
+
onStarted() {
|
|
187
|
+
this.assertCanStart();
|
|
188
|
+
this.currentActiveMonitor.value = this;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* @private
|
|
192
|
+
* @return {?}
|
|
193
|
+
*/
|
|
194
|
+
assertCanStart() {
|
|
195
|
+
assert.isFalsey(this.currentActiveMonitor.value);
|
|
196
|
+
if (this.exclusiveContext.value && this.interactionContext !== this.exclusiveContext.value) {
|
|
197
|
+
lang.illegalState('Interaction started while exclusive lock active. This is usually because you using a different context during place.canDeactivate(interactionContext)');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* @protected
|
|
202
|
+
* @return {?}
|
|
203
|
+
*/
|
|
204
|
+
onFinished() {
|
|
205
|
+
this.assertCurrentlyActive();
|
|
206
|
+
this.currentActiveMonitor.value = null;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* @private
|
|
210
|
+
* @return {?}
|
|
211
|
+
*/
|
|
212
|
+
assertCurrentlyActive() {
|
|
213
|
+
assert.isTruthy(this.currentActiveMonitor.value === this);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
InteractionService.Monitor = Monitor;
|
|
217
|
+
if (false) {
|
|
218
|
+
/** @type {?} */
|
|
219
|
+
Monitor.prototype.id;
|
|
220
|
+
/** @type {?} */
|
|
221
|
+
Monitor.prototype.interactionContext;
|
|
222
|
+
/** @type {?} */
|
|
223
|
+
Monitor.prototype.currentActiveMonitor;
|
|
224
|
+
/** @type {?} */
|
|
225
|
+
Monitor.prototype.exclusiveContext;
|
|
226
|
+
}
|
|
227
|
+
})(InteractionService || (InteractionService = {}));
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsR0FBRyxFQUNILGdCQUFnQixFQUNoQixJQUFJLEVBRUosZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUl0RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7OztJQUVqRixtQkFBbUIsR0FBRyxDQUFDO0FBSzNCLE1BQU0sT0FBTyxrQkFBa0I7Ozs7SUFjN0IsWUFBcUIsOEJBQThEO1FBQTlELG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFabEUsWUFBTyxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUVqQyxxQkFBZ0IsR0FBRyxJQUFJLGlCQUFpQixFQUFzQixDQUFDO1FBRS9ELHdDQUFtQyxHQUFHLElBQUksaUJBQWlCLEVBQThCLENBQUM7UUFDMUYseUNBQW9DLEdBQUcsSUFBSSxpQkFBaUIsRUFBOEIsQ0FBQztjQVFwRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUVoRyxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQzthQUM3RSxTQUFTLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxDQUFDO2FBQ3BELEtB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LHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDekMsQ0FBQzs7Ozs7UUFFTyxxQkFBcUI7WUFDM0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQzVELENBQUM7S0FDRjtJQWhDWSwwQkFBTyxVQWdDbkIsQ0FBQTs7O1FBL0JhLHFCQUFtQjs7UUFDbkIscUNBQStDOztRQUMvQyx1Q0FBeUQ7O1FBQ3pELG1DQUF5RDs7QUE2QnpFLENBQUMsRUF6Q2dCLGtCQUFrQixLQUFsQixrQkFBa0IsUUF5Q2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgRGlzcG9zYWJsZSxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBsYW5nLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi4vYWN0aXZpdHknO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5cbmltcG9ydCB7IE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeSB9IGZyb20gJy4vbW9kYWwtaW50ZXJhY3Rpb24tY29udGV4dC5mYWN0b3J5JztcblxubGV0IGlucGxhY2VNb25pdG9yQ291bnQgPSAwO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvblNlcnZpY2UgIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGdhcmJhZ2UgPSBuZXcgR2FyYmFnZUNvbGxlY3RvcigpO1xuICByZWFkb25seSBhY3RpdmU6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHByaXZhdGUgcmVhZG9ubHkgZXhjbHVzaXZlQ29udGV4dCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxJbnRlcmFjdGlvblNlcnZpY2UuTW9uaXRvcj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlSW5saW5lSW50ZXJhY3Rpb25Db250ZXh0TW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8SW50ZXJhY3Rpb25TZXJ2aWNlLk1vbml0b3I+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZUludGVyYWN0aW9uQ29udGV4dDogVmFsdWVNb2RlbENoYWluPEludGVyYWN0aW9uQ29udGV4dD47XG5cbiAgcmVhZG9ubHkgYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzOiBMaXN0TW9kZWxDaGFpbjxzdHJpbmc+O1xuICByZWFkb25seSBtb2RlbEludGVyYWN0aW9uQWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSBpbmxpbmVJbnRlcmFjdGlvbkFjdGl2ZTogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBtb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3Rvcnk6IE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeSkge1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcy5nYXJiYWdlKTtcblxuICAgIHRoaXMuX2FjdGl2ZUludGVyYWN0aW9uQ29udGV4dCA9IGNoYWluKHRoaXMuX2FjdGl2ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0TW9kZWwpXG4gICAgICAub3RoZXJ3aXNlKHRoaXMuX2FjdGl2ZUlubGluZUludGVyYWN0aW9uQ29udGV4dE1vZGVsKVxuICAgICAgLnBsdWNrKCdpbnRlcmFjdGlvbkNvbnRleHQnKTtcblxuICAgIHRoaXMuYWN0aXZlID0gY2hhaW4odGhpcy5fYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0KS5pc05vdE5pbCgpO1xuICAgIHRoaXMubW9kZWxJbnRlcmFjdGlvbkFjdGl2ZSA9IGNoYWluKHRoaXMuX2FjdGl2ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0TW9kZWwpLmlzTm90TmlsKCk7XG4gICAgdGhpcy5pbmxpbmVJbnRlcmFjdGlvbkFjdGl2ZSA9IGNoYWluKHRoaXMuX2FjdGl2ZUlubGluZUludGVyYWN0aW9uQ29udGV4dE1vZGVsKS5pc05vdE5pbCgpO1xuXG4gICAgLy8gVE9ETzogY2hhaW4uY29uY2F0KGxpc3RPclZhbHVlTW9kZWxzKSB3b3VsZCBiZSBuaWNlLlxuICAgIHRoaXMuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzID0gY2hhaW4obmV3IE11dGFibGVMaXN0TW9kZWw8SW50ZXJhY3Rpb25TZXJ2aWNlLk1vbml0b3I+KCkpXG4gICAgICAuYXBwZW5kKHRoaXMuX2FjdGl2ZUlubGluZUludGVyYWN0aW9uQ29udGV4dE1vZGVsKVxuICAgICAgLmFwcGVuZCh0aGlzLl9hY3RpdmVNb2RhbEludGVyYWN0aW9uQ29udGV4dE1vZGVsKVxuICAgICAgLnJlamVjdE5pbCgpXG4gICAgICAucGx1Y2soJ2lkJyk7XG5cbiAgfVxuXG4gIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZS52YWx1ZTtcbiAgfVxuXG4gIGNyZWF0ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0Rm9yKGRpc3Bvc2FibGU6IERpc3Bvc2FibGUuQ29sbGVjdG9yKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5tb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3RvcnkuY3JlYXRlSW50ZXJhY3Rpb25Db250ZXh0KCk7XG4gICAgZGlzcG9zYWJsZS5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEludGVyYWN0aW9uU2VydmljZS5Nb25pdG9yKCdtb2RhbCcsIGNvbnRleHQsIHRoaXMuX2FjdGl2ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0TW9kZWwsIHRoaXMuZXhjbHVzaXZlQ29udGV4dCkpO1xuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG5cbiAgX3JlZ2lzdGVySW5wbGFjZUludGVyYWN0aW9uQ29udGV4dChpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIGludGVyYWN0aW9uQ29udGV4dC5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEludGVyYWN0aW9uU2VydmljZS5Nb25pdG9yKGBpcCR7KytpbnBsYWNlTW9uaXRvckNvdW50fWAsIGludGVyYWN0aW9uQ29udGV4dCwgdGhpcy5fYWN0aXZlSW5saW5lSW50ZXJhY3Rpb25Db250ZXh0TW9kZWwsIHRoaXMuZXhjbHVzaXZlQ29udGV4dCkpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q3VycmVudEFjdGl2aXR5KCk6IFByb21pc2U8QWN0aXZpdHk8YW55LCBhbnksIGFueT4+IHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0FjdGl2ZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0LnZhbHVlLmdldEN1cnJlbnRBY3Rpdml0eSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW50ZXJhY3Rpb24gY29udGV4dCB0aGF0IHdpbGwgcHJldmVudCBhbnkgb3RoZXIgY29udGV4dHMgZnJvbSBzdGFydGluZyBhblxuICAgKiBhY3Rpdml0eSB1bnRpbCBpdCBpcyBkaXNwb3NlZC4gIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSB0aGUgcm91dGVyIGZvciBwYXNzaW5nXG4gICAqIHRvIFBsYWNlQ29tcG9uZW50LmNhbkRlYWN0aXZhdGUoaW50ZXJhY3Rpb25Db250ZXh0KS4gIFRoaXMgZW5zdXJlcyBjb21wb25lbnRzIGRvbid0XG4gICAqIHRyeSBhbmQgaW50ZXJhY3QgaW4gYSB3YXkgdGhhdCB3ZSBjYW4ndCB0cmFjayBhbmQgc3luY2hyb25pc2Ugd2l0aCB0aGUgYnJvd3NlciBiYWNrXG4gICAqIGJ1dHRvbi5cbiAgICovXG4gIF9jcmVhdGVFeGNsdXNpdmVNb2RhbEludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHRoaXMuZXhjbHVzaXZlQ29udGV4dC52YWx1ZSA9IHRoaXMubW9kZWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5LmNyZWF0ZUludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuZXhjbHVzaXZlQ29udGV4dC52YWx1ZS5yZWdpc3RlckRpc3Bvc2FibGUoe1xuICAgICAgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICAgICAgc2VsZi5leGNsdXNpdmVDb250ZXh0LnZhbHVlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5leGNsdXNpdmVDb250ZXh0LnZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgSW50ZXJhY3Rpb25TZXJ2aWNlIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIENhbGxiYWNrIHtcbiAgICBvblN0YXJ0ZWQobW9uaXRvcjogTW9uaXRvcik7XG5cbiAgICBvbkZpbmlzaGVkKG1vbml0b3I6IE1vbml0b3IpO1xuICB9XG5cbiAgZXhwb3J0IGNsYXNzIE1vbml0b3IgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBpZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGN1cnJlbnRBY3RpdmVNb25pdG9yOiBNdXRhYmxlVmFsdWVNb2RlbDxNb25pdG9yPixcbiAgICAgICAgICAgICAgICByZWFkb25seSBleGNsdXNpdmVDb250ZXh0OiBWYWx1ZU1vZGVsPEludGVyYWN0aW9uQ29udGV4dD4pIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgICAgd2hlbi52YWx1ZU9mKGludGVyYWN0aW9uQ29udGV4dC5hY3RpdmUpLmJlY29tZXNUcnV0aHkoKCkgPT4gdGhpcy5vblN0YXJ0ZWQoKSk7XG4gICAgICB3aGVuLnZhbHVlT2YoaW50ZXJhY3Rpb25Db250ZXh0LmFjdGl2ZSkuYmVjb21lc0ZhbHNleSgoKSA9PiB0aGlzLm9uRmluaXNoZWQoKSk7XG4gICAgICBpbnRlcmFjdGlvbkNvbnRleHQucmVnaXN0ZXJEaXNwb3NhYmxlKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblN0YXJ0ZWQoKSB7XG4gICAgICB0aGlzLmFzc2VydENhblN0YXJ0KCk7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVNb25pdG9yLnZhbHVlID0gdGhpcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzc2VydENhblN0YXJ0KCkge1xuICAgICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMuY3VycmVudEFjdGl2ZU1vbml0b3IudmFsdWUpO1xuICAgICAgaWYgKHRoaXMuZXhjbHVzaXZlQ29udGV4dC52YWx1ZSAmJiB0aGlzLmludGVyYWN0aW9uQ29udGV4dCAhPT0gdGhpcy5leGNsdXNpdmVDb250ZXh0LnZhbHVlKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKCdJbnRlcmFjdGlvbiBzdGFydGVkIHdoaWxlIGV4Y2x1c2l2ZSBsb2NrIGFjdGl2ZS4gIFRoaXMgaXMgdXN1YWxseSBiZWNhdXNlIHlvdSB1c2luZyBhIGRpZmZlcmVudCBjb250ZXh0IGR1cmluZyBwbGFjZS5jYW5EZWFjdGl2YXRlKGludGVyYWN0aW9uQ29udGV4dCknKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25GaW5pc2hlZCgpIHtcbiAgICAgIHRoaXMuYXNzZXJ0Q3VycmVudGx5QWN0aXZlKCk7XG4gICAgICB0aGlzLmN1cnJlbnRBY3RpdmVNb25pdG9yLnZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzc2VydEN1cnJlbnRseUFjdGl2ZSgpIHtcbiAgICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmN1cnJlbnRBY3RpdmVNb25pdG9yLnZhbHVlID09PSB0aGlzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
|
|
6
|
+
import { MatDialog } from '@angular/material';
|
|
7
|
+
import { MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig } from '@angular/material/dialog';
|
|
8
|
+
import { assert } from '@coolon/typescript-utilities';
|
|
9
|
+
import { ModalInteractionContextFactory } from '../modal-interaction-context.factory';
|
|
10
|
+
import { DialogInteractionContext } from './dialog-interaction-context';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/material/dialog";
|
|
13
|
+
/** @type {?} */
|
|
14
|
+
export const DIALOG_INTERACTION_SERVICE_DEFAULTS = new InjectionToken('DIALOG_INTERACTION_SERVICE_DEFAULTS');
|
|
15
|
+
export class DialogInteractionContextFactory extends ModalInteractionContextFactory {
|
|
16
|
+
/**
|
|
17
|
+
* @param {?} dialogService
|
|
18
|
+
* @param {?} dialogServiceDefaults
|
|
19
|
+
* @param {?} matDialogDefaultConfig
|
|
20
|
+
*/
|
|
21
|
+
constructor(dialogService, dialogServiceDefaults, matDialogDefaultConfig) {
|
|
22
|
+
super();
|
|
23
|
+
this.dialogService = dialogService;
|
|
24
|
+
this.dialogServiceDefaults = dialogServiceDefaults;
|
|
25
|
+
this.matDialogDefaultConfig = matDialogDefaultConfig;
|
|
26
|
+
assert.notNil(dialogService);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @return {?}
|
|
30
|
+
*/
|
|
31
|
+
createInteractionContext() {
|
|
32
|
+
/** @type {?} */
|
|
33
|
+
const config = Object.assign({ autoFocus: false, hasBackdrop: true, closeOnNavigation: false }, this.matDialogDefaultConfig, this.dialogServiceDefaults);
|
|
34
|
+
return new DialogInteractionContext(this.dialogService, config);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
DialogInteractionContextFactory.decorators = [
|
|
38
|
+
{ type: Injectable, args: [{
|
|
39
|
+
providedIn: 'root'
|
|
40
|
+
},] }
|
|
41
|
+
];
|
|
42
|
+
/** @nocollapse */
|
|
43
|
+
DialogInteractionContextFactory.ctorParameters = () => [
|
|
44
|
+
{ type: MatDialog },
|
|
45
|
+
{ type: MatDialogConfig, decorators: [{ type: Optional }, { type: Inject, args: [DIALOG_INTERACTION_SERVICE_DEFAULTS,] }] },
|
|
46
|
+
{ type: MatDialogConfig, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DIALOG_DEFAULT_OPTIONS,] }] }
|
|
47
|
+
];
|
|
48
|
+
/** @nocollapse */ DialogInteractionContextFactory.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DialogInteractionContextFactory_Factory() { return new DialogInteractionContextFactory(i0.ɵɵinject(i1.MatDialog), i0.ɵɵinject(DIALOG_INTERACTION_SERVICE_DEFAULTS, 8), i0.ɵɵinject(i1.MAT_DIALOG_DEFAULT_OPTIONS, 8)); }, token: DialogInteractionContextFactory, providedIn: "root" });
|
|
49
|
+
if (false) {
|
|
50
|
+
/** @type {?} */
|
|
51
|
+
DialogInteractionContextFactory.prototype.active;
|
|
52
|
+
/**
|
|
53
|
+
* @type {?}
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
DialogInteractionContextFactory.prototype.dialogService;
|
|
57
|
+
/** @type {?} */
|
|
58
|
+
DialogInteractionContextFactory.prototype.dialogServiceDefaults;
|
|
59
|
+
/** @type {?} */
|
|
60
|
+
DialogInteractionContextFactory.prototype.matDialogDefaultConfig;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9tYXQtZGlhbG9nLWludGVyYWN0aW9uL2RpYWxvZy1pbnRlcmFjdGlvbi1jb250ZXh0LWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFFeEUsTUFBTSxPQUFPLG1DQUFtQyxHQUFHLElBQUksY0FBYyxDQUF1QixxQ0FBcUMsQ0FBQztBQUtsSSxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsOEJBQThCOzs7Ozs7SUFJakYsWUFBNkIsYUFBd0IsRUFDeUIscUJBQTJDLEVBQ3BELHNCQUE0QztRQUUvRyxLQUFLLEVBQUUsQ0FBQztRQUptQixrQkFBYSxHQUFiLGFBQWEsQ0FBVztRQUN5QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQ3BELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBc0I7UUFHL0csTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7O0lBRUQsd0JBQXdCOztjQUNoQixNQUFNLG1CQUNWLFNBQVMsRUFBRSxLQUFLLEVBQ2hCLFdBQVcsRUFBRSxJQUFJLEVBQ2pCLGlCQUFpQixFQUFFLEtBQUssSUFDckIsSUFBSSxDQUFDLHNCQUFzQixFQUMzQixJQUFJLENBQUMscUJBQXFCLENBQzlCO1FBRUQsT0FBTyxJQUFJLHdCQUF3QixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7O1lBekJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVpRLFNBQVM7WUFDbUIsZUFBZSx1QkFpQnJDLFFBQVEsWUFBSSxNQUFNLFNBQUMsbUNBQW1DO1lBakJoQyxlQUFlLHVCQWtCckMsUUFBUSxZQUFJLE1BQU0sU0FBQywwQkFBMEI7Ozs7O0lBSjFELGlEQUF3Qzs7Ozs7SUFFNUIsd0RBQXlDOztJQUN6QyxnRUFBNkc7O0lBQzdHLGlFQUFxRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RFRkFVTFRfT1BUSU9OUywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4gfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5IH0gZnJvbSAnLi4vbW9kYWwtaW50ZXJhY3Rpb24tY29udGV4dC5mYWN0b3J5JztcbmltcG9ydCB7IERpYWxvZ0ludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4vZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQnO1xuXG5leHBvcnQgY29uc3QgRElBTE9HX0lOVEVSQUNUSU9OX1NFUlZJQ0VfREVGQVVMVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWF0RGlhbG9nQ29uZmlnPGFueT4+KCdESUFMT0dfSU5URVJBQ1RJT05fU0VSVklDRV9ERUZBVUxUUycpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5IGV4dGVuZHMgTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5IHtcblxuICByZWFkb25seSBhY3RpdmU6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBNYXREaWFsb2csXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRElBTE9HX0lOVEVSQUNUSU9OX1NFUlZJQ0VfREVGQVVMVFMpIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2VEZWZhdWx0czogTWF0RGlhbG9nQ29uZmlnPGFueT4sXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19ERUZBVUxUX09QVElPTlMpIHJlYWRvbmx5IG1hdERpYWxvZ0RlZmF1bHRDb25maWc6IE1hdERpYWxvZ0NvbmZpZzxhbnk+XG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgYXNzZXJ0Lm5vdE5pbChkaWFsb2dTZXJ2aWNlKTtcbiAgfVxuXG4gIGNyZWF0ZUludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIGNvbnN0IGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IGZhbHNlLFxuICAgICAgLi4udGhpcy5tYXREaWFsb2dEZWZhdWx0Q29uZmlnLFxuICAgICAgLi4udGhpcy5kaWFsb2dTZXJ2aWNlRGVmYXVsdHNcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBEaWFsb2dJbnRlcmFjdGlvbkNvbnRleHQodGhpcy5kaWFsb2dTZXJ2aWNlLCBjb25maWcpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { lang, MutableValueModel } from '@coolon/pectin';
|
|
6
|
+
import { assert } from '@coolon/typescript-utilities';
|
|
7
|
+
import { ActivityContainerComponent } from '../../components/activity-container/activity-container.component';
|
|
8
|
+
import { InteractionContextBase } from '../../interaction-context-base';
|
|
9
|
+
export class DialogInteractionContext extends InteractionContextBase {
|
|
10
|
+
/**
|
|
11
|
+
* @param {?} dialogService
|
|
12
|
+
* @param {?} config
|
|
13
|
+
*/
|
|
14
|
+
constructor(dialogService, config) {
|
|
15
|
+
super();
|
|
16
|
+
this.dialogService = dialogService;
|
|
17
|
+
this.config = config;
|
|
18
|
+
this._activeModel = new MutableValueModel(false);
|
|
19
|
+
assert.notNil(dialogService);
|
|
20
|
+
this.onDispose((/**
|
|
21
|
+
* @return {?}
|
|
22
|
+
*/
|
|
23
|
+
() => {
|
|
24
|
+
if (this.isActive()) {
|
|
25
|
+
lang.illegalState('Dispose called while active.');
|
|
26
|
+
}
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @return {?}
|
|
31
|
+
*/
|
|
32
|
+
get active() {
|
|
33
|
+
return this._activeModel.readonly;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @protected
|
|
37
|
+
* @template D, R, E
|
|
38
|
+
* @param {?} activityType
|
|
39
|
+
* @param {?} data
|
|
40
|
+
* @param {?=} disableClose
|
|
41
|
+
* @return {?}
|
|
42
|
+
*/
|
|
43
|
+
_startActivity(activityType, data, disableClose = true) {
|
|
44
|
+
if (this.isActive()) {
|
|
45
|
+
lang.illegalState(`Activity already in progress: ${this.activityList.value.map((/**
|
|
46
|
+
* @param {?} a
|
|
47
|
+
* @return {?}
|
|
48
|
+
*/
|
|
49
|
+
a => a.constructor.name)).join(', ')}`);
|
|
50
|
+
}
|
|
51
|
+
this._activeModel.value = true;
|
|
52
|
+
/** @type {?} */
|
|
53
|
+
const config = Object.assign({}, this.config, {
|
|
54
|
+
data,
|
|
55
|
+
disableClose,
|
|
56
|
+
panelClass: 'dialog-interaction-context'
|
|
57
|
+
});
|
|
58
|
+
/** @type {?} */
|
|
59
|
+
const self = this;
|
|
60
|
+
/** @type {?} */
|
|
61
|
+
const matDialogRef = (/** @type {?} */ (this.dialogService.open(ActivityContainerComponent, config)));
|
|
62
|
+
return new Promise((/**
|
|
63
|
+
* @param {?} resolve
|
|
64
|
+
* @param {?} reject
|
|
65
|
+
* @return {?}
|
|
66
|
+
*/
|
|
67
|
+
(resolve, reject) => {
|
|
68
|
+
/** @type {?} */
|
|
69
|
+
const activityContainer = matDialogRef.componentInstance;
|
|
70
|
+
self.safelyUpdateActivityListDelegate(activityContainer.activityList);
|
|
71
|
+
activityContainer.initialActivityOutletContext = {
|
|
72
|
+
activityClass: activityType,
|
|
73
|
+
activityData: data,
|
|
74
|
+
/**
|
|
75
|
+
* @param {?} result
|
|
76
|
+
* @return {?}
|
|
77
|
+
*/
|
|
78
|
+
onDone(result) {
|
|
79
|
+
resolve(result);
|
|
80
|
+
matDialogRef.close(true); // return true to let the after close listener know we've already handled it.
|
|
81
|
+
},
|
|
82
|
+
/**
|
|
83
|
+
* @param {?} error
|
|
84
|
+
* @return {?}
|
|
85
|
+
*/
|
|
86
|
+
onCancel(error) {
|
|
87
|
+
reject(error);
|
|
88
|
+
matDialogRef.close(true); // return true to let the after close listener know we've already handled it.
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
// we need to check if our onDone/onCancel methods above we called or if we were
|
|
92
|
+
// closed by the user clicking the backdrop. If the later then we need to reject
|
|
93
|
+
// our promise.
|
|
94
|
+
matDialogRef.afterClosed().subscribe((/**
|
|
95
|
+
* @param {?} promiseAlreadyFinished
|
|
96
|
+
* @return {?}
|
|
97
|
+
*/
|
|
98
|
+
promiseAlreadyFinished => {
|
|
99
|
+
if (!promiseAlreadyFinished) {
|
|
100
|
+
reject('auto-closed');
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
103
|
+
matDialogRef.updateSize();
|
|
104
|
+
matDialogRef.afterOpened().subscribe((/**
|
|
105
|
+
* @param {?} promiseAlreadyFinished
|
|
106
|
+
* @return {?}
|
|
107
|
+
*/
|
|
108
|
+
promiseAlreadyFinished => {
|
|
109
|
+
matDialogRef.updateSize();
|
|
110
|
+
}));
|
|
111
|
+
})).finally((/**
|
|
112
|
+
* @return {?}
|
|
113
|
+
*/
|
|
114
|
+
() => {
|
|
115
|
+
self.safelyUpdateActivityListDelegate(null);
|
|
116
|
+
this._activeModel.value = false;
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Updates teh delegate on the next tick to avoid modifying state during the current change detection cycle.
|
|
121
|
+
* @param {?} delegate
|
|
122
|
+
* @return {?}
|
|
123
|
+
*/
|
|
124
|
+
safelyUpdateActivityListDelegate(delegate) {
|
|
125
|
+
setTimeout((/**
|
|
126
|
+
* @return {?}
|
|
127
|
+
*/
|
|
128
|
+
() => this.setActivityList(delegate)));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (false) {
|
|
132
|
+
/**
|
|
133
|
+
* @type {?}
|
|
134
|
+
* @private
|
|
135
|
+
*/
|
|
136
|
+
DialogInteractionContext.prototype._activeModel;
|
|
137
|
+
/**
|
|
138
|
+
* @type {?}
|
|
139
|
+
* @private
|
|
140
|
+
*/
|
|
141
|
+
DialogInteractionContext.prototype.dialogService;
|
|
142
|
+
/** @type {?} */
|
|
143
|
+
DialogInteractionContext.prototype.config;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vc2VydmljZXMvbWF0LWRpYWxvZy1pbnRlcmFjdGlvbi9kaWFsb2ctaW50ZXJhY3Rpb24tY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUFpQixJQUFJLEVBQWEsaUJBQWlCLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDOUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHNCQUFzQjs7Ozs7SUFJbEUsWUFBNkIsYUFBd0IsRUFBVyxNQUE0QjtRQUMxRixLQUFLLEVBQUUsQ0FBQztRQURtQixrQkFBYSxHQUFiLGFBQWEsQ0FBVztRQUFXLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBRjNFLGlCQUFZLEdBQUcsSUFBSSxpQkFBaUIsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUlwRSxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMsQ0FBQzthQUNuRDtRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQzs7Ozs7Ozs7O0lBRVMsY0FBYyxDQUFVLFlBQThDLEVBQUUsSUFBTyxFQUFFLGVBQXdCLElBQUk7UUFDckgsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQ0FBaUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRzs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZIO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOztjQUN6QixNQUFNLHFCQUNQLElBQUksQ0FBQyxNQUFNLEVBQ1g7WUFDRCxJQUFJO1lBQ0osWUFBWTtZQUNaLFVBQVUsRUFBRSw0QkFBNEI7U0FDekMsQ0FDRjs7Y0FFSyxJQUFJLEdBQUcsSUFBSTs7Y0FDWCxZQUFZLEdBQUcsbUJBQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLEVBQXFEO1FBQ3JJLE9BQU8sSUFBSSxPQUFPOzs7OztRQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFOztrQkFDbEMsaUJBQWlCLEdBQUcsWUFBWSxDQUFDLGlCQUFpQjtZQUN4RCxJQUFJLENBQUMsZ0NBQWdDLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFdEUsaUJBQWlCLENBQUMsNEJBQTRCLEdBQUc7Z0JBQy9DLGFBQWEsRUFBRSxZQUFZO2dCQUMzQixZQUFZLEVBQUUsSUFBSTs7Ozs7Z0JBQ2xCLE1BQU0sQ0FBQyxNQUFNO29CQUNYLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDaEIsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDZFQUE2RTtnQkFDekcsQ0FBQzs7Ozs7Z0JBQ0QsUUFBUSxDQUFDLEtBQUs7b0JBQ1osTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNkLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw2RUFBNkU7Z0JBQ3pHLENBQUM7YUFDRixDQUFDO1lBQ0YsZ0ZBQWdGO1lBQ2hGLGlGQUFpRjtZQUNqRixlQUFlO1lBQ2YsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVM7Ozs7WUFBQyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUM1RCxJQUFJLENBQUMsc0JBQXNCLEVBQUU7b0JBQzNCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDdkI7WUFDSCxDQUFDLEVBQUMsQ0FBQztZQUNILFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUzs7OztZQUFDLHNCQUFzQixDQUFDLEVBQUU7Z0JBQzVELFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixDQUFDLEVBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxDQUFDLE9BQU87OztRQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFNRCxnQ0FBZ0MsQ0FBQyxRQUF1QztRQUN0RSxVQUFVOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUM7SUFDbkQsQ0FBQztDQUVGOzs7Ozs7SUExRUMsZ0RBQXNFOzs7OztJQUUxRCxpREFBeUM7O0lBQUUsMENBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgbGFuZywgTGlzdE1vZGVsLCBNdXRhYmxlVmFsdWVNb2RlbCwgVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9hY3Rpdml0eSc7XG5pbXBvcnQgeyBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25Db250ZXh0QmFzZSB9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uLWNvbnRleHQtYmFzZSc7XG5cbmV4cG9ydCBjbGFzcyBEaWFsb2dJbnRlcmFjdGlvbkNvbnRleHQgZXh0ZW5kcyBJbnRlcmFjdGlvbkNvbnRleHRCYXNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBNYXREaWFsb2csIHJlYWRvbmx5IGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnPGFueT4pIHtcbiAgICBzdXBlcigpO1xuICAgIGFzc2VydC5ub3ROaWwoZGlhbG9nU2VydmljZSk7XG4gICAgdGhpcy5vbkRpc3Bvc2UoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnRGlzcG9zZSBjYWxsZWQgd2hpbGUgYWN0aXZlLicpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZSgpOiBWYWx1ZU1vZGVsPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTW9kZWwucmVhZG9ubHk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3N0YXJ0QWN0aXZpdHk8RCwgUiwgRT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YTogRCwgZGlzYWJsZUNsb3NlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBBY3Rpdml0eSBhbHJlYWR5IGluIHByb2dyZXNzOiAke3RoaXMuYWN0aXZpdHlMaXN0LnZhbHVlLm1hcChhID0+IGEuY29uc3RydWN0b3IubmFtZSkuam9pbignLCAnKX1gKTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlTW9kZWwudmFsdWUgPSB0cnVlO1xuICAgIGNvbnN0IGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgLi4udGhpcy5jb25maWcsXG4gICAgICAuLi57XG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRpc2FibGVDbG9zZSxcbiAgICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1pbnRlcmFjdGlvbi1jb250ZXh0J1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25zdCBtYXREaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudCwgY29uZmlnKSBhcyBNYXREaWFsb2dSZWY8QWN0aXZpdHlDb250YWluZXJDb21wb25lbnQ8RCwgUiwgRT4+O1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxSPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBhY3Rpdml0eUNvbnRhaW5lciA9IG1hdERpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgIHNlbGYuc2FmZWx5VXBkYXRlQWN0aXZpdHlMaXN0RGVsZWdhdGUoYWN0aXZpdHlDb250YWluZXIuYWN0aXZpdHlMaXN0KTtcblxuICAgICAgYWN0aXZpdHlDb250YWluZXIuaW5pdGlhbEFjdGl2aXR5T3V0bGV0Q29udGV4dCA9IHtcbiAgICAgICAgYWN0aXZpdHlDbGFzczogYWN0aXZpdHlUeXBlLFxuICAgICAgICBhY3Rpdml0eURhdGE6IGRhdGEsXG4gICAgICAgIG9uRG9uZShyZXN1bHQpIHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgbWF0RGlhbG9nUmVmLmNsb3NlKHRydWUpOyAvLyByZXR1cm4gdHJ1ZSB0byBsZXQgdGhlIGFmdGVyIGNsb3NlIGxpc3RlbmVyIGtub3cgd2UndmUgYWxyZWFkeSBoYW5kbGVkIGl0LlxuICAgICAgICB9LFxuICAgICAgICBvbkNhbmNlbChlcnJvcikge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgbWF0RGlhbG9nUmVmLmNsb3NlKHRydWUpOyAvLyByZXR1cm4gdHJ1ZSB0byBsZXQgdGhlIGFmdGVyIGNsb3NlIGxpc3RlbmVyIGtub3cgd2UndmUgYWxyZWFkeSBoYW5kbGVkIGl0LlxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgLy8gd2UgbmVlZCB0byBjaGVjayBpZiBvdXIgb25Eb25lL29uQ2FuY2VsIG1ldGhvZHMgYWJvdmUgd2UgY2FsbGVkIG9yIGlmIHdlIHdlcmVcbiAgICAgIC8vIGNsb3NlZCBieSB0aGUgdXNlciBjbGlja2luZyB0aGUgYmFja2Ryb3AuICBJZiB0aGUgbGF0ZXIgdGhlbiB3ZSBuZWVkIHRvIHJlamVjdFxuICAgICAgLy8gb3VyIHByb21pc2UuXG4gICAgICBtYXREaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocHJvbWlzZUFscmVhZHlGaW5pc2hlZCA9PiB7XG4gICAgICAgIGlmICghcHJvbWlzZUFscmVhZHlGaW5pc2hlZCkge1xuICAgICAgICAgIHJlamVjdCgnYXV0by1jbG9zZWQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBtYXREaWFsb2dSZWYudXBkYXRlU2l6ZSgpO1xuICAgICAgbWF0RGlhbG9nUmVmLmFmdGVyT3BlbmVkKCkuc3Vic2NyaWJlKHByb21pc2VBbHJlYWR5RmluaXNoZWQgPT4ge1xuICAgICAgICBtYXREaWFsb2dSZWYudXBkYXRlU2l6ZSgpO1xuICAgICAgfSk7XG4gICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICBzZWxmLnNhZmVseVVwZGF0ZUFjdGl2aXR5TGlzdERlbGVnYXRlKG51bGwpO1xuICAgICAgdGhpcy5fYWN0aXZlTW9kZWwudmFsdWUgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRlaCBkZWxlZ2F0ZSBvbiB0aGUgbmV4dCB0aWNrIHRvIGF2b2lkIG1vZGlmeWluZyBzdGF0ZSBkdXJpbmcgdGhlIGN1cnJlbnQgY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cbiAgICogQHBhcmFtIGRlbGVnYXRlXG4gICAqL1xuICBzYWZlbHlVcGRhdGVBY3Rpdml0eUxpc3REZWxlZ2F0ZShkZWxlZ2F0ZTogTGlzdE1vZGVsPEFjdGl2aXR5PGFueSwgYW55Pj4pIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0QWN0aXZpdHlMaXN0KGRlbGVnYXRlKSk7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
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 ModalInteractionContextFactory {
|
|
9
|
+
}
|
|
10
|
+
if (false) {
|
|
11
|
+
/**
|
|
12
|
+
* @abstract
|
|
13
|
+
* @return {?}
|
|
14
|
+
*/
|
|
15
|
+
ModalInteractionContextFactory.prototype.createInteractionContext = function () { };
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW50ZXJhY3Rpb24tY29udGV4dC5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL21vZGFsLWludGVyYWN0aW9uLWNvbnRleHQuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUEsTUFBTSxPQUFnQiw4QkFBOEI7Q0FHbkQ7Ozs7OztJQURDLG9GQUF3RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5IHtcblxuICBhYnN0cmFjdCBjcmVhdGVJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0O1xufVxuIl19
|
|
@@ -105,10 +105,10 @@ export class PlaceOutletComponent extends DisposableComponent {
|
|
|
105
105
|
(next, previous) => {
|
|
106
106
|
this.pushVisitChangesToRoute(next, previous);
|
|
107
107
|
}), {
|
|
108
|
-
unless: this.placeRouter.
|
|
108
|
+
unless: this.placeRouter.navigationInProgress
|
|
109
109
|
});
|
|
110
110
|
chain(this._activePlace)
|
|
111
|
-
.postponeWhile(placeRouter.
|
|
111
|
+
.postponeWhile(placeRouter.navigationInProgress)
|
|
112
112
|
.subscribe((/**
|
|
113
113
|
* @param {?} place
|
|
114
114
|
* @return {?}
|
|
@@ -377,4 +377,4 @@ if (false) {
|
|
|
377
377
|
/** @type {?} */
|
|
378
378
|
PlaceOutletComponent.prototype.placeConfig;
|
|
379
379
|
}
|
|
380
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFrQixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUdMLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFFbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBR2hFLHVCQU1DOzs7SUFMQyxtQ0FBeUM7Ozs7O0lBRXpDLDZEQUFtRDs7OztJQUVuRCxrREFBcUI7O0FBU3ZCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7Ozs7Ozs7SUFzQzNELFlBQTZCLE1BQWMsRUFDZCxXQUF3QixFQUNNLFdBQXdCLEVBQy9DLFlBQWtDO1FBQ3BFLEtBQUssRUFBRSxDQUFDO1FBSm1CLFdBQU0s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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2tpcFNlbGYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIENvbnN0cnVjdGFibGUsXG4gIERlbGVnYXRpbmdWYWx1ZU1vZGVsLFxuICBEc2wsXG4gIEd1YXJkLFxuICBMaXN0TW9kZWwsXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBTdG9yZUluTGlzdE1vZGVsLFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVXNlRGVsZWdhdGUsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBVVBfUExBQ0VfQ09ORklHLCBQbGFjZUNvbmZpZyB9IGZyb20gJy4uLy4uL3BsYWNlLWNvbmZpZyc7XG5pbXBvcnQgeyBQbGFjZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi4vLi4vcGxhY2Utcm91dGVyJztcblxuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuLi8uLi92aXNpdCc7XG5pbXBvcnQgeyBMRUZUX1JJR0hUX1BMQUNFX0FOSU1BVElPTiB9IGZyb20gJy4vcm91dGUtYW5pbWF0aW9ucyc7XG5cbi8vIFF1aWNrIGhhY2sgdG8gYXZvaWQgY2lyY3VsYXIgcmVmZXJlbmNlcyBiZXR3ZWVuIHRoaXMgYW5kIFBsYWNlQ29tcG9uZW50cy5cbmludGVyZmFjZSBQbGFjZVJlZiB7XG4gIHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uXG5cbiAgaW5pdGlhbGlzZUJpbmRpbmdzKHBhcmFtOiBWYWx1ZU1vZGVsPFZpc2l0Pik6IHZvaWQ7XG5cbiAgb25QbGFjZVJlYWR5KCk6IHZvaWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1wbGFjZS1vdXRsZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGxhY2Utb3V0bGV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGxhY2Utb3V0bGV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtMRUZUX1JJR0hUX1BMQUNFX0FOSU1BVElPTl1cbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VPdXRsZXRDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoJ2FuaW1hdGVNb2RlbCcpXG4gIGFuaW1hdGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgQFVzZURlbGVnYXRlKHsgZGVmYXVsdFZhbHVlOiB0cnVlIH0pXG4gIGFuaW1hdGVNb2RlbDogVmFsdWVNb2RlbDxib29sZWFuPjtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgncGxhY2VBbmltYXRpb25PcmRlck1vZGVsJykgQFVzZURlbGVnYXRlKClcbiAgY3VzdG9tUGxhY2VBbmltYXRpb25PcmRlck1vZGVsOiBMaXN0TW9kZWw8Q29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4+O1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdwbGFjZUFuaW1hdGlvbk9yZGVyJykgQFN0b3JlSW5MaXN0TW9kZWwoJ2N1c3RvbVBsYWNlQW5pbWF0aW9uT3JkZXJNb2RlbCcpXG4gIGN1c3RvbVBsYWNlQW5pbWF0aW9uT3JkZXI6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+W107XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHBsYWNlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGxhY2VDb21wb25lbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgncm91dGVPdXRsZXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICByb3V0ZXJPdXQ6IFJvdXRlck91dGxldDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVQbGFjZSA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxQbGFjZUNvbXBvbmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlUGxhY2VWaXNpdE1vZGVsID0gbmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPFZpc2l0PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luT3V0bGV0QWN0aXZhdGlvbiA9IG5ldyBHdWFyZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbk91dGxldERlYWN0aXZhdGlvbiA9IG5ldyBHdWFyZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbk91dGxldFVwZGF0ZTogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5Sb3V0ZVZpc2l0VXBkYXRlID0gbmV3IEd1YXJkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2YXRlZFJvdXRlTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8QWN0aXZhdGVkUm91dGU+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2VEZWZpbml0aW9uID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFBsYWNlRGVmaW5pdGlvbj4oKTtcbiAgcHJpdmF0ZSBwYXJlbnRPdXRsZXRNb2RlbDogTXV0YWJsZVZhbHVlTW9kZWw8UGxhY2VPdXRsZXRDb21wb25lbnQ+O1xuICBwdWJsaWMgcmVhZG9ubHkgcGxhY2VBbmltYXRpb25PcmRlcjogVmFsdWVNb2RlbENoYWluPG51bWJlcj47XG5cbiAgcHJpdmF0ZSBpbml0aWFsUGxhY2VJbmRleDogbnVtYmVyID0gbnVsbDtcbiAgcHJpdmF0ZSByb3V0ZXJWaXNpdDogVmFsdWVNb2RlbENoYWluPFZpc2l0PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcixcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVBfUExBQ0VfQ09ORklHKSByZWFkb25seSBwbGFjZUNvbmZpZzogUGxhY2VDb25maWcsXG4gICAgICAgICAgICAgIEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIHBhcmVudE91dGxldDogUGxhY2VPdXRsZXRDb21wb25lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICB0aGlzLnBhcmVudE91dGxldE1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsKHBhcmVudE91dGxldCk7XG4gICAgdGhpcy5fYWN0aXZlUGxhY2VWaXNpdE1vZGVsLnNldERlbGVnYXRlKG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxWaXNpdD4oKSk7XG4gICAgdGhpcy5faW5PdXRsZXRVcGRhdGUgPSB2YWx1ZU9mLmFueSh0aGlzLl9pbk91dGxldERlYWN0aXZhdGlvbiwgdGhpcy5faW5PdXRsZXRBY3RpdmF0aW9uKS5hcmVUcnV0aHkoKTtcblxuICAgIGNvbnN0IGRlZmF1bHRQbGFjZUFuaW1hdGlvbk9yZGVyID0gY2hhaW4odGhpcy5wYXJlbnRPdXRsZXRNb2RlbClcbiAgICAgIC5wdWxsVmFsdWVNb2RlbChvID0+IG8uYWN0aXZlUGxhY2VNb2RlbClcbiAgICAgIC5wbHVjaygncGxhY2VEZWZpbml0aW9uJylcbiAgICAgIC5wbHVja0xpc3QoJ2NoaWxkcmVuJylcbiAgICAgIC5wbHVjaygnY29tcG9uZW50Jyk7XG5cbiAgICBjb25zdCBhY3RpdmF0ZVBsYWNlVHlwZSA9IGNoYWluKHRoaXMuYWN0aXZlUGxhY2VNb2RlbCkubWFwKHAgPT4gcC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik7XG4gICAgdGhpcy5wbGFjZUFuaW1hdGlvbk9yZGVyID0gY2hhaW4odGhpcy5jdXN0b21QbGFjZUFuaW1hdGlvbk9yZGVyTW9kZWwpXG4gICAgICAub3RoZXJ3aXNlKGRlZmF1bHRQbGFjZUFuaW1hdGlvbk9yZGVyKVxuICAgICAgLnJlZHVjZSgocGxhY2VzSW5PcmRlcikgPT4ge1xuICAgICAgICBsZXQgcGxhY2VJbmRleCA9IDA7XG4gICAgICAgIGlmIChhY3RpdmF0ZVBsYWNlVHlwZS52YWx1ZSkge1xuICAgICAgICAgIHBsYWNlSW5kZXggPSBwbGFjZXNJbk9yZGVyLmluZGV4T2YoYWN0aXZhdGVQbGFjZVR5cGUudmFsdWUpO1xuICAgICAgICAgIGlmIChfLmlzTmlsKHRoaXMuaW5pdGlhbFBsYWNlSW5kZXgpKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxQbGFjZUluZGV4ID0gcGxhY2VJbmRleDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF8uaXNOaWwodGhpcy5pbml0aWFsUGxhY2VJbmRleCkgPyAwIDogcGxhY2VJbmRleCAtIHRoaXMuaW5pdGlhbFBsYWNlSW5kZXg7XG4gICAgICB9LCB7IGRlcGVuZHNPbjogYWN0aXZhdGVQbGFjZVR5cGUgfSk7XG5cbiAgICAvLyBQdXNoIGluY29taW5nIGNoYW5nZXMgaW50byB0aGUgY29tcG9uZW50XG4gICAgdGhpcy5yb3V0ZXJWaXNpdCA9IGNoYWluKHRoaXMuX2FjdGl2ZVBsYWNlKS5wbHVjaygncGxhY2VEZWZpbml0aW9uJykuZmluZEluKHBsYWNlUm91dGVyLmFjdGl2ZVZpc2l0SW5kZXgpO1xuICAgIC8vIE91ciByb3V0ZXIgdmlzaXQgd2lsbCBjaGFuZ2Ugd2hlbiBvdXIgYWN0aXZlIGlzIG51bGxpZmllZCBkdXJpbmcgZGVhY3RpdmF0aW9uLCB3aGljaCB3aWxsIHB1c2ggYSBudWxsIHZpc2l0XG4gICAgLy8gdGhlIHRoZSBkZWFjdGl2YXRlZCBjb21wb25lbnQsIHdoaWNoIHdpbGwgbnVrZSBpdCdzIHZpZXcgYmVmb3JlIHRoZSBhbmltYXRpb25zIGhhdmUgZmluaXNoZWQuXG4gICAgLy8gVGhlIHZpc2l0IHdpbGwgYWx3YXkgdXBkYXRlZCBhZnRlciB0aGUgcm91dGVyIHNlc3Npb24gaXMgZmluc2lzZWQgKHdoZW4gdGhlIG5ldyB2aXNpdHMgYXJlIHJlZ2lzdGVyZWQpIHNvXG4gICAgLy8gd2UgY2FuIHNhZmVseSBpZ25vcmUgaXQgZHVyaW5nIG91dGxldCBjaGFuZ2VzIGFzIHRoZXNlIGFsd2F5cyBoYXBwZW4gYmVmb3JlIHRoZSByb3V0ZXIgc2Vzc2lvbiBlbmRzLlxuICAgIHdoZW4udmFsdWVPZih0aGlzLnJvdXRlclZpc2l0KS5jaGFuZ2VzKCgpID0+IHRoaXMucHVzaFJvdXRlQ2hhbmdlc1RvVmlzaXQoKSwgeyB1bmxlc3M6IHRoaXMuX2luT3V0bGV0VXBkYXRlIH0pO1xuXG4gICAgLy8gSGFuZGxlIGNvbXBvbmVudCBiYXNlZCBjaGFuZ2VzXG4gICAgd2hlbi52YWx1ZU9mKHRoaXMuX2FjdGl2ZVBsYWNlVmlzaXRNb2RlbCkuY2hhbmdlcygobmV4dCwgcHJldmlvdXMpID0+IHtcbiAgICAgIHRoaXMucHVzaFZpc2l0Q2hhbmdlc1RvUm91dGUobmV4dCwgcHJldmlvdXMpO1xuICAgIH0sIHtcbiAgICAgIHVubGVzczogdGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZVxuICAgIH0pO1xuXG4gICAgY2hhaW4odGhpcy5fYWN0aXZlUGxhY2UpXG4gICAgICAucG9zdHBvbmVXaGlsZShwbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZSlcbiAgICAgIC5zdWJzY3JpYmUocGxhY2UgPT4gdGhpcy5wbGFjZUNoYW5nZWQuZW1pdChwbGFjZSkpO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGdldEFuaW1hdGlvbk9yZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnBsYWNlQW5pbWF0aW9uT3JkZXIudmFsdWU7XG4gIH1cblxuICBnZXQgYW5pbWF0aW9uRHVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucGxhY2VDb25maWcgJiYgdGhpcy5wbGFjZUNvbmZpZy5hbmltYXRpb25EdXJhdGlvbiA/IHRoaXMucGxhY2VDb25maWcuYW5pbWF0aW9uRHVyYXRpb24gOiAnNTAwbXMnO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgbmF2aWdhdGUodmlzaXQ6IFZpc2l0KSB7XG4gICAgLy8gY29uc29sZS5sb2coeyBhY3RpdmF0ZWRSb3V0ZTogdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC52YWx1ZSB9KTtcbiAgICB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRlKHZpc2l0LCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnBhcmVudE91dGxldCA/IHRoaXMucGFyZW50T3V0bGV0LmFjdGl2YXRlZFJvdXRlTW9kZWwudmFsdWUgOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgcGFyZW50T3V0bGV0KCk6IFBsYWNlT3V0bGV0Q29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRPdXRsZXRNb2RlbC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHB1c2hSb3V0ZUNoYW5nZXNUb1Zpc2l0KCkge1xuICAgIGNvbnN0IHZpc2l0ID0gdGhpcy5yb3V0ZXJWaXNpdC52YWx1ZTtcbiAgICAvLyBjb25zb2xlLmxvZyh7XG4gICAgLy8gICB2aXNpdCxcbiAgICAvLyAgIHBsYWNlOiB2aXNpdCA/IHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5jb21wb25lbnQgOiBudWxsLFxuICAgIC8vICAgaW5PdXRsZXRBY3RpdmF0aW9uOiB0aGlzLl9pbk91dGxldEFjdGl2YXRpb24udmFsdWUsXG4gICAgLy8gICBpblJvdXRpbmdTZXNzaW9uOiB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uQWN0aXZlLnZhbHVlXG4gICAgLy8gfSk7XG4gICAgaWYgKHZpc2l0KSB7IC8vIGNhbiBiZSBudWxsIHdoaWxlIHRoZSBwbGFjZSBhbmQgaW5kZXggc3luYyB1cFxuICAgICAgdGhpcy5faW5Sb3V0ZVZpc2l0VXBkYXRlLndoaWxlVHJ1ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlVmlzaXRNb2RlbC52YWx1ZSA9IHZpc2l0O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVzaFZpc2l0Q2hhbmdlc1RvUm91dGUobmV4dDogVmlzaXQsIHByZXZpb3VzOiBWaXNpdCkge1xuICAgIGNvbnN0IGFjdGl2YXRlZFJvdXRlID0gdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC52YWx1ZTtcbiAgICB0aGlzLnBsYWNlUm91dGVyLnB1c2hWaXNpdENoYW5nZXNUb1JvdXRlKGFjdGl2YXRlZFJvdXRlLCBwcmV2aW91cywgbmV4dCk7XG4gIH1cblxuICBnZXQgYWN0aXZlUGxhY2VNb2RlbCgpOiBWYWx1ZU1vZGVsPFBsYWNlQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBsYWNlLnJlYWRvbmx5O1xuICB9XG5cbiAgZ2V0IGFjdGl2YXRlZFJvdXRlTW9kZWwoKTogVmFsdWVNb2RlbDxBY3RpdmF0ZWRSb3V0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmF0ZWRSb3V0ZU1vZGVsLnJlYWRvbmx5O1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25PdXRsZXRBY3RpdmF0ZWQocm91dGVyT3V0bGV0OiBSb3V0ZXJPdXRsZXQsIHBsYWNlOiBQbGFjZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX2luT3V0bGV0QWN0aXZhdGlvbi53aGlsZVRydWUoKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fYWN0aXZlUGxhY2UudmFsdWUgPSBwbGFjZTtcbiAgICAgICAgdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC52YWx1ZSA9IHJvdXRlck91dGxldC5hY3RpdmF0ZWRSb3V0ZTtcbiAgICAgICAgdGhpcy5fcGxhY2VEZWZpbml0aW9uLnZhbHVlID0gcGxhY2UucGxhY2VEZWZpbml0aW9uO1xuICAgICAgICBjb25zdCB2aXNpdE1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFZpc2l0PigpO1xuICAgICAgICB0aGlzLl9hY3RpdmVQbGFjZVZpc2l0TW9kZWwuc2V0RGVsZWdhdGUodmlzaXRNb2RlbCk7XG4gICAgICAgIHBsYWNlLmluaXRpYWxpc2VCaW5kaW5ncyh2aXNpdE1vZGVsKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghdGhpcy5hbmltYXRlTW9kZWwudmFsdWUpIHtcbiAgICAgIC8vIHdlJ3JlIG5vdCBhbmltYXRpbmcgc28gdHJpZ2dlciBhbnkgcG9zdCBhbmltYXRpb24gY2FsbGJhY2tzIG5vdy5cbiAgICAgIHRoaXMuYW5pbWF0aW9uRG9uZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uT3V0bGV0RGVhY3RpdmF0ZWQoKSB7XG4gICAgdGhpcy5faW5PdXRsZXREZWFjdGl2YXRpb24ud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlTW9kZWwudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5fcGxhY2VEZWZpbml0aW9uLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlVmlzaXRNb2RlbC5zZXREZWxlZ2F0ZShudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFuaW1hdGlvblN0YXJ0ZWQoKSB7XG4gICAgLy8gY29uc29sZS5sb2coeyBhY3RpdmVQbGFjZTogdGhpcy5fYWN0aXZlUGxhY2UudmFsdWUgfSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBhbmltYXRpb25Eb25lKCkge1xuICAgIGlmICh0aGlzLl9hY3RpdmVQbGFjZS52YWx1ZSkge1xuICAgICAgdGhpcy5fYWN0aXZlUGxhY2UudmFsdWUub25QbGFjZVJlYWR5KCk7XG4gICAgfVxuICB9XG5cblxufVxuIl19
|
|
380
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFrQixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUdMLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFFbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBR2hFLHVCQU1DOzs7SUFMQyxtQ0FBeUM7Ozs7O0lBRXpDLDZEQUFtRDs7OztJQUVuRCxrREFBcUI7O0FBU3ZCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7Ozs7Ozs7SUFzQzNELFlBQTZCLE1BQWMsRUFDZCxXQUF3QixFQUNNLFdBQXdCLEVBQy9DLFlBQWtDO1FBQ3BFLEtBQUssRUFBRSxDQUFDO1FBSm1CLFdBQU0s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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2tpcFNlbGYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIENvbnN0cnVjdGFibGUsXG4gIERlbGVnYXRpbmdWYWx1ZU1vZGVsLFxuICBEc2wsXG4gIEd1YXJkLFxuICBMaXN0TW9kZWwsXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBTdG9yZUluTGlzdE1vZGVsLFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVXNlRGVsZWdhdGUsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBVVBfUExBQ0VfQ09ORklHLCBQbGFjZUNvbmZpZyB9IGZyb20gJy4uLy4uL3BsYWNlLWNvbmZpZyc7XG5pbXBvcnQgeyBQbGFjZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi4vLi4vcGxhY2Utcm91dGVyJztcblxuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuLi8uLi92aXNpdCc7XG5pbXBvcnQgeyBMRUZUX1JJR0hUX1BMQUNFX0FOSU1BVElPTiB9IGZyb20gJy4vcm91dGUtYW5pbWF0aW9ucyc7XG5cbi8vIFF1aWNrIGhhY2sgdG8gYXZvaWQgY2lyY3VsYXIgcmVmZXJlbmNlcyBiZXR3ZWVuIHRoaXMgYW5kIFBsYWNlQ29tcG9uZW50cy5cbmludGVyZmFjZSBQbGFjZVJlZiB7XG4gIHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uXG5cbiAgaW5pdGlhbGlzZUJpbmRpbmdzKHBhcmFtOiBWYWx1ZU1vZGVsPFZpc2l0Pik6IHZvaWQ7XG5cbiAgb25QbGFjZVJlYWR5KCk6IHZvaWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1wbGFjZS1vdXRsZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGxhY2Utb3V0bGV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGxhY2Utb3V0bGV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtMRUZUX1JJR0hUX1BMQUNFX0FOSU1BVElPTl1cbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VPdXRsZXRDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoJ2FuaW1hdGVNb2RlbCcpXG4gIGFuaW1hdGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgQFVzZURlbGVnYXRlKHsgZGVmYXVsdFZhbHVlOiB0cnVlIH0pXG4gIGFuaW1hdGVNb2RlbDogVmFsdWVNb2RlbDxib29sZWFuPjtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgncGxhY2VBbmltYXRpb25PcmRlck1vZGVsJykgQFVzZURlbGVnYXRlKClcbiAgY3VzdG9tUGxhY2VBbmltYXRpb25PcmRlck1vZGVsOiBMaXN0TW9kZWw8Q29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4+O1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdwbGFjZUFuaW1hdGlvbk9yZGVyJykgQFN0b3JlSW5MaXN0TW9kZWwoJ2N1c3RvbVBsYWNlQW5pbWF0aW9uT3JkZXJNb2RlbCcpXG4gIGN1c3RvbVBsYWNlQW5pbWF0aW9uT3JkZXI6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+W107XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHBsYWNlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGxhY2VDb21wb25lbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgncm91dGVPdXRsZXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICByb3V0ZXJPdXQ6IFJvdXRlck91dGxldDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVQbGFjZSA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxQbGFjZUNvbXBvbmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlUGxhY2VWaXNpdE1vZGVsID0gbmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPFZpc2l0PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luT3V0bGV0QWN0aXZhdGlvbiA9IG5ldyBHdWFyZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbk91dGxldERlYWN0aXZhdGlvbiA9IG5ldyBHdWFyZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbk91dGxldFVwZGF0ZTogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5Sb3V0ZVZpc2l0VXBkYXRlID0gbmV3IEd1YXJkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2YXRlZFJvdXRlTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8QWN0aXZhdGVkUm91dGU+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2VEZWZpbml0aW9uID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFBsYWNlRGVmaW5pdGlvbj4oKTtcbiAgcHJpdmF0ZSBwYXJlbnRPdXRsZXRNb2RlbDogTXV0YWJsZVZhbHVlTW9kZWw8UGxhY2VPdXRsZXRDb21wb25lbnQ+O1xuICBwdWJsaWMgcmVhZG9ubHkgcGxhY2VBbmltYXRpb25PcmRlcjogVmFsdWVNb2RlbENoYWluPG51bWJlcj47XG5cbiAgcHJpdmF0ZSBpbml0aWFsUGxhY2VJbmRleDogbnVtYmVyID0gbnVsbDtcbiAgcHJpdmF0ZSByb3V0ZXJWaXNpdDogVmFsdWVNb2RlbENoYWluPFZpc2l0PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcixcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVBfUExBQ0VfQ09ORklHKSByZWFkb25seSBwbGFjZUNvbmZpZzogUGxhY2VDb25maWcsXG4gICAgICAgICAgICAgIEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIHBhcmVudE91dGxldDogUGxhY2VPdXRsZXRDb21wb25lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICB0aGlzLnBhcmVudE91dGxldE1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsKHBhcmVudE91dGxldCk7XG4gICAgdGhpcy5fYWN0aXZlUGxhY2VWaXNpdE1vZGVsLnNldERlbGVnYXRlKG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxWaXNpdD4oKSk7XG4gICAgdGhpcy5faW5PdXRsZXRVcGRhdGUgPSB2YWx1ZU9mLmFueSh0aGlzLl9pbk91dGxldERlYWN0aXZhdGlvbiwgdGhpcy5faW5PdXRsZXRBY3RpdmF0aW9uKS5hcmVUcnV0aHkoKTtcblxuICAgIGNvbnN0IGRlZmF1bHRQbGFjZUFuaW1hdGlvbk9yZGVyID0gY2hhaW4odGhpcy5wYXJlbnRPdXRsZXRNb2RlbClcbiAgICAgIC5wdWxsVmFsdWVNb2RlbChvID0+IG8uYWN0aXZlUGxhY2VNb2RlbClcbiAgICAgIC5wbHVjaygncGxhY2VEZWZpbml0aW9uJylcbiAgICAgIC5wbHVja0xpc3QoJ2NoaWxkcmVuJylcbiAgICAgIC5wbHVjaygnY29tcG9uZW50Jyk7XG5cbiAgICBjb25zdCBhY3RpdmF0ZVBsYWNlVHlwZSA9IGNoYWluKHRoaXMuYWN0aXZlUGxhY2VNb2RlbCkubWFwKHAgPT4gcC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik7XG4gICAgdGhpcy5wbGFjZUFuaW1hdGlvbk9yZGVyID0gY2hhaW4odGhpcy5jdXN0b21QbGFjZUFuaW1hdGlvbk9yZGVyTW9kZWwpXG4gICAgICAub3RoZXJ3aXNlKGRlZmF1bHRQbGFjZUFuaW1hdGlvbk9yZGVyKVxuICAgICAgLnJlZHVjZSgocGxhY2VzSW5PcmRlcikgPT4ge1xuICAgICAgICBsZXQgcGxhY2VJbmRleCA9IDA7XG4gICAgICAgIGlmIChhY3RpdmF0ZVBsYWNlVHlwZS52YWx1ZSkge1xuICAgICAgICAgIHBsYWNlSW5kZXggPSBwbGFjZXNJbk9yZGVyLmluZGV4T2YoYWN0aXZhdGVQbGFjZVR5cGUudmFsdWUpO1xuICAgICAgICAgIGlmIChfLmlzTmlsKHRoaXMuaW5pdGlhbFBsYWNlSW5kZXgpKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxQbGFjZUluZGV4ID0gcGxhY2VJbmRleDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF8uaXNOaWwodGhpcy5pbml0aWFsUGxhY2VJbmRleCkgPyAwIDogcGxhY2VJbmRleCAtIHRoaXMuaW5pdGlhbFBsYWNlSW5kZXg7XG4gICAgICB9LCB7IGRlcGVuZHNPbjogYWN0aXZhdGVQbGFjZVR5cGUgfSk7XG5cbiAgICAvLyBQdXNoIGluY29taW5nIGNoYW5nZXMgaW50byB0aGUgY29tcG9uZW50XG4gICAgdGhpcy5yb3V0ZXJWaXNpdCA9IGNoYWluKHRoaXMuX2FjdGl2ZVBsYWNlKS5wbHVjaygncGxhY2VEZWZpbml0aW9uJykuZmluZEluKHBsYWNlUm91dGVyLmFjdGl2ZVZpc2l0SW5kZXgpO1xuICAgIC8vIE91ciByb3V0ZXIgdmlzaXQgd2lsbCBjaGFuZ2Ugd2hlbiBvdXIgYWN0aXZlIGlzIG51bGxpZmllZCBkdXJpbmcgZGVhY3RpdmF0aW9uLCB3aGljaCB3aWxsIHB1c2ggYSBudWxsIHZpc2l0XG4gICAgLy8gdGhlIHRoZSBkZWFjdGl2YXRlZCBjb21wb25lbnQsIHdoaWNoIHdpbGwgbnVrZSBpdCdzIHZpZXcgYmVmb3JlIHRoZSBhbmltYXRpb25zIGhhdmUgZmluaXNoZWQuXG4gICAgLy8gVGhlIHZpc2l0IHdpbGwgYWx3YXkgdXBkYXRlZCBhZnRlciB0aGUgcm91dGVyIHNlc3Npb24gaXMgZmluc2lzZWQgKHdoZW4gdGhlIG5ldyB2aXNpdHMgYXJlIHJlZ2lzdGVyZWQpIHNvXG4gICAgLy8gd2UgY2FuIHNhZmVseSBpZ25vcmUgaXQgZHVyaW5nIG91dGxldCBjaGFuZ2VzIGFzIHRoZXNlIGFsd2F5cyBoYXBwZW4gYmVmb3JlIHRoZSByb3V0ZXIgc2Vzc2lvbiBlbmRzLlxuICAgIHdoZW4udmFsdWVPZih0aGlzLnJvdXRlclZpc2l0KS5jaGFuZ2VzKCgpID0+IHRoaXMucHVzaFJvdXRlQ2hhbmdlc1RvVmlzaXQoKSwgeyB1bmxlc3M6IHRoaXMuX2luT3V0bGV0VXBkYXRlIH0pO1xuXG4gICAgLy8gSGFuZGxlIGNvbXBvbmVudCBiYXNlZCBjaGFuZ2VzXG4gICAgd2hlbi52YWx1ZU9mKHRoaXMuX2FjdGl2ZVBsYWNlVmlzaXRNb2RlbCkuY2hhbmdlcygobmV4dCwgcHJldmlvdXMpID0+IHtcbiAgICAgIHRoaXMucHVzaFZpc2l0Q2hhbmdlc1RvUm91dGUobmV4dCwgcHJldmlvdXMpO1xuICAgIH0sIHtcbiAgICAgIHVubGVzczogdGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzc1xuICAgIH0pO1xuXG4gICAgY2hhaW4odGhpcy5fYWN0aXZlUGxhY2UpXG4gICAgICAucG9zdHBvbmVXaGlsZShwbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcylcbiAgICAgIC5zdWJzY3JpYmUocGxhY2UgPT4gdGhpcy5wbGFjZUNoYW5nZWQuZW1pdChwbGFjZSkpO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGdldEFuaW1hdGlvbk9yZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnBsYWNlQW5pbWF0aW9uT3JkZXIudmFsdWU7XG4gIH1cblxuICBnZXQgYW5pbWF0aW9uRHVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucGxhY2VDb25maWcgJiYgdGhpcy5wbGFjZUNvbmZpZy5hbmltYXRpb25EdXJhdGlvbiA/IHRoaXMucGxhY2VDb25maWcuYW5pbWF0aW9uRHVyYXRpb24gOiAnNTAwbXMnO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgbmF2aWdhdGUodmlzaXQ6IFZpc2l0KSB7XG4gICAgLy8gY29uc29sZS5sb2coeyBhY3RpdmF0ZWRSb3V0ZTogdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC52YWx1ZSB9KTtcbiAgICB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRlKHZpc2l0LCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnBhcmVudE91dGxldCA/IHRoaXMucGFyZW50T3V0bGV0LmFjdGl2YXRlZFJvdXRlTW9kZWwudmFsdWUgOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgcGFyZW50T3V0bGV0KCk6IFBsYWNlT3V0bGV0Q29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRPdXRsZXRNb2RlbC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHB1c2hSb3V0ZUNoYW5nZXNUb1Zpc2l0KCkge1xuICAgIGNvbnN0IHZpc2l0ID0gdGhpcy5yb3V0ZXJWaXNpdC52YWx1ZTtcbiAgICAvLyBjb25zb2xlLmxvZyh7XG4gICAgLy8gICB2aXNpdCxcbiAgICAvLyAgIHBsYWNlOiB2aXNpdCA/IHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5jb21wb25lbnQgOiBudWxsLFxuICAgIC8vICAgaW5PdXRsZXRBY3RpdmF0aW9uOiB0aGlzLl9pbk91dGxldEFjdGl2YXRpb24udmFsdWUsXG4gICAgLy8gICBpblJvdXRpbmdTZXNzaW9uOiB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uQWN0aXZlLnZhbHVlXG4gICAgLy8gfSk7XG4gICAgaWYgKHZpc2l0KSB7IC8vIGNhbiBiZSBudWxsIHdoaWxlIHRoZSBwbGFjZSBhbmQgaW5kZXggc3luYyB1cFxuICAgICAgdGhpcy5faW5Sb3V0ZVZpc2l0VXBkYXRlLndoaWxlVHJ1ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlVmlzaXRNb2RlbC52YWx1ZSA9IHZpc2l0O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVzaFZpc2l0Q2hhbmdlc1RvUm91dGUobmV4dDogVmlzaXQsIHByZXZpb3VzOiBWaXNpdCkge1xuICAgIGNvbnN0IGFjdGl2YXRlZFJvdXRlID0gdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC52YWx1ZTtcbiAgICB0aGlzLnBsYWNlUm91dGVyLnB1c2hWaXNpdENoYW5nZXNUb1JvdXRlKGFjdGl2YXRlZFJvdXRlLCBwcmV2aW91cywgbmV4dCk7XG4gIH1cblxuICBnZXQgYWN0aXZlUGxhY2VNb2RlbCgpOiBWYWx1ZU1vZGVsPFBsYWNlQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBsYWNlLnJlYWRvbmx5O1xuICB9XG5cbiAgZ2V0IGFjdGl2YXRlZFJvdXRlTW9kZWwoKTogVmFsdWVNb2RlbDxBY3RpdmF0ZWRSb3V0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmF0ZWRSb3V0ZU1vZGVsLnJlYWRvbmx5O1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25PdXRsZXRBY3RpdmF0ZWQocm91dGVyT3V0bGV0OiBSb3V0ZXJPdXRsZXQsIHBsYWNlOiBQbGFjZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX2luT3V0bGV0QWN0aXZhdGlvbi53aGlsZVRydWUoKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fYWN0aXZlUGxhY2UudmFsdWUgPSBwbGFjZTtcbiAgICAgICAgdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC52YWx1ZSA9IHJvdXRlck91dGxldC5hY3RpdmF0ZWRSb3V0ZTtcbiAgICAgICAgdGhpcy5fcGxhY2VEZWZpbml0aW9uLnZhbHVlID0gcGxhY2UucGxhY2VEZWZpbml0aW9uO1xuICAgICAgICBjb25zdCB2aXNpdE1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFZpc2l0PigpO1xuICAgICAgICB0aGlzLl9hY3RpdmVQbGFjZVZpc2l0TW9kZWwuc2V0RGVsZWdhdGUodmlzaXRNb2RlbCk7XG4gICAgICAgIHBsYWNlLmluaXRpYWxpc2VCaW5kaW5ncyh2aXNpdE1vZGVsKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghdGhpcy5hbmltYXRlTW9kZWwudmFsdWUpIHtcbiAgICAgIC8vIHdlJ3JlIG5vdCBhbmltYXRpbmcgc28gdHJpZ2dlciBhbnkgcG9zdCBhbmltYXRpb24gY2FsbGJhY2tzIG5vdy5cbiAgICAgIHRoaXMuYW5pbWF0aW9uRG9uZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uT3V0bGV0RGVhY3RpdmF0ZWQoKSB7XG4gICAgdGhpcy5faW5PdXRsZXREZWFjdGl2YXRpb24ud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlTW9kZWwudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5fcGxhY2VEZWZpbml0aW9uLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlVmlzaXRNb2RlbC5zZXREZWxlZ2F0ZShudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFuaW1hdGlvblN0YXJ0ZWQoKSB7XG4gICAgLy8gY29uc29sZS5sb2coeyBhY3RpdmVQbGFjZTogdGhpcy5fYWN0aXZlUGxhY2UudmFsdWUgfSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBhbmltYXRpb25Eb25lKCkge1xuICAgIGlmICh0aGlzLl9hY3RpdmVQbGFjZS52YWx1ZSkge1xuICAgICAgdGhpcy5fYWN0aXZlUGxhY2UudmFsdWUub25QbGFjZVJlYWR5KCk7XG4gICAgfVxuICB9XG5cblxufVxuIl19
|