@coolon/angular-ui-powerups 16.1.0-aplpha.10 → 16.1.0-aplpha.100

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 (168) hide show
  1. package/assets/activities/input-activities.scss +10 -2
  2. package/assets/form.scss +74 -27
  3. package/assets/table.scss +33 -23
  4. package/assets/tabs.scss +2 -6
  5. package/esm2022/lib/animations/slide-animations.mjs +6 -1
  6. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
  7. package/esm2022/lib/components/commands/command/command.component.mjs +24 -10
  8. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
  9. package/esm2022/lib/components/commands/command-face.mjs +11 -11
  10. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +11 -11
  11. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +6 -4
  12. package/esm2022/lib/components/components.module.mjs +27 -8
  13. package/esm2022/lib/components/disposable-component.mjs +19 -37
  14. package/esm2022/lib/components/exports.mjs +8 -2
  15. package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
  16. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +2 -2
  17. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +3 -3
  18. package/esm2022/lib/components/forms/form-field.mjs +2 -0
  19. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +2 -2
  20. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +49 -10
  21. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +40 -3
  22. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +33 -0
  23. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -10
  24. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +21 -9
  25. package/esm2022/lib/components/icon/icon.component.mjs +7 -4
  26. package/esm2022/lib/components/loadable-component.mjs +49 -0
  27. package/esm2022/lib/components/resize-aware.component.mjs +61 -24
  28. package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
  29. package/esm2022/lib/components/tables/abstract-table-model.mjs +49 -25
  30. package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
  31. package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
  32. package/esm2022/lib/components/tables/column/column-model.mjs +13 -3
  33. package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
  34. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  35. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
  36. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
  37. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
  38. package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
  39. package/esm2022/lib/components/tables/column/selection-column-model.mjs +3 -3
  40. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +1 -1
  41. package/esm2022/lib/components/tables/editor/edit-session.mjs +4 -2
  42. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
  43. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
  44. package/esm2022/lib/components/tables/footer/footer-row-model.mjs +38 -0
  45. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +19 -1
  46. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
  47. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +3 -2
  48. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +150 -40
  49. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +1 -1
  50. package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +30 -0
  51. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +7 -2
  52. package/esm2022/lib/components/tables/table/table-model.mjs +1 -1
  53. package/esm2022/lib/components/tables/table/table.component.mjs +36 -61
  54. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
  55. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
  56. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  57. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +7 -4
  58. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +3 -3
  59. package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
  60. package/esm2022/lib/directives/directives.module.mjs +1 -1
  61. package/esm2022/lib/directives/exports.mjs +2 -1
  62. package/esm2022/lib/directives/highlight.pipe.mjs +2 -2
  63. package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
  64. package/esm2022/lib/interaction/activity.mjs +3 -4
  65. package/esm2022/lib/interaction/alert.mjs +2 -2
  66. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +8 -4
  67. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +7 -9
  68. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +28 -11
  69. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
  70. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
  71. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
  72. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
  73. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  74. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +3 -3
  75. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +15 -4
  76. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
  77. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +3 -1
  78. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
  79. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +129 -0
  80. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
  81. package/esm2022/lib/interaction/exports.mjs +2 -1
  82. package/esm2022/lib/interaction/interaction.module.mjs +7 -9
  83. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +3 -4
  84. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
  85. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
  86. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  87. package/esm2022/lib/place/guards/place.guard.mjs +2 -1
  88. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  89. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +3 -6
  90. package/esm2022/lib/place/place-component.mjs +7 -7
  91. package/esm2022/lib/place/place-definition.mjs +3 -3
  92. package/esm2022/lib/place/place-history.mjs +2 -2
  93. package/esm2022/lib/place/place-router.mjs +20 -18
  94. package/esm2022/lib/place/place.decorator.mjs +2 -2
  95. package/esm2022/lib/place/place.module.mjs +1 -5
  96. package/esm2022/lib/place/route/formatter.mjs +2 -2
  97. package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
  98. package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
  99. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  100. package/esm2022/lib/place/visit-segment.mjs +2 -2
  101. package/esm2022/lib/place/visit.mjs +2 -2
  102. package/fesm2022/coolon-angular-ui-powerups.mjs +1256 -520
  103. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  104. package/lib/animations/slide-animations.d.ts +1 -0
  105. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  106. package/lib/components/commands/command/command.component.d.ts +2 -1
  107. package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
  108. package/lib/components/commands/command-face.d.ts +5 -7
  109. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
  110. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
  111. package/lib/components/components.module.d.ts +56 -53
  112. package/lib/components/disposable-component.d.ts +11 -8
  113. package/lib/components/exports.d.ts +7 -1
  114. package/lib/components/forms/abstract-input.component.d.ts +13 -5
  115. package/lib/components/forms/form-field.d.ts +5 -0
  116. package/lib/components/forms/number-input/number-input.component.d.ts +8 -4
  117. package/lib/components/forms/password-input/password-input.component.d.ts +7 -1
  118. package/lib/components/forms/search-input/search-input.component.d.ts +10 -0
  119. package/lib/components/forms/select-input/select-input.component.d.ts +4 -3
  120. package/lib/components/forms/string-input/string-input.component.d.ts +3 -1
  121. package/lib/components/loadable-component.d.ts +17 -0
  122. package/lib/components/resize-aware.component.d.ts +24 -5
  123. package/lib/components/switch-case/switch-case.component.d.ts +2 -3
  124. package/lib/components/tables/abstract-table-model.d.ts +14 -6
  125. package/lib/components/tables/abstract-table.component.d.ts +4 -3
  126. package/lib/components/tables/column/column-manager.d.ts +19 -0
  127. package/lib/components/tables/column/column-model.d.ts +7 -3
  128. package/lib/components/tables/column/column-order-manager.d.ts +20 -0
  129. package/lib/components/tables/column/custom-template-column-model.d.ts +3 -2
  130. package/lib/components/tables/column/custom-value-column-model.d.ts +3 -2
  131. package/lib/components/tables/column/editor-controls-column-model.d.ts +3 -2
  132. package/lib/components/tables/column/list-propery-column-model.d.ts +3 -2
  133. package/lib/components/tables/column/property-column-model.d.ts +3 -2
  134. package/lib/components/tables/column/selection-column-model.d.ts +3 -2
  135. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +1 -1
  136. package/lib/components/tables/editor/edit-session.d.ts +1 -1
  137. package/lib/components/tables/filter/text-search-predicate.d.ts +9 -0
  138. package/lib/components/tables/footer/footer-row-model.d.ts +22 -0
  139. package/lib/components/tables/renderer/cell-portal-ref.d.ts +14 -6
  140. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +40 -16
  141. package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +1 -1
  142. package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +11 -0
  143. package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +2 -1
  144. package/lib/components/tables/table/table-model.d.ts +1 -1
  145. package/lib/components/tables/table/table.component.d.ts +14 -10
  146. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  147. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -2
  148. package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
  149. package/lib/components/tables/tree-table/tree-table-model.d.ts +1 -1
  150. package/lib/directives/exports.d.ts +1 -0
  151. package/lib/directives/resize-observer.directive.d.ts +16 -0
  152. package/lib/interaction/activity.d.ts +2 -2
  153. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -0
  154. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +1 -3
  155. package/lib/interaction/components/activity-container/activity-container.component.d.ts +7 -3
  156. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  157. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  158. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +5 -3
  159. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
  160. package/lib/interaction/exports.d.ts +1 -0
  161. package/lib/interaction/interaction.module.d.ts +28 -28
  162. package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
  163. package/lib/place/place-component.d.ts +4 -4
  164. package/lib/place/place-router.d.ts +4 -0
  165. package/lib/place/place.module.d.ts +4 -5
  166. package/package.json +7 -5
  167. package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
  168. package/lib/components/tables/column/column-list-model.d.ts +0 -13
@@ -20,6 +20,7 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
20
20
  tabs;
21
21
  activityOutlets;
22
22
  activityRefs = [];
23
+ animationDuration = "500ms";
23
24
  _identifier;
24
25
  _deferredCleanUp;
25
26
  interactionServiceApi;
@@ -32,6 +33,7 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
32
33
  busy = this.registerDisposable(new DelegatingValueModel().withDefault(false));
33
34
  syncTabsJob = undefined;
34
35
  stable$;
36
+ wasActive = false;
35
37
  constructor(placeRouter) {
36
38
  super();
37
39
  this.placeRouter = placeRouter;
@@ -68,7 +70,12 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
68
70
  * Returns true if an activity is currently running.
69
71
  */
70
72
  isActive() {
71
- return this.getActiveActivityCount() > 0;
73
+ const isActive = this.getActiveActivityCount() > 0;
74
+ // if (this.wasActive !== isActive) {
75
+ // console.log({was: this.wasActive, is: isActive});
76
+ // }
77
+ // this.wasActive = isActive
78
+ return isActive;
72
79
  }
73
80
  registerDisposable(disposable) {
74
81
  return this.garbage.registerDisposable(disposable);
@@ -151,7 +158,7 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
151
158
  // by activity index)
152
159
  setTimeout(() => {
153
160
  this.activityRefs = []; // we have to do it after the animation timeout or the activity disappears before the animatin finsihes
154
- }, this.getTabAnimationDuration());
161
+ }, this.getTabAnimationDurationInMillis());
155
162
  const promise = this.interactionServiceApi.notifyFinished(this);
156
163
  this._deferredCleanUp = promise
157
164
  .finally(() => {
@@ -177,7 +184,6 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
177
184
  /**
178
185
  * Synchronises the selected tab index.
179
186
  */
180
- // @Trace()
181
187
  synchroniseSelectedTabIndex() {
182
188
  assert.isTruthy(this.isActive());
183
189
  const previousIndex = this.tabs.selectedIndex;
@@ -189,10 +195,10 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
189
195
  activityRef.setFocused(false);
190
196
  this.busy.setDelegate(activityRef.activityBusy);
191
197
  this.tabs.selectedIndex = newIndex;
192
- if (this.ready$.value) {
193
- // Note: We're not using the animation done event as it's firing almost immeadiately.
194
- setTimeout(() => this.finaliseActivityStates(), animate ? this.getTabAnimationDuration() : 0);
195
- }
198
+ // if (this.ready$.value) {
199
+ // // Note: We're not using the animation done event as it's firing almost immeadiately.
200
+ // setTimeout(() => this.finaliseActivityStates(), animate ? this.getTabAnimationDurationInMillis() : 0);
201
+ // }
196
202
  }
197
203
  }
198
204
  finaliseActivityStates() {
@@ -206,7 +212,12 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
206
212
  return this.activityOutlets.toArray()[this.tabs.selectedIndex];
207
213
  }
208
214
  getTabAnimationDuration() {
209
- const match = this.tabs.animationDuration.match(/(\d+)(.*)/);
215
+ // const s = this._started$.value ? this.animationDuration : "0";
216
+ // return s
217
+ return this.animationDuration;
218
+ }
219
+ getTabAnimationDurationInMillis() {
220
+ const match = this.animationDuration.match(/(\d+)(.*)/);
210
221
  const numericValue = parseFloat(match[1]);
211
222
  switch (match[2].trim()) {
212
223
  case "ms":
@@ -232,12 +243,16 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
232
243
  }
233
244
  }, 75);
234
245
  }
246
+ onAnimationDone() {
247
+ this._started$.value = true;
248
+ this.finaliseActivityStates();
249
+ }
235
250
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, deps: [{ token: i1.PlaceRouter }], target: i0.ɵɵFactoryTarget.Component });
236
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: { dynamicHeight: "dynamicHeight" }, viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: i4.BusyOverlayComponent, selector: "aup-busy-overlay", inputs: ["busy$", "busy"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i6.ActivityOutletComponent, selector: "aup-activity-outlet", inputs: ["nestedInteractionContext", "activityRef"] }] });
251
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: { dynamicHeight: "dynamicHeight", animationDuration: "animationDuration" }, viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: i4.BusyOverlayComponent, selector: "aup-busy-overlay", inputs: ["busy$", "busy"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i6.ActivityOutletComponent, selector: "aup-activity-outlet", inputs: ["nestedInteractionContext", "activityRef"] }] });
237
252
  }
