@coolon/angular-ui-powerups 0.0.1

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 (179) hide show
  1. package/README.md +7 -0
  2. package/bundles/coolon-angular-ui-powerups.umd.js +3373 -0
  3. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -0
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -0
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -0
  6. package/coolon-angular-ui-powerups.d.ts +12 -0
  7. package/coolon-angular-ui-powerups.metadata.json +1 -0
  8. package/esm2015/coolon-angular-ui-powerups.js +17 -0
  9. package/esm2015/index.js +6 -0
  10. package/esm2015/lib/angular-ui-powerups.module.js +48 -0
  11. package/esm2015/lib/components/disposable-component.js +14 -0
  12. package/esm2015/lib/components/forms/abstract-input.component.js +173 -0
  13. package/esm2015/lib/components/forms/number-input/number-input.component.js +26 -0
  14. package/esm2015/lib/components/forms/password-input/password-input.component.js +26 -0
  15. package/esm2015/lib/components/forms/select-input/select-input.component.js +60 -0
  16. package/esm2015/lib/components/forms/string-input/string-input.component.js +26 -0
  17. package/esm2015/lib/components/index.js +18 -0
  18. package/esm2015/lib/components/resize-aware.component.js +96 -0
  19. package/esm2015/lib/components/types/bounds.class.js +56 -0
  20. package/esm2015/lib/components/types/dimension.class.js +21 -0
  21. package/esm2015/lib/components/types/point.class.js +36 -0
  22. package/esm2015/lib/directives/command.directive.js +91 -0
  23. package/esm2015/lib/directives/focus-binding.directive.js +163 -0
  24. package/esm2015/lib/directives/index.js +10 -0
  25. package/esm2015/lib/interaction/abstract-activity.js +129 -0
  26. package/esm2015/lib/interaction/activity.js +27 -0
  27. package/esm2015/lib/interaction/alert.js +23 -0
  28. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +144 -0
  29. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
  30. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +169 -0
  31. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +37 -0
  32. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +46 -0
  33. package/esm2015/lib/interaction/confirm.js +17 -0
  34. package/esm2015/lib/interaction/index.js +21 -0
  35. package/esm2015/lib/interaction/interaction-context.js +35 -0
  36. package/esm2015/lib/interaction/interaction.module.js +41 -0
  37. package/esm2015/lib/interaction/result.js +24 -0
  38. package/esm2015/lib/interaction/services/dialog-interaction.service.js +112 -0
  39. package/esm2015/lib/place/abstract-place-component.js +59 -0
  40. package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js +44 -0
  41. package/esm2015/lib/place/components/empty-state/empty-state.component.js +28 -0
  42. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +52 -0
  43. package/esm2015/lib/place/guards/leave-place.guard.js +52 -0
  44. package/esm2015/lib/place/guards/place-route.guard.js +74 -0
  45. package/esm2015/lib/place/index.js +25 -0
  46. package/esm2015/lib/place/place-component.js +17 -0
  47. package/esm2015/lib/place/place.decorator.js +67 -0
  48. package/esm2015/lib/place/place.module.js +38 -0
  49. package/esm2015/lib/place/place.service.js +61 -0
  50. package/esm2015/lib/place/route/json-types.js +13 -0
  51. package/esm2015/lib/place/route/parameter-decorators.js +82 -0
  52. package/esm2015/lib/place/route/parameter-definition.class.js +22 -0
  53. package/esm2015/lib/place/route/parameter-sanitiser.js +17 -0
  54. package/esm2015/lib/place/route/parameter-type.js +43 -0
  55. package/esm2015/lib/place/route/route-parameter-bindings.js +282 -0
  56. package/esm2015/lib/place/route/route-parameter-sanitiser.js +148 -0
  57. package/esm2015/public_api.js +10 -0
  58. package/esm5/coolon-angular-ui-powerups.js +17 -0
  59. package/esm5/index.js +6 -0
  60. package/esm5/lib/angular-ui-powerups.module.js +52 -0
  61. package/esm5/lib/components/disposable-component.js +24 -0
  62. package/esm5/lib/components/forms/abstract-input.component.js +218 -0
  63. package/esm5/lib/components/forms/number-input/number-input.component.js +33 -0
  64. package/esm5/lib/components/forms/password-input/password-input.component.js +33 -0
  65. package/esm5/lib/components/forms/select-input/select-input.component.js +67 -0
  66. package/esm5/lib/components/forms/string-input/string-input.component.js +33 -0
  67. package/esm5/lib/components/index.js +18 -0
  68. package/esm5/lib/components/resize-aware.component.js +124 -0
  69. package/esm5/lib/components/types/bounds.class.js +59 -0
  70. package/esm5/lib/components/types/dimension.class.js +19 -0
  71. package/esm5/lib/components/types/point.class.js +43 -0
  72. package/esm5/lib/directives/command.directive.js +107 -0
  73. package/esm5/lib/directives/focus-binding.directive.js +211 -0
  74. package/esm5/lib/directives/index.js +10 -0
  75. package/esm5/lib/interaction/abstract-activity.js +173 -0
  76. package/esm5/lib/interaction/activity.js +27 -0
  77. package/esm5/lib/interaction/alert.js +23 -0
  78. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +181 -0
  79. package/esm5/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
  80. package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +206 -0
  81. package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +42 -0
  82. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +54 -0
  83. package/esm5/lib/interaction/confirm.js +17 -0
  84. package/esm5/lib/interaction/index.js +21 -0
  85. package/esm5/lib/interaction/interaction-context.js +45 -0
  86. package/esm5/lib/interaction/interaction.module.js +45 -0
  87. package/esm5/lib/interaction/result.js +24 -0
  88. package/esm5/lib/interaction/services/dialog-interaction.service.js +138 -0
  89. package/esm5/lib/place/abstract-place-component.js +66 -0
  90. package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js +49 -0
  91. package/esm5/lib/place/components/empty-state/empty-state.component.js +29 -0
  92. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +62 -0
  93. package/esm5/lib/place/guards/leave-place.guard.js +57 -0
  94. package/esm5/lib/place/guards/place-route.guard.js +78 -0
  95. package/esm5/lib/place/index.js +25 -0
  96. package/esm5/lib/place/place-component.js +17 -0
  97. package/esm5/lib/place/place.decorator.js +64 -0
  98. package/esm5/lib/place/place.module.js +42 -0
  99. package/esm5/lib/place/place.service.js +75 -0
  100. package/esm5/lib/place/route/json-types.js +13 -0
  101. package/esm5/lib/place/route/parameter-decorators.js +82 -0
  102. package/esm5/lib/place/route/parameter-definition.class.js +22 -0
  103. package/esm5/lib/place/route/parameter-sanitiser.js +17 -0
  104. package/esm5/lib/place/route/parameter-type.js +65 -0
  105. package/esm5/lib/place/route/route-parameter-bindings.js +327 -0
  106. package/esm5/lib/place/route/route-parameter-sanitiser.js +203 -0
  107. package/esm5/public_api.js +10 -0
  108. package/fesm2015/coolon-angular-ui-powerups.js +2687 -0
  109. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -0
  110. package/fesm5/coolon-angular-ui-powerups.js +3164 -0
  111. package/fesm5/coolon-angular-ui-powerups.js.map +1 -0
  112. package/index.d.ts +1 -0
  113. package/lib/angular-ui-powerups.module.d.ts +2 -0
  114. package/lib/components/disposable-component.d.ts +5 -0
  115. package/lib/components/forms/abstract-input.component.d.ts +34 -0
  116. package/lib/components/forms/number-input/number-input.component.d.ts +6 -0
  117. package/lib/components/forms/password-input/password-input.component.d.ts +6 -0
  118. package/lib/components/forms/select-input/select-input.component.d.ts +11 -0
  119. package/lib/components/forms/string-input/string-input.component.d.ts +6 -0
  120. package/lib/components/index.d.ts +13 -0
  121. package/lib/components/resize-aware.component.d.ts +22 -0
  122. package/lib/components/types/bounds.class.d.ts +16 -0
  123. package/lib/components/types/dimension.class.d.ts +5 -0
  124. package/lib/components/types/point.class.d.ts +10 -0
  125. package/lib/directives/command.directive.d.ts +11 -0
  126. package/lib/directives/focus-binding.directive.d.ts +21 -0
  127. package/lib/directives/index.d.ts +5 -0
  128. package/lib/interaction/abstract-activity.d.ts +17 -0
  129. package/lib/interaction/activity.d.ts +11 -0
  130. package/lib/interaction/alert.d.ts +5 -0
  131. package/lib/interaction/components/activity-container/activity-container.component.d.ts +32 -0
  132. package/lib/interaction/components/activity-outlet/activity-outlet-context.d.ts +10 -0
  133. package/lib/interaction/components/activity-outlet/activity-outlet.component.d.ts +30 -0
  134. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +8 -0
  135. package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +9 -0
  136. package/lib/interaction/confirm.d.ts +5 -0
  137. package/lib/interaction/index.d.ts +16 -0
  138. package/lib/interaction/interaction-context.d.ts +11 -0
  139. package/lib/interaction/interaction.module.d.ts +2 -0
  140. package/lib/interaction/result.d.ts +8 -0
  141. package/lib/interaction/services/dialog-interaction.service.d.ts +14 -0
  142. package/lib/place/abstract-place-component.d.ts +13 -0
  143. package/lib/place/components/busy-overlay/busy-overlay.component.d.ts +8 -0
  144. package/lib/place/components/empty-state/empty-state.component.d.ts +5 -0
  145. package/lib/place/components/place-outlet/place-outlet.component.d.ts +10 -0
  146. package/lib/place/guards/leave-place.guard.d.ts +10 -0
  147. package/lib/place/guards/place-route.guard.d.ts +9 -0
  148. package/lib/place/index.d.ts +20 -0
  149. package/lib/place/place-component.d.ts +5 -0
  150. package/lib/place/place.decorator.d.ts +18 -0
  151. package/lib/place/place.module.d.ts +2 -0
  152. package/lib/place/place.service.d.ts +8 -0
  153. package/lib/place/route/json-types.d.ts +7 -0
  154. package/lib/place/route/parameter-decorators.d.ts +9 -0
  155. package/lib/place/route/parameter-definition.class.d.ts +10 -0
  156. package/lib/place/route/parameter-sanitiser.d.ts +3 -0
  157. package/lib/place/route/parameter-type.d.ts +16 -0
  158. package/lib/place/route/route-parameter-bindings.d.ts +18 -0
  159. package/lib/place/route/route-parameter-sanitiser.d.ts +15 -0
  160. package/package.json +31 -0
  161. package/public_api.d.ts +5 -0
  162. package/schematics/collection.json +14 -0
  163. package/schematics/ng-add/index.d.ts +2 -0
  164. package/schematics/ng-add/index.js +12 -0
  165. package/schematics/ng-add/index.js.map +1 -0
  166. package/schematics/place-routes/index.d.ts +3 -0
  167. package/schematics/place-routes/index.js +92 -0
  168. package/schematics/place-routes/index.js.map +1 -0
  169. package/schematics/place-routes/place-def.d.ts +31 -0
  170. package/schematics/place-routes/place-def.js +75 -0
  171. package/schematics/place-routes/place-def.js.map +1 -0
  172. package/schematics/place-routes/scanner.d.ts +26 -0
  173. package/schematics/place-routes/scanner.js +124 -0
  174. package/schematics/place-routes/scanner.js.map +1 -0
  175. package/schematics/place-routes/schema.d.ts +7 -0
  176. package/schematics/place-routes/schema.js +3 -0
  177. package/schematics/place-routes/schema.js.map +1 -0
  178. package/schematics/place-routes/schema.json +17 -0
  179. package/schematics/place-routes/templates/apps/__project__/src/app/place-routes.ts.template +31 -0
