@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.
Files changed (93) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +3108 -2277
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  5. package/coolon-angular-ui-powerups.d.ts +17 -20
  6. package/coolon-angular-ui-powerups.metadata.json +1 -1
  7. package/esm2015/coolon-angular-ui-powerups.js +17 -20
  8. package/esm2015/index.js +2 -2
  9. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +15 -51
  10. package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +15 -47
  11. package/esm2015/lib/interaction/index.js +4 -2
  12. package/esm2015/lib/interaction/interaction-context-base.js +158 -0
  13. package/esm2015/lib/interaction/interaction-context.js +58 -78
  14. package/esm2015/lib/interaction/interaction.module.js +1 -1
  15. package/esm2015/lib/interaction/services/dialog-interaction-context.js +163 -0
  16. package/esm2015/lib/interaction/services/dialog-interaction.service.js +68 -181
  17. package/esm2015/lib/interaction/services/modal-interaction.service.js +109 -0
  18. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +9 -43
  19. package/esm2015/lib/place/guards/abstract-place.guard.js +165 -0
  20. package/esm2015/lib/place/guards/consolidated-param-map.js +133 -0
  21. package/esm2015/lib/place/guards/interaction.guard.js +113 -0
  22. package/esm2015/lib/place/guards/navigation-session.js +590 -0
  23. package/esm2015/lib/place/guards/place-component-deactivation-handler.js +110 -0
  24. package/esm2015/lib/place/index.js +7 -5
  25. package/esm2015/lib/place/place-component.js +1 -1
  26. package/esm2015/lib/place/place-router.js +205 -236
  27. package/esm2015/lib/place/place.module.js +2 -4
  28. package/esm2015/lib/place/route/visit-sanitiser.js +2 -2
  29. package/esm2015/lib/place/url-snapshot.js +96 -0
  30. package/esm2015/public_api.js +3 -3
  31. package/esm5/coolon-angular-ui-powerups.js +17 -20
  32. package/esm5/index.js +2 -2
  33. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +22 -73
  34. package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +25 -76
  35. package/esm5/lib/interaction/index.js +4 -2
  36. package/esm5/lib/interaction/interaction-context-base.js +211 -0
  37. package/esm5/lib/interaction/interaction-context.js +72 -94
  38. package/esm5/lib/interaction/interaction.module.js +1 -1
  39. package/esm5/lib/interaction/services/dialog-interaction-context.js +188 -0
  40. package/esm5/lib/interaction/services/dialog-interaction.service.js +83 -232
  41. package/esm5/lib/interaction/services/modal-interaction.service.js +153 -0
  42. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +9 -43
  43. package/esm5/lib/place/guards/abstract-place.guard.js +212 -0
  44. package/esm5/lib/place/guards/consolidated-param-map.js +161 -0
  45. package/esm5/lib/place/guards/interaction.guard.js +125 -0
  46. package/esm5/lib/place/guards/navigation-session.js +741 -0
  47. package/esm5/lib/place/guards/place-component-deactivation-handler.js +138 -0
  48. package/esm5/lib/place/index.js +7 -5
  49. package/esm5/lib/place/place-component.js +1 -1
  50. package/esm5/lib/place/place-router.js +324 -295
  51. package/esm5/lib/place/place.module.js +2 -4
  52. package/esm5/lib/place/route/visit-sanitiser.js +2 -2
  53. package/esm5/lib/place/url-snapshot.js +120 -0
  54. package/esm5/public_api.js +3 -3
  55. package/fesm2015/coolon-angular-ui-powerups.js +2250 -1642
  56. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  57. package/fesm5/coolon-angular-ui-powerups.js +3228 -2398
  58. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  59. package/lib/interaction/components/activity-container/activity-container.component.d.ts +5 -10
  60. package/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.d.ts +4 -9
  61. package/lib/interaction/index.d.ts +3 -1
  62. package/lib/interaction/interaction-context-base.d.ts +27 -0
  63. package/lib/interaction/interaction-context.d.ts +18 -15
  64. package/lib/interaction/services/dialog-interaction-context.d.ts +18 -0
  65. package/lib/interaction/services/dialog-interaction.service.d.ts +14 -23
  66. package/lib/interaction/services/modal-interaction.service.d.ts +15 -0
  67. package/lib/place/components/place-outlet/place-outlet.component.d.ts +1 -4
  68. package/lib/place/guards/abstract-place.guard.d.ts +19 -0
  69. package/lib/place/guards/consolidated-param-map.d.ts +14 -0
  70. package/lib/{interaction/guards/interaction-guard.service.d.ts → place/guards/interaction.guard.d.ts} +8 -4
  71. package/lib/place/guards/navigation-session.d.ts +96 -0
  72. package/lib/place/guards/place-component-deactivation-handler.d.ts +14 -0
  73. package/lib/place/index.d.ts +6 -4
  74. package/lib/place/place-component.d.ts +1 -1
  75. package/lib/place/place-router.d.ts +23 -31
  76. package/lib/place/url-snapshot.d.ts +16 -0
  77. package/package.json +1 -1
  78. package/schematics/place-routes/place-def.js +2 -2
  79. package/schematics/place-routes/templates/place-routes.ts.template +9 -16
  80. package/esm2015/lib/interaction/guards/interaction-guard.service.js +0 -85
  81. package/esm2015/lib/place/guards/abstract-enter-place.guard.js +0 -296
  82. package/esm2015/lib/place/guards/leave-place.guard.js +0 -47
  83. package/esm2015/lib/place/navigation-session.js +0 -279
  84. package/esm2015/lib/place/places/noop-gateway-place.component.js +0 -58
  85. package/esm5/lib/interaction/guards/interaction-guard.service.js +0 -94
  86. package/esm5/lib/place/guards/abstract-enter-place.guard.js +0 -372
  87. package/esm5/lib/place/guards/leave-place.guard.js +0 -55
  88. package/esm5/lib/place/navigation-session.js +0 -353
  89. package/esm5/lib/place/places/noop-gateway-place.component.js +0 -61
  90. package/lib/place/guards/abstract-enter-place.guard.d.ts +0 -33
  91. package/lib/place/guards/leave-place.guard.d.ts +0 -8
  92. package/lib/place/navigation-session.d.ts +0 -43
  93. 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 * as tslib_1 from "tslib";
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
- * @protected
36
- * @param {?} activityList
15
+ * Returns true if an activity is currently running.
37
16
  * @return {?}