238
253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, decorators: [{
239
254
  type: Component,
240
- args: [{ selector: "aup-activity-container", template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"] }]
255
+ args: [{ selector: "aup-activity-container", template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"] }]
241
256
  }], ctorParameters: function () { return [{ type: i1.PlaceRouter }]; }, propDecorators: { dynamicHeight: [{
242
257
  type: Input
243
258
  }], tabs: [{
@@ -246,5 +261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
246
261
  }], activityOutlets: [{
247
262
  type: ViewChildren,
248
263
  args: [ActivityOutletComponent]
264
+ }], animationDuration: [{
265
+ type: Input
249
266
  }] } });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxNQUFNLEVBR04sb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRWxELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7QUFPcEYsTUFBTSxPQUFPLDBCQUFvQyxTQUFRLDBCQUEwQjtJQWdDNUQ7SUE3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REgsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUlqQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtNYXRUYWJHcm91cH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYnNcIjtcbmltcG9ydCB7XG4gIGFzc2VydCxcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTXV0YWJsZVZhbHVlTW9kZWxcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2xhbmd9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7ZmluZExhc3R9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7UGxhY2VSb3V0ZXJ9IGZyb20gXCIuLi8uLi8uLi9wbGFjZS9wbGFjZS1yb3V0ZXJcIjtcbmltcG9ydCB7QWJzdHJhY3RJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi8uLi9hYnN0cmFjdC1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHlcIjtcbmltcG9ydCB7QWN0aXZpdHlSZWZ9IGZyb20gXCIuLi8uLi9hY3Rpdml0eS1yZWZcIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvaW50ZXJhY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHtBY3Rpdml0eU91dGxldENvbXBvbmVudH0gZnJvbSBcIi4vYWN0aXZpdHktb3V0bGV0L2FjdGl2aXR5LW91dGxldC5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF1cC1hY3Rpdml0eS1jb250YWluZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudDxELCBSLCBFPiBleHRlbmRzIEFic3RyYWN0SW50ZXJhY3Rpb25Db250ZXh0IHtcblxuICBASW5wdXQoKVxuICBkeW5hbWljSGVpZ2h0ID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZChcInRhYnNcIiwge3N0YXRpYzogdHJ1ZX0pXG4gIHRhYnM6IE1hdFRhYkdyb3VwO1xuXG4gIEBWaWV3Q2hpbGRyZW4oQWN0aXZpdHlPdXRsZXRDb21wb25lbnQpXG4gIGFjdGl2aXR5T3V0bGV0czogUXVlcnlMaXN0PEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50PGFueSwgYW55LCBhbnk+PjtcblxuICBhY3Rpdml0eVJlZnM6IEFjdGl2aXR5UmVmPGFueSwgYW55LCBhbnk+W10gPSBbXTtcblxuICBwcml2YXRlIF9pZGVudGlmaWVyOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlZmVycmVkQ2xlYW5VcDogUHJvbWlzZTxhbnk+O1xuXG4gIHByaXZhdGUgaW50ZXJhY3Rpb25TZXJ2aWNlQXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpO1xuXG4gIHByaXZhdGUgZ2FyYmFnZSA9IG5ldyBHYXJiYWdlQ29sbGVjdG9yKCk7XG4gIHByaXZhdGUgc3luY1NlbGVjdGVkVGFiVGltZW91dDogYW55O1xuICBwcml2YXRlIG9uQW5pbWF0aW9uRmluaXNoZWRKb2I6ICgpID0+IHZvaWQ7XG5cbiAgcmVhZG9ubHkgX3N0YXJ0ZWQkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgX3JlYWR5JCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IF9hbmltYXRpbmckID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBidXN5ID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpKTtcblxuICByZWFkb25seSBzeW5jVGFic0pvYjogKCkgPT4gdm9pZCA9IHVuZGVmaW5lZDtcblxuICByZWFkb25seSBzdGFibGUkOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcikge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB2YWx1ZU9mLCB3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuKHRoaXMucmVhZHkkKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHRoaXMuZmluYWxpc2VBY3Rpdml0eVN0YXRlcygpKVxuICAgIHRoaXMuc3RhYmxlJCA9IHZhbHVlT2YuYWxsKFxuICAgICAgdGhpcy5yZWFkeSQsXG4gICAgICB0aGlzLl9zdGFydGVkJCxcbiAgICAgIGNoYWluKHRoaXMuYW5pbWF0aW5nJCkuaXNGYWxzZXkoKVxuICAgICkuYXJlVHJ1dGh5KCk7XG4gIH1cblxuICBnZXQgc3RhcnRlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIGdldCByZWFkeSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5JC5yZWFkb25seSQ7XG4gIH1cblxuICBnZXQgYW5pbWF0aW5nJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW5nJC5yZWFkb25seSQ7XG4gIH1cblxuICBpbml0aWFsaXNlKGlkZW50aWZpZXI6IHN0cmluZywgYXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpKSB7XG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMuaXNJbml0aWFsaXNlZCgpKTtcbiAgICBhc3NlcnQubm90TmlsKGlkZW50aWZpZXIpO1xuICAgIGFzc2VydC5ub3ROaWwoYXBpKTtcbiAgICB0aGlzLl9pZGVudGlmaWVyID0gaWRlbnRpZmllcjtcbiAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZUFwaSA9IGFwaTtcbiAgfVxuXG4gIG5vdGlmeVJlYWR5KHJlYWR5OiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVhZHkkLnZhbHVlID0gcmVhZHk7XG4gIH1cblxuICBnZXQgaWRlbnRpZmllcigpIHtcbiAgICByZXR1cm4gdGhpcy5faWRlbnRpZmllcjtcbiAgfVxuXG4gIGlzSW5pdGlhbGlzZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pZGVudGlmaWVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhbiBhY3Rpdml0eSBpcyBjdXJyZW50bHkgcnVubmluZy5cbiAgICovXG4gIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKSA+IDA7XG4gIH1cblxuICByZWdpc3RlckRpc3Bvc2FibGU8VCBleHRlbmRzIERpc3Bvc2FibGU+KGRpc3Bvc2FibGU6IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5nYXJiYWdlLnJlZ2lzdGVyRGlzcG9zYWJsZShkaXNwb3NhYmxlKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgLy8gVE9ETzogdGhpbmsgYWJvdXQgYXV0byBjYW5jZWxsaW5nIGFueSBvdXRzdGFuZGluZyBhY3Rpdml0eSBvbiBkaXNwb3NlLlxuICAgIC8vICAgICAgIFNlZSBOYXZpZ2F0aW9uU3RhdGUuTmF2aWdhdGluZyBmb3IgYSB1c2UtY2FzZS5cbiAgICBhc3NlcnQuaXNGYWxzZXkodGhpcy5pc0FjdGl2ZSgpKTtcbiAgICB0aGlzLmdhcmJhZ2UuZGlzcG9zZSgpO1xuICB9XG5cbiAgZ2V0QWN0aXZlQWN0aXZpdHlSZWYoKTogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT4ge1xuICAgIGlmICghdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShcIm5vIGFjdGl2aXR5IGluIHByb2dyZXNzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gZmluZExhc3QodGhpcy5hY3Rpdml0eVJlZnMsIHRhYiA9PiAhdGFiLmlzQ29tcGxldGUoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VscyB0aGUgY3VycmVudCBhY3Rpdml0eSBhbmQgcmV0dXJucyB0cnVlIHRoZSBjb250ZXh0IGlzIG5vIGxvbmdlciBhY3RpdmUsIGZhbHNlIGlmXG4gICAqIHRoZXJlIGlzIHN0aWxsIGFub3RoZXIgYWN0aXZpdHkgcnVubmluZy5cbiAgICovXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGFjdGl2aXR5ID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eVJlZigpO1xuICAgIGFjdGl2aXR5LmNhbmNlbCgpO1xuICAgIGlmICh0aGlzLmlzQ2xlYW5pbmdVcCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy53YWl0Rm9ySW50ZXJhY3Rpb25Db250ZXh0Q2xlYW51cFRvRmluaXNoKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc0FjdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IHRoaXMgaGFuZGxpbmcgb2YgbXVsdGlwbGUgbmVzdGVkIGFjdGl2aXRpZXMgaXMgb25seSB1c2VkIGJ5IHRoZSBhY3Rpdml0eSBjb21wb25lbnQgYW5kIGlzIG5vdCBhIGdlbmVyYWwgY2FzZS5cbiAgLy8gQFRyYWNlKClcbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUFuZExhdW5jaEFjdGl2aXR5PEQxLCBSMSwgRTE+KGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxEMSwgUjEsIEUxPj4sIGRhdGE6IEQxLCBkaXNhYmxlQ2xvc2U6IGJvb2xlYW4pOiBQcm9taXNlPFIxPiB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuaXNJbml0aWFsaXNlZCgpKTsgLy8gbWFrZSBzdXJlIHdlJ3ZlIGJlZW4gaW5pdGlhbGlzZWRcbiAgICBjb25zdCBhY3Rpdml0eVJlZiA9IG5ldyBBY3Rpdml0eVJlZjxEMSwgUjEsIEUxPihhY3Rpdml0eVR5cGUsIGRhdGEsICgpID0+IHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgPiAwO1xuICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlclRhYlN5bmNocm9uaXNhdGlvbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maW5pc2hBbmRTdGFydENsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmxhdW5jaEFjdGl2aXR5KGFjdGl2aXR5UmVmKTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYWN0aXZpdHlSZWYuYWN0aXZpdHlSZXN1bHQ7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiY2xvc2luZyBhY3Rpdml0eVwiLCBhY3Rpdml0eVR5cGUubmFtZSwgdGhpcy5hY3Rpdml0eVJlZnMpXG4gICAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICAvLyB3YWl0IHVudGlsIHRoZSBhY3Rpdml0eSByb3V0ZSBzeW5jaW5nIGhhcyBmaW5pc2hlZFxuICAgICAgICBhd2FpdCB0aGlzLnBsYWNlUm91dGVyLndhaXRBY3Rpdml0aWVzU3luY2hyb25pc2VkKCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWN0aXZpdHkgc3luY2luZyBmaW5pc2hlZFwiKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIocmVmID0+ICFyZWYuaXNDb21wbGV0ZSgpKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJhY3Rpb24gY29udGV4dCBoYXMgZmluaXNoZWQgYW4gaXMgaW4gdGhlIHByb2Nlc3Mgb2Ygd2FpdGluZ1xuICAgKiBmb3IgYWxsIHRoZSBpbmZyYXN0cnVjdHVyZSAoaW5jbHVkaW5nIHJvdXRlIHVwZGF0ZXMpIHRvIGJlIGNvbXBsZXRlZC5cbiAgICovXG4gIGlzQ2xlYW5pbmdVcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWZlcnJlZENsZWFuVXA7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9ySW50ZXJhY3Rpb25Db250ZXh0Q2xlYW51cFRvRmluaXNoKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA/XG4gICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgOlxuICAgICAgdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoQW5kU3RhcnRDbGVhbnVwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZGVmZXJyZWRDbGVhblVwKSB7XG4gICAgICAvLyBJbXBvcnRhbnQ6XG4gICAgICAvLyBDbGVhciBvdXIgdGFicyBzbyB0aGUgbmV4dCBhY3Rpdml0eSB0cmlnZ2VycyBhIHRhYiBjaGFuZ2UuXG4gICAgICAvLyBXaXRob3V0IHRoaXMgb3VyIGFuaW1hdGlvbiBkb25lIHdhc24ndCBjYWxsZWQgd2hlbiBhIHNpbmdsZVxuICAgICAgLy8gbmV3IGFjdGl2aXR5IGZvbGxvd2VkIGEgc2luZ2xlIHRhYiBhY3Rpdml0eSAoc2luY2Ugd2UncmUgdHJhY2tpbmdcbiAgICAgIC8vIGJ5IGFjdGl2aXR5IGluZGV4KVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gW107IC8vIHdlIGhhdmUgdG8gZG8gaXQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiB0aW1lb3V0IG9yIHRoZSBhY3Rpdml0eSBkaXNhcHBlYXJzIGJlZm9yZSB0aGUgYW5pbWF0aW4gZmluc2loZXNcbiAgICAgIH0sIHRoaXMuZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb24oKSk7XG4gICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkubm90aWZ5RmluaXNoZWQodGhpcyk7XG4gICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgPSBwcm9taXNlXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgPSBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuLy8gQFRyYWNlKClcbiAgbGF1bmNoQWN0aXZpdHk8RDEsIFIxLCBFMT4oYWN0aXZpdHlSZWY6IEFjdGl2aXR5UmVmPEQxLCBSMSwgRTE+KSB7XG4gICAgLy8gaWYgdGhpcyBpcyB0aGUgZmlyc3QgYWN0aXZpdHkgbGV0IHRoZSBpbnRlcmFjdGlvbiBzZXJ2aWNlIGtub3cuXG4gICAgY29uc3QgY2xlYW5lZFRhYnMgPSB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIodGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgICB0aGlzLmFjdGl2aXR5UmVmcyA9IGNsZWFuZWRUYWJzLmNvbmNhdChhY3Rpdml0eVJlZik7XG4gICAgY29uc3QgZmlyc3RUaW1lID0gdGhpcy5hY3Rpdml0eVJlZnMubGVuZ3RoID09PSAxO1xuICAgIGlmIChmaXJzdFRpbWUpIHtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlQXBpLm5vdGlmeUFjdGl2ZSh0aGlzKTtcbiAgICB9XG4gICAgdGhpcy5zeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTtcbiAgfVxuXG4gIGFjdGl2aXR5SW5kZXgoaW5kZXg6IG51bWJlciwgYWN0aXZpdHlSZWY6IEFjdGl2aXR5UmVmPGFueSwgYW55LCBhbnk+KSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9O1xuXG4gIC8qKlxuICAgKiBTeW5jaHJvbmlzZXMgdGhlIHNlbGVjdGVkIHRhYiBpbmRleC5cbiAgICovXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgc3luY2hyb25pc2VTZWxlY3RlZFRhYkluZGV4KCk6IHZvaWQge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmlzQWN0aXZlKCkpO1xuICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleDtcbiAgICBjb25zdCBuZXdJbmRleCA9IHRoaXMuZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpIC0gMTtcbiAgICBjb25zdCBhbmltYXRlID0gdGhpcy5hY3Rpdml0eVJlZnMubGVuZ3RoID4gMTtcbiAgICBpZiAocHJldmlvdXNJbmRleCAhPT0gbmV3SW5kZXgpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGluZyQudmFsdWUgPSBhbmltYXRlO1xuICAgICAgY29uc3QgYWN0aXZpdHlSZWYgPSB0aGlzLmFjdGl2aXR5UmVmc1tuZXdJbmRleF07XG4gICAgICBhY3Rpdml0eVJlZi5zZXRGb2N1c2VkKGZhbHNlKTtcbiAgICAgIHRoaXMuYnVzeS5zZXREZWxlZ2F0ZShhY3Rpdml0eVJlZi5hY3Rpdml0eUJ1c3kpO1xuICAgICAgdGhpcy50YWJzLnNlbGVjdGVkSW5kZXggPSBuZXdJbmRleDtcbiAgICAgIGlmICh0aGlzLnJlYWR5JC52YWx1ZSkge1xuICAgICAgICAvLyBOb3RlOiBXZSdyZSBub3QgdXNpbmcgdGhlIGFuaW1hdGlvbiBkb25lIGV2ZW50IGFzIGl0J3MgZmlyaW5nIGFsbW9zdCBpbW1lYWRpYXRlbHkuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maW5hbGlzZUFjdGl2aXR5U3RhdGVzKCksIGFuaW1hdGUgPyB0aGlzLmdldFRhYkFuaW1hdGlvbkR1cmF0aW9uKCkgOiAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmFsaXNlQWN0aXZpdHlTdGF0ZXMoKSB7XG4gICAgdGhpcy5fYW5pbWF0aW5nJC52YWx1ZSA9IGZhbHNlO1xuICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gdGhpcy5hY3Rpdml0eVJlZnMuZmlsdGVyKHRhYiA9PiAhdGFiLmlzQ29tcGxldGUoKSk7XG4gICAgdGhpcy5hY3Rpdml0eVJlZnMuZm9yRWFjaCgocmVmLCBpbmRleCkgPT4ge1xuICAgICAgcmVmLnNldEZvY3VzZWQoaW5kZXggPT09IHRoaXMudGFicy5zZWxlY3RlZEluZGV4KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0ZWRPdXRsZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlPdXRsZXRzLnRvQXJyYXkoKVt0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleF07XG4gIH1cblxuICBwcml2YXRlIGdldFRhYkFuaW1hdGlvbkR1cmF0aW9uKCk6IG51bWJlciB7XG4gICAgY29uc3QgbWF0Y2ggPSB0aGlzLnRhYnMuYW5pbWF0aW9uRHVyYXRpb24ubWF0Y2goLyhcXGQrKSguKikvKTtcbiAgICBjb25zdCBudW1lcmljVmFsdWUgPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcbiAgICBzd2l0Y2ggKG1hdGNoWzJdLnRyaW0oKSkge1xuICAgICAgY2FzZSBcIm1zXCI6XG4gICAgICAgIHJldHVybiBudW1lcmljVmFsdWU7XG4gICAgICBjYXNlIFwic1wiOlxuICAgICAgICByZXR1cm4gMTAwMCAqIG51bWVyaWNWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGB1bnN1cHBvcnRlZCBkdXJhdGlvbiBzdHJpbmc6ICR7dGhpcy50YWJzLmFuaW1hdGlvbkR1cmF0aW9ufWApO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0U2VsZWN0ZWRUYWJJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIHRyaWdnZXJUYWJTeW5jaHJvbmlzYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0ID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5zeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTtcbiAgICAgIH1cbiAgICB9LCA3NSk7XG4gIH1cbn1cbiIsIjxtYXQtdGFiLWdyb3VwICN0YWJzIG5vLXRhYi1oZWFkZXJcbiAgICAgICAgICAgICAgIFtkeW5hbWljSGVpZ2h0XT1cImR5bmFtaWNIZWlnaHRcIlxuICAgICAgICAgICAgICAgW2NsYXNzLmZ1bGwtaGVpZ2h0LXRhYnNdPVwiIWR5bmFtaWNIZWlnaHRcIj5cbiAgPG1hdC10YWIgKm5nRm9yPVwibGV0IGFjdGl2aXR5UmVmIG9mIGFjdGl2aXR5UmVmczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogYWN0aXZpdHlJbmRleFwiPlxuICAgIDxhdXAtYnVzeS1vdmVybGF5IFtidXN5JF09XCJidXN5XCIgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlPlxuICAgICAgPCEtLVxuICAgICAgV2UgaGF2ZSBpc3N1ZXMgd2hlcmUgYW5ndWxhciBpcyB0cmlnZ2VyaW5nIGEgbGVhdmUgYW5pbWF0aW9uIHdoZW4gYW5cbiAgICAgIG5ldyBhY3Rpdml0eSBpcyBzdGFydGVkLCBidXQgaXMgbm90IHJ1bm5pbmcgdGhlIGVudGVyIGFuaW1hdGlvblxuICAgICAgd2hlbiBpdCBpcyBzY3JvbGxlZCBiYWNrIGludG8gdmlldy4gIFNvIHdlIHRyYWNrIHRoZSB0YWIgY2hhbmdlcyBhbmRcbiAgICAgIGRpc2FibGUgYWxsIGFuaW1hdGlvbnMgaW5zaWRlIHRoZSB0YWIgd2hpbGUgd2UncmUgYW5pbWF0aW5nLlxuICAgICAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktb3V0bGV0LXdyYXBwZXJcIiBbQC5kaXNhYmxlZF09XCIhYWN0aXZpdHlSZWYuZm9jdXNlZFwiPlxuICAgICAgICA8YXVwLWFjdGl2aXR5LW91dGxldCBbbmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0XT1cInRoaXNcIiBbYWN0aXZpdHlSZWZdPVwiYWN0aXZpdHlSZWZcIj48L2F1cC1hY3Rpdml0eS1vdXRsZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2F1cC1idXN5LW92ZXJsYXk+XG4gIDwvbWF0LXRhYj5cbjwvbWF0LXRhYi1ncm91cD5cbiJdfQ==
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBZSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxNQUFNLEVBR04sb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRWxELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7QUFPcEYsTUFBTSxPQUFPLDBCQUFvQyxTQUFRLDBCQUEwQjtJQW9DNUQ7SUFq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Q0FBQTtJQUMvQixDQUFDO3VHQW5SVSwwQkFBMEI7MkZBQTFCLDBCQUEwQixtUkFRdkIsdUJBQXVCLHVFQ25DdkMseWdDQW9CQTs7MkZET2EsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3QjtrR0FPbEMsYUFBYTtzQkFEWixLQUFLO2dCQUlOLElBQUk7c0JBREgsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUlqQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsdUJBQXVCO2dCQU1yQyxpQkFBaUI7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtNYXRUYWJHcm91cH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYnNcIjtcbmltcG9ydCB7XG4gIGFzc2VydCxcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTXV0YWJsZVZhbHVlTW9kZWwsIFRyYWNlXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtsYW5nfSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuXG5pbXBvcnQge2ZpbmRMYXN0fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tIFwiLi4vLi4vLi4vcGxhY2UvcGxhY2Utcm91dGVyXCI7XG5pbXBvcnQge0Fic3RyYWN0SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vYWJzdHJhY3QtaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIi4uLy4uL2FjdGl2aXR5XCI7XG5pbXBvcnQge0FjdGl2aXR5UmVmfSBmcm9tIFwiLi4vLi4vYWN0aXZpdHktcmVmXCI7XG5pbXBvcnQge0ludGVyYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7QWN0aXZpdHlPdXRsZXRDb21wb25lbnR9IGZyb20gXCIuL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhdXAtYWN0aXZpdHktY29udGFpbmVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQ8RCwgUiwgRT4gZXh0ZW5kcyBBYnN0cmFjdEludGVyYWN0aW9uQ29udGV4dCB7XG5cbiAgQElucHV0KClcbiAgZHluYW1pY0hlaWdodCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoXCJ0YWJzXCIsIHtzdGF0aWM6IHRydWV9KVxuICB0YWJzOiBNYXRUYWJHcm91cDtcblxuICBAVmlld0NoaWxkcmVuKEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50KVxuICBhY3Rpdml0eU91dGxldHM6IFF1ZXJ5TGlzdDxBY3Rpdml0eU91dGxldENvbXBvbmVudDxhbnksIGFueSwgYW55Pj47XG5cbiAgYWN0aXZpdHlSZWZzOiBBY3Rpdml0eVJlZjxhbnksIGFueSwgYW55PltdID0gW107XG5cbiAgQElucHV0KClcbiAgYW5pbWF0aW9uRHVyYXRpb24gPSBcIjUwMG1zXCJcblxuICBwcml2YXRlIF9pZGVudGlmaWVyOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlZmVycmVkQ2xlYW5VcDogUHJvbWlzZTxhbnk+O1xuXG4gIHByaXZhdGUgaW50ZXJhY3Rpb25TZXJ2aWNlQXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpO1xuXG4gIHByaXZhdGUgZ2FyYmFnZSA9IG5ldyBHYXJiYWdlQ29sbGVjdG9yKCk7XG4gIHByaXZhdGUgc3luY1NlbGVjdGVkVGFiVGltZW91dDogYW55O1xuICBwcml2YXRlIG9uQW5pbWF0aW9uRmluaXNoZWRKb2I6ICgpID0+IHZvaWQ7XG5cbiAgcmVhZG9ubHkgX3N0YXJ0ZWQkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgX3JlYWR5JCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IF9hbmltYXRpbmckID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBidXN5ID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpKTtcblxuICByZWFkb25seSBzeW5jVGFic0pvYjogKCkgPT4gdm9pZCA9IHVuZGVmaW5lZDtcblxuICByZWFkb25seSBzdGFibGUkOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICBwcml2YXRlIHdhc0FjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcikge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB2YWx1ZU9mLCB3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuKHRoaXMucmVhZHkkKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHRoaXMuZmluYWxpc2VBY3Rpdml0eVN0YXRlcygpKVxuICAgIHRoaXMuc3RhYmxlJCA9IHZhbHVlT2YuYWxsKFxuICAgICAgdGhpcy5yZWFkeSQsXG4gICAgICB0aGlzLl9zdGFydGVkJCxcbiAgICAgIGNoYWluKHRoaXMuYW5pbWF0aW5nJCkuaXNGYWxzZXkoKVxuICAgICkuYXJlVHJ1dGh5KCk7XG4gIH1cblxuICBnZXQgc3RhcnRlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIGdldCByZWFkeSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5JC5yZWFkb25seSQ7XG4gIH1cblxuICBnZXQgYW5pbWF0aW5nJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW5nJC5yZWFkb25seSQ7XG4gIH1cblxuICBpbml0aWFsaXNlKGlkZW50aWZpZXI6IHN0cmluZywgYXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpKSB7XG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMuaXNJbml0aWFsaXNlZCgpKTtcbiAgICBhc3NlcnQubm90TmlsKGlkZW50aWZpZXIpO1xuICAgIGFzc2VydC5ub3ROaWwoYXBpKTtcbiAgICB0aGlzLl9pZGVudGlmaWVyID0gaWRlbnRpZmllcjtcbiAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZUFwaSA9IGFwaTtcbiAgfVxuXG4gIG5vdGlmeVJlYWR5KHJlYWR5OiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVhZHkkLnZhbHVlID0gcmVhZHk7XG4gIH1cblxuICBnZXQgaWRlbnRpZmllcigpIHtcbiAgICByZXR1cm4gdGhpcy5faWRlbnRpZmllcjtcbiAgfVxuXG4gIGlzSW5pdGlhbGlzZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pZGVudGlmaWVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhbiBhY3Rpdml0eSBpcyBjdXJyZW50bHkgcnVubmluZy5cbiAgICovXG4gIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgPiAwO1xuICAgIC8vIGlmICh0aGlzLndhc0FjdGl2ZSAhPT0gaXNBY3RpdmUpIHtcbiAgICAvLyAgIGNvbnNvbGUubG9nKHt3YXM6IHRoaXMud2FzQWN0aXZlLCBpczogaXNBY3RpdmV9KTtcbiAgICAvLyB9XG4gICAgLy8gdGhpcy53YXNBY3RpdmUgPSBpc0FjdGl2ZVxuICAgIHJldHVybiBpc0FjdGl2ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyRGlzcG9zYWJsZTxUIGV4dGVuZHMgRGlzcG9zYWJsZT4oZGlzcG9zYWJsZTogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLmdhcmJhZ2UucmVnaXN0ZXJEaXNwb3NhYmxlKGRpc3Bvc2FibGUpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiB0aGluayBhYm91dCBhdXRvIGNhbmNlbGxpbmcgYW55IG91dHN0YW5kaW5nIGFjdGl2aXR5IG9uIGRpc3Bvc2UuXG4gICAgLy8gICAgICAgU2VlIE5hdmlnYXRpb25TdGF0ZS5OYXZpZ2F0aW5nIGZvciBhIHVzZS1jYXNlLlxuICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLmlzQWN0aXZlKCkpO1xuICAgIHRoaXMuZ2FyYmFnZS5kaXNwb3NlKCk7XG4gIH1cblxuICBnZXRBY3RpdmVBY3Rpdml0eVJlZigpOiBBY3Rpdml0eVJlZjxhbnksIGFueSwgYW55PiB7XG4gICAgaWYgKCF0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKFwibm8gYWN0aXZpdHkgaW4gcHJvZ3Jlc3NcIik7XG4gICAgfVxuICAgIHJldHVybiBmaW5kTGFzdCh0aGlzLmFjdGl2aXR5UmVmcywgdGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIHRoZSBjdXJyZW50IGFjdGl2aXR5IGFuZCByZXR1cm5zIHRydWUgdGhlIGNvbnRleHQgaXMgbm8gbG9uZ2VyIGFjdGl2ZSwgZmFsc2UgaWZcbiAgICogdGhlcmUgaXMgc3RpbGwgYW5vdGhlciBhY3Rpdml0eSBydW5uaW5nLlxuICAgKi9cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYWN0aXZpdHkgPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5UmVmKCk7XG4gICAgYWN0aXZpdHkuY2FuY2VsKCk7XG4gICAgaWYgKHRoaXMuaXNDbGVhbmluZ1VwKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLndhaXRGb3JJbnRlcmFjdGlvbkNvbnRleHRDbGVhbnVwVG9GaW5pc2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICF0aGlzLmlzQWN0aXZlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETzogdGhpcyBoYW5kbGluZyBvZiBtdWx0aXBsZSBuZXN0ZWQgYWN0aXZpdGllcyBpcyBvbmx5IHVzZWQgYnkgdGhlIGFjdGl2aXR5IGNvbXBvbmVudCBhbmQgaXMgbm90IGEgZ2VuZXJhbCBjYXNlLlxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlQW5kTGF1bmNoQWN0aXZpdHk8RDEsIFIxLCBFMT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQxLCBSMSwgRTE+PiwgZGF0YTogRDEsIGRpc2FibGVDbG9zZTogYm9vbGVhbik6IFByb21pc2U8UjE+IHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0luaXRpYWxpc2VkKCkpOyAvLyBtYWtlIHN1cmUgd2UndmUgYmVlbiBpbml0aWFsaXNlZFxuICAgIGNvbnN0IGFjdGl2aXR5UmVmID0gbmV3IEFjdGl2aXR5UmVmPEQxLCBSMSwgRTE+KGFjdGl2aXR5VHlwZSwgZGF0YSwgKCkgPT4ge1xuICAgICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKSA+IDA7XG4gICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyVGFiU3luY2hyb25pc2F0aW9uKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbmlzaEFuZFN0YXJ0Q2xlYW51cCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubGF1bmNoQWN0aXZpdHkoYWN0aXZpdHlSZWYpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBhY3Rpdml0eVJlZi5hY3Rpdml0eVJlc3VsdDtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gY29uc29sZS5sb2coXCJjbG9zaW5nIGFjdGl2aXR5XCIsIGFjdGl2aXR5VHlwZS5uYW1lLCB0aGlzLmFjdGl2aXR5UmVmcylcbiAgICAgIGlmICghdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICAgIC8vIHdhaXQgdW50aWwgdGhlIGFjdGl2aXR5IHJvdXRlIHN5bmNpbmcgaGFzIGZpbmlzaGVkXG4gICAgICAgIGF3YWl0IHRoaXMucGxhY2VSb3V0ZXIud2FpdEFjdGl2aXRpZXNTeW5jaHJvbmlzZWQoKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJhY3Rpdml0eSBzeW5jaW5nIGZpbmlzaGVkXCIpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVBY3Rpdml0eUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlSZWZzLmZpbHRlcihyZWYgPT4gIXJlZi5pc0NvbXBsZXRlKCkpLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcmFjdGlvbiBjb250ZXh0IGhhcyBmaW5pc2hlZCBhbiBpcyBpbiB0aGUgcHJvY2VzcyBvZiB3YWl0aW5nXG4gICAqIGZvciBhbGwgdGhlIGluZnJhc3RydWN0dXJlIChpbmNsdWRpbmcgcm91dGUgdXBkYXRlcykgdG8gYmUgY29tcGxldGVkLlxuICAgKi9cbiAgaXNDbGVhbmluZ1VwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX2RlZmVycmVkQ2xlYW5VcDtcbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JJbnRlcmFjdGlvbkNvbnRleHRDbGVhbnVwVG9GaW5pc2goKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVmZXJyZWRDbGVhblVwID9cbiAgICAgIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA6XG4gICAgICB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5pc2hBbmRTdGFydENsZWFudXAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kZWZlcnJlZENsZWFuVXApIHtcbiAgICAgIC8vIEltcG9ydGFudDpcbiAgICAgIC8vIENsZWFyIG91ciB0YWJzIHNvIHRoZSBuZXh0IGFjdGl2aXR5IHRyaWdnZXJzIGEgdGFiIGNoYW5nZS5cbiAgICAgIC8vIFdpdGhvdXQgdGhpcyBvdXIgYW5pbWF0aW9uIGRvbmUgd2Fzbid0IGNhbGxlZCB3aGVuIGEgc2luZ2xlXG4gICAgICAvLyBuZXcgYWN0aXZpdHkgZm9sbG93ZWQgYSBzaW5nbGUgdGFiIGFjdGl2aXR5IChzaW5jZSB3ZSdyZSB0cmFja2luZ1xuICAgICAgLy8gYnkgYWN0aXZpdHkgaW5kZXgpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpdml0eVJlZnMgPSBbXTsgLy8gd2UgaGF2ZSB0byBkbyBpdCBhZnRlciB0aGUgYW5pbWF0aW9uIHRpbWVvdXQgb3IgdGhlIGFjdGl2aXR5IGRpc2FwcGVhcnMgYmVmb3JlIHRoZSBhbmltYXRpbiBmaW5zaWhlc1xuICAgICAgfSwgdGhpcy5nZXRUYWJBbmltYXRpb25EdXJhdGlvbkluTWlsbGlzKCkpO1xuICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlQXBpLm5vdGlmeUZpbmlzaGVkKHRoaXMpO1xuICAgICAgdGhpcy5fZGVmZXJyZWRDbGVhblVwID0gcHJvbWlzZVxuICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGVmZXJyZWRDbGVhblVwID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbi8vIEBUcmFjZSgpXG4gIGxhdW5jaEFjdGl2aXR5PEQxLCBSMSwgRTE+KGFjdGl2aXR5UmVmOiBBY3Rpdml0eVJlZjxEMSwgUjEsIEUxPikge1xuICAgIC8vIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFjdGl2aXR5IGxldCB0aGUgaW50ZXJhY3Rpb24gc2VydmljZSBrbm93LlxuICAgIGNvbnN0IGNsZWFuZWRUYWJzID0gdGhpcy5hY3Rpdml0eVJlZnMuZmlsdGVyKHRhYiA9PiAhdGFiLmlzQ29tcGxldGUoKSk7XG4gICAgdGhpcy5hY3Rpdml0eVJlZnMgPSBjbGVhbmVkVGFicy5jb25jYXQoYWN0aXZpdHlSZWYpO1xuICAgIGNvbnN0IGZpcnN0VGltZSA9IHRoaXMuYWN0aXZpdHlSZWZzLmxlbmd0aCA9PT0gMTtcbiAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZUFwaS5ub3RpZnlBY3RpdmUodGhpcyk7XG4gICAgfVxuICAgIHRoaXMuc3luY2hyb25pc2VTZWxlY3RlZFRhYkluZGV4KCk7XG4gIH1cblxuICBhY3Rpdml0eUluZGV4KGluZGV4OiBudW1iZXIsIGFjdGl2aXR5UmVmOiBBY3Rpdml0eVJlZjxhbnksIGFueSwgYW55Pikge1xuICAgIHJldHVybiBpbmRleDtcbiAgfTtcblxuICAvKipcbiAgICogU3luY2hyb25pc2VzIHRoZSBzZWxlY3RlZCB0YWIgaW5kZXguXG4gICAqL1xuICBwcml2YXRlIHN5bmNocm9uaXNlU2VsZWN0ZWRUYWJJbmRleCgpOiB2b2lkIHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0FjdGl2ZSgpKTtcbiAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gICAgY29uc3QgbmV3SW5kZXggPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKSAtIDE7XG4gICAgY29uc3QgYW5pbWF0ZSA9IHRoaXMuYWN0aXZpdHlSZWZzLmxlbmd0aCA+IDE7XG4gICAgaWYgKHByZXZpb3VzSW5kZXggIT09IG5ld0luZGV4KSB7XG4gICAgICB0aGlzLl9hbmltYXRpbmckLnZhbHVlID0gYW5pbWF0ZTtcbiAgICAgIGNvbnN0IGFjdGl2aXR5UmVmID0gdGhpcy5hY3Rpdml0eVJlZnNbbmV3SW5kZXhdO1xuICAgICAgYWN0aXZpdHlSZWYuc2V0Rm9jdXNlZChmYWxzZSk7XG4gICAgICB0aGlzLmJ1c3kuc2V0RGVsZWdhdGUoYWN0aXZpdHlSZWYuYWN0aXZpdHlCdXN5KTtcbiAgICAgIHRoaXMudGFicy5zZWxlY3RlZEluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAvLyBpZiAodGhpcy5yZWFkeSQudmFsdWUpIHtcbiAgICAgIC8vICAgLy8gTm90ZTogV2UncmUgbm90IHVzaW5nIHRoZSBhbmltYXRpb24gZG9uZSBldmVudCBhcyBpdCdzIGZpcmluZyBhbG1vc3QgaW1tZWFkaWF0ZWx5LlxuICAgICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZmluYWxpc2VBY3Rpdml0eVN0YXRlcygpLCBhbmltYXRlID8gdGhpcy5nZXRUYWJBbmltYXRpb25EdXJhdGlvbkluTWlsbGlzKCkgOiAwKTtcbiAgICAgIC8vIH1cbiAgICB9XG4gIH1cblxuICBmaW5hbGlzZUFjdGl2aXR5U3RhdGVzKCkge1xuICAgIHRoaXMuX2FuaW1hdGluZyQudmFsdWUgPSBmYWxzZTtcbiAgICB0aGlzLmFjdGl2aXR5UmVmcyA9IHRoaXMuYWN0aXZpdHlSZWZzLmZpbHRlcih0YWIgPT4gIXRhYi5pc0NvbXBsZXRlKCkpO1xuICAgIHRoaXMuYWN0aXZpdHlSZWZzLmZvckVhY2goKHJlZiwgaW5kZXgpID0+IHtcbiAgICAgIHJlZi5zZXRGb2N1c2VkKGluZGV4ID09PSB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdGVkT3V0bGV0KCkge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5T3V0bGV0cy50b0FycmF5KClbdGhpcy50YWJzLnNlbGVjdGVkSW5kZXhdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRhYkFuaW1hdGlvbkR1cmF0aW9uKCk6IHN0cmluZyB7XG4gICAgLy8gY29uc3QgcyA9IHRoaXMuX3N0YXJ0ZWQkLnZhbHVlID8gdGhpcy5hbmltYXRpb25EdXJhdGlvbiA6IFwiMFwiO1xuICAgIC8vIHJldHVybiBzXG4gICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uRHVyYXRpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb25Jbk1pbGxpcygpOiBudW1iZXIge1xuICAgIGNvbnN0IG1hdGNoID0gdGhpcy5hbmltYXRpb25EdXJhdGlvbi5tYXRjaCgvKFxcZCspKC4qKS8pO1xuICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHBhcnNlRmxvYXQobWF0Y2hbMV0pO1xuICAgIHN3aXRjaCAobWF0Y2hbMl0udHJpbSgpKSB7XG4gICAgICBjYXNlIFwibXNcIjpcbiAgICAgICAgcmV0dXJuIG51bWVyaWNWYWx1ZTtcbiAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgIHJldHVybiAxMDAwICogbnVtZXJpY1ZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYHVuc3VwcG9ydGVkIGR1cmF0aW9uIHN0cmluZzogJHt0aGlzLnRhYnMuYW5pbWF0aW9uRHVyYXRpb259YCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXRTZWxlY3RlZFRhYkluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgdHJpZ2dlclRhYlN5bmNocm9uaXNhdGlvbigpIHtcbiAgICBpZiAodGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNTZWxlY3RlZFRhYlRpbWVvdXQgPSBudWxsO1xuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICB0aGlzLnN5bmNocm9uaXNlU2VsZWN0ZWRUYWJJbmRleCgpO1xuICAgICAgfVxuICAgIH0sIDc1KTtcbiAgfVxuXG4gIG9uQW5pbWF0aW9uRG9uZSgpIHtcbiAgICB0aGlzLl9zdGFydGVkJC52YWx1ZSA9IHRydWVcbiAgICB0aGlzLmZpbmFsaXNlQWN0aXZpdHlTdGF0ZXMoKVxuICB9XG59XG4iLCI8bWF0LXRhYi1ncm91cCAjdGFicyBuby10YWItaGVhZGVyXG4gICAgICAgICAgICAgICBbZHluYW1pY0hlaWdodF09XCJkeW5hbWljSGVpZ2h0XCJcbiAgICAgICAgICAgICAgIFtjbGFzcy5mdWxsLWhlaWdodC10YWJzXT1cIiFkeW5hbWljSGVpZ2h0XCJcbiAgICAgICAgICAgICAgIFthbmltYXRpb25EdXJhdGlvbl09XCJnZXRUYWJBbmltYXRpb25EdXJhdGlvbigpXCJcbiAgICAgICAgICAgICAgIChhbmltYXRpb25Eb25lKT1cIm9uQW5pbWF0aW9uRG9uZSgpXCJcbj5cbiAgPG1hdC10YWIgKm5nRm9yPVwibGV0IGFjdGl2aXR5UmVmIG9mIGFjdGl2aXR5UmVmczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogYWN0aXZpdHlJbmRleFwiPlxuICAgIDxhdXAtYnVzeS1vdmVybGF5IFtidXN5JF09XCJidXN5XCIgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlPlxuICAgICAgPCEtLVxuICAgICAgV2UgaGF2ZSBpc3N1ZXMgd2hlcmUgYW5ndWxhciBpcyB0cmlnZ2VyaW5nIGEgbGVhdmUgYW5pbWF0aW9uIHdoZW4gYW5cbiAgICAgIG5ldyBhY3Rpdml0eSBpcyBzdGFydGVkLCBidXQgaXMgbm90IHJ1bm5pbmcgdGhlIGVudGVyIGFuaW1hdGlvblxuICAgICAgd2hlbiBpdCBpcyBzY3JvbGxlZCBiYWNrIGludG8gdmlldy4gIFNvIHdlIHRyYWNrIHRoZSB0YWIgY2hhbmdlcyBhbmRcbiAgICAgIGRpc2FibGUgYWxsIGFuaW1hdGlvbnMgaW5zaWRlIHRoZSB0YWIgd2hpbGUgd2UncmUgYW5pbWF0aW5nLlxuICAgICAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktb3V0bGV0LXdyYXBwZXJcIiBbQC5kaXNhYmxlZF09XCIhYWN0aXZpdHlSZWYuZm9jdXNlZFwiPlxuICAgICAgICA8YXVwLWFjdGl2aXR5LW91dGxldCBbbmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0XT1cInRoaXNcIiBbYWN0aXZpdHlSZWZdPVwiYWN0aXZpdHlSZWZcIj48L2F1cC1hY3Rpdml0eS1vdXRsZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2F1cC1idXN5LW92ZXJsYXk+XG4gIDwvbWF0LXRhYj5cbjwvbWF0LXRhYi1ncm91cD5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Component, HostBinding, Input } from '@angular/core';
2
- import { isNil } from 'lodash';
2
+ import { isNil } from 'lodash-es';
3
3
  import { DisposableComponent } from '../../../components/disposable-component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class ActivityTitleComponent extends DisposableComponent {
@@ -22,11 +22,11 @@ export class ActivityTitleComponent extends DisposableComponent {
22
22
  return this._color;
23
23
  }
24
24
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityTitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: { hasTransparentBackground: "hasTransparentBackground", color: "color" }, host: { properties: { "class.transparent-background": "this.hasTransparentBackground", "attr.color": "this.color" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: { hasTransparentBackground: "hasTransparentBackground", color: "color" }, host: { properties: { "class.transparent-background": "this.hasTransparentBackground", "attr.color": "this.color" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<span style=\"flex:1\"></span>\n<ng-content select=\"[slot='title-end']\"></ng-content>\n", styles: [":host{display:flex;flex-direction:row;align-items:center}\n"] });
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityTitleComponent, decorators: [{
28
28
  type: Component,
29
- args: [{ selector: 'aup-activity-title', template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
29
+ args: [{ selector: 'aup-activity-title', template: "<ng-content></ng-content>\n<span style=\"flex:1\"></span>\n<ng-content select=\"[slot='title-end']\"></ng-content>\n", styles: [":host{display:flex;flex-direction:row;align-items:center}\n"] }]
30
30
  }], propDecorators: { hasTransparentBackground: [{
31
31
  type: Input
32
32
  }, {
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
38
38
  type: HostBinding,
39
39
  args: ['attr.color']
40
40
  }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktdGl0bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hY3Rpdml0eS10aXRsZS9hY3Rpdml0eS10aXRsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LXRpdGxlL2FjdGl2aXR5LXRpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUc1RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsbUJBQW1CO0lBRXJELE1BQU0sQ0FBZTtJQUNyQiw2QkFBNkIsQ0FBVTtJQUUvQzs7O09BR0c7SUFDSCxJQUVJLHdCQUF3QixDQUFDLEtBQWM7UUFDekMsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEtBQUssQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSx3QkFBd0I7UUFDMUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDO0lBQ3ZHLENBQUM7SUFHRCxJQUVJLEtBQUssQ0FBQyxLQUFtQjtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7dUdBNUJVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLDBSQ1huQyw2QkFDQTs7MkZEVWEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFlMUIsd0JBQXdCO3NCQUYzQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLDhCQUE4QjtnQkFZdkMsS0FBSztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuaW1wb3J0IHtpc05pbH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1hY3Rpdml0eS10aXRsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpdml0eS10aXRsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGl2aXR5LXRpdGxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlUaXRsZUNvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQge1xuXG4gIHByaXZhdGUgX2NvbG9yOiBUaGVtZVBhbGV0dGU7XG4gIHByaXZhdGUgX2hhc1VzZXJUcmFuc3BhcmVudEJhY2tncm91bmQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgbGF5b3V0IHRvIGVuc3VyZSB0aGUgdGl0bGUgYW5kIGJvZHkgYXJlIGNsZWFubHkgc2VwYXJhdGVkIHdpdGggZXZlblxuICAgKiBnYXBzIGZvciB0ZWggY2FzZSB3aGVyZSB0aGUgdGl0bGUgY29tcG9uZW50IGhhcyBhIHBhaW50ZWQgYmFja2dyb3VuZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MudHJhbnNwYXJlbnQtYmFja2dyb3VuZCcpXG4gIHNldCBoYXNUcmFuc3BhcmVudEJhY2tncm91bmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oYXNVc2VyVHJhbnNwYXJlbnRCYWNrZ3JvdW5kID0gdmFsdWU7XG4gIH1cblxuICBnZXQgaGFzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc05pbCh0aGlzLl9oYXNVc2VyVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKSA/ICF0aGlzLl9jb2xvciA6IHRoaXMuX2hhc1VzZXJUcmFuc3BhcmVudEJhY2tncm91bmQ7XG4gIH1cblxuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5jb2xvcicpXG4gIHNldCBjb2xvcihjb2xvcjogVGhlbWVQYWxldHRlKSB7XG4gICAgdGhpcy5fY29sb3IgPSBjb2xvcjtcbiAgfVxuXG4gIGdldCBjb2xvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktdGl0bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hY3Rpdml0eS10aXRsZS9hY3Rpdml0eS10aXRsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LXRpdGxlL2FjdGl2aXR5LXRpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUc1RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsbUJBQW1CO0lBRXJELE1BQU0sQ0FBZTtJQUNyQiw2QkFBNkIsQ0FBVTtJQUUvQzs7O09BR0c7SUFDSCxJQUVJLHdCQUF3QixDQUFDLEtBQWM7UUFDekMsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEtBQUssQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSx3QkFBd0I7UUFDMUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDO0lBQ3ZHLENBQUM7SUFHRCxJQUVJLEtBQUssQ0FBQyxLQUFtQjtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7dUdBNUJVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLDBSQ1huQyxzSEFHQTs7MkZEUWEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFlMUIsd0JBQXdCO3NCQUYzQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLDhCQUE4QjtnQkFZdkMsS0FBSztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuaW1wb3J0IHtpc05pbH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1hY3Rpdml0eS10aXRsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpdml0eS10aXRsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGl2aXR5LXRpdGxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlUaXRsZUNvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQge1xuXG4gIHByaXZhdGUgX2NvbG9yOiBUaGVtZVBhbGV0dGU7XG4gIHByaXZhdGUgX2hhc1VzZXJUcmFuc3BhcmVudEJhY2tncm91bmQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkanVzdHMgbGF5b3V0IHRvIGVuc3VyZSB0aGUgdGl0bGUgYW5kIGJvZHkgYXJlIGNsZWFubHkgc2VwYXJhdGVkIHdpdGggZXZlblxuICAgKiBnYXBzIGZvciB0ZWggY2FzZSB3aGVyZSB0aGUgdGl0bGUgY29tcG9uZW50IGhhcyBhIHBhaW50ZWQgYmFja2dyb3VuZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MudHJhbnNwYXJlbnQtYmFja2dyb3VuZCcpXG4gIHNldCBoYXNUcmFuc3BhcmVudEJhY2tncm91bmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oYXNVc2VyVHJhbnNwYXJlbnRCYWNrZ3JvdW5kID0gdmFsdWU7XG4gIH1cblxuICBnZXQgaGFzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc05pbCh0aGlzLl9oYXNVc2VyVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKSA/ICF0aGlzLl9jb2xvciA6IHRoaXMuX2hhc1VzZXJUcmFuc3BhcmVudEJhY2tncm91bmQ7XG4gIH1cblxuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5jb2xvcicpXG4gIHNldCBjb2xvcihjb2xvcjogVGhlbWVQYWxldHRlKSB7XG4gICAgdGhpcy5fY29sb3IgPSBjb2xvcjtcbiAgfVxuXG4gIGdldCBjb2xvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPHNwYW4gc3R5bGU9XCJmbGV4OjFcIj48L3NwYW4+XG48bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD0ndGl0bGUtZW5kJ11cIj48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -13,7 +13,7 @@ export class InlineActivityTriggerComponent extends AbstractActivityTriggerCompo
13
13
  super();
14
14
  }
15
15
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InlineActivityTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InlineActivityTriggerComponent, selector: "aup-inline-activity-trigger", viewQueries: [{ propertyName: "_interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context #interactionContext [animateFirstActivity]=\"false\">\n <aup-command [command]=\"startActivityCommand\" [face$]=\"face$\" [alignFace]=\"alignFace\"></aup-command>\n</aup-in-place-interaction-context>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "component", type: i1.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: i2.InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"] }] });
16
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InlineActivityTriggerComponent, selector: "aup-inline-activity-trigger", viewQueries: [{ propertyName: "_interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context #interactionContext [animateFirstActivity]=\"false\">\n <aup-command [command]=\"startActivityCommand\" [face$]=\"face$\" [alignFace]=\"alignFace\"></aup-command>\n</aup-in-place-interaction-context>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "component", type: i1.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: i2.InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"], outputs: ["started", "finished"] }] });
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InlineActivityTriggerComponent, decorators: [{
19
19
  type: Component,
@@ -54,7 +54,7 @@ export class AddCardActivityComponent extends AbstractActivityTriggerComponent {
54
54
  return this.interactionStyle === 'inline';
55
55
  }
56
56
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AddCardActivityComponent, deps: [{ token: i1.InteractionService }], target: i0.ɵɵFactoryTarget.Component });
57
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AddCardActivityComponent, selector: "aup-add-card-activity", inputs: { interactionStyle: "interactionStyle", renderAs: "renderAs" }, host: { properties: { "class": "this.activityTypeClass", "class.not-card": "this.notCard" } }, viewQueries: [{ propertyName: "inlineInteractionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\" [pectinCommand]=\"startActivityCommand\">\n <aup-command *ngIf=\"isRenderAsButton()\" [command]=\"startActivityCommand\" [face$]=\"face$\" [alignFace]=\"alignFace\"></aup-command>\n <section *ngIf=\"isRenderAsCard()\" class=\"face-wrapper\">\n <aup-command-face class=\"mat-button\" [faces]=\"faceList.value\"></aup-command-face>\n </section>\n</aup-in-place-interaction-context>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;background-color:#fff}:host[interactionStyle=inline][renderas=card]:not(.active){transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=inline][renderas=card]:not(.active):hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=inline][renderas=card]:not(.active):hover{border-color:transparent;background-color:#fff;color:#0000008a}:host[interactionStyle=modal][renderas=card]{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=modal][renderas=card]:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=modal][renderas=card]:hover{border-color:transparent;background-color:#fff;color:#0000008a}:host-context(aup-card-container)[renderas=button]{align-self:start}section.face-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}aup-in-place-interaction-context{flex:1}aup-in-place-interaction-context.active{border:3px solid #6273c7;border-radius:4px;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: i4.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: i5.CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }, { kind: "component", type: i6.InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"] }] });
57
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AddCardActivityComponent, selector: "aup-add-card-activity", inputs: { interactionStyle: "interactionStyle", renderAs: "renderAs" }, host: { properties: { "class": "this.activityTypeClass", "class.not-card": "this.notCard" } }, viewQueries: [{ propertyName: "inlineInteractionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\" [pectinCommand]=\"startActivityCommand\">\n <aup-command *ngIf=\"isRenderAsButton()\" [command]=\"startActivityCommand\" [face$]=\"face$\" [alignFace]=\"alignFace\"></aup-command>\n <section *ngIf=\"isRenderAsCard()\" class=\"face-wrapper\">\n <aup-command-face class=\"mat-button\" [faces]=\"faceList.value\"></aup-command-face>\n </section>\n</aup-in-place-interaction-context>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;background-color:#fff}:host[interactionStyle=inline][renderas=card]:not(.active){transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=inline][renderas=card]:not(.active):hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=inline][renderas=card]:not(.active):hover{border-color:transparent;background-color:#fff;color:#0000008a}:host[interactionStyle=modal][renderas=card]{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=modal][renderas=card]:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=modal][renderas=card]:hover{border-color:transparent;background-color:#fff;color:#0000008a}:host-context(aup-card-container)[renderas=button]{align-self:start}section.face-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}aup-in-place-interaction-context{flex:1}aup-in-place-interaction-context.active{border:3px solid #6273c7;border-radius:4px;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: i4.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: i5.CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }, { kind: "component", type: i6.InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"], outputs: ["started", "finished"] }] });
58
58
  }