@@ -0,0 +1,163 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { DOCUMENT } from '@angular/common';
6
+ import { Directive, ElementRef, HostListener, Inject, Input, NgZone } from '@angular/core';
7
+ import { Dsl, HasFocusTracking, Logger } from '@coolon/pectin';
8
+ import { DisposableComponent } from '../components/disposable-component';
9
+ export class FocusBindingDirective extends DisposableComponent {
10
+ /**
11
+ * @param {?} el
12
+ * @param {?} ngZone
13
+ * @param {?} document
14
+ */
15
+ constructor(el, ngZone, document) {
16
+ super();
17
+ this.el = el;
18
+ this.ngZone = ngZone;
19
+ // @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642
20
+ this.document = (/** @type {?} */ (document));
21
+ }
22
+ /**
23
+ * @return {?}
24
+ */
25
+ onFocusIn() {
26
+ this.pectinFocusBinding.focusCallbacks.notifyFocusIn();
27
+ }
28
+ /**
29
+ * @return {?}
30
+ */
31
+ onFocusOut() {
32
+ this.pectinFocusBinding.focusCallbacks.notifyFocusOut();
33
+ }
34
+ /**
35
+ * @return {?}
36
+ */
37
+ ngOnInit() {
38
+ }
39
+ /**
40
+ * @return {?}
41
+ */
42
+ ngAfterViewInit() {
43
+ // TODO: Make this also track the current enabled/disabled state.
44
+ const { chain } = Dsl.disposeWith(this);
45
+ chain.value(this.pectinFocusBinding.focused).subscribe((/**
46
+ * @param {?} focused
47
+ * @return {?}
48
+ */
49
+ (focused) => {
50
+ if (focused && !this.alreadyHasFocus()) {
51
+ this.tryAndFocus();
52
+ }
53
+ }));
54
+ }
55
+ // Hook method for debugging via tracing.
56
+ /**
57
+ * @return {?}
58
+ */
59
+ alreadyHasFocus() {
60
+ return this.isFocused(this.focusTarget);
61
+ }
62
+ // Hook method for debugging via tracing.
63
+ /**
64
+ * @param {?} element
65
+ * @return {?}
66
+ */
67
+ isFocused(element) {
68
+ return this.document.activeElement === element;
69
+ }
70
+ /**
71
+ * @param {?=} retries
72
+ * @return {?}
73
+ */
74
+ tryAndFocus(retries = 5) {
75
+ if (this.modelShouldStillHaveFocus() && this.canFocus()) {
76
+ if (!this.alreadyHasFocus()) {
77
+ this.focusTarget.focus();
78
+ }
79
+ // if we didn't get the focus we try again later.
80
+ if (!this.alreadyHasFocus()) {
81
+ Logger.get(this).log(`focus failed, trying ${retries} more times`);
82
+ if (retries > 0) {
83
+ // try again on the next paint
84
+ // TODO: is there an angular way of doing this without calling a window function.
85
+ requestAnimationFrame((/**
86
+ * @return {?}
87
+ */
88
+ () => {
89
+ this.tryAndFocus(retries - 1);
90
+ }));
91
+ }
92
+ else {
93
+ Logger.get(this).warn(`Tried to focus but gave up as the component wasn't enabled or visible.`);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ /**
99
+ * @return {?}
100
+ */
101
+ get focusTarget() {
102
+ return this.focusBindingTarget || this.el.nativeElement;
103
+ }
104
+ // Hook method for debugging via tracing.
105
+ /**
106
+ * @return {?}
107
+ */
108
+ modelShouldStillHaveFocus() {
109
+ return this.pectinFocusBinding.focused.value;
110
+ }
111
+ // Hook method for debugging via tracing.
112
+ /**
113
+ * @return {?}
114
+ */
115
+ canFocus() {
116
+ /** @type {?} */
117
+ const dimension = this.focusTarget.getBoundingClientRect();
118
+ /** @type {?} */
119
+ const hasSize = dimension.height >= 0 && dimension.height >= 0;
120
+ // tslint:disable-next-line:no-string-literal
121
+ return hasSize && !this.focusTarget['disabled'];
122
+ }
123
+ }
124
+ FocusBindingDirective.decorators = [
125
+ { type: Directive, args: [{
126
+ // tslint:disable-next-line:directive-selector
127
+ selector: '[pectinFocusBinding]'
128
+ },] }
129
+ ];
130
+ /** @nocollapse */
131
+ FocusBindingDirective.ctorParameters = () => [
132
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
133
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
134
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
135
+ ];
136
+ FocusBindingDirective.propDecorators = {
137
+ pectinFocusBinding: [{ type: Input }],
138
+ focusBindingTarget: [{ type: Input }],
139
+ onFocusIn: [{ type: HostListener, args: ['focusin',] }],
140
+ onFocusOut: [{ type: HostListener, args: ['focusout',] }]
141
+ };
142
+ if (false) {
143
+ /**
144
+ * @type {?}
145
+ * @private
146
+ */
147
+ FocusBindingDirective.prototype.document;
148
+ /** @type {?} */
149
+ FocusBindingDirective.prototype.pectinFocusBinding;
150
+ /** @type {?} */
151
+ FocusBindingDirective.prototype.focusBindingTarget;
152
+ /**
153
+ * @type {?}
154
+ * @private
155
+ */
156
+ FocusBindingDirective.prototype.el;
157
+ /**
158
+ * @type {?}
159
+ * @private
160
+ */
161
+ FocusBindingDirective.prototype.ngZone;
162
+ }
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtYmluZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9mb2N1cy1iaW5kaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQU92RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1COzs7Ozs7SUFpQjVELFlBQWlELEVBQWMsRUFDbEIsTUFBYyxFQUM3QixRQUFhO1FBQ3pDLEtBQUssRUFBRSxDQUFDO1FBSHVDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUd6RCxrSEFBa0g7UUFDbEgsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBQSxRQUFRLEVBQVksQ0FBQztJQUN2QyxDQUFDOzs7O0lBZkQsU0FBUztRQUNQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekQsQ0FBQzs7OztJQUdELFVBQVU7UUFDUixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFELENBQUM7Ozs7SUFVRCxRQUFRO0lBQ1IsQ0FBQzs7OztJQUVELGVBQWU7O2NBRVAsRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNyQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqRSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUdELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Ozs7OztJQUdELFNBQVMsQ0FBQyxPQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxLQUFLLE9BQU8sQ0FBQztJQUNqRCxDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxVQUFrQixDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDMUI7WUFDRCxpREFBaUQ7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDM0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLE9BQU8sYUFBYSxDQUFDLENBQUM7Z0JBQ25FLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRTtvQkFDZiw4QkFBOEI7b0JBQzlCLGlGQUFpRjtvQkFDakYscUJBQXFCOzs7b0JBQUMsR0FBRyxFQUFFO3dCQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDaEMsQ0FBQyxFQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsd0VBQXdFLENBQUMsQ0FBQztpQkFDakc7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7OztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQzFELENBQUM7Ozs7O0lBR0QseUJBQXlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDL0MsQ0FBQzs7Ozs7SUFHRCxRQUFROztjQUNBLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFOztjQUNwRCxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDO1FBQzlELDZDQUE2QztRQUM3QyxPQUFPLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7O1lBeEZGLFNBQVMsU0FBQzs7Z0JBRVQsUUFBUSxFQUFFLHNCQUFzQjthQUNqQzs7OztZQVJpQyxVQUFVLHVCQTBCN0IsTUFBTSxTQUFDLFVBQVU7WUExQjJDLE1BQU0sdUJBMkJsRSxNQUFNLFNBQUMsTUFBTTs0Q0FDYixNQUFNLFNBQUMsUUFBUTs7O2lDQWYzQixLQUFLO2lDQUNMLEtBQUs7d0JBRUwsWUFBWSxTQUFDLFNBQVM7eUJBS3RCLFlBQVksU0FBQyxVQUFVOzs7Ozs7O0lBVnhCLHlDQUFvQzs7SUFFcEMsbURBQThDOztJQUM5QyxtREFBeUM7Ozs7O0lBWTdCLG1DQUFtRDs7Ozs7SUFDbkQsdUNBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE5nWm9uZSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHNsLCBIYXNGb2N1c1RyYWNraW5nLCBMb2dnZXJ9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbcGVjdGluRm9jdXNCaW5kaW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNCaW5kaW5nRGlyZWN0aXZlIGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgQElucHV0KCkgcGVjdGluRm9jdXNCaW5kaW5nOiBIYXNGb2N1c1RyYWNraW5nO1xuICBASW5wdXQoKSBmb2N1c0JpbmRpbmdUYXJnZXQ6IEhUTUxFbGVtZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nKVxuICBvbkZvY3VzSW4oKSB7XG4gICAgdGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcuZm9jdXNDYWxsYmFja3Mubm90aWZ5Rm9jdXNJbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICBvbkZvY3VzT3V0KCkge1xuICAgIHRoaXMucGVjdGluRm9jdXNCaW5kaW5nLmZvY3VzQ2FsbGJhY2tzLm5vdGlmeUZvY3VzT3V0KCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5NTEzMzU5L2NvdWxkLW5vdC1yZXNvbHZlLXR5cGUtZG9jdW1lbnQtaW4tYW5ndWxhcjUvNTM3MTU2NDIjNTM3MTU2NDJcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiBNYWtlIHRoaXMgYWxzbyB0cmFjayB0aGUgY3VycmVudCBlbmFibGVkL2Rpc2FibGVkIHN0YXRlLlxuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgY2hhaW4udmFsdWUodGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcuZm9jdXNlZCkuc3Vic2NyaWJlKChmb2N1c2VkKSA9PiB7XG4gICAgICBpZiAoZm9jdXNlZCAmJiAhdGhpcy5hbHJlYWR5SGFzRm9jdXMoKSkge1xuICAgICAgICB0aGlzLnRyeUFuZEZvY3VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBIb29rIG1ldGhvZCBmb3IgZGVidWdnaW5nIHZpYSB0cmFjaW5nLlxuICBhbHJlYWR5SGFzRm9jdXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNGb2N1c2VkKHRoaXMuZm9jdXNUYXJnZXQpO1xuICB9XG5cbiAgLy8gSG9vayBtZXRob2QgZm9yIGRlYnVnZ2luZyB2aWEgdHJhY2luZy5cbiAgaXNGb2N1c2VkKGVsZW1lbnQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50O1xuICB9XG5cbiAgdHJ5QW5kRm9jdXMocmV0cmllczogbnVtYmVyID0gNSkge1xuICAgIGlmICh0aGlzLm1vZGVsU2hvdWxkU3RpbGxIYXZlRm9jdXMoKSAmJiB0aGlzLmNhbkZvY3VzKCkpIHtcbiAgICAgIGlmICghdGhpcy5hbHJlYWR5SGFzRm9jdXMoKSkge1xuICAgICAgICB0aGlzLmZvY3VzVGFyZ2V0LmZvY3VzKCk7XG4gICAgICB9XG4gICAgICAvLyBpZiB3ZSBkaWRuJ3QgZ2V0IHRoZSBmb2N1cyB3ZSB0cnkgYWdhaW4gbGF0ZXIuXG4gICAgICBpZiAoIXRoaXMuYWxyZWFkeUhhc0ZvY3VzKCkpIHtcbiAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS5sb2coYGZvY3VzIGZhaWxlZCwgdHJ5aW5nICR7cmV0cmllc30gbW9yZSB0aW1lc2ApO1xuICAgICAgICBpZiAocmV0cmllcyA+IDApIHtcbiAgICAgICAgICAvLyB0cnkgYWdhaW4gb24gdGhlIG5leHQgcGFpbnRcbiAgICAgICAgICAvLyBUT0RPOiBpcyB0aGVyZSBhbiBhbmd1bGFyIHdheSBvZiBkb2luZyB0aGlzIHdpdGhvdXQgY2FsbGluZyBhIHdpbmRvdyBmdW5jdGlvbi5cbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cnlBbmRGb2N1cyhyZXRyaWVzIC0gMSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS53YXJuKGBUcmllZCB0byBmb2N1cyBidXQgZ2F2ZSB1cCBhcyB0aGUgY29tcG9uZW50IHdhc24ndCBlbmFibGVkIG9yIHZpc2libGUuYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgZm9jdXNUYXJnZXQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZvY3VzQmluZGluZ1RhcmdldCB8fCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICAvLyBIb29rIG1ldGhvZCBmb3IgZGVidWdnaW5nIHZpYSB0cmFjaW5nLlxuICBtb2RlbFNob3VsZFN0aWxsSGF2ZUZvY3VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlY3RpbkZvY3VzQmluZGluZy5mb2N1c2VkLnZhbHVlO1xuICB9XG5cbiAgLy8gSG9vayBtZXRob2QgZm9yIGRlYnVnZ2luZyB2aWEgdHJhY2luZy5cbiAgY2FuRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGltZW5zaW9uID0gdGhpcy5mb2N1c1RhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBoYXNTaXplID0gZGltZW5zaW9uLmhlaWdodCA+PSAwICYmIGRpbWVuc2lvbi5oZWlnaHQgPj0gMDtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tc3RyaW5nLWxpdGVyYWxcbiAgICByZXR1cm4gaGFzU2l6ZSAmJiAhdGhpcy5mb2N1c1RhcmdldFsnZGlzYWJsZWQnXTtcbiAgfVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @file Automatically generated by barrelsby.
7
+ */
8
+ export { CommandDirective } from "./command.directive";
9
+ export { FocusBindingDirective } from "./focus-binding.directive";
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsaUNBQWMscUJBQXFCLENBQUM7QUFDcEMsc0NBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGJhcnJlbHNieS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9jdXMtYmluZGluZy5kaXJlY3RpdmVcIjtcbiJdfQ==
@@ -0,0 +1,129 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { DelegatingValueModel, EventListenerList } from '@coolon/pectin';
6
+ import { DisposableComponent } from '../components/disposable-component';
7
+ /**
8
+ * @template D, R, E
9
+ */
10
+ export class AbstractActivity extends DisposableComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this._doneListeners = new EventListenerList();
14
+ this._cancelListeners = new EventListenerList();
15
+ this._finishListeners = new EventListenerList();
16
+ this._busyModel = new DelegatingValueModel().withDefault(false);
17
+ }
18
+ /**
19
+ * @param {?} callback
20
+ * @return {?}
21
+ */
22
+ onDone(callback) {
23
+ this._doneListeners.add(callback);
24
+ }
25
+ /**
26
+ * @param {?} callback
27
+ * @return {?}
28
+ */
29
+ onCancel(callback) {
30
+ this._cancelListeners.add(callback);
31
+ }
32
+ /**
33
+ * @param {?=} result
34
+ * @return {?}
35
+ */
36
+ done(result) {
37
+ return this._doneListeners
38
+ .fireAndWait((/**
39
+ * @param {?} l
40
+ * @return {?}
41
+ */
42
+ l => l(result)))
43
+ .finally((/**
44
+ * @return {?}
45
+ */
46
+ () => this.finalizeAndDispose()));
47
+ }
48
+ /**
49
+ * @param {?=} error
50
+ * @return {?}
51
+ */
52
+ cancel(error) {
53
+ return this._cancelListeners
54
+ .fireAndWait((/**
55
+ * @param {?} l
56
+ * @return {?}
57
+ */
58
+ l => l(error)))
59
+ .finally((/**
60
+ * @return {?}
61
+ */
62
+ () => this.finalizeAndDispose()));
63
+ }
64
+ /**
65
+ * @private
66
+ * @return {?}
67
+ */
68
+ finalizeAndDispose() {
69
+ // this._activeModel.value = false;
70
+ this._finishListeners.fire((/**
71
+ * @param {?} l
72
+ * @return {?}
73
+ */
74
+ l => l()));
75
+ // this._interactionContext = null;
76
+ // this._initialized = false;
77
+ [
78
+ this._finishListeners,
79
+ this._doneListeners,
80
+ this._cancelListeners
81
+ ].forEach((/**
82
+ * @param {?} l
83
+ * @return {?}
84
+ */
85
+ l => l.dispose()));
86
+ }
87
+ /**
88
+ * @return {?}
89
+ */
90
+ get busy() {
91
+ return this._busyModel.readonly;
92
+ }
93
+ /**
94
+ * @param {?} busyModel
95
+ * @return {?}
96
+ */
97
+ busyWhile(busyModel) {
98
+ this._busyModel.setDelegate(busyModel);
99
+ }
100
+ /**
101
+ * @return {?}
102
+ */
103
+ isBusy() {
104
+ return this._busyModel.value;
105
+ }
106
+ }
107
+ if (false) {
108
+ /**
109
+ * @type {?}
110
+ * @private
111
+ */
112
+ AbstractActivity.prototype._doneListeners;
113
+ /**
114
+ * @type {?}
115
+ * @private
116
+ */
117
+ AbstractActivity.prototype._cancelListeners;
118
+ /**
119
+ * @type {?}
120
+ * @private
121
+ */
122
+ AbstractActivity.prototype._finishListeners;
123
+ /**
124
+ * @type {?}
125
+ * @private
126
+ */
127
+ AbstractActivity.prototype._busyModel;
128
+ }
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYWN0aXZpdHkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vYWJzdHJhY3QtYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7O0FBR3pFLE1BQU0sT0FBTyxnQkFBZ0MsU0FBUSxtQkFBbUI7SUFBeEU7O1FBRW1CLG1CQUFjLEdBQUcsSUFBSSxpQkFBaUIsRUFBd0IsQ0FBQztRQUMvRCxxQkFBZ0IsR0FBRyxJQUFJLGlCQUFpQixFQUF3QixDQUFDO1FBQ2pFLHFCQUFnQixHQUFHLElBQUksaUJBQWlCLEVBQWMsQ0FBQztRQUV2RCxlQUFVLEdBQUcsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQThDdkYsQ0FBQzs7Ozs7SUE1Q0MsTUFBTSxDQUFDLFFBQThCO1FBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7O0lBRUQsUUFBUSxDQUFDLFFBQThCO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7Ozs7SUFFRCxJQUFJLENBQUMsTUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWM7YUFDdkIsV0FBVzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDO2FBQzNCLE9BQU87OztRQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLENBQUM7SUFDOUMsQ0FBQzs7Ozs7SUFFRCxNQUFNLENBQUMsS0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN6QixXQUFXOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUM7YUFDMUIsT0FBTzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUMsQ0FBQztJQUM5QyxDQUFDOzs7OztJQUVPLGtCQUFrQjtRQUN4QixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUM7UUFDckMsbUNBQW1DO1FBQ25DLDZCQUE2QjtRQUM3QjtZQUNFLElBQUksQ0FBQyxnQkFBZ0I7WUFDckIsSUFBSSxDQUFDLGNBQWM7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQjtTQUN0QixDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDO0lBQzlCLENBQUM7Ozs7SUFHRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7Ozs7O0lBRUQsU0FBUyxDQUFDLFNBQThCO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Ozs7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0NBQ0Y7Ozs7OztJQWxEQywwQ0FBZ0Y7Ozs7O0lBQ2hGLDRDQUFrRjs7Ozs7SUFDbEYsNENBQXdFOzs7OztJQUV4RSxzQ0FBcUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWxlZ2F0aW5nVmFsdWVNb2RlbCwgRXZlbnRMaXN0ZW5lckxpc3QsIFZhbHVlTW9kZWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4vYWN0aXZpdHknO1xuXG5leHBvcnQgY2xhc3MgQWJzdHJhY3RBY3Rpdml0eTxELCBSLCBFID0gYW55PiBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBBY3Rpdml0eTxELCBSLCBFPiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZG9uZUxpc3RlbmVycyA9IG5ldyBFdmVudExpc3RlbmVyTGlzdDxBY3Rpdml0eS5DYWxsQmFjazxSPj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FuY2VsTGlzdGVuZXJzID0gbmV3IEV2ZW50TGlzdGVuZXJMaXN0PEFjdGl2aXR5LkNhbGxCYWNrPEU+PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maW5pc2hMaXN0ZW5lcnMgPSBuZXcgRXZlbnRMaXN0ZW5lckxpc3Q8KCkgPT4gdm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9idXN5TW9kZWwgPSBuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdChmYWxzZSk7XG5cbiAgb25Eb25lKGNhbGxiYWNrOiBBY3Rpdml0eS5DYWxsQmFjazxSPikge1xuICAgIHRoaXMuX2RvbmVMaXN0ZW5lcnMuYWRkKGNhbGxiYWNrKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKGNhbGxiYWNrOiBBY3Rpdml0eS5DYWxsQmFjazxFPikge1xuICAgIHRoaXMuX2NhbmNlbExpc3RlbmVycy5hZGQoY2FsbGJhY2spO1xuICB9XG5cbiAgZG9uZShyZXN1bHQ/OiBSKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZG9uZUxpc3RlbmVyc1xuICAgICAgLmZpcmVBbmRXYWl0KGwgPT4gbChyZXN1bHQpKVxuICAgICAgLmZpbmFsbHkoKCkgPT4gdGhpcy5maW5hbGl6ZUFuZERpc3Bvc2UoKSk7XG4gIH1cblxuICBjYW5jZWwoZXJyb3I/OiBFKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY2FuY2VsTGlzdGVuZXJzXG4gICAgICAuZmlyZUFuZFdhaXQobCA9PiBsKGVycm9yKSlcbiAgICAgIC5maW5hbGx5KCgpID0+IHRoaXMuZmluYWxpemVBbmREaXNwb3NlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5hbGl6ZUFuZERpc3Bvc2UoKSB7XG4gICAgLy8gdGhpcy5fYWN0aXZlTW9kZWwudmFsdWUgPSBmYWxzZTtcbiAgICB0aGlzLl9maW5pc2hMaXN0ZW5lcnMuZmlyZShsID0+IGwoKSk7XG4gICAgLy8gdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0ID0gbnVsbDtcbiAgICAvLyB0aGlzLl9pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIFtcbiAgICAgIHRoaXMuX2ZpbmlzaExpc3RlbmVycyxcbiAgICAgIHRoaXMuX2RvbmVMaXN0ZW5lcnMsXG4gICAgICB0aGlzLl9jYW5jZWxMaXN0ZW5lcnNcbiAgICBdLmZvckVhY2gobCA9PiBsLmRpc3Bvc2UoKSk7XG4gIH1cblxuXG4gIGdldCBidXN5KCk6IFZhbHVlTW9kZWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9idXN5TW9kZWwucmVhZG9ubHk7XG4gIH1cblxuICBidXN5V2hpbGUoYnVzeU1vZGVsOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgdGhpcy5fYnVzeU1vZGVsLnNldERlbGVnYXRlKGJ1c3lNb2RlbCk7XG4gIH1cblxuICBpc0J1c3koKSB7XG4gICAgcmV0dXJuIHRoaXMuX2J1c3lNb2RlbC52YWx1ZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { InjectionToken } from '@angular/core';
6
+ /** @type {?} */
7
+ export const ACTIVITY_DATA = new InjectionToken('InteractionActivityData');
8
+ /**
9
+ * @record
10
+ * @template D, R, E
11
+ */
12
+ export function Activity() { }
13
+ if (false) {
14
+ /** @type {?} */
15
+ Activity.prototype.busy;
16
+ /**
17
+ * @param {?} callback
18
+ * @return {?}
19
+ */
20
+ Activity.prototype.onDone = function (callback) { };
21
+ /**
22
+ * @param {?} callback
23
+ * @return {?}
24
+ */
25
+ Activity.prototype.onCancel = function (callback) { };
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRy9DLE1BQU0sT0FBTyxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQU0seUJBQXlCLENBQUM7Ozs7O0FBRS9FLDhCQU9DOzs7SUFOQyx3QkFBbUM7Ozs7O0lBRW5DLG9EQUF1Qzs7Ozs7SUFFdkMsc0RBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbHVlTW9kZWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5cbmV4cG9ydCBjb25zdCBBQ1RJVklUWV9EQVRBID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ0ludGVyYWN0aW9uQWN0aXZpdHlEYXRhJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZpdHk8RCwgUiwgRSA9IGFueT4ge1xuICByZWFkb25seSBidXN5OiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuXG4gIG9uRG9uZShjYWxsYmFjazogQWN0aXZpdHkuQ2FsbEJhY2s8Uj4pO1xuXG4gIG9uQ2FuY2VsKGNhbGxiYWNrOiBBY3Rpdml0eS5DYWxsQmFjazxFPik7XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBBY3Rpdml0eSB7XG4gIGV4cG9ydCB0eXBlIENhbGxCYWNrPFQ+ID0gKHZhbHVlOiBUKSA9PiB2b2lkIHwgUHJvbWlzZTxhbnk+O1xufVxuIl19
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @record
7
+ */
8
+ export function Alert() { }
9
+ if (false) {
10
+ /**
11
+ * @return {?}
12
+ */
13
+ Alert.prototype.title = function () { };
14
+ /**
15
+ * @return {?}
16
+ */
17
+ Alert.prototype.content = function () { };
18
+ /**
19
+ * @return {?}
20
+ */
21
+ Alert.prototype.ok = function () { };
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vYWxlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLDJCQUlDOzs7OztJQUhHLHdDQUFnQjs7OztJQUNoQiwwQ0FBbUI7Ozs7SUFDbkIscUNBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgQWxlcnQge1xuICAgIHRpdGxlPygpOnN0cmluZztcbiAgICBjb250ZW50KCk6c3RyaW5nW107XG4gICAgb2soKTpzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,144 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Component, Input, ViewChild } from '@angular/core';
6
+ import { MatTabGroup } from '@angular/material';
7
+ import { Dsl, MutableListModel } from '@coolon/pectin';
8
+ import { Deferred } from '@coolon/pectin/lib/promise/deferred.class';
9
+ import { DisposableComponent } from '../../../components/disposable-component';
10
+ import { InteractionContext } from '../../interaction-context';
11
+ import { AlertDialogComponent } from '../alert-dialog/alert-dialog.component';
12
+ import { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';
13
+ export class ActivityContainerComponent extends DisposableComponent {
14
+ constructor() {
15
+ super();
16
+ this.activityTabs = new MutableListModel();
17
+ this.obsoleteTabs = [];
18
+ }
19
+ /**
20
+ * @return {?}
21
+ */
22
+ ngOnInit() {
23
+ }
24
+ /**
25
+ * @return {?}
26
+ */
27
+ ngAfterViewInit() {
28
+ const { observe } = Dsl.disposeWith(this);
29
+ observe.valuesFrom(this.tabs.animationDone).subscribe((/**
30
+ * @return {?}
31
+ */
32
+ () => this.cleanUpTabs()));
33
+ }
34
+ /**
35
+ * @template D, R, E
36
+ * @param {?} options
37
+ * @return {?}
38
+ */
39
+ initialise(options) {
40
+ this.initialActivity = Object.assign({}, options, { interactionContext: this });
41
+ }
42
+ /**
43
+ * @template D, R, E
44
+ * @param {?} activityType
45
+ * @param {?=} data
46
+ * @return {?}
47
+ */
48
+ startActivity(activityType, data) {
49
+ /** @type {?} */
50
+ const deferred = Deferred.defer();
51
+ /** @type {?} */
52
+ const context = {
53
+ interactionContext: this,
54
+ activityClass: activityType,
55
+ activityData: data,
56
+ onDone: deferred.resolve,
57
+ onCancel: deferred.reject
58
+ };
59
+ this.activityTabs.push(context);
60
+ this.tabs.selectedIndex = this.activityTabs.length;
61
+ return deferred.promise.finally((/**
62
+ * @return {?}
63
+ */
64
+ () => {
65
+ this.obsoleteTabs.push(context);
66
+ this.tabs.selectedIndex = this.activityTabs.length - 1;
67
+ }));
68
+ }
69
+ /**
70
+ * @param {?} alert
71
+ * @return {?}
72
+ */
73
+ alert(alert) {
74
+ return this.startActivity(AlertDialogComponent, alert);
75
+ }
76
+ /**
77
+ * @param {?} confirm
78
+ * @return {?}
79
+ */
80
+ confirm(confirm) {
81
+ return this.startActivity(ConfirmationDialogComponent, confirm);
82
+ }
83
+ /**
84
+ * @private
85
+ * @return {?}
86
+ */
87
+ cleanUpTabs() {
88
+ this.activityTabs.value = this.activityTabs.value.filter((/**
89
+ * @param {?} tab
90
+ * @return {?}
91
+ */
92
+ tab => {
93
+ return !this.obsoleteTabs.includes(tab);
94
+ }));
95
+ }
96
+ }
97
+ ActivityContainerComponent.decorators = [
98
+ { type: Component, args: [{
99
+ selector: 'angular-ui-powerups-activity-container',
100
+ template: "<mat-tab-group #tabs no-tab-header [dynamicHeight]=\"true\">\n <mat-tab>\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\" [activityContext]=\"initialActivity\"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of activityTabs.value\">\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\" [activityContext]=\"tab\"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n</mat-tab-group>\n",
101
+ styles: [":host{display:block}"]
102
+ }] }
103
+ ];
104
+ /** @nocollapse */
105
+ ActivityContainerComponent.ctorParameters = () => [];
106
+ ActivityContainerComponent.propDecorators = {
107
+ parentInteractionContext: [{ type: Input }],
108
+ initialActivity: [{ type: Input }],
109
+ tabs: [{ type: ViewChild, args: ['tabs', { static: true },] }]
110
+ };
111
+ if (false) {
112
+ /** @type {?} */
113
+ ActivityContainerComponent.prototype.parentInteractionContext;
114
+ /** @type {?} */
115
+ ActivityContainerComponent.prototype.initialActivity;
116
+ /** @type {?} */
117
+ ActivityContainerComponent.prototype.tabs;
118
+ /** @type {?} */
119
+ ActivityContainerComponent.prototype.activityTabs;
120
+ /**
121
+ * @type {?}
122
+ * @private
123
+ */
124
+ ActivityContainerComponent.prototype.obsoleteTabs;
125
+ }
126
+ (function (ActivityContainerComponent) {
127
+ /**
128
+ * @record
129
+ * @template D, R, E
130
+ */
131
+ function ActivityContext() { }
132
+ ActivityContainerComponent.ActivityContext = ActivityContext;
133
+ if (false) {
134
+ /** @type {?} */
135
+ ActivityContext.prototype.activityClass;
136
+ /** @type {?} */
137
+ ActivityContext.prototype.activityData;
138
+ /** @type {?} */
139
+ ActivityContext.prototype.onDone;
140
+ /** @type {?} */
141
+ ActivityContext.prototype.onCancel;
142
+ }
143
+ })(ActivityContainerComponent || (ActivityContainerComponent = {}));
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQWlCLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUsvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQU9uRyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsbUJBQW1CO0lBY2pFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFKRCxpQkFBWSxHQUFHLElBQUksZ0JBQWdCLEVBQXdDLENBQUM7UUFDN0UsaUJBQVksR0FBMkMsRUFBRSxDQUFDO0lBSWxFLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7OztJQUVELGVBQWU7Y0FDUCxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUMsQ0FBQztJQUNsRixDQUFDOzs7Ozs7SUFFRCxVQUFVLENBQVUsT0FBNEQ7UUFDOUUsSUFBSSxDQUFDLGVBQWUscUJBQ2YsT0FBTyxJQUNWLGtCQUFrQixFQUFFLElBQUksR0FDekIsQ0FBQztJQUNKLENBQUM7Ozs7Ozs7SUFFRCxhQUFhLENBQVUsWUFBOEMsRUFBRSxJQUFROztjQUN2RSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBSzs7Y0FDOUIsT0FBTyxHQUFHO1lBQ2Qsa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixhQUFhLEVBQUUsWUFBWTtZQUMzQixZQUFZLEVBQUUsSUFBSTtZQUNsQixNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU87WUFDeEIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDbkQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU87OztRQUFDLEdBQUcsRUFBRTtZQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDekQsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVELEtBQUssQ0FBQyxLQUFZO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxPQUFnQjtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsMkJBQTJCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7Ozs7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU07Ozs7UUFBQyxHQUFHLENBQUMsRUFBRTtZQUM3RCxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFuRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3Q0FBd0M7Z0JBQ2xELHlkQUFrRDs7YUFFbkQ7Ozs7O3VDQUdFLEtBQUs7OEJBR0wsS0FBSzttQkFHTCxTQUFTLFNBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7OztJQU5uQyw4REFDNkM7O0lBRTdDLHFEQUNzRDs7SUFFdEQsMENBQ2tCOztJQUVsQixrREFBcUY7Ozs7O0lBQ3JGLGtEQUFrRTs7QUFxRHBFLFdBQWlCLDBCQUEwQjs7Ozs7SUFFekMsOEJBS0M7Ozs7UUFKQyx3Q0FBZ0Q7O1FBQ2hELHVDQUFnQjs7UUFDaEIsaUNBQTRCOztRQUM1QixtQ0FBNkI7O0FBRWpDLENBQUMsRUFSZ0IsMEJBQTBCLEtBQTFCLDBCQUEwQixRQVExQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IENvbnN0cnVjdGFibGUsIERzbCwgTXV0YWJsZUxpc3RNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERlZmVycmVkIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4vbGliL3Byb21pc2UvZGVmZXJyZWQuY2xhc3MnO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uLy4uL2FjdGl2aXR5JztcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSAnLi4vLi4vYWxlcnQnO1xuaW1wb3J0IHsgQ29uZmlybSB9IGZyb20gJy4uLy4uL2NvbmZpcm0nO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5pbXBvcnQgeyBBY3Rpdml0eU91dGxldENvbnRleHQgfSBmcm9tICcuLi9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LWNvbnRleHQnO1xuaW1wb3J0IHsgQWxlcnREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci11aS1wb3dlcnVwcy1hY3Rpdml0eS1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBJbnRlcmFjdGlvbkNvbnRleHQge1xuXG4gIEBJbnB1dCgpXG4gIHBhcmVudEludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0O1xuXG4gIEBJbnB1dCgpXG4gIGluaXRpYWxBY3Rpdml0eTogQWN0aXZpdHlPdXRsZXRDb250ZXh0PGFueSwgYW55LCBhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYnMnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICB0YWJzOiBNYXRUYWJHcm91cDtcblxuICByZWFkb25seSBhY3Rpdml0eVRhYnMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxBY3Rpdml0eU91dGxldENvbnRleHQ8YW55LCBhbnksIGFueT4+KCk7XG4gIHByaXZhdGUgb2Jzb2xldGVUYWJzOiBBY3Rpdml0eU91dGxldENvbnRleHQ8YW55LCBhbnksIGFueT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IG9ic2VydmUgfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICBvYnNlcnZlLnZhbHVlc0Zyb20odGhpcy50YWJzLmFuaW1hdGlvbkRvbmUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsZWFuVXBUYWJzKCkpO1xuICB9XG5cbiAgaW5pdGlhbGlzZTxELCBSLCBFPihvcHRpb25zOiBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5BY3Rpdml0eUNvbnRleHQ8RCwgUiwgRT4pIHtcbiAgICB0aGlzLmluaXRpYWxBY3Rpdml0eSA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBpbnRlcmFjdGlvbkNvbnRleHQ6IHRoaXNcbiAgICB9O1xuICB9XG5cbiAgc3RhcnRBY3Rpdml0eTxELCBSLCBFPihhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhPzogRCk6IFByb21pc2U8Uj4ge1xuICAgIGNvbnN0IGRlZmVycmVkID0gRGVmZXJyZWQuZGVmZXI8Uj4oKTtcbiAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgaW50ZXJhY3Rpb25Db250ZXh0OiB0aGlzLFxuICAgICAgYWN0aXZpdHlDbGFzczogYWN0aXZpdHlUeXBlLFxuICAgICAgYWN0aXZpdHlEYXRhOiBkYXRhLFxuICAgICAgb25Eb25lOiBkZWZlcnJlZC5yZXNvbHZlLFxuICAgICAgb25DYW5jZWw6IGRlZmVycmVkLnJlamVjdFxuICAgIH07XG4gICAgdGhpcy5hY3Rpdml0eVRhYnMucHVzaChjb250ZXh0KTtcbiAgICB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuYWN0aXZpdHlUYWJzLmxlbmd0aDtcbiAgICByZXR1cm4gZGVmZXJyZWQucHJvbWlzZS5maW5hbGx5KCgpID0+IHtcbiAgICAgIHRoaXMub2Jzb2xldGVUYWJzLnB1c2goY29udGV4dCk7XG4gICAgICB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuYWN0aXZpdHlUYWJzLmxlbmd0aCAtIDE7XG4gICAgfSk7XG4gIH1cblxuICBhbGVydChhbGVydDogQWxlcnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdGFydEFjdGl2aXR5KEFsZXJ0RGlhbG9nQ29tcG9uZW50LCBhbGVydCk7XG4gIH1cblxuICBjb25maXJtKGNvbmZpcm06IENvbmZpcm0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zdGFydEFjdGl2aXR5KENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwgY29uZmlybSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuVXBUYWJzKCkge1xuICAgIHRoaXMuYWN0aXZpdHlUYWJzLnZhbHVlID0gdGhpcy5hY3Rpdml0eVRhYnMudmFsdWUuZmlsdGVyKHRhYiA9PiB7XG4gICAgICByZXR1cm4gIXRoaXMub2Jzb2xldGVUYWJzLmluY2x1ZGVzKHRhYik7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBY3Rpdml0eUNvbnRleHQ8RCwgUiwgRT4ge1xuICAgIGFjdGl2aXR5Q2xhc3M6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LFxuICAgIGFjdGl2aXR5RGF0YTogRCxcbiAgICBvbkRvbmU6IChyZXN1bHQ6IFIpID0+IHZvaWQsXG4gICAgb25DYW5jZWw6IChlcnJvcjogRSkgPT4gdm9pZCxcbiAgfVxufVxuIl19
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @record
7
+ * @template D, R, E
8
+ */
9
+ export function ActivityOutletContext() { }
10
+ if (false) {
11
+ /** @type {?} */
12
+ ActivityOutletContext.prototype.interactionContext;
13
+ /** @type {?} */
14
+ ActivityOutletContext.prototype.activityClass;
15
+ /** @type {?} */
16
+ ActivityOutletContext.prototype.activityData;
17
+ /** @type {?} */
18
+ ActivityOutletContext.prototype.onDone;
19
+ /** @type {?} */
20
+ ActivityOutletContext.prototype.onCancel;
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktb3V0bGV0LWNvbnRleHQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSwyQ0FNQzs7O0lBTEMsbURBQXVDOztJQUN2Qyw4Q0FBZ0Q7O0lBQ2hELDZDQUFnQjs7SUFDaEIsdUNBQTRCOztJQUM1Qix5Q0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3RhYmxlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9hY3Rpdml0eSc7XG5pbXBvcnQgeyBJbnRlcmFjdGlvbkNvbnRleHQgfSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2aXR5T3V0bGV0Q29udGV4dDxELCBSLCBFPiB7XG4gIGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0LFxuICBhY3Rpdml0eUNsYXNzOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PixcbiAgYWN0aXZpdHlEYXRhOiBELFxuICBvbkRvbmU6IChyZXN1bHQ6IFIpID0+IHZvaWQsXG4gIG9uQ2FuY2VsOiAoZXJyb3I6IEUpID0+IHZvaWQsXG59XG4iXX0=