@coolon/angular-ui-powerups 0.0.96 → 0.0.98

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 +2960 -2288
  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 +16 -52
  10. package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +16 -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-state.js +613 -0
  23. package/esm2015/lib/place/guards/place-component-deactivation-handler.js +87 -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 +162 -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 +23 -74
  34. package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +26 -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-state.js +764 -0
  47. package/esm5/lib/place/guards/place-component-deactivation-handler.js +104 -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 +191 -294
  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 +2135 -1587
  56. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  57. package/fesm5/coolon-angular-ui-powerups.js +3083 -2412
  58. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  59. package/lib/interaction/components/activity-container/activity-container.component.d.ts +6 -11
  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-state.d.ts +96 -0
  72. package/lib/place/guards/place-component-deactivation-handler.d.ts +12 -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 +25 -33
  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 -315
  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 -387
  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
@@ -3,8 +3,7 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import * as tslib_1 from "tslib";
6
- import { Deferred, DelegatingListModel, Dsl, GarbageCollector } from '@coolon/pectin';
7
- import * as _ from 'lodash';
6
+ import { EventListenerList, GarbageCollector } from '@coolon/pectin';
8
7
  /**
9
8
  * @abstract
10
9
  */
@@ -14,106 +13,64 @@ var /**
14
13
  InteractionContext = /** @class */ (function (_super) {
15
14
  tslib_1.__extends(InteractionContext, _super);
16
15
  function InteractionContext() {
17
- var _this = _super.call(this) || this;
18
- /**
19
- * Returns the current list of activities that are in progress.
20
- * This model is only updated in the next tick after the view has been updated.
21
- */
22
- _this._activityListDelegate = new DelegatingListModel();
23
- var _a = Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
24
- when.listOf(_this.activityList).becomesPopulated((/**
25
- * @param {?} activities
26
- * @return {?}
27
- */
28
- function (activities) {
29
- if (_this.deferredGetCurrentActivity) {
30
- _this.deferredGetCurrentActivity.resolve(_.last(activities));
31
- _this.deferredGetCurrentActivity = null;
32
- }
33
- }));
16
+ var _this = _super !== null && _super.apply(this, arguments) || this;
17
+ _this.activityListeners = new EventListenerList();
34
18
  return _this;
35
19
  }
36
20
  /**
37
- * @protected
38
- * @param {?} activityList
21
+ * Returns true if an activity is currently running.
22
+ */
23
+ /**
24
+ * Returns true if an activity is currently running.
39
25
  * @return {?}
40
26
  */
41
- InteractionContext.prototype.setActivityList = /**
42
- * @protected
43
- * @param {?} activityList
27
+ InteractionContext.prototype.isActive = /**
28
+ * Returns true if an activity is currently running.
44
29
  * @return {?}
45
30
  */
46
- function (activityList) {
47
- this._activityListDelegate.setDelegate(activityList);
31
+ function () {
32
+ return this.active.value;
48
33
  };
49
- Object.defineProperty(InteractionContext.prototype, "activityList", {
50
- get: /**
51
- * @return {?}
52
- */
53
- function () {
54
- return this._activityListDelegate.readonly;
55
- },
56
- enumerable: true,
57
- configurable: true
58
- });
59
34
  /**
60
- * Returns the activity that is currently active.
61
- * This model is only updated in the next tick after the view has been updated.
35
+ * @param {?} listener
36
+ * @return {?}
62
37
  */
38
+ InteractionContext.prototype.addActivityListener = /**
39
+ * @param {?} listener
40
+ * @return {?}
41
+ */
42
+ function (listener) {
43
+ return this.activityListeners.add(listener);
44
+ };
63
45
  /**
64
- * Returns the activity that is currently active.
65
- * This model is only updated in the next tick after the view has been updated.
46
+ * @protected
66
47
  * @return {?}
67
48
  */
68
- InteractionContext.prototype.getCurrentActivity = /**
69
- * Returns the activity that is currently active.
70
- * This model is only updated in the next tick after the view has been updated.
49
+ InteractionContext.prototype.notifyActivityStarted = /**
50
+ * @protected
71
51
  * @return {?}
72
52
  */
73
53
  function () {
74
- return tslib_1.__awaiter(this, void 0, void 0, function () {
75
- return tslib_1.__generator(this, function (_a) {
76
- if (!this.isActive()) {
77
- return [2 /*return*/, Promise.reject('no activity in progress')];
78
- }
79
- else {
80
- if (this.deferredGetCurrentActivity) {
81
- // we're already waiting then just return the same promise
82
- return [2 /*return*/, this.deferredGetCurrentActivity.promise];
83
- }
84
- else {
85
- if (this.activityList.length < 1) {
86
- this.deferredGetCurrentActivity = Deferred.defer();
87
- return [2 /*return*/, this.deferredGetCurrentActivity.promise];
88
- }
89
- else {
90
- return [2 /*return*/, _.last(this.activityList.value)];
91
- }
92
- }
93
- }
94
- return [2 /*return*/];
95
- });
96
- });
54
+ this.activityListeners.fire((/**
55
+ * @param {?} l
56
+ * @return {?}
57
+ */
58
+ function (l) { return l.onActivityStarted(); }));
97
59
  };
98
60
  /**
99
- * @param {?} confirm
61
+ * @protected
100
62
  * @return {?}
101
63
  */
102
- InteractionContext.prototype.confirm = /**
103
- * @param {?} confirm
64
+ InteractionContext.prototype.notifyActivityFinished = /**
65
+ * @protected
104
66
  * @return {?}
105
67
  */
106
- function (confirm) {
107
- // Important: we have to implement confirmOrReject as the main entry point
108
- // as the canDeactivation guards need to be able to cancel an interaction
109
- // without caring about returning a value.
110
- return this.confirmOrReject(confirm).then((/**
111
- * @return {?}
112
- */
113
- function () { return true; })).catch((/**
68
+ function () {
69
+ this.activityListeners.fire((/**
70
+ * @param {?} l
114
71
  * @return {?}
115
72
  */
116
- function () { return false; }));
73
+ function (l) { return l.onActivityFinished(); }));
117
74
  };
118
75
  return InteractionContext;
119
76
  }(GarbageCollector));