59
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AddCardActivityComponent, decorators: [{
60
60
  type: Component,
@@ -47,7 +47,7 @@ export class AddItemInteractionContextComponent extends DisposableComponent {
47
47
  return this.interactionContext.startActivity(activityType, data);
48
48
  }
49
49
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AddItemInteractionContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AddItemInteractionContextComponent, selector: "aup-add-item-interaction-context", inputs: { label: "label", icon: "icon", activityClass: "activityClass", activityData: "activityData", addCommand: "addCommand" }, host: { properties: { "class.interaction-active": "this.active", "tabindex": "this.tabindex" } }, viewQueries: [{ propertyName: "interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\">\n <a part=\"link\" class=\"link\" [pectinCommand]=\"clickCommand\"><aup-icon [icon]=\"icon\"></aup-icon> {{label}}</a>\n</aup-in-place-interaction-context>\n", styles: [":host{--def-link-color: var(--link-color, currentColor);--def-link-color-hover: var(--link-color-hover, currentColor);--def-link-background: var(--link-background, transparent);--def-link-background-hover: var(--link-background-hover, rgba(0, 0, 0, .05));--def-link-border-radius: var(--link-border-radius, 4px);--def-link-padding: var(--link-padding, calc(var(--aup-default-padding) / 2));display:flex;flex-direction:column;border-radius:var(--def-link-border-radius);box-sizing:border-box;outline:none}:host:hover a.link{color:var(--def-link-color-hover);background-color:var(--def-link-background-hover)}aup-in-place-interaction-context{border-radius:var(--def-link-border-radius)}a.link{display:flex;flex-direction:row;align-items:center;border-radius:var(--def-link-border-radius);color:var(--def-link-color);background:var(--def-link-background);padding:var(--def-link-padding);cursor:pointer;text-decoration:none}a.link mat-icon{margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: i2.IconComponent, selector: "aup-icon", inputs: ["icon"] }, { kind: "component", type: i3.InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"] }] });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AddItemInteractionContextComponent, selector: "aup-add-item-interaction-context", inputs: { label: "label", icon: "icon", activityClass: "activityClass", activityData: "activityData", addCommand: "addCommand" }, host: { properties: { "class.interaction-active": "this.active", "tabindex": "this.tabindex" } }, viewQueries: [{ propertyName: "interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\">\n <a part=\"link\" class=\"link\" [pectinCommand]=\"clickCommand\"><aup-icon [icon]=\"icon\"></aup-icon> {{label}}</a>\n</aup-in-place-interaction-context>\n", styles: [":host{--def-link-color: var(--link-color, currentColor);--def-link-color-hover: var(--link-color-hover, currentColor);--def-link-background: var(--link-background, transparent);--def-link-background-hover: var(--link-background-hover, rgba(0, 0, 0, .05));--def-link-border-radius: var(--link-border-radius, 4px);--def-link-padding: var(--link-padding, calc(var(--aup-default-padding) / 2));display:flex;flex-direction:column;border-radius:var(--def-link-border-radius);box-sizing:border-box;outline:none}:host:hover a.link{color:var(--def-link-color-hover);background-color:var(--def-link-background-hover)}aup-in-place-interaction-context{border-radius:var(--def-link-border-radius)}a.link{display:flex;flex-direction:row;align-items:center;border-radius:var(--def-link-border-radius);color:var(--def-link-color);background:var(--def-link-background);padding:var(--def-link-padding);cursor:pointer;text-decoration:none}a.link mat-icon{margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: i2.IconComponent, selector: "aup-icon", inputs: ["icon"] }, { kind: "component", type: i3.InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"], outputs: ["started", "finished"] }] });
51
51
  }
