@coolon/angular-ui-powerups 0.0.95 → 0.0.97
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 +3108 -2277
- 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 +17 -20
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +17 -20
- package/esm2015/index.js +2 -2
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +15 -51
- package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +15 -47
- package/esm2015/lib/interaction/index.js +4 -2
- package/esm2015/lib/interaction/interaction-context-base.js +158 -0
- package/esm2015/lib/interaction/interaction-context.js +58 -78
- package/esm2015/lib/interaction/interaction.module.js +1 -1
- package/esm2015/lib/interaction/services/dialog-interaction-context.js +163 -0
- package/esm2015/lib/interaction/services/dialog-interaction.service.js +68 -181
- package/esm2015/lib/interaction/services/modal-interaction.service.js +109 -0
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +9 -43
- package/esm2015/lib/place/guards/abstract-place.guard.js +165 -0
- package/esm2015/lib/place/guards/consolidated-param-map.js +133 -0
- package/esm2015/lib/place/guards/interaction.guard.js +113 -0
- package/esm2015/lib/place/guards/navigation-session.js +590 -0
- package/esm2015/lib/place/guards/place-component-deactivation-handler.js +110 -0
- package/esm2015/lib/place/index.js +7 -5
- package/esm2015/lib/place/place-component.js +1 -1
- package/esm2015/lib/place/place-router.js +205 -236
- package/esm2015/lib/place/place.module.js +2 -4
- package/esm2015/lib/place/route/visit-sanitiser.js +2 -2
- package/esm2015/lib/place/url-snapshot.js +96 -0
- package/esm2015/public_api.js +3 -3
- package/esm5/coolon-angular-ui-powerups.js +17 -20
- package/esm5/index.js +2 -2
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +22 -73
- package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +25 -76
- package/esm5/lib/interaction/index.js +4 -2
- package/esm5/lib/interaction/interaction-context-base.js +211 -0
- package/esm5/lib/interaction/interaction-context.js +72 -94
- package/esm5/lib/interaction/interaction.module.js +1 -1
- package/esm5/lib/interaction/services/dialog-interaction-context.js +188 -0
- package/esm5/lib/interaction/services/dialog-interaction.service.js +83 -232
- package/esm5/lib/interaction/services/modal-interaction.service.js +153 -0
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +9 -43
- package/esm5/lib/place/guards/abstract-place.guard.js +212 -0
- package/esm5/lib/place/guards/consolidated-param-map.js +161 -0
- package/esm5/lib/place/guards/interaction.guard.js +125 -0
- package/esm5/lib/place/guards/navigation-session.js +741 -0
- package/esm5/lib/place/guards/place-component-deactivation-handler.js +138 -0
- package/esm5/lib/place/index.js +7 -5
- package/esm5/lib/place/place-component.js +1 -1
- package/esm5/lib/place/place-router.js +324 -295
- package/esm5/lib/place/place.module.js +2 -4
- package/esm5/lib/place/route/visit-sanitiser.js +2 -2
- package/esm5/lib/place/url-snapshot.js +120 -0
- package/esm5/public_api.js +3 -3
- package/fesm2015/coolon-angular-ui-powerups.js +2250 -1642
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +3228 -2398
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +5 -10
- package/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.d.ts +4 -9
- package/lib/interaction/index.d.ts +3 -1
- package/lib/interaction/interaction-context-base.d.ts +27 -0
- package/lib/interaction/interaction-context.d.ts +18 -15
- package/lib/interaction/services/dialog-interaction-context.d.ts +18 -0
- package/lib/interaction/services/dialog-interaction.service.d.ts +14 -23
- package/lib/interaction/services/modal-interaction.service.d.ts +15 -0
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +1 -4
- package/lib/place/guards/abstract-place.guard.d.ts +19 -0
- package/lib/place/guards/consolidated-param-map.d.ts +14 -0
- package/lib/{interaction/guards/interaction-guard.service.d.ts → place/guards/interaction.guard.d.ts} +8 -4
- package/lib/place/guards/navigation-session.d.ts +96 -0
- package/lib/place/guards/place-component-deactivation-handler.d.ts +14 -0
- package/lib/place/index.d.ts +6 -4
- package/lib/place/place-component.d.ts +1 -1
- package/lib/place/place-router.d.ts +23 -31
- package/lib/place/url-snapshot.d.ts +16 -0
- package/package.json +1 -1
- package/schematics/place-routes/place-def.js +2 -2
- package/schematics/place-routes/templates/place-routes.ts.template +9 -16
- package/esm2015/lib/interaction/guards/interaction-guard.service.js +0 -85
- package/esm2015/lib/place/guards/abstract-enter-place.guard.js +0 -296
- package/esm2015/lib/place/guards/leave-place.guard.js +0 -47
- package/esm2015/lib/place/navigation-session.js +0 -279
- package/esm2015/lib/place/places/noop-gateway-place.component.js +0 -58
- package/esm5/lib/interaction/guards/interaction-guard.service.js +0 -94
- package/esm5/lib/place/guards/abstract-enter-place.guard.js +0 -372
- package/esm5/lib/place/guards/leave-place.guard.js +0 -55
- package/esm5/lib/place/navigation-session.js +0 -353
- package/esm5/lib/place/places/noop-gateway-place.component.js +0 -61
- package/lib/place/guards/abstract-enter-place.guard.d.ts +0 -33
- package/lib/place/guards/leave-place.guard.d.ts +0 -8
- package/lib/place/navigation-session.d.ts +0 -43
- package/lib/place/places/noop-gateway-place.component.d.ts +0 -10
|
@@ -0,0 +1,158 @@
|
|
|
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 { Deferred, DelegatingListModel, Dsl } from '@coolon/pectin';
|
|
7
|
+
import * as _ from 'lodash';
|
|
8
|
+
import { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';
|
|
9
|
+
import { ConfirmThenDialogComponent } from './components/confirm-then-dialog/confirm-then-dialog.component';
|
|
10
|
+
import { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';
|
|
11
|
+
import { InteractionContext } from './interaction-context';
|
|
12
|
+
/**
|
|
13
|
+
* @abstract
|
|
14
|
+
*/
|
|
15
|
+
export class InteractionContextBase extends InteractionContext {
|
|
16
|
+
/**
|
|
17
|
+
* @protected
|
|
18
|
+
*/
|
|
19
|
+
constructor() {
|
|
20
|
+
super();
|
|
21
|
+
/**
|
|
22
|
+
* Returns the current list of activities that are in progress.
|
|
23
|
+
* This model is only updated in the next tick after the view has been updated.
|
|
24
|
+
*/
|
|
25
|
+
this._activityListDelegate = new DelegatingListModel();
|
|
26
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
27
|
+
when.listOf(this.activityList).becomesPopulated((/**
|
|
28
|
+
* @param {?} activities
|
|
29
|
+
* @return {?}
|
|
30
|
+
*/
|
|
31
|
+
(activities) => {
|
|
32
|
+
if (this.deferredGetCurrentActivity) {
|
|
33
|
+
this.deferredGetCurrentActivity.resolve(_.last(activities));
|
|
34
|
+
this.deferredGetCurrentActivity = null;
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @protected
|
|
40
|
+
* @param {?} activityList
|
|
41
|
+
* @return {?}
|
|
42
|
+
*/
|
|
43
|
+
setActivityList(activityList) {
|
|
44
|
+
this._activityListDelegate.setDelegate(activityList);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @return {?}
|
|
48
|
+
*/
|
|
49
|
+
get activityList() {
|
|
50
|
+
return this._activityListDelegate.readonly;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns the activity that is currently active.
|
|
54
|
+
* This model is only updated in the next tick after the view has been updated.
|
|
55
|
+
* @return {?}
|
|
56
|
+
*/
|
|
57
|
+
getCurrentActivity() {
|
|
58
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
if (!this.isActive()) {
|
|
60
|
+
return Promise.reject('no activity in progress');
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
if (this.deferredGetCurrentActivity) {
|
|
64
|
+
// we're already waiting then just return the same promise
|
|
65
|
+
return this.deferredGetCurrentActivity.promise;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
if (this.activityList.length < 1) {
|
|
69
|
+
this.deferredGetCurrentActivity = Deferred.defer();
|
|
70
|
+
return this.deferredGetCurrentActivity.promise;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return _.last(this.activityList.value);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @template D, R, E
|
|
81
|
+
* @param {?} activityType
|
|
82
|
+
* @param {?=} data
|
|
83
|
+
* @return {?}
|
|
84
|
+
*/
|
|
85
|
+
startActivity(activityType, data) {
|
|
86
|
+
return this._startActivity(activityType, data);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* @param {?} confirm
|
|
90
|
+
* @return {?}
|
|
91
|
+
*/
|
|
92
|
+
confirm(confirm) {
|
|
93
|
+
// Important: we have to implement confirmOrReject as the main entry point
|
|
94
|
+
// as the canDeactivation guards need to be able to cancel an interaction
|
|
95
|
+
// without caring about returning a value.
|
|
96
|
+
return this.confirmOrReject(confirm).then((/**
|
|
97
|
+
* @return {?}
|
|
98
|
+
*/
|
|
99
|
+
() => true)).catch((/**
|
|
100
|
+
* @return {?}
|
|
101
|
+
*/
|
|
102
|
+
() => false));
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @param {?} alert
|
|
106
|
+
* @return {?}
|
|
107
|
+
*/
|
|
108
|
+
alert(alert) {
|
|
109
|
+
// TODO: Test disableClose === false
|
|
110
|
+
return this._startActivity(AlertDialogComponent, alert, false);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* @param {?} confirm
|
|
114
|
+
* @return {?}
|
|
115
|
+
*/
|
|
116
|
+
confirmOrReject(confirm) {
|
|
117
|
+
return this._startActivity(ConfirmationDialogComponent, confirm, true);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* @template D, R, E
|
|
121
|
+
* @param {?} confirm
|
|
122
|
+
* @param {?} activityType
|
|
123
|
+
* @param {?=} data
|
|
124
|
+
* @return {?}
|
|
125
|
+
*/
|
|
126
|
+
confirmThen(confirm, activityType, data) {
|
|
127
|
+
return this._startActivity(ConfirmThenDialogComponent, {
|
|
128
|
+
confirm,
|
|
129
|
+
activityType: activityType,
|
|
130
|
+
data: data
|
|
131
|
+
}, true);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (false) {
|
|
135
|
+
/**
|
|
136
|
+
* Returns the current list of activities that are in progress.
|
|
137
|
+
* This model is only updated in the next tick after the view has been updated.
|
|
138
|
+
* @type {?}
|
|
139
|
+
* @private
|
|
140
|
+
*/
|
|
141
|
+
InteractionContextBase.prototype._activityListDelegate;
|
|
142
|
+
/**
|
|
143
|
+
* @type {?}
|
|
144
|
+
* @private
|
|
145
|
+
*/
|
|
146
|
+
InteractionContextBase.prototype.deferredGetCurrentActivity;
|
|
147
|
+
/**
|
|
148
|
+
* @abstract
|
|
149
|
+
* @protected
|
|
150
|
+
* @template D, R, E
|
|
151
|
+
* @param {?} activityType
|
|
152
|
+
* @param {?=} data
|
|
153
|
+
* @param {?=} disableClose
|
|
154
|
+
* @return {?}
|
|
155
|
+
*/
|
|
156
|
+
InteractionContextBase.prototype._startActivity = function (activityType, data, disableClose) { };
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY29udGV4dC1iYXNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFFTCxRQUFRLEVBQ1IsbUJBQW1CLEVBQ25CLEdBQUcsRUFJSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBRTdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBRTNELE1BQU0sT0FBZ0Isc0JBQXVCLFNBQVEsa0JBQWtCOzs7O0lBVXJFO1FBQ0UsS0FBSyxFQUFFLENBQUM7Ozs7O1FBTE8sMEJBQXFCLEdBQUcsSUFBSSxtQkFBbUIsRUFBc0IsQ0FBQztjQU0vRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLGdCQUFnQjs7OztRQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDN0QsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7Z0JBQ25DLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFFUyxlQUFlLENBQUMsWUFBMkM7UUFDbkUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7O0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDO0lBQzdDLENBQUM7Ozs7OztJQU1LLGtCQUFrQjs7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDcEIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0wsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7b0JBQ25DLDBEQUEwRDtvQkFDMUQsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDO2lCQUNoRDtxQkFBTTtvQkFDTCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDaEMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDbkQsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDO3FCQUNoRDt5QkFBTTt3QkFDTCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDeEM7aUJBQ0Y7YUFDRjtRQUNILENBQUM7S0FBQTs7Ozs7OztJQUdELGFBQWEsQ0FBVSxZQUE4QyxFQUFFLElBQVE7UUFDN0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxPQUFnQjtRQUN0QiwwRUFBMEU7UUFDMUUseUVBQXlFO1FBQ3pFLDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSTs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFDLENBQUMsS0FBSzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFDLENBQUM7SUFDM0UsQ0FBQzs7Ozs7SUFFRCxLQUFLLENBQUMsS0FBWTtRQUNoQixvQ0FBb0M7UUFDcEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRSxDQUFDOzs7OztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Ozs7Ozs7O0lBRUQsV0FBVyxDQUFVLE9BQWdCLEVBQUUsWUFBOEMsRUFBRSxJQUFRO1FBQzdGLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBaUQsMEJBQTBCLEVBQUU7WUFDckcsT0FBTztZQUNQLFlBQVksRUFBRSxZQUFZO1lBQzFCLElBQUksRUFBRSxJQUFJO1NBQ1gsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FFRjs7Ozs7Ozs7SUExRUMsdURBQXVGOzs7OztJQUV2Riw0REFBc0U7Ozs7Ozs7Ozs7SUEwQ3RFLGtHQUF3SSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbnN0cnVjdGFibGUsXG4gIERlZmVycmVkLFxuICBEZWxlZ2F0aW5nTGlzdE1vZGVsLCBEaXNwb3NhYmxlLFxuICBEc2wsXG4gIEV2ZW50TGlzdGVuZXJMaXN0LFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBMaXN0TW9kZWxcbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuL2FjdGl2aXR5JztcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSAnLi9hbGVydCc7XG5pbXBvcnQgeyBBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXRoZW4tZGlhbG9nL2NvbmZpcm0tdGhlbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm0gfSBmcm9tICcuL2NvbmZpcm0nO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25Db250ZXh0IH0gZnJvbSAnLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEludGVyYWN0aW9uQ29udGV4dEJhc2UgZXh0ZW5kcyBJbnRlcmFjdGlvbkNvbnRleHQge1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGxpc3Qgb2YgYWN0aXZpdGllcyB0aGF0IGFyZSBpbiBwcm9ncmVzcy5cbiAgICogVGhpcyBtb2RlbCBpcyBvbmx5IHVwZGF0ZWQgaW4gdGhlIG5leHQgdGljayBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiB1cGRhdGVkLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZpdHlMaXN0RGVsZWdhdGUgPSBuZXcgRGVsZWdhdGluZ0xpc3RNb2RlbDxBY3Rpdml0eTxhbnksIGFueT4+KCk7XG5cbiAgcHJpdmF0ZSBkZWZlcnJlZEdldEN1cnJlbnRBY3Rpdml0eTogRGVmZXJyZWQ8QWN0aXZpdHk8YW55LCBhbnksIGFueT4+O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbi5saXN0T2YodGhpcy5hY3Rpdml0eUxpc3QpLmJlY29tZXNQb3B1bGF0ZWQoKGFjdGl2aXRpZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmRlZmVycmVkR2V0Q3VycmVudEFjdGl2aXR5KSB7XG4gICAgICAgIHRoaXMuZGVmZXJyZWRHZXRDdXJyZW50QWN0aXZpdHkucmVzb2x2ZShfLmxhc3QoYWN0aXZpdGllcykpO1xuICAgICAgICB0aGlzLmRlZmVycmVkR2V0Q3VycmVudEFjdGl2aXR5ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRBY3Rpdml0eUxpc3QoYWN0aXZpdHlMaXN0OiBMaXN0TW9kZWw8QWN0aXZpdHk8YW55LCBhbnk+Pikge1xuICAgIHRoaXMuX2FjdGl2aXR5TGlzdERlbGVnYXRlLnNldERlbGVnYXRlKGFjdGl2aXR5TGlzdCk7XG4gIH1cblxuICBnZXQgYWN0aXZpdHlMaXN0KCk6IExpc3RNb2RlbDxBY3Rpdml0eTxhbnksIGFueSwgYW55Pj4ge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0eUxpc3REZWxlZ2F0ZS5yZWFkb25seTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhY3Rpdml0eSB0aGF0IGlzIGN1cnJlbnRseSBhY3RpdmUuXG4gICAqIFRoaXMgbW9kZWwgaXMgb25seSB1cGRhdGVkIGluIHRoZSBuZXh0IHRpY2sgYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gdXBkYXRlZC5cbiAgICovXG4gIGFzeW5jIGdldEN1cnJlbnRBY3Rpdml0eSgpOiBQcm9taXNlPEFjdGl2aXR5PGFueSwgYW55Pj4ge1xuICAgIGlmICghdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ25vIGFjdGl2aXR5IGluIHByb2dyZXNzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmRlZmVycmVkR2V0Q3VycmVudEFjdGl2aXR5KSB7XG4gICAgICAgIC8vIHdlJ3JlIGFscmVhZHkgd2FpdGluZyB0aGVuIGp1c3QgcmV0dXJuIHRoZSBzYW1lIHByb21pc2VcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmZXJyZWRHZXRDdXJyZW50QWN0aXZpdHkucHJvbWlzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2aXR5TGlzdC5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgdGhpcy5kZWZlcnJlZEdldEN1cnJlbnRBY3Rpdml0eSA9IERlZmVycmVkLmRlZmVyKCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGVmZXJyZWRHZXRDdXJyZW50QWN0aXZpdHkucHJvbWlzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gXy5sYXN0KHRoaXMuYWN0aXZpdHlMaXN0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX3N0YXJ0QWN0aXZpdHk8RCwgUiwgRT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YT86IEQsIGRpc2FibGVDbG9zZT86Ym9vbGVhbik6IFByb21pc2U8Uj47XG5cbiAgc3RhcnRBY3Rpdml0eTxELCBSLCBFPihhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhPzogRCk6IFByb21pc2U8Uj4ge1xuICAgIHJldHVybiB0aGlzLl9zdGFydEFjdGl2aXR5KGFjdGl2aXR5VHlwZSwgZGF0YSk7XG4gIH1cblxuICBjb25maXJtKGNvbmZpcm06IENvbmZpcm0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBJbXBvcnRhbnQ6IHdlIGhhdmUgdG8gaW1wbGVtZW50IGNvbmZpcm1PclJlamVjdCBhcyB0aGUgbWFpbiBlbnRyeSBwb2ludFxuICAgIC8vIGFzIHRoZSBjYW5EZWFjdGl2YXRpb24gZ3VhcmRzIG5lZWQgdG8gYmUgYWJsZSB0byBjYW5jZWwgYW4gaW50ZXJhY3Rpb25cbiAgICAvLyB3aXRob3V0IGNhcmluZyBhYm91dCByZXR1cm5pbmcgYSB2YWx1ZS5cbiAgICByZXR1cm4gdGhpcy5jb25maXJtT3JSZWplY3QoY29uZmlybSkudGhlbigoKSA9PiB0cnVlKS5jYXRjaCgoKSA9PiBmYWxzZSk7XG4gIH1cblxuICBhbGVydChhbGVydDogQWxlcnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBUT0RPOiBUZXN0IGRpc2FibGVDbG9zZSA9PT0gZmFsc2VcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRBY3Rpdml0eShBbGVydERpYWxvZ0NvbXBvbmVudCwgYWxlcnQsIGZhbHNlKTtcbiAgfVxuXG4gIGNvbmZpcm1PclJlamVjdChjb25maXJtOiBDb25maXJtKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0QWN0aXZpdHkoQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCBjb25maXJtLCB0cnVlKTtcbiAgfVxuXG4gIGNvbmZpcm1UaGVuPEQsIFIsIEU+KGNvbmZpcm06IENvbmZpcm0sIGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sIGRhdGE/OiBEKTogUHJvbWlzZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0QWN0aXZpdHk8Q29uZmlybVRoZW5EaWFsb2dDb21wb25lbnQuRGF0YTxELCBSLCBFPiwgUiwgRT4oQ29uZmlybVRoZW5EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGNvbmZpcm0sXG4gICAgICBhY3Rpdml0eVR5cGU6IGFjdGl2aXR5VHlwZSxcbiAgICAgIGRhdGE6IGRhdGFcbiAgICB9LCB0cnVlKTtcbiAgfVxuXG59XG5cbiJdfQ==
|
|
@@ -2,112 +2,69 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
6
|
-
import { Deferred, DelegatingListModel, Dsl, GarbageCollector } from '@coolon/pectin';
|
|
7
|
-
import * as _ from 'lodash';
|
|
5
|
+
import { EventListenerList, GarbageCollector } from '@coolon/pectin';
|
|
8
6
|
/**
|
|
9
7
|
* @abstract
|
|
10
8
|
*/
|
|
11
9
|
export class InteractionContext extends GarbageCollector {
|
|
12
|
-
/**
|
|
13
|
-
* @protected
|
|
14
|
-
*/
|
|
15
10
|
constructor() {
|
|
16
|
-
super();
|
|
17
|
-
|
|
18
|
-
* Returns the current list of activities that are in progress.
|
|
19
|
-
* This model is only updated in the next tick after the view has been updated.
|
|
20
|
-
*/
|
|
21
|
-
this._activityListDelegate = new DelegatingListModel();
|
|
22
|
-
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
23
|
-
when.listOf(this.activityList).becomesPopulated((/**
|
|
24
|
-
* @param {?} activities
|
|
25
|
-
* @return {?}
|
|
26
|
-
*/
|
|
27
|
-
(activities) => {
|
|
28
|
-
if (this.deferredGetCurrentActivity) {
|
|
29
|
-
this.deferredGetCurrentActivity.resolve(_.last(activities));
|
|
30
|
-
this.deferredGetCurrentActivity = null;
|
|
31
|
-
}
|
|
32
|
-
}));
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.activityListeners = new EventListenerList();
|
|
33
13
|
}
|
|
34
14
|
/**
|
|
35
|
-
*
|
|
36
|
-
* @param {?} activityList
|
|
15
|
+
* Returns true if an activity is currently running.
|
|
37
16
|
* @return {?}
|
|
38
17
|
*/
|
|
39
|
-
|
|
40
|
-
this.
|
|
18
|
+
isActive() {
|
|
19
|
+
return this.active.value;
|
|
41
20
|
}
|
|
42
21
|
/**
|
|
22
|
+
* @param {?} listener
|
|
43
23
|
* @return {?}
|
|
44
24
|
*/
|
|
45
|
-
|
|
46
|
-
return this.
|
|
25
|
+
addActivityListener(listener) {
|
|
26
|
+
return this.activityListeners.add(listener);
|
|
47
27
|
}
|
|
48
28
|
/**
|
|
49
|
-
*
|
|
50
|
-
* This model is only updated in the next tick after the view has been updated.
|
|
29
|
+
* @protected
|
|
51
30
|
* @return {?}
|
|
52
31
|
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (this.deferredGetCurrentActivity) {
|
|
60
|
-
// we're already waiting then just return the same promise
|
|
61
|
-
return this.deferredGetCurrentActivity.promise;
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
if (this.activityList.length < 1) {
|
|
65
|
-
this.deferredGetCurrentActivity = Deferred.defer();
|
|
66
|
-
return this.deferredGetCurrentActivity.promise;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
return _.last(this.activityList.value);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
});
|
|
32
|
+
notifyActivityStarted() {
|
|
33
|
+
this.activityListeners.fire((/**
|
|
34
|
+
* @param {?} l
|
|
35
|
+
* @return {?}
|
|
36
|
+
*/
|
|
37
|
+
l => l.onActivityStarted()));
|
|
74
38
|
}
|
|
75
39
|
/**
|
|
76
|
-
* @
|
|
40
|
+
* @protected
|
|
77
41
|
* @return {?}
|
|
78
42
|
*/
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
// without caring about returning a value.
|
|
83
|
-
return this.confirmOrReject(confirm).then((/**
|
|
43
|
+
notifyActivityFinished() {
|
|
44
|
+
this.activityListeners.fire((/**
|
|
45
|
+
* @param {?} l
|
|
84
46
|
* @return {?}
|
|
85
47
|
*/
|
|
86
|
-
|
|
87
|
-
* @return {?}
|
|
88
|
-
*/
|
|
89
|
-
() => false));
|
|
48
|
+
l => l.onActivityFinished()));
|
|
90
49
|
}
|
|
91
50
|
}
|
|
92
51
|
if (false) {
|
|
93
|
-
/**
|
|
94
|
-
* Returns the current list of activities that are in progress.
|
|
95
|
-
* This model is only updated in the next tick after the view has been updated.
|
|
96
|
-
* @type {?}
|
|
97
|
-
* @private
|
|
98
|
-
*/
|
|
99
|
-
InteractionContext.prototype._activityListDelegate;
|
|
100
52
|
/**
|
|
101
53
|
* @type {?}
|
|
102
54
|
* @private
|
|
103
55
|
*/
|
|
104
|
-
InteractionContext.prototype.
|
|
56
|
+
InteractionContext.prototype.activityListeners;
|
|
57
|
+
/** @type {?} */
|
|
58
|
+
InteractionContext.prototype.activityList;
|
|
59
|
+
/** @type {?} */
|
|
60
|
+
InteractionContext.prototype.active;
|
|
105
61
|
/**
|
|
106
|
-
* Returns
|
|
62
|
+
* Returns the activity that is currently active.
|
|
63
|
+
* This model is only updated in the next tick after the view has been updated.
|
|
107
64
|
* @abstract
|
|
108
65
|
* @return {?}
|
|
109
66
|
*/
|
|
110
|
-
InteractionContext.prototype.
|
|
67
|
+
InteractionContext.prototype.getCurrentActivity = function () { };
|
|
111
68
|
/**
|
|
112
69
|
* @abstract
|
|
113
70
|
* @template D, R, E
|
|
@@ -116,6 +73,18 @@ if (false) {
|
|
|
116
73
|
* @return {?}
|
|
117
74
|
*/
|
|
118
75
|
InteractionContext.prototype.startActivity = function (activityType, data) { };
|
|
76
|
+
/**
|
|
77
|
+
* @abstract
|
|
78
|
+
* @param {?} alert
|
|
79
|
+
* @return {?}
|
|
80
|
+
*/
|
|
81
|
+
InteractionContext.prototype.alert = function (alert) { };
|
|
82
|
+
/**
|
|
83
|
+
* @abstract
|
|
84
|
+
* @param {?} confirm
|
|
85
|
+
* @return {?}
|
|
86
|
+
*/
|
|
87
|
+
InteractionContext.prototype.confirm = function (confirm) { };
|
|
119
88
|
/**
|
|
120
89
|
* @abstract
|
|
121
90
|
* @param {?} confirm
|
|
@@ -132,11 +101,22 @@ if (false) {
|
|
|
132
101
|
* @return {?}
|
|
133
102
|
*/
|
|
134
103
|
InteractionContext.prototype.confirmThen = function (confirm, activityType, data) { };
|
|
104
|
+
}
|
|
105
|
+
(function (InteractionContext) {
|
|
135
106
|
/**
|
|
136
|
-
* @
|
|
137
|
-
* @param {?} alert
|
|
138
|
-
* @return {?}
|
|
107
|
+
* @record
|
|
139
108
|
*/
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
109
|
+
function Listener() { }
|
|
110
|
+
InteractionContext.Listener = Listener;
|
|
111
|
+
if (false) {
|
|
112
|
+
/**
|
|
113
|
+
* @return {?}
|
|
114
|
+
*/
|
|
115
|
+
Listener.prototype.onActivityStarted = function () { };
|
|
116
|
+
/**
|
|
117
|
+
* @return {?}
|
|
118
|
+
*/
|
|
119
|
+
Listener.prototype.onActivityFinished = function () { };
|
|
120
|
+
}
|
|
121
|
+
})(InteractionContext || (InteractionContext = {}));
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQTZCLGlCQUFpQixFQUFFLGdCQUFnQixFQUF5QixNQUFNLGdCQUFnQixDQUFDOzs7O0FBS3ZILE1BQU0sT0FBZ0Isa0JBQW1CLFNBQVEsZ0JBQWdCO0lBQWpFOztRQUVtQixzQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUErQixDQUFDO0lBNkM1RixDQUFDOzs7OztJQXRDQyxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDOzs7OztJQUVELG1CQUFtQixDQUFDLFFBQXFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDOzs7OztJQUVTLHFCQUFxQjtRQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUMsQ0FBQztJQUMxRCxDQUFDOzs7OztJQUVTLHNCQUFzQjtRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUMsQ0FBQztJQUMzRCxDQUFDO0NBd0JGOzs7Ozs7SUE3Q0MsK0NBQTBGOztJQUMxRiwwQ0FBbUU7O0lBQ25FLG9DQUE4Qzs7Ozs7OztJQXlCOUMsa0VBQWlFOzs7Ozs7OztJQUVqRSwrRUFBc0c7Ozs7OztJQUV0RywwREFBNEM7Ozs7OztJQUU1Qyw4REFBcUQ7Ozs7OztJQUVyRCxzRUFBZ0U7Ozs7Ozs7Ozs7SUFRaEUsc0ZBQXNIOztBQUl4SCxXQUFpQixrQkFBa0I7Ozs7SUFDakMsdUJBR0M7Ozs7OztRQUZDLHVEQUF5Qjs7OztRQUN6Qix3REFBMEI7O0FBRTlCLENBQUMsRUFMZ0Isa0JBQWtCLEtBQWxCLGtCQUFrQixRQUtsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdGFibGUsIERpc3Bvc2FibGUsIEV2ZW50TGlzdGVuZXJMaXN0LCBHYXJiYWdlQ29sbGVjdG9yLCBMaXN0TW9kZWwsIFZhbHVlTW9kZWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4vYWN0aXZpdHknO1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tICcuL2FsZXJ0JztcbmltcG9ydCB7IENvbmZpcm0gfSBmcm9tICcuL2NvbmZpcm0nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW50ZXJhY3Rpb25Db250ZXh0IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eUxpc3RlbmVycyA9IG5ldyBFdmVudExpc3RlbmVyTGlzdDxJbnRlcmFjdGlvbkNvbnRleHQuTGlzdGVuZXI+KCk7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGFjdGl2aXR5TGlzdDogTGlzdE1vZGVsPEFjdGl2aXR5PGFueSwgYW55LCBhbnk+PjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgYWN0aXZlOiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYW4gYWN0aXZpdHkgaXMgY3VycmVudGx5IHJ1bm5pbmcuXG4gICAqL1xuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUudmFsdWU7XG4gIH1cblxuICBhZGRBY3Rpdml0eUxpc3RlbmVyKGxpc3RlbmVyOiBJbnRlcmFjdGlvbkNvbnRleHQuTGlzdGVuZXIpOiBEaXNwb3NhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUxpc3RlbmVycy5hZGQobGlzdGVuZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5vdGlmeUFjdGl2aXR5U3RhcnRlZCgpIHtcbiAgICB0aGlzLmFjdGl2aXR5TGlzdGVuZXJzLmZpcmUobCA9PiBsLm9uQWN0aXZpdHlTdGFydGVkKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5vdGlmeUFjdGl2aXR5RmluaXNoZWQoKSB7XG4gICAgdGhpcy5hY3Rpdml0eUxpc3RlbmVycy5maXJlKGwgPT4gbC5vbkFjdGl2aXR5RmluaXNoZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYWN0aXZpdHkgdGhhdCBpcyBjdXJyZW50bHkgYWN0aXZlLlxuICAgKiBUaGlzIG1vZGVsIGlzIG9ubHkgdXBkYXRlZCBpbiB0aGUgbmV4dCB0aWNrIGFmdGVyIHRoZSB2aWV3IGhhcyBiZWVuIHVwZGF0ZWQuXG4gICAqL1xuICBhYnN0cmFjdCBhc3luYyBnZXRDdXJyZW50QWN0aXZpdHkoKTogUHJvbWlzZTxBY3Rpdml0eTxhbnksIGFueT4+O1xuXG4gIGFic3RyYWN0IHN0YXJ0QWN0aXZpdHk8RCwgUiwgRT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YT86IEQpOiBQcm9taXNlPFI+O1xuXG4gIGFic3RyYWN0IGFsZXJ0KGFsZXJ0OiBBbGVydCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgY29uZmlybShjb25maXJtOiBDb25maXJtKTogUHJvbWlzZTxib29sZWFuPjtcblxuICBhYnN0cmFjdCBhc3luYyBjb25maXJtT3JSZWplY3QoY29uZmlybTogQ29uZmlybSk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFByZXNlbnRzIHRoZSBjb25maXJtYXRpb24gdG8gdGhlIHVzZXIgYW5kIHJ1bnMgdGhlIGFjdGl2aXR5IG9ubHkgaWYgdGhlIHVzZXIgY29uZmlybXMuXG4gICAqIEBwYXJhbSBjb25maXJtOkNvbmZpcm0gdGhlIGNvbmZpcm1hdGlvbiB0byBkaXNwbGF5LlxuICAgKiBAcGFyYW0gYWN0aXZpdHlUeXBlIHRoZSBhY3Rpdml0eSB0byBydW4gaWYgY29uZmlybWVkLlxuICAgKiBAcGFyYW0gZGF0YSB0aGUgYWN0aXZpdHkgZGF0YS5cbiAgICovXG4gIGFic3RyYWN0IGNvbmZpcm1UaGVuPEQsIFIsIEU+KGNvbmZpcm06IENvbmZpcm0sIGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sIGRhdGE/OiBEKTogUHJvbWlzZTxSPjtcblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEludGVyYWN0aW9uQ29udGV4dCB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXIge1xuICAgIG9uQWN0aXZpdHlTdGFydGVkKCk6IHZvaWRcbiAgICBvbkFjdGl2aXR5RmluaXNoZWQoKTogdm9pZFxuICB9XG59XG5cbiJdfQ==
|
|
@@ -53,4 +53,4 @@ InteractionModule.decorators = [
|
|
|
53
53
|
]
|
|
54
54
|
},] }
|
|
55
55
|
];
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUNwSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQXVDakYsTUFBTSxPQUFPLGlCQUFpQjs7O1lBckM3QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZUFBZTtvQkFDZixlQUFlO29CQUNmLGFBQWE7b0JBQ2IsWUFBWTtvQkFDWixZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWiwwQkFBMEI7b0JBQzFCLDJCQUEyQjtvQkFDM0IsMEJBQTBCO29CQUMxQixvQkFBb0I7b0JBQ3BCLHVCQUF1QjtvQkFDdkIsMEJBQTBCO29CQUMxQixrQ0FBa0M7aUJBQ25DO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwwQkFBMEI7b0JBQzFCLHVCQUF1QjtvQkFDdkIsMEJBQTBCO29CQUMxQixrQ0FBa0M7aUJBQ25DO2dCQUNELGVBQWUsRUFBRTtvQkFDZiwwQkFBMEI7b0JBQzFCLDJCQUEyQjtvQkFDM0IsMEJBQTBCO29CQUMxQixvQkFBb0I7aUJBQ3JCO2dCQUNELFNBQVMsRUFBRTtvQkFDVCx3QkFBd0I7aUJBSXpCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBNQVRfVEFCU19DT05GSUcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQbGFjZU1vZHVsZSB9IGZyb20gJy4uL3BsYWNlL3BsYWNlLm1vZHVsZSc7XG5pbXBvcnQgeyBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpdml0eU91dGxldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXRoZW4tZGlhbG9nL2NvbmZpcm0tdGhlbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW5wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0L2lucGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25PdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW50ZXJhY3Rpb24tb3V0bGV0L2ludGVyYWN0aW9uLW91dGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nSW50ZXJhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kaWFsb2ctaW50ZXJhY3Rpb24uc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50LFxuICAgIEludGVyYWN0aW9uT3V0bGV0Q29tcG9uZW50LFxuICAgIElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50LFxuICAgIEludGVyYWN0aW9uT3V0bGV0Q29tcG9uZW50LFxuICAgIElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnRcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIERpYWxvZ0ludGVyYWN0aW9uU2VydmljZSxcbiAgICAvLyB7XG4gICAgLy8gICBwcm92aWRlOiBNQVRfVEFCU19DT05GSUcsIHVzZVZhbHVlOiB7IGFuaW1hdGlvbkR1cmF0aW9uOiBcIjJzXCIgfVxuICAgIC8vIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvbk1vZHVsZSB7XG59XG4iXX0=
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Injectable } from '@angular/core';
|
|
6
|
+
import { MatDialog } from '@angular/material';
|
|
7
|
+
import { MatDialogConfig } from '@angular/material/dialog';
|
|
8
|
+
import { lang, MutableValueModel } from '@coolon/pectin';
|
|
9
|
+
import { assert } from '@coolon/typescript-utilities';
|
|
10
|
+
import { ActivityContainerComponent } from '../components/activity-container/activity-container.component';
|
|
11
|
+
import { InteractionContextBase } from '../interaction-context-base';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/material/dialog";
|
|
14
|
+
export class DialogInteractionContext extends InteractionContextBase {
|
|
15
|
+
/**
|
|
16
|
+
* @param {?} dialogService
|
|
17
|
+
* @param {?} config
|
|
18
|
+
*/
|
|
19
|
+
constructor(dialogService, config) {
|
|
20
|
+
super();
|
|
21
|
+
this.dialogService = dialogService;
|
|
22
|
+
this.config = config;
|
|
23
|
+
this._activeModel = new MutableValueModel(false);
|
|
24
|
+
assert.notNil(dialogService);
|
|
25
|
+
this.onDispose((/**
|
|
26
|
+
* @return {?}
|
|
27
|
+
*/
|
|
28
|
+
() => {
|
|
29
|
+
if (this.isActive()) {
|
|
30
|
+
lang.illegalState('Dispose called while active.');
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @return {?}
|
|
36
|
+
*/
|
|
37
|
+
get active() {
|
|
38
|
+
return this._activeModel.readonly;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @protected
|
|
42
|
+
* @template D, R, E
|
|
43
|
+
* @param {?} activityType
|
|
44
|
+
* @param {?} data
|
|
45
|
+
* @param {?=} disableClose
|
|
46
|
+
* @return {?}
|
|
47
|
+
*/
|
|
48
|
+
_startActivity(activityType, data, disableClose = true) {
|
|
49
|
+
if (this.isActive()) {
|
|
50
|
+
lang.illegalState(`Activity already in progress: ${this.activityList.value.map((/**
|
|
51
|
+
* @param {?} a
|
|
52
|
+
* @return {?}
|
|
53
|
+
*/
|
|
54
|
+
a => a.constructor.name)).join(', ')}`);
|
|
55
|
+
}
|
|
56
|
+
this._activeModel.value = true;
|
|
57
|
+
this.notifyActivityStarted();
|
|
58
|
+
/** @type {?} */
|
|
59
|
+
const config = Object.assign({}, this.config, {
|
|
60
|
+
data,
|
|
61
|
+
disableClose,
|
|
62
|
+
panelClass: 'dialog-interaction-service'
|
|
63
|
+
});
|
|
64
|
+
/** @type {?} */
|
|
65
|
+
const self = this;
|
|
66
|
+
/** @type {?} */
|
|
67
|
+
const matDialogRef = (/** @type {?} */ (this.dialogService.open(ActivityContainerComponent, config)));
|
|
68
|
+
return new Promise((/**
|
|
69
|
+
* @param {?} resolve
|
|
70
|
+
* @param {?} reject
|
|
71
|
+
* @return {?}
|
|
72
|
+
*/
|
|
73
|
+
(resolve, reject) => {
|
|
74
|
+
/** @type {?} */
|
|
75
|
+
const activityContainer = matDialogRef.componentInstance;
|
|
76
|
+
self.safelyUpdateActivityListDelegate(activityContainer.activityList);
|
|
77
|
+
activityContainer.initialActivityOutletContext = {
|
|
78
|
+
activityClass: activityType,
|
|
79
|
+
activityData: data,
|
|
80
|
+
/**
|
|
81
|
+
* @param {?} result
|
|
82
|
+
* @return {?}
|
|
83
|
+
*/
|
|
84
|
+
onDone(result) {
|
|
85
|
+
resolve(result);
|
|
86
|
+
matDialogRef.close(true); // return true to let the after close listener know we've already handled it.
|
|
87
|
+
},
|
|
88
|
+
/**
|
|
89
|
+
* @param {?} error
|
|
90
|
+
* @return {?}
|
|
91
|
+
*/
|
|
92
|
+
onCancel(error) {
|
|
93
|
+
reject(error);
|
|
94
|
+
matDialogRef.close(true); // return true to let the after close listener know we've already handled it.
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
// we need to check if our onDone/onCancel methods above we called or if we were
|
|
98
|
+
// closed by the user clicking the backdrop. If the later then we need to reject
|
|
99
|
+
// our promise.
|
|
100
|
+
matDialogRef.afterClosed().subscribe((/**
|
|
101
|
+
* @param {?} promiseAlreadyFinished
|
|
102
|
+
* @return {?}
|
|
103
|
+
*/
|
|
104
|
+
promiseAlreadyFinished => {
|
|
105
|
+
if (!promiseAlreadyFinished) {
|
|
106
|
+
reject('auto-closed');
|
|
107
|
+
}
|
|
108
|
+
}));
|
|
109
|
+
matDialogRef.updateSize();
|
|
110
|
+
matDialogRef.afterOpened().subscribe((/**
|
|
111
|
+
* @param {?} promiseAlreadyFinished
|
|
112
|
+
* @return {?}
|
|
113
|
+
*/
|
|
114
|
+
promiseAlreadyFinished => {
|
|
115
|
+
matDialogRef.updateSize();
|
|
116
|
+
}));
|
|
117
|
+
})).finally((/**
|
|
118
|
+
* @return {?}
|
|
119
|
+
*/
|
|
120
|
+
() => {
|
|
121
|
+
this._activeModel.value = false;
|
|
122
|
+
this.notifyActivityFinished();
|
|
123
|
+
self.safelyUpdateActivityListDelegate(null);
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Updates teh delegate on the next tick to avoid modifying state during the current change detection cycle.
|
|
128
|
+
* @param {?} delegate
|
|
129
|
+
* @return {?}
|
|
130
|
+
*/
|
|
131
|
+
safelyUpdateActivityListDelegate(delegate) {
|
|
132
|
+
setTimeout((/**
|
|
133
|
+
* @return {?}
|
|
134
|
+
*/
|
|
135
|
+
() => this.setActivityList(delegate)));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
DialogInteractionContext.decorators = [
|
|
139
|
+
{ type: Injectable, args: [{
|
|
140
|
+
providedIn: 'root'
|
|
141
|
+
},] }
|
|
142
|
+
];
|
|
143
|
+
/** @nocollapse */
|
|
144
|
+
DialogInteractionContext.ctorParameters = () => [
|
|
145
|
+
{ type: MatDialog },
|
|
146
|
+
{ type: MatDialogConfig }
|
|
147
|
+
];
|
|
148
|
+
/** @nocollapse */ DialogInteractionContext.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DialogInteractionContext_Factory() { return new DialogInteractionContext(i0.ɵɵinject(i1.MatDialog), i0.ɵɵinject(i1.MatDialogConfig)); }, token: DialogInteractionContext, providedIn: "root" });
|
|
149
|
+
if (false) {
|
|
150
|
+
/**
|
|
151
|
+
* @type {?}
|
|
152
|
+
* @private
|
|
153
|
+
*/
|
|
154
|
+
DialogInteractionContext.prototype._activeModel;
|
|
155
|
+
/**
|
|
156
|
+
* @type {?}
|
|
157
|
+
* @private
|
|
158
|
+
*/
|
|
159
|
+
DialogInteractionContext.prototype.dialogService;
|
|
160
|
+
/** @type {?} */
|
|
161
|
+
DialogInteractionContext.prototype.config;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vc2VydmljZXMvZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFpQixJQUFJLEVBQWEsaUJBQWlCLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDM0csT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUtyRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsc0JBQXNCOzs7OztJQUlsRSxZQUE2QixhQUF3QixFQUFXLE1BQTRCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRG1CLGtCQUFhLEdBQWIsYUFBYSxDQUFXO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFGM0UsaUJBQVksR0FBRyxJQUFJLGlCQUFpQixDQUFVLEtBQUssQ0FBQyxDQUFDO1FBSXBFLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVM7OztRQUFDLEdBQUcsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2FBQ25EO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFD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QUFzRTs7Ozs7SUFFMUQsaURBQXlDOztJQUFFLDBDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IENvbnN0cnVjdGFibGUsIGxhbmcsIExpc3RNb2RlbCwgTXV0YWJsZVZhbHVlTW9kZWwsIFZhbHVlTW9kZWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi4vYWN0aXZpdHknO1xuaW1wb3J0IHsgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dEJhc2UgfSBmcm9tICcuLi9pbnRlcmFjdGlvbi1jb250ZXh0LWJhc2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dJbnRlcmFjdGlvbkNvbnRleHQgZXh0ZW5kcyBJbnRlcmFjdGlvbkNvbnRleHRCYXNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBNYXREaWFsb2csIHJlYWRvbmx5IGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnPGFueT4pIHtcbiAgICBzdXBlcigpO1xuICAgIGFzc2VydC5ub3ROaWwoZGlhbG9nU2VydmljZSk7XG4gICAgdGhpcy5vbkRpc3Bvc2UoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnRGlzcG9zZSBjYWxsZWQgd2hpbGUgYWN0aXZlLicpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZSgpOiBWYWx1ZU1vZGVsPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTW9kZWwucmVhZG9ubHk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3N0YXJ0QWN0aXZpdHk8RCwgUiwgRT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YTogRCwgZGlzYWJsZUNsb3NlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBBY3Rpdml0eSBhbHJlYWR5IGluIHByb2dyZXNzOiAke3RoaXMuYWN0aXZpdHlMaXN0LnZhbHVlLm1hcChhID0+IGEuY29uc3RydWN0b3IubmFtZSkuam9pbignLCAnKX1gKTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlTW9kZWwudmFsdWUgPSB0cnVlO1xuICAgIHRoaXMubm90aWZ5QWN0aXZpdHlTdGFydGVkKCk7XG4gICAgY29uc3QgY29uZmlnOiBNYXREaWFsb2dDb25maWcgPSB7XG4gICAgICAuLi50aGlzLmNvbmZpZyxcbiAgICAgIC4uLntcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZGlzYWJsZUNsb3NlLFxuICAgICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLWludGVyYWN0aW9uLXNlcnZpY2UnXG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGNvbnN0IG1hdERpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LCBjb25maWcpIGFzIE1hdERpYWxvZ1JlZjxBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudDxELCBSLCBFPj47XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGFjdGl2aXR5Q29udGFpbmVyID0gbWF0RGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlO1xuICAgICAgc2VsZi5zYWZlbHlVcGRhdGVBY3Rpdml0eUxpc3REZWxlZ2F0ZShhY3Rpdml0eUNvbnRhaW5lci5hY3Rpdml0eUxpc3QpO1xuXG4gICAgICBhY3Rpdml0eUNvbnRhaW5lci5pbml0aWFsQWN0aXZpdHlPdXRsZXRDb250ZXh0ID0ge1xuICAgICAgICBhY3Rpdml0eUNsYXNzOiBhY3Rpdml0eVR5cGUsXG4gICAgICAgIGFjdGl2aXR5RGF0YTogZGF0YSxcbiAgICAgICAgb25Eb25lKHJlc3VsdCkge1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICBtYXREaWFsb2dSZWYuY2xvc2UodHJ1ZSk7IC8vIHJldHVybiB0cnVlIHRvIGxldCB0aGUgYWZ0ZXIgY2xvc2UgbGlzdGVuZXIga25vdyB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQgaXQuXG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2FuY2VsKGVycm9yKSB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICBtYXREaWFsb2dSZWYuY2xvc2UodHJ1ZSk7IC8vIHJldHVybiB0cnVlIHRvIGxldCB0aGUgYWZ0ZXIgY2xvc2UgbGlzdGVuZXIga25vdyB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQgaXQuXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICAvLyB3ZSBuZWVkIHRvIGNoZWNrIGlmIG91ciBvbkRvbmUvb25DYW5jZWwgbWV0aG9kcyBhYm92ZSB3ZSBjYWxsZWQgb3IgaWYgd2Ugd2VyZVxuICAgICAgLy8gY2xvc2VkIGJ5IHRoZSB1c2VyIGNsaWNraW5nIHRoZSBiYWNrZHJvcC4gIElmIHRoZSBsYXRlciB0aGVuIHdlIG5lZWQgdG8gcmVqZWN0XG4gICAgICAvLyBvdXIgcHJvbWlzZS5cbiAgICAgIG1hdERpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShwcm9taXNlQWxyZWFkeUZpbmlzaGVkID0+IHtcbiAgICAgICAgaWYgKCFwcm9taXNlQWxyZWFkeUZpbmlzaGVkKSB7XG4gICAgICAgICAgcmVqZWN0KCdhdXRvLWNsb3NlZCcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIG1hdERpYWxvZ1JlZi51cGRhdGVTaXplKCk7XG4gICAgICBtYXREaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUocHJvbWlzZUFscmVhZHlGaW5pc2hlZCA9PiB7XG4gICAgICAgIG1hdERpYWxvZ1JlZi51cGRhdGVTaXplKCk7XG4gICAgICB9KTtcbiAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgIHRoaXMuX2FjdGl2ZU1vZGVsLnZhbHVlID0gZmFsc2U7XG4gICAgICB0aGlzLm5vdGlmeUFjdGl2aXR5RmluaXNoZWQoKTtcbiAgICAgIHNlbGYuc2FmZWx5VXBkYXRlQWN0aXZpdHlMaXN0RGVsZWdhdGUobnVsbCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0ZWggZGVsZWdhdGUgb24gdGhlIG5leHQgdGljayB0byBhdm9pZCBtb2RpZnlpbmcgc3RhdGUgZHVyaW5nIHRoZSBjdXJyZW50IGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUuXG4gICAqIEBwYXJhbSBkZWxlZ2F0ZVxuICAgKi9cbiAgc2FmZWx5VXBkYXRlQWN0aXZpdHlMaXN0RGVsZWdhdGUoZGVsZWdhdGU6IExpc3RNb2RlbDxBY3Rpdml0eTxhbnksIGFueT4+KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldEFjdGl2aXR5TGlzdChkZWxlZ2F0ZSkpO1xuICB9XG5cbn1cbiJdfQ==
|