@@ -123,23 +80,21 @@ InteractionContext = /** @class */ (function (_super) {
123
80
  export { InteractionContext };
124
81
  if (false) {
125
82
  /**
126
- * Returns the current list of activities that are in progress.
127
- * This model is only updated in the next tick after the view has been updated.
128
83
  * @type {?}
129
84
  * @private
130
85
  */
131
- InteractionContext.prototype._activityListDelegate;
86
+ InteractionContext.prototype.activityListeners;
87
+ /** @type {?} */
88
+ InteractionContext.prototype.activityList;
89
+ /** @type {?} */
90
+ InteractionContext.prototype.active;
132
91
  /**
133
- * @type {?}
134
- * @private
135
- */
136
- InteractionContext.prototype.deferredGetCurrentActivity;
137
- /**
138
- * Returns true if an activity is currently running.
92
+ * Returns the activity that is currently active.
93
+ * This model is only updated in the next tick after the view has been updated.
139
94
  * @abstract
140
95
  * @return {?}
141
96
  */
142
- InteractionContext.prototype.isActive = function () { };
97
+ InteractionContext.prototype.getCurrentActivity = function () { };
143
98
  /**
144
99
  * @abstract
145
100
  * @template D, R, E
@@ -148,6 +103,18 @@ if (false) {
148
103
  * @return {?}
149
104
  */
150
105
  InteractionContext.prototype.startActivity = function (activityType, data) { };
106
+ /**
107
+ * @abstract
108
+ * @param {?} alert
109
+ * @return {?}
110
+ */
111
+ InteractionContext.prototype.alert = function (alert) { };
112
+ /**
113
+ * @abstract
114
+ * @param {?} confirm
115
+ * @return {?}
116
+ */
117
+ InteractionContext.prototype.confirm = function (confirm) { };
151
118
  /**
152
119
  * @abstract
153
120
  * @param {?} confirm
@@ -164,11 +131,22 @@ if (false) {
164
131
  * @return {?}
165
132
  */
166
133
  InteractionContext.prototype.confirmThen = function (confirm, activityType, data) { };
134
+ }
135
+ (function (InteractionContext) {
167
136
  /**
168
- * @abstract
169
- * @param {?} alert
170
- * @return {?}
137
+ * @record
171
138
  */
172
- InteractionContext.prototype.alert = function (alert) { };
173
- }
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFpQixRQUFRLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEgsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7Ozs7QUFLNUI7Ozs7SUFBaUQsOENBQWdCO0lBVS9EO1FBQUEsWUFDRSxpQkFBTyxTQVFSOzs7OztRQWJnQiwyQkFBcUIsR0FBRyxJQUFJLG1CQUFtQixFQUFzQixDQUFDO1FBTS9FLElBQUEsMkJBQWtGLEVBQWhGLGdCQUFLLEVBQUUsb0JBQU8sRUFBRSxrQkFBTSxFQUFFLGNBQUksRUFBRSxnQkFBSyxFQUFFLG9CQUFPLEVBQUUsc0JBQWtDO1FBQ3hGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLGdCQUFnQjs7OztRQUFDLFVBQUMsVUFBVTtZQUN6RCxJQUFJLEtBQUksQ0FBQywwQkFBMEIsRUFBRTtnQkFDbkMsS0FBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELEtBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7YUFDeEM7UUFDSCxDQUFDLEVBQUMsQ0FBQzs7SUFDTCxDQUFDOzs7Ozs7SUFFUyw0Q0FBZTs7Ozs7SUFBekIsVUFBMEIsWUFBMkM7UUFDbkUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsc0JBQUksNENBQVk7Ozs7UUFBaEI7WUFDRSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7UUFDN0MsQ0FBQzs7O09BQUE7SUFHRDs7O09BR0c7Ozs7OztJQUNHLCtDQUFrQjs7Ozs7SUFBeEI7OztnQkFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUNwQixzQkFBTyxPQUFPLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEVBQUM7aUJBQ2xEO3FCQUFNO29CQUNMLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFO3dCQUNuQywwREFBMEQ7d0JBQzFELHNCQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEVBQUM7cUJBQ2hEO3lCQUFNO3dCQUNMLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUNoQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDOzRCQUNuRCxzQkFBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxFQUFDO3lCQUNoRDs2QkFBTTs0QkFDTCxzQkFBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUM7eUJBQ3hDO3FCQUNGO2lCQUNGOzs7O0tBQ0Y7Ozs7O0lBU0Qsb0NBQU87Ozs7SUFBUCxVQUFRLE9BQWdCO1FBQ3RCLDBFQUEwRTtRQUMxRSx5RUFBeUU7UUFDekUsMENBQTBDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJOzs7UUFBQyxjQUFNLE9BQUEsSUFBSSxFQUFKLENBQUksRUFBQyxDQUFDLEtBQUs7OztRQUFDLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSyxFQUFDLENBQUM7SUFDM0UsQ0FBQztJQWNILHlCQUFDO0FBQUQsQ0FBQyxBQTlFRCxDQUFpRCxnQkFBZ0IsR0E4RWhFOzs7Ozs7Ozs7Ozs7SUF4RUMsbURBQXVGOzs7OztJQUV2Rix3REFBc0U7Ozs7OztJQStDdEUsd0RBQTZCOzs7Ozs7OztJQUU3QiwrRUFBc0c7Ozs7OztJQVN0RyxzRUFBZ0U7Ozs7Ozs7Ozs7SUFRaEUsc0ZBQXNIOzs7Ozs7SUFFdEgsMERBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgRGVmZXJyZWQsIERlbGVnYXRpbmdMaXN0TW9kZWwsIERzbCwgR2FyYmFnZUNvbGxlY3RvciwgTGlzdE1vZGVsIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuL2FjdGl2aXR5JztcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSAnLi9hbGVydCc7XG5pbXBvcnQgeyBDb25maXJtIH0gZnJvbSAnLi9jb25maXJtJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEludGVyYWN0aW9uQ29udGV4dCBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGxpc3Qgb2YgYWN0aXZpdGllcyB0aGF0IGFyZSBpbiBwcm9ncmVzcy5cbiAgICogVGhpcyBtb2RlbCBpcyBvbmx5IHVwZGF0ZWQgaW4gdGhlIG5leHQgdGljayBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiB1cGRhdGVkLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZpdHlMaXN0RGVsZWdhdGUgPSBuZXcgRGVsZWdhdGluZ0xpc3RNb2RlbDxBY3Rpdml0eTxhbnksIGFueT4+KCk7XG5cbiAgcHJpdmF0ZSBkZWZlcnJlZEdldEN1cnJlbnRBY3Rpdml0eTogRGVmZXJyZWQ8QWN0aXZpdHk8YW55LCBhbnksIGFueT4+O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbi5saXN0T2YodGhpcy5hY3Rpdml0eUxpc3QpLmJlY29tZXNQb3B1bGF0ZWQoKGFjdGl2aXRpZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmRlZmVycmVkR2V0Q3VycmVudEFjdGl2aXR5KSB7XG4gICAgICAgIHRoaXMuZGVmZXJyZWRHZXRDdXJyZW50QWN0aXZpdHkucmVzb2x2ZShfLmxhc3QoYWN0aXZpdGllcykpO1xuICAgICAgICB0aGlzLmRlZmVycmVkR2V0Q3VycmVudEFjdGl2aXR5ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRBY3Rpdml0eUxpc3QoYWN0aXZpdHlMaXN0OiBMaXN0TW9kZWw8QWN0aXZpdHk8YW55LCBhbnk+Pikge1xuICAgIHRoaXMuX2FjdGl2aXR5TGlzdERlbGVnYXRlLnNldERlbGVnYXRlKGFjdGl2aXR5TGlzdCk7XG4gIH1cblxuICBnZXQgYWN0aXZpdHlMaXN0KCk6IExpc3RNb2RlbDxBY3Rpdml0eTxhbnksIGFueSwgYW55Pj4ge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0eUxpc3REZWxlZ2F0ZS5yZWFkb25seTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFjdGl2aXR5IHRoYXQgaXMgY3VycmVudGx5IGFjdGl2ZS5cbiAgICogVGhpcyBtb2RlbCBpcyBvbmx5IHVwZGF0ZWQgaW4gdGhlIG5leHQgdGljayBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiB1cGRhdGVkLlxuICAgKi9cbiAgYXN5bmMgZ2V0Q3VycmVudEFjdGl2aXR5KCk6IFByb21pc2U8QWN0aXZpdHk8YW55LCBhbnk+PiB7XG4gICAgaWYgKCF0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnbm8gYWN0aXZpdHkgaW4gcHJvZ3Jlc3MnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZGVmZXJyZWRHZXRDdXJyZW50QWN0aXZpdHkpIHtcbiAgICAgICAgLy8gd2UncmUgYWxyZWFkeSB3YWl0aW5nIHRoZW4ganVzdCByZXR1cm4gdGhlIHNhbWUgcHJvbWlzZVxuICAgICAgICByZXR1cm4gdGhpcy5kZWZlcnJlZEdldEN1cnJlbnRBY3Rpdml0eS5wcm9taXNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZpdHlMaXN0Lmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICB0aGlzLmRlZmVycmVkR2V0Q3VycmVudEFjdGl2aXR5ID0gRGVmZXJyZWQuZGVmZXIoKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5kZWZlcnJlZEdldEN1cnJlbnRBY3Rpdml0eS5wcm9taXNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBfLmxhc3QodGhpcy5hY3Rpdml0eUxpc3QudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhbiBhY3Rpdml0eSBpcyBjdXJyZW50bHkgcnVubmluZy5cbiAgICovXG4gIGFic3RyYWN0IGlzQWN0aXZlKCk6IGJvb2xlYW47XG5cbiAgYWJzdHJhY3Qgc3RhcnRBY3Rpdml0eTxELCBSLCBFPihhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhPzogRCk6IFByb21pc2U8Uj47XG5cbiAgY29uZmlybShjb25maXJtOiBDb25maXJtKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgLy8gSW1wb3J0YW50OiB3ZSBoYXZlIHRvIGltcGxlbWVudCBjb25maXJtT3JSZWplY3QgYXMgdGhlIG1haW4gZW50cnkgcG9pbnRcbiAgICAvLyBhcyB0aGUgY2FuRGVhY3RpdmF0aW9uIGd1YXJkcyBuZWVkIHRvIGJlIGFibGUgdG8gY2FuY2VsIGFuIGludGVyYWN0aW9uXG4gICAgLy8gd2l0aG91dCBjYXJpbmcgYWJvdXQgcmV0dXJuaW5nIGEgdmFsdWUuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlybU9yUmVqZWN0KGNvbmZpcm0pLnRoZW4oKCkgPT4gdHJ1ZSkuY2F0Y2goKCkgPT4gZmFsc2UpO1xuICB9XG5cbiAgYWJzdHJhY3QgYXN5bmMgY29uZmlybU9yUmVqZWN0KGNvbmZpcm06IENvbmZpcm0pOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBQcmVzZW50cyB0aGUgY29uZmlybWF0aW9uIHRvIHRoZSB1c2VyIGFuZCBydW5zIHRoZSBhY3Rpdml0eSBvbmx5IGlmIHRoZSB1c2VyIGNvbmZpcm1zLlxuICAgKiBAcGFyYW0gY29uZmlybTpDb25maXJtIHRoZSBjb25maXJtYXRpb24gdG8gZGlzcGxheS5cbiAgICogQHBhcmFtIGFjdGl2aXR5VHlwZSB0aGUgYWN0aXZpdHkgdG8gcnVuIGlmIGNvbmZpcm1lZC5cbiAgICogQHBhcmFtIGRhdGEgdGhlIGFjdGl2aXR5IGRhdGEuXG4gICAqL1xuICBhYnN0cmFjdCBjb25maXJtVGhlbjxELCBSLCBFPihjb25maXJtOiBDb25maXJtLCBhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhPzogRCk6IFByb21pc2U8Uj47XG5cbiAgYWJzdHJhY3QgYWxlcnQoYWxlcnQ6IEFsZXJ0KTogUHJvbWlzZTx2b2lkPjtcblxufVxuXG4iXX0=
139
+ function Listener() { }
140
+ InteractionContext.Listener = Listener;
141
+ if (false) {
142
+ /**
143
+ * @return {?}
144
+ */
145
+ Listener.prototype.onActivityStarted = function () { };
146
+ /**
147
+ * @return {?}
148
+ */
149
+ Listener.prototype.onActivityFinished = function () { };
150
+ }
151
+ })(InteractionContext || (InteractionContext = {}));
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUE2QixpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUt2SDs7OztJQUFpRCw4Q0FBZ0I7SUFBakU7UUFBQSxxRUErQ0M7UUE3Q2tCLHVCQUFpQixHQUFHLElBQUksaUJBQWlCLEVBQStCLENBQUM7O0lBNkM1RixDQUFDO0lBekNDOztPQUVHOzs7OztJQUNILHFDQUFROzs7O0lBQVI7UUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7Ozs7O0lBRUQsZ0RBQW1COzs7O0lBQW5CLFVBQW9CLFFBQXFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDOzs7OztJQUVTLGtEQUFxQjs7OztJQUEvQjtRQUNFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBckIsQ0FBcUIsRUFBQyxDQUFDO0lBQzFELENBQUM7Ozs7O0lBRVMsbURBQXNCOzs7O0lBQWhDO1FBQ0UsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUk7Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUF0QixDQUFzQixFQUFDLENBQUM7SUFDM0QsQ0FBQztJQXdCSCx5QkFBQztBQUFELENBQUMsQUEvQ0QsQ0FBaUQsZ0JBQWdCLEdBK0NoRTs7Ozs7Ozs7OztJQTdDQywrQ0FBMEY7O0lBQzFGLDBDQUFtRTs7SUFDbkUsb0NBQThDOzs7Ozs7O0lBeUI5QyxrRUFBaUU7Ozs7Ozs7O0lBRWpFLCtFQUFzRzs7Ozs7O0lBRXRHLDBEQUE0Qzs7Ozs7O0lBRTVDLDhEQUFxRDs7Ozs7O0lBRXJELHNFQUFnRTs7Ozs7Ozs7OztJQVFoRSxzRkFBc0g7O0FBSXhILFdBQWlCLGtCQUFrQjs7OztJQUNqQyx1QkFHQzs7Ozs7O1FBRkMsdURBQXlCOzs7O1FBQ3pCLHdEQUEwQjs7QUFFOUIsQ0FBQyxFQUxnQixrQkFBa0IsS0FBbEIsa0JBQWtCLFFBS2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgRGlzcG9zYWJsZSwgRXZlbnRMaXN0ZW5lckxpc3QsIEdhcmJhZ2VDb2xsZWN0b3IsIExpc3RNb2RlbCwgVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi9hY3Rpdml0eSc7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJy4vYWxlcnQnO1xuaW1wb3J0IHsgQ29uZmlybSB9IGZyb20gJy4vY29uZmlybSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJbnRlcmFjdGlvbkNvbnRleHQgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5TGlzdGVuZXJzID0gbmV3IEV2ZW50TGlzdGVuZXJMaXN0PEludGVyYWN0aW9uQ29udGV4dC5MaXN0ZW5lcj4oKTtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgYWN0aXZpdHlMaXN0OiBMaXN0TW9kZWw8QWN0aXZpdHk8YW55LCBhbnksIGFueT4+O1xuICBhYnN0cmFjdCByZWFkb25seSBhY3RpdmU6IFZhbHVlTW9kZWw8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhbiBhY3Rpdml0eSBpcyBjdXJyZW50bHkgcnVubmluZy5cbiAgICovXG4gIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZS52YWx1ZTtcbiAgfVxuXG4gIGFkZEFjdGl2aXR5TGlzdGVuZXIobGlzdGVuZXI6IEludGVyYWN0aW9uQ29udGV4dC5MaXN0ZW5lcik6IERpc3Bvc2FibGUge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5TGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgbm90aWZ5QWN0aXZpdHlTdGFydGVkKCkge1xuICAgIHRoaXMuYWN0aXZpdHlMaXN0ZW5lcnMuZmlyZShsID0+IGwub25BY3Rpdml0eVN0YXJ0ZWQoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbm90aWZ5QWN0aXZpdHlGaW5pc2hlZCgpIHtcbiAgICB0aGlzLmFjdGl2aXR5TGlzdGVuZXJzLmZpcmUobCA9PiBsLm9uQWN0aXZpdHlGaW5pc2hlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhY3Rpdml0eSB0aGF0IGlzIGN1cnJlbnRseSBhY3RpdmUuXG4gICAqIFRoaXMgbW9kZWwgaXMgb25seSB1cGRhdGVkIGluIHRoZSBuZXh0IHRpY2sgYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gdXBkYXRlZC5cbiAgICovXG4gIGFic3RyYWN0IGFzeW5jIGdldEN1cnJlbnRBY3Rpdml0eSgpOiBQcm9taXNlPEFjdGl2aXR5PGFueSwgYW55Pj47XG5cbiAgYWJzdHJhY3Qgc3RhcnRBY3Rpdml0eTxELCBSLCBFPihhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhPzogRCk6IFByb21pc2U8Uj47XG5cbiAgYWJzdHJhY3QgYWxlcnQoYWxlcnQ6IEFsZXJ0KTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCBjb25maXJtKGNvbmZpcm06IENvbmZpcm0pOiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGFzeW5jIGNvbmZpcm1PclJlamVjdChjb25maXJtOiBDb25maXJtKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUHJlc2VudHMgdGhlIGNvbmZpcm1hdGlvbiB0byB0aGUgdXNlciBhbmQgcnVucyB0aGUgYWN0aXZpdHkgb25seSBpZiB0aGUgdXNlciBjb25maXJtcy5cbiAgICogQHBhcmFtIGNvbmZpcm06Q29uZmlybSB0aGUgY29uZmlybWF0aW9uIHRvIGRpc3BsYXkuXG4gICAqIEBwYXJhbSBhY3Rpdml0eVR5cGUgdGhlIGFjdGl2aXR5IHRvIHJ1biBpZiBjb25maXJtZWQuXG4gICAqIEBwYXJhbSBkYXRhIHRoZSBhY3Rpdml0eSBkYXRhLlxuICAgKi9cbiAgYWJzdHJhY3QgY29uZmlybVRoZW48RCwgUiwgRT4oY29uZmlybTogQ29uZmlybSwgYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YT86IEQpOiBQcm9taXNlPFI+O1xuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgZXhwb3J0IGludGVyZmFjZSBMaXN0ZW5lciB7XG4gICAgb25BY3Rpdml0eVN0YXJ0ZWQoKTogdm9pZFxuICAgIG9uQWN0aXZpdHlGaW5pc2hlZCgpOiB2b2lkXG4gIH1cbn1cblxuIl19
@@ -57,4 +57,4 @@ var InteractionModule = /** @class */ (function () {
57
57
  return InteractionModule;
58
58
  }());
59
59
  export { InteractionModule };
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUNwSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRjtJQUFBO0lBc0NBLENBQUM7O2dCQXRDQSxRQUFRLFNBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRTt3QkFDWiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IsMEJBQTBCO3dCQUMxQixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixrQ0FBa0M7cUJBQ25DO29CQUNELE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixrQ0FBa0M7cUJBQ25DO29CQUNELGVBQWUsRUFBRTt3QkFDZiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IsMEJBQTBCO3dCQUMxQixvQkFBb0I7cUJBQ3JCO29CQUNELFNBQVMsRUFBRTt3QkFDVCx3QkFBd0I7cUJBSXpCO2lCQUNGOztJQUVELHdCQUFDO0NBQUEsQUF0Q0QsSUFzQ0M7U0FEWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBNQVRfVEFCU19DT05GSUcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpdml0eU91dGxldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXRoZW4tZGlhbG9nL2NvbmZpcm0tdGhlbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW5wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0L2lucGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25PdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW50ZXJhY3Rpb24tb3V0bGV0L2ludGVyYWN0aW9uLW91dGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nSW50ZXJhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kaWFsb2ctaW50ZXJhY3Rpb24uc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50LFxuICAgIEludGVyYWN0aW9uT3V0bGV0Q29tcG9uZW50LFxuICAgIElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50LFxuICAgIEludGVyYWN0aW9uT3V0bGV0Q29tcG9uZW50LFxuICAgIElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnRcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIERpYWxvZ0ludGVyYWN0aW9uU2VydmljZSxcbiAgICAvLyB7XG4gICAgLy8gICBwcm92aWRlOiBNQVRfVEFCU19DT05GSUcsIHVzZVZhbHVlOiB7IGFuaW1hdGlvbkR1cmF0aW9uOiBcIjJzXCIgfVxuICAgIC8vIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvbk1vZHVsZSB7XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUNwSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRjtJQUFBO0lBc0NBLENBQUM7O2dCQXRDQSxRQUFRLFNBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRTt3QkFDWiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IsMEJBQTBCO3dCQUMxQixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixrQ0FBa0M7cUJBQ25DO29CQUNELE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixrQ0FBa0M7cUJBQ25DO29CQUNELGVBQWUsRUFBRTt3QkFDZiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IsMEJBQTBCO3dCQUMxQixvQkFBb0I7cUJBQ3JCO29CQUNELFNBQVMsRUFBRTt3QkFDVCx3QkFBd0I7cUJBSXpCO2lCQUNGOztJQUVELHdCQUFDO0NBQUEsQUF0Q0QsSUFzQ0M7U0FEWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBNQVRfVEFCU19DT05GSUcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQbGFjZU1vZHVsZSB9IGZyb20gJy4uL3BsYWNlL3BsYWNlLm1vZHVsZSc7XG5pbXBvcnQgeyBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpdml0eU91dGxldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXRoZW4tZGlhbG9nL2NvbmZpcm0tdGhlbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW5wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0L2lucGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25PdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW50ZXJhY3Rpb24tb3V0bGV0L2ludGVyYWN0aW9uLW91dGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nSW50ZXJhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kaWFsb2ctaW50ZXJhY3Rpb24uc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50LFxuICAgIEludGVyYWN0aW9uT3V0bGV0Q29tcG9uZW50LFxuICAgIElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50LFxuICAgIEludGVyYWN0aW9uT3V0bGV0Q29tcG9uZW50LFxuICAgIElucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnRcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIERpYWxvZ0ludGVyYWN0aW9uU2VydmljZSxcbiAgICAvLyB7XG4gICAgLy8gICBwcm92aWRlOiBNQVRfVEFCU19DT05GSUcsIHVzZVZhbHVlOiB7IGFuaW1hdGlvbkR1cmF0aW9uOiBcIjJzXCIgfVxuICAgIC8vIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvbk1vZHVsZSB7XG59XG4iXX0=
@@ -0,0 +1,188 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { Injectable } from '@angular/core';
7
+ import { MatDialog } from '@angular/material';
8
+ import { MatDialogConfig } from '@angular/material/dialog';
9
+ import { lang, MutableValueModel } from '@coolon/pectin';
10
+ import { assert } from '@coolon/typescript-utilities';
11
+ import { ActivityContainerComponent } from '../components/activity-container/activity-container.component';
12
+ import { InteractionContextBase } from '../interaction-context-base';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/material/dialog";
15
+ var DialogInteractionContext = /** @class */ (function (_super) {
16
+ tslib_1.__extends(DialogInteractionContext, _super);
17
+ function DialogInteractionContext(dialogService, config) {
18
+ var _this = _super.call(this) || this;
19
+ _this.dialogService = dialogService;
20
+ _this.config = config;
21
+ _this._activeModel = new MutableValueModel(false);
22
+ assert.notNil(dialogService);
23
+ _this.onDispose((/**
24
+ * @return {?}
25
+ */
26
+ function () {
27
+ if (_this.isActive()) {
28
+ lang.illegalState('Dispose called while active.');
29
+ }
30
+ }));
31
+ return _this;
32
+ }
33
+ Object.defineProperty(DialogInteractionContext.prototype, "active", {
34
+ get: /**
35
+ * @return {?}
36
+ */
37
+ function () {
38
+ return this._activeModel.readonly;
39
+ },
40
+ enumerable: true,
41
+ configurable: true
42
+ });
43
+ /**
44
+ * @protected
45
+ * @template D, R, E
46
+ * @param {?} activityType
47
+ * @param {?} data
48
+ * @param {?=} disableClose
49
+ * @return {?}
50
+ */
51
+ DialogInteractionContext.prototype._startActivity = /**
52
+ * @protected
53
+ * @template D, R, E
54
+ * @param {?} activityType
55
+ * @param {?} data
56
+ * @param {?=} disableClose
57
+ * @return {?}
58
+ */
59
+ function (activityType, data, disableClose) {
60
+ var _this = this;
61
+ if (disableClose === void 0) { disableClose = true; }
62
+ if (this.isActive()) {
63
+ lang.illegalState("Activity already in progress: " + this.activityList.value.map((/**
64
+ * @param {?} a
65
+ * @return {?}
66
+ */
67
+ function (a) { return a.constructor.name; })).join(', '));
68
+ }
69
+ this._activeModel.value = true;
70
+ this.notifyActivityStarted();
71
+ /** @type {?} */
72
+ var config = tslib_1.__assign({}, this.config, {
73
+ data: data,
74
+ disableClose: disableClose,
75
+ panelClass: 'dialog-interaction-service'
76
+ });
77
+ /** @type {?} */
78
+ var self = this;
79
+ /** @type {?} */
80
+ var matDialogRef = (/** @type {?} */ (this.dialogService.open(ActivityContainerComponent, config)));
81
+ return new Promise((/**
82
+ * @param {?} resolve
83
+ * @param {?} reject
84
+ * @return {?}
85
+ */
86
+ function (resolve, reject) {
87
+ /** @type {?} */
88
+ var activityContainer = matDialogRef.componentInstance;
89
+ self.safelyUpdateActivityListDelegate(activityContainer.activityList);
90
+ activityContainer.initialActivityOutletContext = {
91
+ activityClass: activityType,
92
+ activityData: data,
93
+ onDone: /**
94
+ * @param {?} result
95
+ * @return {?}
96
+ */
97
+ function (result) {
98
+ resolve(result);
99
+ matDialogRef.close(true); // return true to let the after close listener know we've already handled it.
100
+ },
101
+ onCancel: /**
102
+ * @param {?} error
103
+ * @return {?}
104
+ */
105
+ function (error) {
106
+ reject(error);
107
+ matDialogRef.close(true); // return true to let the after close listener know we've already handled it.
108
+ }
109
+ };
110
+ // we need to check if our onDone/onCancel methods above we called or if we were
111
+ // closed by the user clicking the backdrop. If the later then we need to reject
112
+ // our promise.
113
+ matDialogRef.afterClosed().subscribe((/**
114
+ * @param {?} promiseAlreadyFinished
115
+ * @return {?}
116
+ */
117
+ function (promiseAlreadyFinished) {
118
+ if (!promiseAlreadyFinished) {
119
+ reject('auto-closed');
120
+ }
121
+ }));
122
+ matDialogRef.updateSize();
123
+ matDialogRef.afterOpened().subscribe((/**
124
+ * @param {?} promiseAlreadyFinished
125
+ * @return {?}
126
+ */
127
+ function (promiseAlreadyFinished) {
128
+ matDialogRef.updateSize();
129
+ }));
130
+ })).finally((/**
131
+ * @return {?}
132
+ */
133
+ function () {
134
+ _this._activeModel.value = false;
135
+ _this.notifyActivityFinished();
136
+ self.safelyUpdateActivityListDelegate(null);
137
+ }));
138
+ };
139
+ /**
140
+ * Updates teh delegate on the next tick to avoid modifying state during the current change detection cycle.
141
+ * @param delegate
142
+ */
143
+ /**
144
+ * Updates teh delegate on the next tick to avoid modifying state during the current change detection cycle.
145
+ * @param {?} delegate
146
+ * @return {?}
147
+ */
148
+ DialogInteractionContext.prototype.safelyUpdateActivityListDelegate = /**
149
+ * Updates teh delegate on the next tick to avoid modifying state during the current change detection cycle.
150
+ * @param {?} delegate
151
+ * @return {?}
152
+ */
153
+ function (delegate) {
154
+ var _this = this;
155
+ setTimeout((/**
156
+ * @return {?}
157
+ */
158
+ function () { return _this.setActivityList(delegate); }));
159
+ };
160
+ DialogInteractionContext.decorators = [
161
+ { type: Injectable, args: [{
162
+ providedIn: 'root'
163
+ },] }
164
+ ];
165
+ /** @nocollapse */
166
+ DialogInteractionContext.ctorParameters = function () { return [
167
+ { type: MatDialog },
168
+ { type: MatDialogConfig }
169
+ ]; };
170
+ /** @nocollapse */ DialogInteractionContext.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DialogInteractionContext_Factory() { return new DialogInteractionContext(i0.ɵɵinject(i1.MatDialog), i0.ɵɵinject(i1.MatDialogConfig)); }, token: DialogInteractionContext, providedIn: "root" });
171
+ return DialogInteractionContext;
172
+ }(InteractionContextBase));
173
+ export { DialogInteractionContext };
174
+ if (false) {
175
+ /**
176
+ * @type {?}
177
+ * @private
178
+ */
179
+ DialogInteractionContext.prototype._activeModel;
180
+ /**
181
+ * @type {?}
182
+ * @private
183
+ */
184
+ DialogInteractionContext.prototype.dialogService;
185
+ /** @type {?} */
186
+ DialogInteractionContext.prototype.config;
187
+ }
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vc2VydmljZXMvZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBaUIsSUFBSSxFQUFhLGlCQUFpQixFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXRELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFFckU7SUFHOEMsb0RBQXNCO0lBSWxFLGtDQUE2QixhQUF3QixFQUFXLE1BQTRCO1FBQTVGLFlBQ0UsaUJBQU8sU0FPUjtRQVI0QixtQkFBYSxHQUFiLGFBQWEsQ0FBVztRQUFXLFlBQU0sR0FBTixNQUFNLENBQXNCO1FBRjNFLGtCQUFZLEdBQUcsSUFBSSxpQkFBaUIsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUlwRSxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdCLEtBQUksQ0FBQyxTQUFTOzs7UUFBQztZQUNiLElBQUksS0FBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUM7YUFDbkQ7UUFDSCxDQUFDLEVBQUMsQ0FBQzs7SUFDTCxDQUFDO0lBRUQsc0JBQUksNENBQU07Ozs7UUFBVjtZ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QUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFWUSxTQUFTO2dCQUNULGVBQWU7OzttQ0FGeEI7Q0EwRkMsQUFqRkQsQ0FHOEMsc0JBQXNCLEdBOEVuRTtTQTlFWSx3QkFBd0I7Ozs7OztJQUVuQyxnREFBc0U7Ozs7O0lBRTFELGlEQUF5Qzs7SUFBRSwwQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RhYmxlLCBsYW5nLCBMaXN0TW9kZWwsIE11dGFibGVWYWx1ZU1vZGVsLCBWYWx1ZU1vZGVsIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uL2FjdGl2aXR5JztcbmltcG9ydCB7IEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnRlcmFjdGlvbkNvbnRleHRCYXNlIH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24tY29udGV4dC1iYXNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nSW50ZXJhY3Rpb25Db250ZXh0IGV4dGVuZHMgSW50ZXJhY3Rpb25Db250ZXh0QmFzZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogTWF0RGlhbG9nLCByZWFkb25seSBjb25maWc6IE1hdERpYWxvZ0NvbmZpZzxhbnk+KSB7XG4gICAgc3VwZXIoKTtcbiAgICBhc3NlcnQubm90TmlsKGRpYWxvZ1NlcnZpY2UpO1xuICAgIHRoaXMub25EaXNwb3NlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoJ0Rpc3Bvc2UgY2FsbGVkIHdoaWxlIGFjdGl2ZS4nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhY3RpdmUoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZU1vZGVsLnJlYWRvbmx5O1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zdGFydEFjdGl2aXR5PEQsIFIsIEU+KGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sIGRhdGE6IEQsIGRpc2FibGVDbG9zZTogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBpZiAodGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgQWN0aXZpdHkgYWxyZWFkeSBpbiBwcm9ncmVzczogJHt0aGlzLmFjdGl2aXR5TGlzdC52YWx1ZS5tYXAoYSA9PiBhLmNvbnN0cnVjdG9yLm5hbWUpLmpvaW4oJywgJyl9YCk7XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZU1vZGVsLnZhbHVlID0gdHJ1ZTtcbiAgICB0aGlzLm5vdGlmeUFjdGl2aXR5U3RhcnRlZCgpO1xuICAgIGNvbnN0IGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgLi4udGhpcy5jb25maWcsXG4gICAgICAuLi57XG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRpc2FibGVDbG9zZSxcbiAgICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1pbnRlcmFjdGlvbi1zZXJ2aWNlJ1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25zdCBtYXREaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudCwgY29uZmlnKSBhcyBNYXREaWFsb2dSZWY8QWN0aXZpdHlDb250YWluZXJDb21wb25lbnQ8RCwgUiwgRT4+O1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxSPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBhY3Rpdml0eUNvbnRhaW5lciA9IG1hdERpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgIHNlbGYuc2FmZWx5VXBkYXRlQWN0aXZpdHlMaXN0RGVsZWdhdGUoYWN0aXZpdHlDb250YWluZXIuYWN0aXZpdHlMaXN0KTtcblxuICAgICAgYWN0aXZpdHlDb250YWluZXIuaW5pdGlhbEFjdGl2aXR5T3V0bGV0Q29udGV4dCA9IHtcbiAgICAgICAgYWN0aXZpdHlDbGFzczogYWN0aXZpdHlUeXBlLFxuICAgICAgICBhY3Rpdml0eURhdGE6IGRhdGEsXG4gICAgICAgIG9uRG9uZShyZXN1bHQpIHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgbWF0RGlhbG9nUmVmLmNsb3NlKHRydWUpOyAvLyByZXR1cm4gdHJ1ZSB0byBsZXQgdGhlIGFmdGVyIGNsb3NlIGxpc3RlbmVyIGtub3cgd2UndmUgYWxyZWFkeSBoYW5kbGVkIGl0LlxuICAgICAgICB9LFxuICAgICAgICBvbkNhbmNlbChlcnJvcikge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgbWF0RGlhbG9nUmVmLmNsb3NlKHRydWUpOyAvLyByZXR1cm4gdHJ1ZSB0byBsZXQgdGhlIGFmdGVyIGNsb3NlIGxpc3RlbmVyIGtub3cgd2UndmUgYWxyZWFkeSBoYW5kbGVkIGl0LlxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgLy8gd2UgbmVlZCB0byBjaGVjayBpZiBvdXIgb25Eb25lL29uQ2FuY2VsIG1ldGhvZHMgYWJvdmUgd2UgY2FsbGVkIG9yIGlmIHdlIHdlcmVcbiAgICAgIC8vIGNsb3NlZCBieSB0aGUgdXNlciBjbGlja2luZyB0aGUgYmFja2Ryb3AuICBJZiB0aGUgbGF0ZXIgdGhlbiB3ZSBuZWVkIHRvIHJlamVjdFxuICAgICAgLy8gb3VyIHByb21pc2UuXG4gICAgICBtYXREaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocHJvbWlzZUFscmVhZHlGaW5pc2hlZCA9PiB7XG4gICAgICAgIGlmICghcHJvbWlzZUFscmVhZHlGaW5pc2hlZCkge1xuICAgICAgICAgIHJlamVjdCgnYXV0by1jbG9zZWQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBtYXREaWFsb2dSZWYudXBkYXRlU2l6ZSgpO1xuICAgICAgbWF0RGlhbG9nUmVmLmFmdGVyT3BlbmVkKCkuc3Vic2NyaWJlKHByb21pc2VBbHJlYWR5RmluaXNoZWQgPT4ge1xuICAgICAgICBtYXREaWFsb2dSZWYudXBkYXRlU2l6ZSgpO1xuICAgICAgfSk7XG4gICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICB0aGlzLl9hY3RpdmVNb2RlbC52YWx1ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5ub3RpZnlBY3Rpdml0eUZpbmlzaGVkKCk7XG4gICAgICBzZWxmLnNhZmVseVVwZGF0ZUFjdGl2aXR5TGlzdERlbGVnYXRlKG51bGwpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGVoIGRlbGVnYXRlIG9uIHRoZSBuZXh0IHRpY2sgdG8gYXZvaWQgbW9kaWZ5aW5nIHN0YXRlIGR1cmluZyB0aGUgY3VycmVudCBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlLlxuICAgKiBAcGFyYW0gZGVsZWdhdGVcbiAgICovXG4gIHNhZmVseVVwZGF0ZUFjdGl2aXR5TGlzdERlbGVnYXRlKGRlbGVnYXRlOiBMaXN0TW9kZWw8QWN0aXZpdHk8YW55LCBhbnk+Pikge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXRBY3Rpdml0eUxpc3QoZGVsZWdhdGUpKTtcbiAgfVxuXG59XG4iXX0=