52
52
  __decorate([
53
53
  Proxify(),
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9lZGl0b3JzL2VkaXQtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFZGl0Q29udGV4dDxUPiB7XG4gIGluamVjdEVycm9yKGVycm9yOiBzdHJpbmcpO1xuICAvLyByZXBsYWNlVmFsdWUodmFsdWU6VCkgLy8gVE9ETzogaW1wbGVtZW50Li5cbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9lZGl0b3JzL2VkaXQtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFZGl0Q29udGV4dDxUPiB7XG4gIGluamVjdEVycm9yKGVycm9yOiBzdHJpbmcpOnZvaWQ7XG4gIC8vIHJlcGxhY2VWYWx1ZSh2YWx1ZTpUKSAvLyBUT0RPOiBpbXBsZW1lbnQuLlxufVxuIl19
@@ -2,7 +2,7 @@ import { __decorate, __metadata } from "tslib";
2
2
  import { Component, HostBinding, Input, ViewChild } from '@angular/core';
3
3
  import { Command, DelegatingValueModel, Dsl, Proxify, proxify, StoreInValueModel, ValueModel } from '@coolon/pectin';
4
4
  import { lang } from '@coolon/typescript-utilities';
5
- import { isEmpty } from 'lodash';
5
+ import { isEmpty } from 'lodash-es';
6
6
  import { DisposableComponent } from '../../../../components/disposable-component';
7
7
  import { InteractionService } from '../../../services/interaction.service';
8
8
  import { InPlaceInteractionContextComponent } from '../../inplace-interaction-context/in-place-interaction-context.component';
@@ -140,7 +140,7 @@ export class InlineStringEditorComponent extends DisposableComponent {
140
140
  return !this.editingEnabled$.value;
141
141
  }
142
142
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InlineStringEditorComponent, deps: [{ token: i1.InteractionService }], target: i0.ɵɵFactoryTarget.Component });
143
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InlineStringEditorComponent, selector: "aup-inline-string-editor", inputs: { editorModel: "editorModel", facesModel: "facesModel", faces: "faces", label: "label", placeHolder: "placeHolder", placeHolder$: "placeHolder$" }, host: { properties: { "class.disabled": "this.isDisabled" } }, viewQueries: [{ propertyName: "interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container\" *ngIf=\"!editorModel.isEditing()\">\n <mat-form-field floatLabel=\"always\" (click)=\"startEdit()\"\n [class.editable]=\"editingEnabled$.value\" [class.empty]=\"isEmpty()\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeHolder}}\"\n [ngModel]=\"editorModel.valueModel.value\"\n [disabled]=\"true\"\n >\n <!-- <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>-->\n <!-- <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>-->\n <!-- <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>-->\n </mat-form-field>\n <aup-command *ngIf=\"editCommand.enabled$.value\" [command]=\"editCommand\" [face$]=\"editFaceModel\"></aup-command>\n</div>\n<aup-in-place-interaction-context [animateFirstActivity]=\"false\"></aup-in-place-interaction-context>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"] }] });
143
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InlineStringEditorComponent, selector: "aup-inline-string-editor", inputs: { editorModel: "editorModel", facesModel: "facesModel", faces: "faces", label: "label", placeHolder: "placeHolder", placeHolder$: "placeHolder$" }, host: { properties: { "class.disabled": "this.isDisabled" } }, viewQueries: [{ propertyName: "interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container\" *ngIf=\"!editorModel.isEditing()\">\n <mat-form-field floatLabel=\"always\" (click)=\"startEdit()\"\n [class.editable]=\"editingEnabled$.value\" [class.empty]=\"isEmpty()\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeHolder}}\"\n [ngModel]=\"editorModel.valueModel.value\"\n [disabled]=\"true\"\n >\n <!-- <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>-->\n <!-- <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>-->\n <!-- <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>-->\n </mat-form-field>\n <aup-command *ngIf=\"editCommand.enabled$.value\" [command]=\"editCommand\" [face$]=\"editFaceModel\"></aup-command>\n</div>\n<aup-in-place-interaction-context [animateFirstActivity]=\"false\"></aup-in-place-interaction-context>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"], outputs: ["started", "finished"] }] });
144
144
  }