38
17
  */
39
- setActivityList(activityList) {
40
- this._activityListDelegate.setDelegate(activityList);
18
+ isActive() {
19
+ return this.active.value;
41
20
  }
42
21
  /**
22
+ * @param {?} listener
43
23
  * @return {?}
44
24
  */
45
- get activityList() {
46
- return this._activityListDelegate.readonly;
25
+ addActivityListener(listener) {
26
+ return this.activityListeners.add(listener);
47
27
  }
48
28
  /**
49
- * Returns the activity that is currently active.
50
- * This model is only updated in the next tick after the view has been updated.
29
+ * @protected
51
30
  * @return {?}
52
31
  */
53
- getCurrentActivity() {
54
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
55
- if (!this.isActive()) {
56
- return Promise.reject('no activity in progress');
57
- }
58
- else {
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
- * @param {?} confirm
40
+ * @protected
77
41
  * @return {?}
78
42
  */
79
- confirm(confirm) {
80
- // Important: we have to implement confirmOrReject as the main entry point
81
- // as the canDeactivation guards need to be able to cancel an interaction
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
- () => true)).catch((/**
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.deferredGetCurrentActivity;
56
+ InteractionContext.prototype.activityListeners;
57
+ /** @type {?} */
58
+ InteractionContext.prototype.activityList;
59
+ /** @type {?} */
60
+ InteractionContext.prototype.active;
105
61
  /**
106
- * Returns true if an activity is currently running.
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.isActive = function () { };
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
- * @abstract
137
- * @param {?} alert
138
- * @return {?}
107
+ * @record
139
108
  */
140
- InteractionContext.prototype.alert = function (alert) { };
141
- }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFpQixRQUFRLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEgsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7Ozs7QUFLNUIsTUFBTSxPQUFnQixrQkFBbUIsU0FBUSxnQkFBZ0I7Ozs7SUFVL0Q7UUFDRSxLQUFLLEVBQUUsQ0FBQzs7Ozs7UUFMTywwQkFBcUIsR0FBRyxJQUFJLG1CQUFtQixFQUFzQixDQUFDO2NBTS9FLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDeEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsZ0JBQWdCOzs7O1FBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM3RCxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7YUFDeEM7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUVTLGVBQWUsQ0FBQyxZQUEyQztRQUNuRSxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7SUFDN0MsQ0FBQzs7Ozs7O0lBT0ssa0JBQWtCOztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNwQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQzthQUNsRDtpQkFBTTtnQkFDTCxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRTtvQkFDbkMsMERBQTBEO29CQUMxRCxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUM7aUJBQ2hEO3FCQUFNO29CQUNMLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUNoQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNuRCxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUM7cUJBQ2hEO3lCQUFNO3dCQUNMLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUN4QztpQkFDRjthQUNGO1FBQ0gsQ0FBQztLQUFBOzs7OztJQVNELE9BQU8sQ0FBQyxPQUFnQjtRQUN0QiwwRUFBMEU7UUFDMUUseUVBQXlFO1FBQ3pFLDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSTs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFDLENBQUMsS0FBSzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFDLENBQUM7SUFDM0UsQ0FBQztDQWNGOzs7Ozs7OztJQXhFQyxtREFBdUY7Ozs7O0lBRXZGLHdEQUFzRTs7Ozs7O0lBK0N0RSx3REFBNkI7Ozs7Ozs7O0lBRTdCLCtFQUFzRzs7Ozs7O0lBU3RHLHNFQUFnRTs7Ozs7Ozs7OztJQVFoRSxzRkFBc0g7Ozs7OztJQUV0SCwwREFBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3RhYmxlLCBEZWZlcnJlZCwgRGVsZWdhdGluZ0xpc3RNb2RlbCwgRHNsLCBHYXJiYWdlQ29sbGVjdG9yLCBMaXN0TW9kZWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4vYWN0aXZpdHknO1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tICcuL2FsZXJ0JztcbmltcG9ydCB7IENvbmZpcm0gfSBmcm9tICcuL2NvbmZpcm0nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW50ZXJhY3Rpb25Db250ZXh0IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbGlzdCBvZiBhY3Rpdml0aWVzIHRoYXQgYXJlIGluIHByb2dyZXNzLlxuICAgKiBUaGlzIG1vZGVsIGlzIG9ubHkgdXBkYXRlZCBpbiB0aGUgbmV4dCB0aWNrIGFmdGVyIHRoZSB2aWV3IGhhcyBiZWVuIHVwZGF0ZWQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3Rpdml0eUxpc3REZWxlZ2F0ZSA9IG5ldyBEZWxlZ2F0aW5nTGlzdE1vZGVsPEFjdGl2aXR5PGFueSwgYW55Pj4oKTtcblxuICBwcml2YXRlIGRlZmVycmVkR2V0Q3VycmVudEFjdGl2aXR5OiBEZWZlcnJlZDxBY3Rpdml0eTxhbnksIGFueSwgYW55Pj47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuLmxpc3RPZih0aGlzLmFjdGl2aXR5TGlzdCkuYmVjb21lc1BvcHVsYXRlZCgoYWN0aXZpdGllcykgPT4ge1xuICAgICAgaWYgKHRoaXMuZGVmZXJyZWRHZXRDdXJyZW50QWN0aXZpdHkpIHtcbiAgICAgICAgdGhpcy5kZWZlcnJlZEdldEN1cnJlbnRBY3Rpdml0eS5yZXNvbHZlKF8ubGFzdChhY3Rpdml0aWVzKSk7XG4gICAgICAgIHRoaXMuZGVmZXJyZWRHZXRDdXJyZW50QWN0aXZpdHkgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEFjdGl2aXR5TGlzdChhY3Rpdml0eUxpc3Q6IExpc3RNb2RlbDxBY3Rpdml0eTxhbnksIGFueT4+KSB7XG4gICAgdGhpcy5fYWN0aXZpdHlMaXN0RGVsZWdhdGUuc2V0RGVsZWdhdGUoYWN0aXZpdHlMaXN0KTtcbiAgfVxuXG4gIGdldCBhY3Rpdml0eUxpc3QoKTogTGlzdE1vZGVsPEFjdGl2aXR5PGFueSwgYW55LCBhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2aXR5TGlzdERlbGVnYXRlLnJlYWRvbmx5O1xuICB9XG5cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYWN0aXZpdHkgdGhhdCBpcyBjdXJyZW50bHkgYWN0aXZlLlxuICAgKiBUaGlzIG1vZGVsIGlzIG9ubHkgdXBkYXRlZCBpbiB0aGUgbmV4dCB0aWNrIGFmdGVyIHRoZSB2aWV3IGhhcyBiZWVuIHVwZGF0ZWQuXG4gICAqL1xuICBhc3luYyBnZXRDdXJyZW50QWN0aXZpdHkoKTogUHJvbWlzZTxBY3Rpdml0eTxhbnksIGFueT4+IHtcbiAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdubyBhY3Rpdml0eSBpbiBwcm9ncmVzcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5kZWZlcnJlZEdldEN1cnJlbnRBY3Rpdml0eSkge1xuICAgICAgICAvLyB3ZSdyZSBhbHJlYWR5IHdhaXRpbmcgdGhlbiBqdXN0IHJldHVybiB0aGUgc2FtZSBwcm9taXNlXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmVycmVkR2V0Q3VycmVudEFjdGl2aXR5LnByb21pc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5hY3Rpdml0eUxpc3QubGVuZ3RoIDwgMSkge1xuICAgICAgICAgIHRoaXMuZGVmZXJyZWRHZXRDdXJyZW50QWN0aXZpdHkgPSBEZWZlcnJlZC5kZWZlcigpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmRlZmVycmVkR2V0Q3VycmVudEFjdGl2aXR5LnByb21pc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIF8ubGFzdCh0aGlzLmFjdGl2aXR5TGlzdC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFuIGFjdGl2aXR5IGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICAgKi9cbiAgYWJzdHJhY3QgaXNBY3RpdmUoKTogYm9vbGVhbjtcblxuICBhYnN0cmFjdCBzdGFydEFjdGl2aXR5PEQsIFIsIEU+KGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sIGRhdGE/OiBEKTogUHJvbWlzZTxSPjtcblxuICBjb25maXJtKGNvbmZpcm06IENvbmZpcm0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBJbXBvcnRhbnQ6IHdlIGhhdmUgdG8gaW1wbGVtZW50IGNvbmZpcm1PclJlamVjdCBhcyB0aGUgbWFpbiBlbnRyeSBwb2ludFxuICAgIC8vIGFzIHRoZSBjYW5EZWFjdGl2YXRpb24gZ3VhcmRzIG5lZWQgdG8gYmUgYWJsZSB0byBjYW5jZWwgYW4gaW50ZXJhY3Rpb25cbiAgICAvLyB3aXRob3V0IGNhcmluZyBhYm91dCByZXR1cm5pbmcgYSB2YWx1ZS5cbiAgICByZXR1cm4gdGhpcy5jb25maXJtT3JSZWplY3QoY29uZmlybSkudGhlbigoKSA9PiB0cnVlKS5jYXRjaCgoKSA9PiBmYWxzZSk7XG4gIH1cblxuICBhYnN0cmFjdCBhc3luYyBjb25maXJtT3JSZWplY3QoY29uZmlybTogQ29uZmlybSk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFByZXNlbnRzIHRoZSBjb25maXJtYXRpb24gdG8gdGhlIHVzZXIgYW5kIHJ1bnMgdGhlIGFjdGl2aXR5IG9ubHkgaWYgdGhlIHVzZXIgY29uZmlybXMuXG4gICAqIEBwYXJhbSBjb25maXJtOkNvbmZpcm0gdGhlIGNvbmZpcm1hdGlvbiB0byBkaXNwbGF5LlxuICAgKiBAcGFyYW0gYWN0aXZpdHlUeXBlIHRoZSBhY3Rpdml0eSB0byBydW4gaWYgY29uZmlybWVkLlxuICAgKiBAcGFyYW0gZGF0YSB0aGUgYWN0aXZpdHkgZGF0YS5cbiAgICovXG4gIGFic3RyYWN0IGNvbmZpcm1UaGVuPEQsIFIsIEU+KGNvbmZpcm06IENvbmZpcm0sIGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sIGRhdGE/OiBEKTogUHJvbWlzZTxSPjtcblxuICBhYnN0cmFjdCBhbGVydChhbGVydDogQWxlcnQpOiBQcm9taXNlPHZvaWQ+O1xuXG59XG5cbiJdfQ==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUNwSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQXVDakYsTUFBTSxPQUFPLGlCQUFpQjs7O1lBckM3QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZUFBZTtvQkFDZixlQUFlO29CQUNmLGFBQWE7b0JBQ2IsWUFBWTtvQkFDWixZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWiwwQkFBMEI7b0JBQzFCLDJCQUEyQjtvQkFDM0IsMEJBQTBCO29CQUMxQixvQkFBb0I7b0JBQ3BCLHVCQUF1QjtvQkFDdkIsMEJBQTBCO29CQUMxQixrQ0FBa0M7aUJBQ25DO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwwQkFBMEI7b0JBQzFCLHVCQUF1QjtvQkFDdkIsMEJBQTBCO29CQUMxQixrQ0FBa0M7aUJBQ25DO2dCQUNELGVBQWUsRUFBRTtvQkFDZiwwQkFBMEI7b0JBQzFCLDJCQUEyQjtvQkFDM0IsMEJBQTBCO29CQUMxQixvQkFBb0I7aUJBQ3JCO2dCQUNELFNBQVMsRUFBRTtvQkFDVCx3QkFBd0I7aUJBSXpCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBNQVRfVEFCU19DT05GSUcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpdml0eU91dGxldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXRoZW4tZGlhbG9nL2NvbmZpcm0tdGhlbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW5wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0L2lucGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25PdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW50ZXJhY3Rpb24tb3V0bGV0L2ludGVyYWN0aW9uLW91dGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nSW50ZXJhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kaWFsb2ctaW50ZXJhY3Rpb24uc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50LFxuICAgIEludGVyYWN0aW9uT3V0bGV0Q29tcG9uZW50LFxuICAgIElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50LFxuICAgIEludGVyYWN0aW9uT3V0bGV0Q29tcG9uZW50LFxuICAgIElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnRcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIERpYWxvZ0ludGVyYWN0aW9uU2VydmljZSxcbiAgICAvLyB7XG4gICAgLy8gICBwcm92aWRlOiBNQVRfVEFCU19DT05GSUcsIHVzZVZhbHVlOiB7IGFuaW1hdGlvbkR1cmF0aW9uOiBcIjJzXCIgfVxuICAgIC8vIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvbk1vZHVsZSB7XG59XG4iXX0=
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==