145
145
  __decorate([
146
146
  Proxify(),
@@ -197,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
197
197
  }
198
198
  };
199
199
  })(InlineStringEditorComponent || (InlineStringEditorComponent = {}));
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLXN0cmluZy1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9lZGl0b3JzL2lubGluZS1zdHJpbmctZWRpdG9yL2lubGluZS1zdHJpbmctZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvZWRpdG9ycy9pbmxpbmUtc3RyaW5nLWVkaXRvci9pbmxpbmUtc3RyaW5nLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBRUwsT0FBTyxFQUNQLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsT0FBTyxFQUNQLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRWxELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFL0IsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUNMLGtDQUFrQyxFQUNuQyxNQUFNLDBFQUEwRSxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixP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VUFBVTtRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUE7SUFDcEMsQ0FBQzt1R0FqSVUsMkJBQTJCOzJGQUEzQiwyQkFBMkIsK1VBVzNCLGtDQUFrQyx1RUMzRC9DLG81QkFnQkE7O0FEbUNXO0lBREMsT0FBTyxFQUFFOzs4REFDdUM7QUFHakQ7SUFEQyxPQUFPLEVBQUU7OzZEQUMwRDtBQUdwRTtJQURDLGlCQUFpQixFQUFFOzt3REFDcUI7QUFTekM7SUFEQyxpQkFBaUIsRUFBRTs7OERBQ0E7QUFHcEI7SUFEQyxPQUFPLEVBQUU7OytEQUNpQzsyRkFyQnpDLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7eUdBTzNCLFdBQVc7c0JBRG5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFEbEIsS0FBSztnQkFJRyxLQUFLO3NCQURiLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLGtDQUFrQztnQkFJN0MsS0FBSztzQkFESixLQUFLO2dCQUlHLFdBQVc7c0JBRG5CLEtBQUs7Z0JBSUcsWUFBWTtzQkFEcEIsS0FBSztnQkEyR00sVUFBVTtzQkFEckIsV0FBVzt1QkFBQyxnQkFBZ0I7O0FBTy9CLFdBQWlCLDJCQUEyQjtJQVE3Qix5Q0FBYSxHQUFVO1FBQ2xDLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVO1NBQ3ZCO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVc7U0FDeEI7UUFDRCxNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVztTQUN4QjtLQUNGLENBQUM7QUFFSixDQUFDLEVBcEJnQiwyQkFBMkIsS0FBM0IsMkJBQTJCLFFBb0IzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBDb21tYW5kLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRHNsLFxuICBQcm94aWZ5LFxuICBwcm94aWZ5LFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7bGFuZ30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5cbmltcG9ydCB7aXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC1mYWNlJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQge0ludGVyYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICBJblBsYWNlSW50ZXJhY3Rpb25Db250ZXh0Q29tcG9uZW50XG59IGZyb20gJy4uLy4uL2lucGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC9pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQge0lucHV0QWN0aXZpdHl9IGZyb20gJy4uLy4uL2lucHV0LWFjdGl2aXRpZXMvaW5wdXQtYWN0aXZpdHknO1xuaW1wb3J0IHtTdHJpbmdJbnB1dEFjdGl2aXR5fSBmcm9tICcuLi8uLi9pbnB1dC1hY3Rpdml0aWVzL3N0cmluZy1pbnB1dC1hY3Rpdml0eSc7XG5pbXBvcnQge0lubGluZUVkaXRvck1vZGVsfSBmcm9tICcuL2lubGluZS1lZGl0b3ItbW9kZWwnO1xuXG4vKipcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzb3VyY2U6IFZhbHVlTW9kZWw8c3RyaW5nPiA9IC4uLjtcbiAqIGNvbnN0IG1vZGVsID0gSW5saW5lRWRpdG9yTW9kZWwuY3JlYXRlKHNvdXJjZSwge1xuICogICBzYXZlKHVwZGF0ZWQ6c3RyaW5nLCBjb250ZXh0OiBFZGl0Q29udGV4dCkgPT4ge1xuICogICAgICB0cnkge1xuICogICAgICAgIHRyeSBhbmQgc2F2ZSB0aGUgdGhpbmcuLi5cbiAqICAgICAgfSBjYXRjaChlcnJvcikge1xuICogICAgICAgIGNvbnRleHQuaW5qZWN0RXJyb3IoZXJyb3IpXG4gKiAgICAgIH1cbiAqIH0pLnZhbGlkYXRlVXNpbmcoVmFsaWRhdG9yLnByZXNlbnQoXCJXZSdsbCBuZWVkIGEgdmFsdWVcIik7XG4gKlxuICogIyBpbiB0aGUgdmlld1xuICogPGF1cC1pbmxpbmUtc3RyaW5nLWVkaXRvclxuICogICAgICAgbGFiZWw9XCJNeSBmaWVsZFwiXG4gKiAgICAgICBwbGFjZUhvbGRlcj1cIkknbSByZWFkeSBmb3IgYSBzdHJpbmcuLi5cIlxuICogICAgICAgW2VkaXRvck1vZGVsXT1cIm1vZGVsXCI+PC9hdXAtaW5saW5lLXN0cmluZy1lZGl0b3I+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1pbmxpbmUtc3RyaW5nLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmxpbmUtc3RyaW5nLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10gLy8gU2VlIGFzc2V0cy9pbnRlcmFjdGlvbi9lZGl0b3IvaW5saW5lLXN0cmluZy1lZGl0b3Iuc2Nzc1xufSlcbmV4cG9ydCBjbGFzcyBJbmxpbmVTdHJpbmdFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGVkaXRvck1vZGVsID0gcHJveGlmeShJbmxpbmVFZGl0b3JNb2RlbDxzdHJpbmc+KTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGZhY2VzTW9kZWwgPSBwcm94aWZ5KFZhbHVlTW9kZWw8SW5saW5lU3RyaW5nRWRpdG9yQ29tcG9uZW50LkZhY2VzPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3IgZmFjZXM6IElubGluZVN0cmluZ0VkaXRvckNvbXBvbmVudC5GYWNlcztcblxuICBAVmlld0NoaWxkKEluUGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnQpXG4gIGludGVyYWN0aW9uQ29udGV4dDogSW5QbGFjZUludGVyYWN0aW9uQ29udGV4dENvbXBvbmVudDxhbnksIGFueSwgYW55PjtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIHBsYWNlSG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBwbGFjZUhvbGRlciQgPSBwcm94aWZ5KFZhbHVlTW9kZWw8c3RyaW5nPik7XG5cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICBlbXB0eSQ6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHJlYWRvbmx5IGVkaXRDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xuXG4gIGRpc3BsYXlWYWx1ZTogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG4gIHJlYWRvbmx5IGVkaXRGYWNlTW9kZWw6IFZhbHVlTW9kZWxDaGFpbjxDb21tYW5kRmFjZT47XG4gIHJlYWRvbmx5IHNhdmVGYWNlOiBWYWx1ZU1vZGVsQ2hhaW48Q29tbWFuZEZhY2U+O1xuICByZWFkb25seSBjYW5jZWxGYWNlOiBWYWx1ZU1vZGVsQ2hhaW48Q29tbWFuZEZhY2U+O1xuXG4gIHJlYWRvbmx5IGVkaXRpbmdFbmFibGVkJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpKTtcblxuICBjb25zdHJ1Y3RvcihpbnRlcmFjdGlvblNlcnZpY2U6IEludGVyYWN0aW9uU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiwgd2hlbiwgdmFsdWVPZiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIGNvbnN0IG1vZGFsSUMgPSBpbnRlcmFjdGlvblNlcnZpY2UuY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHREaXNwb3NlZFdpdGgodGhpcyk7XG5cbiAgICBjb25zdCByZXNvbHZlZEZhY2VzTW9kZWwgPSBjaGFpbih0aGlzLmZhY2VzTW9kZWwpLm1hcCh1c2VyRmFjZXMgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uSW5saW5lU3RyaW5nRWRpdG9yQ29tcG9uZW50LkRFRkFVTFRfRkFDRVMsIC8vIHRvZG86IHNob3VsZCByZWFsbHkgaW5qZWN0IGFwcCB3aWRlIGRlZmF1bHRzIGFzIHdlbGxcbiAgICAgICAgLi4udXNlckZhY2VzXG4gICAgICB9O1xuICAgIH0sIHsgYWxsb3dOaWw6IHRydWUgfSk7XG5cbiAgICB0aGlzLmVkaXRGYWNlTW9kZWwgPSByZXNvbHZlZEZhY2VzTW9kZWwucGx1Y2soJ2VkaXQnKTtcbiAgICB0aGlzLnNhdmVGYWNlID0gcmVzb2x2ZWRGYWNlc01vZGVsLnBsdWNrKCdzYXZlJyk7XG4gICAgdGhpcy5jYW5jZWxGYWNlID0gcmVzb2x2ZWRGYWNlc01vZGVsLnBsdWNrKCdjYW5jZWwnKTtcblxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuZWRpdENvbW1hbmQgPSBDb21tYW5kLmNyZWF0ZShhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLmVkaXRvck1vZGVsLmVkaXRpbmcudmFsdWUgPSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuc3RhcnRBY3Rpdml0eShTdHJpbmdJbnB1dEFjdGl2aXR5LCB0aGlzLmNyZWF0ZUlucHV0QWN0aXZpdHlEYXRhKCkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBkb24ndCBjYXJlIGlmIHRoZXkgY2FuY2VsbGVkLCBqdXN0IGhpZGluZyB0aGUgY29uc29sZSBlcnJvcnNcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuZWRpdG9yTW9kZWwuZWRpdGluZy52YWx1ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pLmVuYWJsZVdoaWxlKHRoaXMuZWRpdGluZ0VuYWJsZWQkKTtcblxuICAgIHRoaXMub25Jbml0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5lZGl0b3JNb2RlbCkge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnZWRpdG9yTW9kZWwgaXMgcmVxdWlyZWQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5lZGl0aW5nRW5hYmxlZCQuc2V0RGVsZWdhdGUodGhpcy5lZGl0b3JNb2RlbC5lZGl0aW5nRW5hYmxlZCk7XG5cbiAgICAgIHdoZW4odGhpcy5lZGl0b3JNb2RlbC5lZGl0aW5nKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHtcbiAgICAgICAgdGhpcy5lZGl0Q29tbWFuZC5leGVjdXRlKCk7XG4gICAgICB9LCB7IGFzTG9uZ0FzOiB0aGlzLmVkaXRDb21tYW5kLmVuYWJsZWQkIH0pO1xuXG4gICAgICB3aGVuKHRoaXMuZWRpdG9yTW9kZWwuZWRpdGluZykuYmVjb21lc0ZhbHNleSgoKSA9PiB0aGlzLmNhbmNlbEVkaXQoKSk7XG5cbiAgICAgIHRoaXMuZW1wdHkkID0gdmFsdWVPZi5hbnkoXG4gICAgICAgIGNoYWluLnN0cmluZ1ZhbHVlKHRoaXMuZWRpdG9yTW9kZWwudmFsdWVNb2RlbCkuaXNCbGFuaygpXG4gICAgICAgIC8vIGRldmljZURlc2NyaXB0aW9uLmlzTmlsKClcbiAgICAgICkuYXJlVHJ1dGh5KCk7XG5cbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gY2hhaW4odGhpcy5lZGl0b3JNb2RlbC52YWx1ZU1vZGVsKS5tYXAodiA9PiB7XG4gICAgICAgIHJldHVybiBpc0VtcHR5KHYpID8gdGhpcy5wbGFjZUhvbGRlciQudmFsdWUgOiB2O1xuICAgICAgfSwgeyBkZXBlbmRzT246IHRoaXMucGxhY2VIb2xkZXIkLCBhbGxvd05pbDogdHJ1ZSB9KTtcblxuICAgIH0pXG4gICAgdGhpcy5vbkRpc3Bvc2UoKCkgPT4gdGhpcy5jYW5jZWxFZGl0KCkpO1xuXG4gIH1cblxuXG4gIHByaXZhdGUgY3JlYXRlSW5wdXRBY3Rpdml0eURhdGEoKTogSW5wdXRBY3Rpdml0eS5EYXRhPHN0cmluZz4ge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiB7XG4gICAgICBpbml0aWFsVmFsdWU6IHNlbGYuZWRpdG9yTW9kZWwudmFsdWVNb2RlbC52YWx1ZSxcbiAgICAgIGNvbmZpcm1GYWNlOiBzZWxmLnNhdmVGYWNlLnZhbHVlLFxuICAgICAgY2FuY2VsRmFjZTogc2VsZi5jYW5jZWxGYWNlLnZhbHVlLFxuICAgICAgcGxhY2Vob2xkZXI6IHNlbGYucGxhY2VIb2xkZXIkLnZhbHVlLFxuICAgICAgbGFiZWw6IHNlbGYubGFiZWwsXG4gICAgICBsYXlvdXQ6IElucHV0QWN0aXZpdHkuTGF5b3V0LklOTElORSxcbiAgICAgIHZhbGlkYXRvcnM6IHNlbGYuZWRpdG9yTW9kZWwudmFsaWRhdG9ycy52YWx1ZSxcbiAgICAgIGFzeW5jIHNhdmUodmFsdWU6IHN0cmluZywgaW5wdXRDb250ZXh0OiBJbnB1dEFjdGl2aXR5LkNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgc2VsZi5lZGl0b3JNb2RlbC5zYXZlQ2FsbGJhY2sodmFsdWUsIGlucHV0Q29udGV4dCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGNhbmNlbEVkaXQoKSB7XG4gICAgaWYgKHRoaXMuaXNFZGl0aW5nKCkpIHtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRFZGl0KCkge1xuICAgIGlmICghdGhpcy5pc0VkaXRpbmcoKSAmJiB0aGlzLmVkaXRDb21tYW5kLmVuYWJsZWQkLnZhbHVlKSB7XG4gICAgICB0aGlzLmVkaXRDb21tYW5kLmV4ZWN1dGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzRWRpdGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKTtcbiAgfVxuXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW1wdHkkLnZhbHVlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZGlzYWJsZWRcIilcbiAgcHJpdmF0ZSBnZXQgaXNEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuZWRpdGluZ0VuYWJsZWQkLnZhbHVlXG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIElubGluZVN0cmluZ0VkaXRvckNvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBGYWNlcyB7XG4gICAgZWRpdD86IENvbW1hbmRGYWNlO1xuICAgIHNhdmU/OiBDb21tYW5kRmFjZTtcbiAgICBjYW5jZWw/OiBDb21tYW5kRmFjZTtcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBERUZBVUxUX0ZBQ0VTOiBGYWNlcyA9IHtcbiAgICBlZGl0OiB7XG4gICAgICBpY29uOiAoKSA9PiAnbWF0OmVkaXQnXG4gICAgfSxcbiAgICBzYXZlOiB7XG4gICAgICBpY29uOiAoKSA9PiAnbWF0OmNoZWNrJ1xuICAgIH0sXG4gICAgY2FuY2VsOiB7XG4gICAgICBpY29uOiAoKSA9PiAnbWF0OmNsZWFyJ1xuICAgIH1cbiAgfTtcblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICpuZ0lmPVwiIWVkaXRvck1vZGVsLmlzRWRpdGluZygpXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgKGNsaWNrKT1cInN0YXJ0RWRpdCgpXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5lZGl0YWJsZV09XCJlZGl0aW5nRW5hYmxlZCQudmFsdWVcIiBbY2xhc3MuZW1wdHldPVwiaXNFbXB0eSgpXCI+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3twbGFjZUhvbGRlcn19XCJcbiAgICAgICAgICAgW25nTW9kZWxdPVwiZWRpdG9yTW9kZWwudmFsdWVNb2RlbC52YWx1ZVwiXG4gICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICA+XG4gICAgPCEtLSAgICA8bWF0LWhpbnQgKm5nSWY9XCJzaG93SGludFwiPnt7aGludH19PC9tYXQtaGludD4tLT5cbiAgICA8IS0tICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJoYXNFcnJvcnNcIj57e2ZpcnN0RXJyb3J9fTwvbWF0LWVycm9yPi0tPlxuICAgIDwhLS0gICAgPGF1cC1pY29uICpuZ0lmPVwiaWNvblByZWZpeFwiIG1hdFByZWZpeCBbaWNvbl09XCJpY29uUHJlZml4XCI+PC9hdXAtaWNvbj4tLT5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGF1cC1jb21tYW5kICpuZ0lmPVwiZWRpdENvbW1hbmQuZW5hYmxlZCQudmFsdWVcIiBbY29tbWFuZF09XCJlZGl0Q29tbWFuZFwiIFtmYWNlJF09XCJlZGl0RmFjZU1vZGVsXCI+PC9hdXAtY29tbWFuZD5cbjwvZGl2PlxuPGF1cC1pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0IFthbmltYXRlRmlyc3RBY3Rpdml0eV09XCJmYWxzZVwiPjwvYXVwLWluLXBsYWNlLWludGVyYWN0aW9uLWNvbnRleHQ+XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLXN0cmluZy1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9lZGl0b3JzL2lubGluZS1zdHJpbmctZWRpdG9yL2lubGluZS1zdHJpbmctZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvZWRpdG9ycy9pbmxpbmUtc3RyaW5nLWVkaXRvci9pbmxpbmUtc3RyaW5nLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBRUwsT0FBTyxFQUNQLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsT0FBTyxFQUNQLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRWxELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFbEMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUNMLGtDQUFrQyxFQUNuQyxNQUFNLDBFQUEwRSxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixP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VUFBVTtRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUE7SUFDcEMsQ0FBQzt1R0FqSVUsMkJBQTJCOzJGQUEzQiwyQkFBMkIsK1VBVzNCLGtDQUFrQyx1RUMzRC9DLG81QkFnQkE7O0FEbUNXO0lBREMsT0FBTyxFQUFFOzs4REFDdUM7QUFHakQ7SUFEQyxPQUFPLEVBQUU7OzZEQUMwRDtBQUdwRTtJQURDLGlCQUFpQixFQUFFOzt3REFDcUI7QUFTekM7SUFEQyxpQkFBaUIsRUFBRTs7OERBQ0E7QUFHcEI7SUFEQyxPQUFPLEVBQUU7OytEQUNpQzsyRkFyQnpDLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7eUdBTzNCLFdBQVc7c0JBRG5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFEbEIsS0FBSztnQkFJRyxLQUFLO3NCQURiLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLGtDQUFrQztnQkFJN0MsS0FBSztzQkFESixLQUFLO2dCQUlHLFdBQVc7c0JBRG5CLEtBQUs7Z0JBSUcsWUFBWTtzQkFEcEIsS0FBSztnQkEyR00sVUFBVTtzQkFEckIsV0FBVzt1QkFBQyxnQkFBZ0I7O0FBTy9CLFdBQWlCLDJCQUEyQjtJQVE3Qix5Q0FBYSxHQUFVO1FBQ2xDLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVO1NBQ3ZCO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVc7U0FDeEI7UUFDRCxNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVztTQUN4QjtLQUNGLENBQUM7QUFFSixDQUFDLEVBcEJnQiwyQkFBMkIsS0FBM0IsMkJBQTJCLFFBb0IzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBDb21tYW5kLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRHNsLFxuICBQcm94aWZ5LFxuICBwcm94aWZ5LFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7bGFuZ30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5cbmltcG9ydCB7aXNFbXB0eX0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC1mYWNlJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQge0ludGVyYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICBJblBsYWNlSW50ZXJhY3Rpb25Db250ZXh0Q29tcG9uZW50XG59IGZyb20gJy4uLy4uL2lucGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC9pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQge0lucHV0QWN0aXZpdHl9IGZyb20gJy4uLy4uL2lucHV0LWFjdGl2aXRpZXMvaW5wdXQtYWN0aXZpdHknO1xuaW1wb3J0IHtTdHJpbmdJbnB1dEFjdGl2aXR5fSBmcm9tICcuLi8uLi9pbnB1dC1hY3Rpdml0aWVzL3N0cmluZy1pbnB1dC1hY3Rpdml0eSc7XG5pbXBvcnQge0lubGluZUVkaXRvck1vZGVsfSBmcm9tICcuL2lubGluZS1lZGl0b3ItbW9kZWwnO1xuXG4vKipcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzb3VyY2U6IFZhbHVlTW9kZWw8c3RyaW5nPiA9IC4uLjtcbiAqIGNvbnN0IG1vZGVsID0gSW5saW5lRWRpdG9yTW9kZWwuY3JlYXRlKHNvdXJjZSwge1xuICogICBzYXZlKHVwZGF0ZWQ6c3RyaW5nLCBjb250ZXh0OiBFZGl0Q29udGV4dCkgPT4ge1xuICogICAgICB0cnkge1xuICogICAgICAgIHRyeSBhbmQgc2F2ZSB0aGUgdGhpbmcuLi5cbiAqICAgICAgfSBjYXRjaChlcnJvcikge1xuICogICAgICAgIGNvbnRleHQuaW5qZWN0RXJyb3IoZXJyb3IpXG4gKiAgICAgIH1cbiAqIH0pLnZhbGlkYXRlVXNpbmcoVmFsaWRhdG9yLnByZXNlbnQoXCJXZSdsbCBuZWVkIGEgdmFsdWVcIik7XG4gKlxuICogIyBpbiB0aGUgdmlld1xuICogPGF1cC1pbmxpbmUtc3RyaW5nLWVkaXRvclxuICogICAgICAgbGFiZWw9XCJNeSBmaWVsZFwiXG4gKiAgICAgICBwbGFjZUhvbGRlcj1cIkknbSByZWFkeSBmb3IgYSBzdHJpbmcuLi5cIlxuICogICAgICAgW2VkaXRvck1vZGVsXT1cIm1vZGVsXCI+PC9hdXAtaW5saW5lLXN0cmluZy1lZGl0b3I+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1pbmxpbmUtc3RyaW5nLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmxpbmUtc3RyaW5nLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10gLy8gU2VlIGFzc2V0cy9pbnRlcmFjdGlvbi9lZGl0b3IvaW5saW5lLXN0cmluZy1lZGl0b3Iuc2Nzc1xufSlcbmV4cG9ydCBjbGFzcyBJbmxpbmVTdHJpbmdFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGVkaXRvck1vZGVsID0gcHJveGlmeShJbmxpbmVFZGl0b3JNb2RlbDxzdHJpbmc+KTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGZhY2VzTW9kZWwgPSBwcm94aWZ5KFZhbHVlTW9kZWw8SW5saW5lU3RyaW5nRWRpdG9yQ29tcG9uZW50LkZhY2VzPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3IgZmFjZXM6IElubGluZVN0cmluZ0VkaXRvckNvbXBvbmVudC5GYWNlcztcblxuICBAVmlld0NoaWxkKEluUGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnQpXG4gIGludGVyYWN0aW9uQ29udGV4dDogSW5QbGFjZUludGVyYWN0aW9uQ29udGV4dENvbXBvbmVudDxhbnksIGFueSwgYW55PjtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIHBsYWNlSG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBwbGFjZUhvbGRlciQgPSBwcm94aWZ5KFZhbHVlTW9kZWw8c3RyaW5nPik7XG5cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICBlbXB0eSQ6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHJlYWRvbmx5IGVkaXRDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xuXG4gIGRpc3BsYXlWYWx1ZTogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG4gIHJlYWRvbmx5IGVkaXRGYWNlTW9kZWw6IFZhbHVlTW9kZWxDaGFpbjxDb21tYW5kRmFjZT47XG4gIHJlYWRvbmx5IHNhdmVGYWNlOiBWYWx1ZU1vZGVsQ2hhaW48Q29tbWFuZEZhY2U+O1xuICByZWFkb25seSBjYW5jZWxGYWNlOiBWYWx1ZU1vZGVsQ2hhaW48Q29tbWFuZEZhY2U+O1xuXG4gIHJlYWRvbmx5IGVkaXRpbmdFbmFibGVkJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpKTtcblxuICBjb25zdHJ1Y3RvcihpbnRlcmFjdGlvblNlcnZpY2U6IEludGVyYWN0aW9uU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiwgd2hlbiwgdmFsdWVPZiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIGNvbnN0IG1vZGFsSUMgPSBpbnRlcmFjdGlvblNlcnZpY2UuY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHREaXNwb3NlZFdpdGgodGhpcyk7XG5cbiAgICBjb25zdCByZXNvbHZlZEZhY2VzTW9kZWwgPSBjaGFpbih0aGlzLmZhY2VzTW9kZWwpLm1hcCh1c2VyRmFjZXMgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uSW5saW5lU3RyaW5nRWRpdG9yQ29tcG9uZW50LkRFRkFVTFRfRkFDRVMsIC8vIHRvZG86IHNob3VsZCByZWFsbHkgaW5qZWN0IGFwcCB3aWRlIGRlZmF1bHRzIGFzIHdlbGxcbiAgICAgICAgLi4udXNlckZhY2VzXG4gICAgICB9O1xuICAgIH0sIHsgYWxsb3dOaWw6IHRydWUgfSk7XG5cbiAgICB0aGlzLmVkaXRGYWNlTW9kZWwgPSByZXNvbHZlZEZhY2VzTW9kZWwucGx1Y2soJ2VkaXQnKTtcbiAgICB0aGlzLnNhdmVGYWNlID0gcmVzb2x2ZWRGYWNlc01vZGVsLnBsdWNrKCdzYXZlJyk7XG4gICAgdGhpcy5jYW5jZWxGYWNlID0gcmVzb2x2ZWRGYWNlc01vZGVsLnBsdWNrKCdjYW5jZWwnKTtcblxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuZWRpdENvbW1hbmQgPSBDb21tYW5kLmNyZWF0ZShhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLmVkaXRvck1vZGVsLmVkaXRpbmcudmFsdWUgPSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuc3RhcnRBY3Rpdml0eShTdHJpbmdJbnB1dEFjdGl2aXR5LCB0aGlzLmNyZWF0ZUlucHV0QWN0aXZpdHlEYXRhKCkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBkb24ndCBjYXJlIGlmIHRoZXkgY2FuY2VsbGVkLCBqdXN0IGhpZGluZyB0aGUgY29uc29sZSBlcnJvcnNcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuZWRpdG9yTW9kZWwuZWRpdGluZy52YWx1ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pLmVuYWJsZVdoaWxlKHRoaXMuZWRpdGluZ0VuYWJsZWQkKTtcblxuICAgIHRoaXMub25Jbml0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5lZGl0b3JNb2RlbCkge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnZWRpdG9yTW9kZWwgaXMgcmVxdWlyZWQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5lZGl0aW5nRW5hYmxlZCQuc2V0RGVsZWdhdGUodGhpcy5lZGl0b3JNb2RlbC5lZGl0aW5nRW5hYmxlZCk7XG5cbiAgICAgIHdoZW4odGhpcy5lZGl0b3JNb2RlbC5lZGl0aW5nKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHtcbiAgICAgICAgdGhpcy5lZGl0Q29tbWFuZC5leGVjdXRlKCk7XG4gICAgICB9LCB7IGFzTG9uZ0FzOiB0aGlzLmVkaXRDb21tYW5kLmVuYWJsZWQkIH0pO1xuXG4gICAgICB3aGVuKHRoaXMuZWRpdG9yTW9kZWwuZWRpdGluZykuYmVjb21lc0ZhbHNleSgoKSA9PiB0aGlzLmNhbmNlbEVkaXQoKSk7XG5cbiAgICAgIHRoaXMuZW1wdHkkID0gdmFsdWVPZi5hbnkoXG4gICAgICAgIGNoYWluLnN0cmluZ1ZhbHVlKHRoaXMuZWRpdG9yTW9kZWwudmFsdWVNb2RlbCkuaXNCbGFuaygpXG4gICAgICAgIC8vIGRldmljZURlc2NyaXB0aW9uLmlzTmlsKClcbiAgICAgICkuYXJlVHJ1dGh5KCk7XG5cbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gY2hhaW4odGhpcy5lZGl0b3JNb2RlbC52YWx1ZU1vZGVsKS5tYXAodiA9PiB7XG4gICAgICAgIHJldHVybiBpc0VtcHR5KHYpID8gdGhpcy5wbGFjZUhvbGRlciQudmFsdWUgOiB2O1xuICAgICAgfSwgeyBkZXBlbmRzT246IHRoaXMucGxhY2VIb2xkZXIkLCBhbGxvd05pbDogdHJ1ZSB9KTtcblxuICAgIH0pXG4gICAgdGhpcy5vbkRpc3Bvc2UoKCkgPT4gdGhpcy5jYW5jZWxFZGl0KCkpO1xuXG4gIH1cblxuXG4gIHByaXZhdGUgY3JlYXRlSW5wdXRBY3Rpdml0eURhdGEoKTogSW5wdXRBY3Rpdml0eS5EYXRhPHN0cmluZz4ge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiB7XG4gICAgICBpbml0aWFsVmFsdWU6IHNlbGYuZWRpdG9yTW9kZWwudmFsdWVNb2RlbC52YWx1ZSxcbiAgICAgIGNvbmZpcm1GYWNlOiBzZWxmLnNhdmVGYWNlLnZhbHVlLFxuICAgICAgY2FuY2VsRmFjZTogc2VsZi5jYW5jZWxGYWNlLnZhbHVlLFxuICAgICAgcGxhY2Vob2xkZXI6IHNlbGYucGxhY2VIb2xkZXIkLnZhbHVlLFxuICAgICAgbGFiZWw6IHNlbGYubGFiZWwsXG4gICAgICBsYXlvdXQ6IElucHV0QWN0aXZpdHkuTGF5b3V0LklOTElORSxcbiAgICAgIHZhbGlkYXRvcnM6IHNlbGYuZWRpdG9yTW9kZWwudmFsaWRhdG9ycy52YWx1ZSxcbiAgICAgIGFzeW5jIHNhdmUodmFsdWU6IHN0cmluZywgaW5wdXRDb250ZXh0OiBJbnB1dEFjdGl2aXR5LkNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgc2VsZi5lZGl0b3JNb2RlbC5zYXZlQ2FsbGJhY2sodmFsdWUsIGlucHV0Q29udGV4dCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGNhbmNlbEVkaXQoKSB7XG4gICAgaWYgKHRoaXMuaXNFZGl0aW5nKCkpIHtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRFZGl0KCkge1xuICAgIGlmICghdGhpcy5pc0VkaXRpbmcoKSAmJiB0aGlzLmVkaXRDb21tYW5kLmVuYWJsZWQkLnZhbHVlKSB7XG4gICAgICB0aGlzLmVkaXRDb21tYW5kLmV4ZWN1dGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzRWRpdGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKTtcbiAgfVxuXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW1wdHkkLnZhbHVlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZGlzYWJsZWRcIilcbiAgcHJpdmF0ZSBnZXQgaXNEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuZWRpdGluZ0VuYWJsZWQkLnZhbHVlXG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIElubGluZVN0cmluZ0VkaXRvckNvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBGYWNlcyB7XG4gICAgZWRpdD86IENvbW1hbmRGYWNlO1xuICAgIHNhdmU/OiBDb21tYW5kRmFjZTtcbiAgICBjYW5jZWw/OiBDb21tYW5kRmFjZTtcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBERUZBVUxUX0ZBQ0VTOiBGYWNlcyA9IHtcbiAgICBlZGl0OiB7XG4gICAgICBpY29uOiAoKSA9PiAnbWF0OmVkaXQnXG4gICAgfSxcbiAgICBzYXZlOiB7XG4gICAgICBpY29uOiAoKSA9PiAnbWF0OmNoZWNrJ1xuICAgIH0sXG4gICAgY2FuY2VsOiB7XG4gICAgICBpY29uOiAoKSA9PiAnbWF0OmNsZWFyJ1xuICAgIH1cbiAgfTtcblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICpuZ0lmPVwiIWVkaXRvck1vZGVsLmlzRWRpdGluZygpXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYWx3YXlzXCIgKGNsaWNrKT1cInN0YXJ0RWRpdCgpXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5lZGl0YWJsZV09XCJlZGl0aW5nRW5hYmxlZCQudmFsdWVcIiBbY2xhc3MuZW1wdHldPVwiaXNFbXB0eSgpXCI+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3twbGFjZUhvbGRlcn19XCJcbiAgICAgICAgICAgW25nTW9kZWxdPVwiZWRpdG9yTW9kZWwudmFsdWVNb2RlbC52YWx1ZVwiXG4gICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICA+XG4gICAgPCEtLSAgICA8bWF0LWhpbnQgKm5nSWY9XCJzaG93SGludFwiPnt7aGludH19PC9tYXQtaGludD4tLT5cbiAgICA8IS0tICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJoYXNFcnJvcnNcIj57e2ZpcnN0RXJyb3J9fTwvbWF0LWVycm9yPi0tPlxuICAgIDwhLS0gICAgPGF1cC1pY29uICpuZ0lmPVwiaWNvblByZWZpeFwiIG1hdFByZWZpeCBbaWNvbl09XCJpY29uUHJlZml4XCI+PC9hdXAtaWNvbj4tLT5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGF1cC1jb21tYW5kICpuZ0lmPVwiZWRpdENvbW1hbmQuZW5hYmxlZCQudmFsdWVcIiBbY29tbWFuZF09XCJlZGl0Q29tbWFuZFwiIFtmYWNlJF09XCJlZGl0RmFjZU1vZGVsXCI+PC9hdXAtY29tbWFuZD5cbjwvZGl2PlxuPGF1cC1pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0IFthbmltYXRlRmlyc3RBY3Rpdml0eV09XCJmYWxzZVwiPjwvYXVwLWluLXBsYWNlLWludGVyYWN0aW9uLWNvbnRleHQ+XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Component, HostBinding, Inject, Input, Optional, ViewChild } from "@angular/core";
1
+ import { Component, EventEmitter, HostBinding, Inject, Input, Optional, Output, ViewChild } from "@angular/core";
2
2
  import { MAT_TABS_CONFIG } from "@angular/material/tabs";
3
3
  import { lang } from "@coolon/pectin";
4
4
  import { DisposableComponent } from "../../../components/disposable-component";
@@ -14,7 +14,7 @@ const cssDurationRegex = /(\d+)(m?s)/;
14
14
  * </aup-in-place-interaction-context>
15
15
  *
16
16
  * in your component
17
- * @ViewChild('inPlaceInteractionContext', { static: true })
17
+ * @ViewChild(InPlaceInteractionContextComponent)
18
18
  * interactionContext: InteractionContext;
19
19
  *
20
20
  *
@@ -33,6 +33,8 @@ export class InPlaceInteractionContextComponent extends DisposableComponent {
33
33
  * active interactions.
34
34
  */
35
35
  syncWithRoutes = true;
36
+ started = new EventEmitter();
37
+ finished = new EventEmitter();
36
38
  get animationDuration() {
37
39
  return this.animateFirstActivity ? (this.tabConfig?.animationDuration || "500ms") : "0ms";
38
40
  }
@@ -59,11 +61,16 @@ export class InPlaceInteractionContextComponent extends DisposableComponent {
59
61
  this.interactionService.registerInplaceInteractionContext(this);
60
62
  }
61
63
  else {
64
+ const self = this;
62
65
  this.activityContainerComponent.initialise("dont-care", {
63
66
  async notifyActive(interactionContext) {
67
+ self.started.emit();
64
68
  return undefined;
65
69
  },
66
70
  async notifyFinished(interactionContext) {
71
+ // I've noticed some rendering fails when returning the the transcluded content we'll fire an event
72
+ // so components can do stuff if they need to.
73
+ self.started.emit();
67
74
  return undefined;
68
75
  }
69
76
  });
@@ -110,7 +117,7 @@ export class InPlaceInteractionContextComponent extends DisposableComponent {
110
117
  }
111
118
  }
112
119
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InPlaceInteractionContextComponent, deps: [{ token: MAT_TABS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
113
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: { animateFirstActivity: "animateFirstActivity", syncWithRoutes: "syncWithRoutes" }, host: { properties: { "class.active": "this.active" } }, viewQueries: [{ propertyName: "activityContainerComponent", first: true, predicate: ["activityContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group no-tab-header [selectedIndex]=\"isActive() ? 1 : 0\" full-height-tabs\n (selectedTabChange)=\"onTabChanged($event)\"\n [dynamicHeight]=\"false\"\n [animationDuration]=\"animationDuration\">\n <mat-tab>\n <ng-content></ng-content>\n </mat-tab>\n <mat-tab>\n <aup-activity-container #activityContainer [dynamicHeight]=\"false\"></aup-activity-container>\n </mat-tab>\n</mat-tab-group>\n\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-activity-container{flex:1}\n"], dependencies: [{ kind: "component", type: i1.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: i2.ActivityContainerComponent, selector: "aup-activity-container", inputs: ["dynamicHeight"] }] });
120
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: { animateFirstActivity: "animateFirstActivity", syncWithRoutes: "syncWithRoutes" }, outputs: { started: "started", finished: "finished" }, host: { properties: { "class.active": "this.active" } }, viewQueries: [{ propertyName: "activityContainerComponent", first: true, predicate: ["activityContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group no-tab-header [selectedIndex]=\"isActive() ? 1 : 0\" full-height-tabs\n (selectedTabChange)=\"onTabChanged($event)\"\n [dynamicHeight]=\"false\"\n [animationDuration]=\"animationDuration\">\n <mat-tab>\n <ng-content></ng-content>\n </mat-tab>\n <mat-tab>\n <aup-activity-container #activityContainer [dynamicHeight]=\"false\"></aup-activity-container>\n </mat-tab>\n</mat-tab-group>\n\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-activity-container{flex:1}\n"], dependencies: [{ kind: "component", type: i1.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: i2.ActivityContainerComponent, selector: "aup-activity-container", inputs: ["dynamicHeight", "animationDuration"] }] });
114
121
  }
115
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InPlaceInteractionContextComponent, decorators: [{
116
123
  type: Component,
@@ -127,8 +134,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
127
134
  type: Input
128
135
  }], syncWithRoutes: [{
129
136
  type: Input
137
+ }], started: [{
138
+ type: Output
139
+ }], finished: [{
140
+ type: Output
130
141
  }], active: [{
131
142
  type: HostBinding,
132
143
  args: ["class.active"]
133
144
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2lucGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC9pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvaW5wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0L2luLXBsYWNlLWludGVyYWN0aW9uLWNvbnRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUMsZUFBZSxFQUFtQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3pGLE9BQU8sRUFBZ0IsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFNN0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7Ozs7QUFHOUYsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7QUFFdEM7Ozs7Ozs7Ozs7R0FVRztBQU1ILE1BQU0sT0FBTyxrQ0FBNEMsU0FBUSxtQkFBbUI7SUF3Q2hCO0lBckNsRSwwQkFBMEIsQ0FBNEM7SUFFdEU7OztPQUdHO0lBRUgsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBRTVCOzs7O09BSUc7SUFFSCxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBRXRCLElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1RixDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQzVELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLDZCQUE2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsT0FBTyxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVRLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUU5RCxZQUFrRSxTQUF3QjtRQUN4RixLQUFLLEVBQUUsQ0FBQztRQUR3RCxjQUFTLEdBQVQsU0FBUyxDQUFlO0lBRTFGLENBQUM7SUFFRCxlQUFlO1FBQ2IsMkdBQTJHO1FBQzNHLHdIQUF3SDtRQUV4SCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pFO2FBQU07WUFDTCxJQUFJLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRTtnQkFDcEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBc0M7b0JBQ3ZELE9BQU8sU0FBUyxDQUFDO2dCQUNuQixDQUFDO2dCQUNELEtBQUssQ0FBQyxjQUFjLENBQUMsa0JBQXNDO29CQUN6RCxPQUFPLFNBQVMsQ0FBQztnQkFDbkIsQ0FBQzthQUNGLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELCtEQUErRDtJQUMvRCwyREFBMkQ7SUFDM0QscUNBQXFDLENBQUMsRUFBVSxFQUFFLEdBQTJCO1FBQzNFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFZO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFnQjtRQUN0QixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFdBQVcsQ0FBYSxPQUFnQixFQUFFLFlBQWlELEVBQUUsSUFBUztRQUNwRyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxrQkFBa0IsQ0FBSyxPQUFnQixFQUFFLFNBQXlFO1FBQ2hILE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBR0QsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxhQUFhLENBQWEsWUFBaUQsRUFBRSxJQUFTLEVBQUUsT0FBb0M7UUFDMUgsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1NBQ2xHO2FBQU07WUFDTCxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQ25EO0lBQ0gsQ0FBQzt1R0EvR1Usa0NBQWtDLGtCQXdDekIsZUFBZTsyRkF4Q3hCLGtDQUFrQyxtWUMvQi9DLHVjQVlBOzsyRkRtQmEsa0NBQWtDO2tCQUw5QyxTQUFTOytCQUNFLGtDQUFrQzs7MEJBNEMvQixNQUFNOzJCQUFDLGVBQWU7OzBCQUFHLFFBQVE7NENBckM5QywwQkFBMEI7c0JBRHpCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQVE5QyxvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBU04sY0FBYztzQkFEYixLQUFLO2dCQWlCRixNQUFNO3NCQURULFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7TUFUX1RBQlNfQ09ORklHLCBNYXRUYWJDaGFuZ2VFdmVudCwgTWF0VGFic0NvbmZpZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYnNcIjtcbmltcG9ydCB7Q29uc3RydWN0YWJsZSwgbGFuZ30gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50XCI7XG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHlcIjtcbmltcG9ydCB7QWxlcnR9IGZyb20gXCIuLi8uLi9hbGVydFwiO1xuaW1wb3J0IHtDb25maXJtfSBmcm9tIFwiLi4vLi4vY29uZmlybVwiO1xuaW1wb3J0IHtJblBsYWNlSW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi8uLi9pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0ludGVyYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7QWN0aXZpdHlDb250YWluZXJDb21wb25lbnR9IGZyb20gXCIuLi9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudFwiO1xuXG5cbmNvbnN0IGNzc0R1cmF0aW9uUmVnZXggPSAvKFxcZCspKG0/cykvO1xuXG4vKipcbiAqIEBleGFtcGxlXG4gKiAgIDxhdXAtaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dCAjaW5QbGFjZUludGVyYWN0aW9uQ29udGV4dD5cbiAqICAgPC9hdXAtaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dD5cbiAqXG4gKiAgIGluIHlvdXIgY29tcG9uZW50XG4gKiAgICAgQFZpZXdDaGlsZCgnaW5QbGFjZUludGVyYWN0aW9uQ29udGV4dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gKiAgICAgaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQ7XG4gKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF1cC1pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBJblBsYWNlSW50ZXJhY3Rpb25Db250ZXh0Q29tcG9uZW50PEQsIFIsIEU+IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEluUGxhY2VJbnRlcmFjdGlvbkNvbnRleHQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGQoXCJhY3Rpdml0eUNvbnRhaW5lclwiLCB7c3RhdGljOiB0cnVlfSlcbiAgYWN0aXZpdHlDb250YWluZXJDb21wb25lbnQ6IEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50PGFueSwgYW55LCBhbnk+O1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlIHRoZW4gdGhlIGZpcnN0IHN0YXJ0QWN0aXZpdHkgY2FsbCB3aWxsIHNsaWRlIHRoZSBhY3Rpdml0eSBpbnRvIHZpZXcuIElmIGZhbHNlXG4gICAqIHRoZSBhY3Rpdml0eSB3aWxsIHJlcGxhY2UgdGhlIGV4aXN0aW5nIGNvbnRlbnQgaW1tZWRpYXRlbHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBhbmltYXRlRmlyc3RBY3Rpdml0eSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIElmIHRydWUgdGhlIGFjdGl2aXR5IHdpbGwgc3luYyB3aXRoIHRoZSByb3V0ZXIgdG8gZW5hYmxlIGJhY2sgYnV0dG9uIHN1cHBvcnQuICBUaGlzIGlzIGEgd29yayBhcm91bmQgZm9yXG4gICAqIGRlZXBseSBuZXN0ZWQgYWN0aXZpdGllcyB0aGF0IGNhbid0IGJlIGxpbmtlZCB3aXRoIHRoZSByb290IHBsYWNlIGludGVyYWN0aW9uQ29udGV4dCBob29rIGZvciBjYW5jZWxsaW5nXG4gICAqIGFjdGl2ZSBpbnRlcmFjdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBzeW5jV2l0aFJvdXRlcyA9IHRydWU7XG5cbiAgZ2V0IGFuaW1hdGlvbkR1cmF0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYW5pbWF0ZUZpcnN0QWN0aXZpdHkgPyAodGhpcy50YWJDb25maWc/LmFuaW1hdGlvbkR1cmF0aW9uIHx8IFwiNTAwbXNcIikgOiBcIjBtc1wiO1xuICB9XG5cbiAgZ2V0IGFuaW1hdGlvbkR1cmF0aW9uTWlsbGlzKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGNzc0R1cmF0aW9uUmVnZXguZXhlYyh0aGlzLmFuaW1hdGlvbkR1cmF0aW9uKVxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgdW5zdXBwb3J0ZWQgY3NzIGR1cmF0aW9uOiAke3RoaXMuYW5pbWF0aW9uRHVyYXRpb259YCk7XG4gICAgfVxuICAgIGNvbnN0IG11bHRpcGxpZXIgPSByZXN1bHRbMl0gPT09ICdzJyA/IDEwMDAgOiAxO1xuICAgIHJldHVybiBtdWx0aXBsaWVyICogcGFyc2VJbnQocmVzdWx0WzFdLCAxMCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5hY3RpdmVcIilcbiAgZ2V0IGFjdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0FjdGl2ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgaW50ZXJhY3Rpb25TZXJ2aWNlID0gdGhpcy5pbmplY3QoSW50ZXJhY3Rpb25TZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9UQUJTX0NPTkZJRykgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSB0YWJDb25maWc6IE1hdFRhYnNDb25maWcpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIE5PVEU6IHRoaXMgaXMgYSB0ZW1wIHdvcmsgYXJvdW5kIHRvIGRldGFjaCBpbnBsYWNlIGNvbnRleHRzIGZyb20gdGhlIHJvdXRlciB1bnRpbCBBVVAtODggaXMgaW1wbGVtZW50ZWQuXG4gICAgLy8gaHR0cHM6Ly9jb29sb24uYXRsYXNzaWFuLm5ldC9icm93c2UvQVVQLTg4P2F0bE9yaWdpbj1leUpwSWpvaU9UZzVZakV6WkdVelpqUm1ORGcwTm1FeE9XVTNaR0ptTXpKaU5UUm1OR1lpTENKd0lqb2lhaUo5XG5cbiAgICBpZiAodGhpcy5zeW5jV2l0aFJvdXRlcykge1xuICAgICAgdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UucmVnaXN0ZXJJbnBsYWNlSW50ZXJhY3Rpb25Db250ZXh0KHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LmluaXRpYWxpc2UoXCJkb250LWNhcmVcIiwge1xuICAgICAgICAgIGFzeW5jIG5vdGlmeUFjdGl2ZShpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFzeW5jIG5vdGlmeUZpbmlzaGVkKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdGhpcyBpcyBhIHJlZ3NpdHJhdGlvbiBjYWxsYmFjayBmcm9tIHRoZSBpbnRlcmFjdGlvbiBzZXJ2aWNlXG4gIC8vIEBUcmFjZSgpIC8vIHdlYnN0b3JtIHNheXMgbm8gdXNhZ2VzLi4uIGJ1dCBJJ20gbm90IHN1cmUuXG4gIG9uSW5wbGFjZUludGVyYWN0aW9uQ29udGV4dFJlZ2lzdGVyZWQoaWQ6IHN0cmluZywgYXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpKSB7XG4gICAgdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5pbml0aWFsaXNlKGlkLCBhcGkpO1xuICB9XG5cbiAgZ2V0IGlkZW50aWZpZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb250YWluZXJDb21wb25lbnQuaWRlbnRpZmllcjtcbiAgfVxuXG4gIGFsZXJ0KGFsZXJ0OiBBbGVydCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LmFsZXJ0KGFsZXJ0KTtcbiAgfVxuXG4gIGNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk7XG4gIH1cblxuICBjb25maXJtKGNvbmZpcm06IENvbmZpcm0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5jb25maXJtKGNvbmZpcm0pO1xuICB9XG5cbiAgY29uZmlybU9yUmVqZWN0KGNvbmZpcm06IENvbmZpcm0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5jb25maXJtT3JSZWplY3QoY29uZmlybSk7XG4gIH1cblxuICBjb25maXJtVGhlbjxEMSwgUjEsIEUxPihjb25maXJtOiBDb25maXJtLCBhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RDEsIFIxLCBFMT4+LCBkYXRhPzogRDEpOiBQcm9taXNlPFIxPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb250YWluZXJDb21wb25lbnQuY29uZmlybVRoZW4oY29uZmlybSwgYWN0aXZpdHlUeXBlKTtcbiAgfVxuXG4gIGNvbmZpcm1UaGVuRXhlY3V0ZTxSMT4oY29uZmlybTogQ29uZmlybSwgb3BlcmF0aW9uOiAoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpID0+IChQcm9taXNlPFIxPiB8IFIxKSk6IFByb21pc2U8UjE+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5jb25maXJtVGhlbkV4ZWN1dGUoY29uZmlybSwgb3BlcmF0aW9uKTtcbiAgfVxuXG5cbiAgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb250YWluZXJDb21wb25lbnQuaXNBY3RpdmUoKTtcbiAgfVxuXG4gIHN0YXJ0QWN0aXZpdHk8RDEsIFIxLCBFMT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQxLCBSMSwgRTE+PiwgZGF0YT86IEQxLCBvcHRpb25zPzogSW50ZXJhY3Rpb25Db250ZXh0Lk9wdGlvbnMpOiBQcm9taXNlPFIxPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb250YWluZXJDb21wb25lbnQuc3RhcnRBY3Rpdml0eShhY3Rpdml0eVR5cGUsIGRhdGEsIG9wdGlvbnMpO1xuICB9XG5cbiAgb25UYWJDaGFuZ2VkKCRldmVudDogTWF0VGFiQ2hhbmdlRXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50LmluZGV4ID09PSAxKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWN0aXZpdHlDb250YWluZXJDb21wb25lbnQubm90aWZ5UmVhZHkodHJ1ZSksIHRoaXMuYW5pbWF0aW9uRHVyYXRpb25NaWxsaXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZpdHlDb250YWluZXJDb21wb25lbnQubm90aWZ5UmVhZHkoZmFsc2UpXG4gICAgfVxuICB9XG59XG4iLCI8bWF0LXRhYi1ncm91cCBuby10YWItaGVhZGVyIFtzZWxlY3RlZEluZGV4XT1cImlzQWN0aXZlKCkgPyAxIDogMFwiIGZ1bGwtaGVpZ2h0LXRhYnNcbiAgICAgICAgICAgICAgIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJvblRhYkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICBbZHluYW1pY0hlaWdodF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICBbYW5pbWF0aW9uRHVyYXRpb25dPVwiYW5pbWF0aW9uRHVyYXRpb25cIj5cbiAgPG1hdC10YWI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L21hdC10YWI+XG4gIDxtYXQtdGFiPlxuICAgIDxhdXAtYWN0aXZpdHktY29udGFpbmVyICNhY3Rpdml0eUNvbnRhaW5lciBbZHluYW1pY0hlaWdodF09XCJmYWxzZVwiPjwvYXVwLWFjdGl2aXR5LWNvbnRhaW5lcj5cbiAgPC9tYXQtdGFiPlxuPC9tYXQtdGFiLWdyb3VwPlxuXG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2lucGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC9pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvaW5wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0L2luLXBsYWNlLWludGVyYWN0aW9uLWNvbnRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBbUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQWdCLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBTTdFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDOzs7O0FBRzlGLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO0FBRXRDOzs7Ozs7Ozs7O0dBVUc7QUFNSCxNQUFNLE9BQU8sa0NBQTRDLFNBQVEsbUJBQW1CO0lBOENoQjtJQTNDbEUsMEJBQTBCLENBQTRDO0lBRXRFOzs7T0FHRztJQUVILG9CQUFvQixHQUFH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LEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQVE5QyxvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBU04sY0FBYztzQkFEYixLQUFLO2dCQUlOLE9BQU87c0JBRE4sTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBaUJILE1BQU07c0JBRFQsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7TUFUX1RBQlNfQ09ORklHLCBNYXRUYWJDaGFuZ2VFdmVudCwgTWF0VGFic0NvbmZpZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYnNcIjtcbmltcG9ydCB7Q29uc3RydWN0YWJsZSwgbGFuZ30gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50XCI7XG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHlcIjtcbmltcG9ydCB7QWxlcnR9IGZyb20gXCIuLi8uLi9hbGVydFwiO1xuaW1wb3J0IHtDb25maXJtfSBmcm9tIFwiLi4vLi4vY29uZmlybVwiO1xuaW1wb3J0IHtJblBsYWNlSW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi8uLi9pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0ludGVyYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7QWN0aXZpdHlDb250YWluZXJDb21wb25lbnR9IGZyb20gXCIuLi9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudFwiO1xuXG5cbmNvbnN0IGNzc0R1cmF0aW9uUmVnZXggPSAvKFxcZCspKG0/cykvO1xuXG4vKipcbiAqIEBleGFtcGxlXG4gKiAgIDxhdXAtaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dCAjaW5QbGFjZUludGVyYWN0aW9uQ29udGV4dD5cbiAqICAgPC9hdXAtaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dD5cbiAqXG4gKiAgIGluIHlvdXIgY29tcG9uZW50XG4gKiAgICAgQFZpZXdDaGlsZChJblBsYWNlSW50ZXJhY3Rpb25Db250ZXh0Q29tcG9uZW50KVxuICogICAgIGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0O1xuICpcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhdXAtaW4tcGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2luLXBsYWNlLWludGVyYWN0aW9uLWNvbnRleHQuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2luLXBsYWNlLWludGVyYWN0aW9uLWNvbnRleHQuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgSW5QbGFjZUludGVyYWN0aW9uQ29udGV4dENvbXBvbmVudDxELCBSLCBFPiBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBJblBsYWNlSW50ZXJhY3Rpb25Db250ZXh0LCBBZnRlclZpZXdJbml0IHtcblxuICBAVmlld0NoaWxkKFwiYWN0aXZpdHlDb250YWluZXJcIiwge3N0YXRpYzogdHJ1ZX0pXG4gIGFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50OiBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudDxhbnksIGFueSwgYW55PjtcblxuICAvKipcbiAgICogSWYgdHJ1ZSB0aGVuIHRoZSBmaXJzdCBzdGFydEFjdGl2aXR5IGNhbGwgd2lsbCBzbGlkZSB0aGUgYWN0aXZpdHkgaW50byB2aWV3LiBJZiBmYWxzZVxuICAgKiB0aGUgYWN0aXZpdHkgd2lsbCByZXBsYWNlIHRoZSBleGlzdGluZyBjb250ZW50IGltbWVkaWF0ZWx5LlxuICAgKi9cbiAgQElucHV0KClcbiAgYW5pbWF0ZUZpcnN0QWN0aXZpdHkgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlIHRoZSBhY3Rpdml0eSB3aWxsIHN5bmMgd2l0aCB0aGUgcm91dGVyIHRvIGVuYWJsZSBiYWNrIGJ1dHRvbiBzdXBwb3J0LiAgVGhpcyBpcyBhIHdvcmsgYXJvdW5kIGZvclxuICAgKiBkZWVwbHkgbmVzdGVkIGFjdGl2aXRpZXMgdGhhdCBjYW4ndCBiZSBsaW5rZWQgd2l0aCB0aGUgcm9vdCBwbGFjZSBpbnRlcmFjdGlvbkNvbnRleHQgaG9vayBmb3IgY2FuY2VsbGluZ1xuICAgKiBhY3RpdmUgaW50ZXJhY3Rpb25zLlxuICAgKi9cbiAgQElucHV0KClcbiAgc3luY1dpdGhSb3V0ZXMgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKVxuICBzdGFydGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBmaW5pc2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBnZXQgYW5pbWF0aW9uRHVyYXRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hbmltYXRlRmlyc3RBY3Rpdml0eSA/ICh0aGlzLnRhYkNvbmZpZz8uYW5pbWF0aW9uRHVyYXRpb24gfHwgXCI1MDBtc1wiKSA6IFwiMG1zXCI7XG4gIH1cblxuICBnZXQgYW5pbWF0aW9uRHVyYXRpb25NaWxsaXMoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gY3NzRHVyYXRpb25SZWdleC5leGVjKHRoaXMuYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGB1bnN1cHBvcnRlZCBjc3MgZHVyYXRpb246ICR7dGhpcy5hbmltYXRpb25EdXJhdGlvbn1gKTtcbiAgICB9XG4gICAgY29uc3QgbXVsdGlwbGllciA9IHJlc3VsdFsyXSA9PT0gJ3MnID8gMTAwMCA6IDE7XG4gICAgcmV0dXJuIG11bHRpcGxpZXIgKiBwYXJzZUludChyZXN1bHRbMV0sIDEwKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmFjdGl2ZVwiKVxuICBnZXQgYWN0aXZlKCkge1xuICAgIHJldHVybiB0aGlzLmlzQWN0aXZlKCk7XG4gIH1cblxuICByZWFkb25seSBpbnRlcmFjdGlvblNlcnZpY2UgPSB0aGlzLmluamVjdChJbnRlcmFjdGlvblNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX1RBQlNfQ09ORklHKSBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IHRhYkNvbmZpZzogTWF0VGFic0NvbmZpZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gTk9URTogdGhpcyBpcyBhIHRlbXAgd29yayBhcm91bmQgdG8gZGV0YWNoIGlucGxhY2UgY29udGV4dHMgZnJvbSB0aGUgcm91dGVyIHVudGlsIEFVUC04OCBpcyBpbXBsZW1lbnRlZC5cbiAgICAvLyBodHRwczovL2Nvb2xvbi5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9BVVAtODg/YXRsT3JpZ2luPWV5SnBJam9pT1RnNVlqRXpaR1V6WmpSbU5EZzBObUV4T1dVM1pHSm1NekppTlRSbU5HWWlMQ0p3SWpvaWFpSjlcblxuICAgIGlmICh0aGlzLnN5bmNXaXRoUm91dGVzKSB7XG4gICAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZS5yZWdpc3RlcklucGxhY2VJbnRlcmFjdGlvbkNvbnRleHQodGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5pbml0aWFsaXNlKFwiZG9udC1jYXJlXCIsIHtcbiAgICAgICAgICBhc3luYyBub3RpZnlBY3RpdmUoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgICAgIHNlbGYuc3RhcnRlZC5lbWl0KCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgYXN5bmMgbm90aWZ5RmluaXNoZWQoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgICAgIC8vIEkndmUgbm90aWNlZCBzb21lIHJlbmRlcmluZyBmYWlscyB3aGVuIHJldHVybmluZyB0aGUgdGhlIHRyYW5zY2x1ZGVkIGNvbnRlbnQgd2UnbGwgZmlyZSBhbiBldmVudFxuICAgICAgICAgICAgLy8gc28gY29tcG9uZW50cyBjYW4gZG8gc3R1ZmYgaWYgdGhleSBuZWVkIHRvLlxuICAgICAgICAgICAgc2VsZi5zdGFydGVkLmVtaXQoKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyB0aGlzIGlzIGEgcmVnc2l0cmF0aW9uIGNhbGxiYWNrIGZyb20gdGhlIGludGVyYWN0aW9uIHNlcnZpY2VcbiAgLy8gQFRyYWNlKCkgLy8gd2Vic3Rvcm0gc2F5cyBubyB1c2FnZXMuLi4gYnV0IEknbSBub3Qgc3VyZS5cbiAgb25JbnBsYWNlSW50ZXJhY3Rpb25Db250ZXh0UmVnaXN0ZXJlZChpZDogc3RyaW5nLCBhcGk6IEludGVyYWN0aW9uU2VydmljZS5BcGkpIHtcbiAgICB0aGlzLmFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LmluaXRpYWxpc2UoaWQsIGFwaSk7XG4gIH1cblxuICBnZXQgaWRlbnRpZmllcigpIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5pZGVudGlmaWVyO1xuICB9XG5cbiAgYWxlcnQoYWxlcnQ6IEFsZXJ0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb250YWluZXJDb21wb25lbnQuYWxlcnQoYWxlcnQpO1xuICB9XG5cbiAgY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb250YWluZXJDb21wb25lbnQuY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTtcbiAgfVxuXG4gIGNvbmZpcm0oY29uZmlybTogQ29uZmlybSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LmNvbmZpcm0oY29uZmlybSk7XG4gIH1cblxuICBjb25maXJtT3JSZWplY3QoY29uZmlybTogQ29uZmlybSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LmNvbmZpcm1PclJlamVjdChjb25maXJtKTtcbiAgfVxuXG4gIGNvbmZpcm1UaGVuPEQxLCBSMSwgRTE+KGNvbmZpcm06IENvbmZpcm0sIGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxEMSwgUjEsIEUxPj4sIGRhdGE/OiBEMSk6IFByb21pc2U8UjE+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5jb25maXJtVGhlbihjb25maXJtLCBhY3Rpdml0eVR5cGUpO1xuICB9XG5cbiAgY29uZmlybVRoZW5FeGVjdXRlPFIxPihjb25maXJtOiBDb25maXJtLCBvcGVyYXRpb246IChpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkgPT4gKFByb21pc2U8UjE+IHwgUjEpKTogUHJvbWlzZTxSMT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50LmNvbmZpcm1UaGVuRXhlY3V0ZShjb25maXJtLCBvcGVyYXRpb24pO1xuICB9XG5cblxuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5pc0FjdGl2ZSgpO1xuICB9XG5cbiAgc3RhcnRBY3Rpdml0eTxEMSwgUjEsIEUxPihhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RDEsIFIxLCBFMT4+LCBkYXRhPzogRDEsIG9wdGlvbnM/OiBJbnRlcmFjdGlvbkNvbnRleHQuT3B0aW9ucyk6IFByb21pc2U8UjE+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5zdGFydEFjdGl2aXR5KGFjdGl2aXR5VHlwZSwgZGF0YSwgb3B0aW9ucyk7XG4gIH1cblxuICBvblRhYkNoYW5nZWQoJGV2ZW50OiBNYXRUYWJDaGFuZ2VFdmVudCkge1xuICAgIGlmICgkZXZlbnQuaW5kZXggPT09IDEpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5ub3RpZnlSZWFkeSh0cnVlKSwgdGhpcy5hbmltYXRpb25EdXJhdGlvbk1pbGxpcylcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudC5ub3RpZnlSZWFkeShmYWxzZSlcbiAgICB9XG4gIH1cbn1cbiIsIjxtYXQtdGFiLWdyb3VwIG5vLXRhYi1oZWFkZXIgW3NlbGVjdGVkSW5kZXhdPVwiaXNBY3RpdmUoKSA/IDEgOiAwXCIgZnVsbC1oZWlnaHQtdGFic1xuICAgICAgICAgICAgICAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIFtkeW5hbWljSGVpZ2h0XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgIFthbmltYXRpb25EdXJhdGlvbl09XCJhbmltYXRpb25EdXJhdGlvblwiPlxuICA8bWF0LXRhYj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LXRhYj5cbiAgPG1hdC10YWI+XG4gICAgPGF1cC1hY3Rpdml0eS1jb250YWluZXIgI2FjdGl2aXR5Q29udGFpbmVyIFtkeW5hbWljSGVpZ2h0XT1cImZhbHNlXCI+PC9hdXAtYWN0aXZpdHktY29udGFpbmVyPlxuICA8L21hdC10YWI+XG48L21hdC10YWItZ3JvdXA+XG5cbiJdfQ==