@coolon/angular-ui-powerups 16.1.0-aplpha.189 → 16.1.0-aplpha.19

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 (254) hide show
  1. package/README.md +0 -4
  2. package/assets/activities/activities.scss +3 -5
  3. package/assets/activities/input-activities.scss +6 -14
  4. package/assets/form.scss +27 -74
  5. package/assets/icons.scss +0 -1
  6. package/assets/styles.scss +0 -2
  7. package/assets/table.scss +19 -41
  8. package/assets/tabs.scss +5 -15
  9. package/esm2022/lib/animations/slide-animations.mjs +10 -15
  10. package/esm2022/lib/components/cards/abstract-card-container.component.mjs +5 -28
  11. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
  12. package/esm2022/lib/components/commands/command/command.component.mjs +29 -34
  13. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +3 -11
  14. package/esm2022/lib/components/commands/command-face.mjs +11 -12
  15. package/esm2022/lib/components/commands/group/popup-aware.component.mjs +8 -31
  16. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +13 -15
  17. package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +20 -11
  18. package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +7 -12
  19. package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +20 -11
  20. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +2 -2
  21. package/esm2022/lib/components/commands/separator.component.mjs +12 -6
  22. package/esm2022/lib/components/components.module.mjs +30 -55
  23. package/esm2022/lib/components/disposable-component.mjs +7 -32
  24. package/esm2022/lib/components/exports.mjs +6 -14
  25. package/esm2022/lib/components/forms/abstract-input.component.mjs +12 -55
  26. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +4 -4
  27. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +6 -8
  28. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +4 -4
  29. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +9 -86
  30. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +3 -40
  31. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +10 -11
  32. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +11 -30
  33. package/esm2022/lib/components/forms/text-input/text-input.component.mjs +4 -8
  34. package/esm2022/lib/components/icon/icon.component.mjs +4 -7
  35. package/esm2022/lib/components/loadable-component.mjs +10 -32
  36. package/esm2022/lib/components/resize-aware.component.mjs +24 -61
  37. package/esm2022/lib/components/switch-case/switch-case.component.mjs +7 -5
  38. package/esm2022/lib/components/tables/abstract-table-model.mjs +63 -112
  39. package/esm2022/lib/components/tables/abstract-table.component.mjs +5 -19
  40. package/esm2022/lib/components/tables/column/column-list-model.mjs +44 -0
  41. package/esm2022/lib/components/tables/column/column-model.mjs +6 -16
  42. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  43. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
  44. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
  45. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
  46. package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
  47. package/esm2022/lib/components/tables/column/selection-column-model.mjs +13 -35
  48. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +2 -2
  49. package/esm2022/lib/components/tables/editor/edit-session.mjs +1 -1
  50. package/esm2022/lib/components/tables/editor/editable-cell-renderer.mjs +1 -1
  51. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +2 -4
  52. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +2 -16
  53. package/esm2022/lib/components/tables/paginator/paginator.component.mjs +1 -1
  54. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +5 -23
  55. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
  56. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +4 -7
  57. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +40 -150
  58. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +6 -6
  59. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +33 -0
  60. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +60 -0
  61. package/esm2022/lib/components/tables/table/table-model.mjs +3 -12
  62. package/esm2022/lib/components/tables/table/table.component.mjs +61 -39
  63. package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +84 -0
  64. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +4 -5
  65. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
  66. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  67. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +5 -12
  68. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +7 -4
  69. package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
  70. package/esm2022/lib/components/types/loadable.mjs +2 -0
  71. package/esm2022/lib/directives/command.directive.mjs +7 -18
  72. package/esm2022/lib/directives/directives.module.mjs +1 -1
  73. package/esm2022/lib/directives/exports.mjs +1 -2
  74. package/esm2022/lib/directives/highlight.pipe.mjs +8 -9
  75. package/esm2022/lib/interaction/abstract-interaction-context.mjs +7 -6
  76. package/esm2022/lib/interaction/activity.mjs +21 -20
  77. package/esm2022/lib/interaction/alert.mjs +2 -2
  78. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +8 -11
  79. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +41 -1
  80. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +16 -28
  81. package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +2 -8
  82. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +15 -46
  83. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +15 -53
  84. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
  85. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
  86. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
  87. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
  88. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +10 -10
  89. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +8 -4
  90. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +8 -4
  91. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +9 -7
  92. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  93. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +4 -4
  94. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +5 -21
  95. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
  96. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +35 -40
  97. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +9 -10
  98. package/esm2022/lib/interaction/confirm.mjs +2 -26
  99. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
  100. package/esm2022/lib/interaction/exports.mjs +1 -6
  101. package/esm2022/lib/interaction/interaction-context.mjs +2 -3
  102. package/esm2022/lib/interaction/interaction.module.mjs +14 -22
  103. package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
  104. package/esm2022/lib/interaction/services/interaction.service.mjs +6 -18
  105. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +2 -2
  106. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +4 -23
  107. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +5 -4
  108. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +9 -7
  109. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
  110. package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +1 -1
  111. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  112. package/esm2022/lib/place/guards/place.guard.mjs +5 -6
  113. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  114. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +6 -3
  115. package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -2
  116. package/esm2022/lib/place/place-auth-service.mjs +6 -7
  117. package/esm2022/lib/place/place-component.mjs +19 -29
  118. package/esm2022/lib/place/place-definition.mjs +4 -15
  119. package/esm2022/lib/place/place-history.mjs +2 -2
  120. package/esm2022/lib/place/place-router.mjs +53 -67
  121. package/esm2022/lib/place/place.decorator.mjs +2 -2
  122. package/esm2022/lib/place/place.module.mjs +5 -1
  123. package/esm2022/lib/place/route/formatter.mjs +2 -2
  124. package/esm2022/lib/place/route/parameter-decorators.mjs +50 -54
  125. package/esm2022/lib/place/route/parameter-definition.mjs +2 -6
  126. package/esm2022/lib/place/route/parameter-sanitiser.mjs +2 -7
  127. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  128. package/esm2022/lib/place/visit-segment.mjs +2 -2
  129. package/esm2022/lib/place/visit.mjs +2 -2
  130. package/fesm2022/coolon-angular-ui-powerups.mjs +1135 -2553
  131. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  132. package/lib/animations/slide-animations.d.ts +0 -1
  133. package/lib/components/cards/abstract-card-container.component.d.ts +3 -6
  134. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  135. package/lib/components/commands/command/command.component.d.ts +8 -8
  136. package/lib/components/commands/command-face/command-face.component.d.ts +0 -2
  137. package/lib/components/commands/command-face.d.ts +9 -8
  138. package/lib/components/commands/group/popup-aware.component.d.ts +4 -9
  139. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
  140. package/lib/components/commands/group/popup-menu/more-menu.component.d.ts +4 -2
  141. package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +0 -2
  142. package/lib/components/commands/group/popup-menu/popup-menu.component.d.ts +4 -2
  143. package/lib/components/commands/separator.component.d.ts +4 -2
  144. package/lib/components/components.module.d.ts +55 -60
  145. package/lib/components/disposable-component.d.ts +3 -16
  146. package/lib/components/exports.d.ts +5 -13
  147. package/lib/components/forms/abstract-input.component.d.ts +5 -13
  148. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +0 -2
  149. package/lib/components/forms/number-input/number-input.component.d.ts +4 -16
  150. package/lib/components/forms/password-input/password-input.component.d.ts +1 -7
  151. package/lib/components/forms/select-input/select-input.component.d.ts +3 -4
  152. package/lib/components/forms/string-input/string-input.component.d.ts +1 -7
  153. package/lib/components/forms/text-input/text-input.component.d.ts +0 -3
  154. package/lib/components/loadable-component.d.ts +5 -11
  155. package/lib/components/resize-aware.component.d.ts +5 -24
  156. package/lib/components/switch-case/switch-case.component.d.ts +3 -2
  157. package/lib/components/tables/abstract-table-model.d.ts +25 -50
  158. package/lib/components/tables/abstract-table.component.d.ts +3 -4
  159. package/lib/components/tables/column/column-list-model.d.ts +13 -0
  160. package/lib/components/tables/column/column-model.d.ts +3 -7
  161. package/lib/components/tables/column/custom-template-column-model.d.ts +2 -3
  162. package/lib/components/tables/column/custom-value-column-model.d.ts +2 -3
  163. package/lib/components/tables/column/editor-controls-column-model.d.ts +2 -3
  164. package/lib/components/tables/column/list-propery-column-model.d.ts +2 -3
  165. package/lib/components/tables/column/property-column-model.d.ts +2 -3
  166. package/lib/components/tables/column/selection-column-model.d.ts +4 -10
  167. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +1 -1
  168. package/lib/components/tables/editor/edit-session.d.ts +1 -1
  169. package/lib/components/tables/filter/text-search-predicate.d.ts +0 -9
  170. package/lib/components/tables/renderer/cell-portal-ref.d.ts +12 -20
  171. package/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.d.ts +1 -1
  172. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +16 -40
  173. package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +3 -2
  174. package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +15 -0
  175. package/lib/components/tables/renderer/{table-custom-more-menu/table-custom-more-menu.component.d.ts → table-more-menu/table-more-menu.component.d.ts} +7 -8
  176. package/lib/components/tables/table/table-model.d.ts +4 -4
  177. package/lib/components/tables/table/table.component.d.ts +10 -14
  178. package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +28 -0
  179. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  180. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +2 -3
  181. package/lib/components/tables/tree-table/tree-table-component.d.ts +0 -3
  182. package/lib/components/tables/tree-table/tree-table-model.d.ts +5 -4
  183. package/lib/components/types/loadable.d.ts +5 -0
  184. package/lib/directives/command.directive.d.ts +4 -6
  185. package/lib/directives/exports.d.ts +0 -1
  186. package/lib/interaction/abstract-interaction-context.d.ts +1 -1
  187. package/lib/interaction/activity.d.ts +7 -7
  188. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -2
  189. package/lib/interaction/components/abstract-dialog.component.d.ts +14 -5
  190. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +9 -12
  191. package/lib/interaction/components/activity-body/activity-body.component.d.ts +1 -2
  192. package/lib/interaction/components/activity-container/activity-container.component.d.ts +4 -10
  193. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +3 -3
  194. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  195. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +1 -6
  196. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  197. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +3 -5
  198. package/lib/interaction/confirm.d.ts +0 -4
  199. package/lib/interaction/exports.d.ts +0 -5
  200. package/lib/interaction/interaction-context.d.ts +1 -7
  201. package/lib/interaction/interaction.module.d.ts +33 -35
  202. package/lib/interaction/services/interaction-service-routing-adapter.d.ts +2 -2
  203. package/lib/interaction/services/interaction.service.d.ts +1 -2
  204. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +1 -1
  205. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +1 -3
  206. package/lib/place/components/place-outlet/place-outlet.component.d.ts +4 -3
  207. package/lib/place/place-auth-service.d.ts +4 -4
  208. package/lib/place/place-component.d.ts +5 -7
  209. package/lib/place/place-definition.d.ts +0 -2
  210. package/lib/place/place-router.d.ts +3 -8
  211. package/lib/place/place.module.d.ts +5 -4
  212. package/lib/place/route/parameter-decorators.d.ts +4 -3
  213. package/lib/place/route/parameter-definition.d.ts +2 -2
  214. package/lib/place/route/parameter-sanitiser.d.ts +0 -7
  215. package/package.json +4 -6
  216. package/assets/draw.scss +0 -20
  217. package/assets/layout.scss +0 -3
  218. package/esm2022/lib/components/commands/button-renderer/button-renderer.component.mjs +0 -115
  219. package/esm2022/lib/components/file/file-download/file-download.component.mjs +0 -89
  220. package/esm2022/lib/components/forms/form-field.mjs +0 -2
  221. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +0 -33
  222. package/esm2022/lib/components/tables/column/column-manager.mjs +0 -81
  223. package/esm2022/lib/components/tables/column/column-order-manager.mjs +0 -19
  224. package/esm2022/lib/components/tables/footer/footer-row-model.mjs +0 -38
  225. package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +0 -7
  226. package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +0 -2
  227. package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +0 -153
  228. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +0 -45
  229. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +0 -71
  230. package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +0 -30
  231. package/esm2022/lib/directives/resize-observer.directive.mjs +0 -40
  232. package/esm2022/lib/interaction/activity-context.mjs +0 -4
  233. package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +0 -55
  234. package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +0 -54
  235. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +0 -134
  236. package/esm2022/lib/interaction/interaction-context-provider.mjs +0 -17
  237. package/lib/components/commands/button-renderer/button-renderer.component.d.ts +0 -30
  238. package/lib/components/file/file-download/file-download.component.d.ts +0 -45
  239. package/lib/components/forms/form-field.d.ts +0 -5
  240. package/lib/components/forms/search-input/search-input.component.d.ts +0 -10
  241. package/lib/components/tables/column/column-manager.d.ts +0 -19
  242. package/lib/components/tables/column/column-order-manager.d.ts +0 -20
  243. package/lib/components/tables/footer/footer-row-model.d.ts +0 -22
  244. package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +0 -6
  245. package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +0 -7
  246. package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +0 -42
  247. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +0 -19
  248. package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +0 -11
  249. package/lib/directives/resize-observer.directive.d.ts +0 -16
  250. package/lib/interaction/activity-context.d.ts +0 -9
  251. package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +0 -17
  252. package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +0 -15
  253. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +0 -53
  254. package/lib/interaction/interaction-context-provider.d.ts +0 -11
@@ -1,4 +1,3 @@
1
- import { MultipleSelectionModel } from "@coolon/pectin";
2
1
  import { AbstractTableModel } from "../abstract-table-model";
3
2
  /**
4
3
  * Example:
@@ -93,16 +92,8 @@ export class TableModel extends AbstractTableModel {
93
92
  this._filteredRows$.setDelegate(filteredRows$);
94
93
  this._visibleRows$.setDelegate(visibleRows$);
95
94
  }
96
- get isUsingTemporarySelectionModel$() {
97
- return this.selectionColumnModel.isUsingTemporarySelectionModel$;
98
- }
99
- async withTemporaryMultipleSelectionModel(process) {
100
- return this.selectionColumnModel.withTemporarySelectionModel(garbage => {
101
- return new MultipleSelectionModel(this.filteredRows$, {
102
- identifiedWith: this.dataSource$.identityOf,
103
- disposedWith: garbage
104
- });
105
- }, process);
95
+ addSelectionColumn(selectionModel, showSelectionColumn) {
96
+ return this._addSelectionColumn(selectionModel, showSelectionColumn);
106
97
  }
107
98
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90YWJsZS90YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBSUwsc0JBQXNCLEVBSXZCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThFRztBQUNILE1BQU0sT0FBTyxVQUErQixTQUFRLGtCQUF1QjtJQUV6RSxZQUFZLGFBQThCLEVBQUUsT0FBMEM7UUFDcEYsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNmO1FBQ0QsSUFBSSxhQUFhLEVBQUU7WUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsYUFBNkIsRUFBRSxZQUE0QjtRQUNyRSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSwrQkFBK0I7UUFDakMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsK0JBQStCLENBQUM7SUFDbkUsQ0FBQztJQUVELEtBQUssQ0FBQyxtQ0FBbUMsQ0FBSSxPQUF5RTtRQUNwSCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNyRSxPQUFPLElBQUksc0JBQXNCLENBQWMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDakUsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVTtnQkFDM0MsWUFBWSxFQUFFLE9BQU87YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2QsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIENhblByb3h5LFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBMaXN0TW9kZWwsXG4gIE11bHRpcGxlU2VsZWN0aW9uTW9kZWwsXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBTZWxlY3Rpb25Nb2RlbCxcbiAgVmFsdWVNb2RlbFxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7QWJzdHJhY3RUYWJsZU1vZGVsfSBmcm9tIFwiLi4vYWJzdHJhY3QtdGFibGUtbW9kZWxcIjtcbmltcG9ydCB7U2VsZWN0aW9uQ29sdW1uTW9kZWx9IGZyb20gXCIuLi9jb2x1bW4vc2VsZWN0aW9uLWNvbHVtbi1tb2RlbFwiO1xuXG4vKipcbiAqIEV4YW1wbGU6XG4gKiBAZXhhbXBsZVxuICogY29uc3QgbW9kZWwgPSBuZXcgVGFibGVNb2RlbChoZXJvTGlzdCwgdGFibGUgPT4ge1xuICogICB0YWJsZS5wbHVjayhcImZpcnN0TmFtZVwiKTtcbiAqICAgdGFibGUucGx1Y2soXCJsYXN0TmFtZVwiKTtcbiAqICAgdGFibGUuYWRkQ3VzdG9tQ29sdW1uKFwiZnVsbE5hbWVcIiwgaGVybyA9PiBgJHtoZXJvLmZpcnN0TmFtZX0gJHtoZXJvLmxhc3ROYW1lfWApO1xuICogfSk7XG4gKlxuICogRWRpdGFibGUgdGFibGVzXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2F2ZUNvbW1hbmQgPSBVbmFyeUNvbW1hbmQuY3JlYXRlKChmb3JtOiBGb3JtPEhlcm8+KSA9PiB7XG4gKiAgIGlmIChmb3JtLnZhbGlkYXRlKCkpIHtcbiAqICAgICAvLyBub3JtYWwgZm9ybSBzYXZlIHN0dWZmXG4gKiAgICAgcmV0dXJuIHRydWU7IC8vIGZpbmlzaCBlZGl0aW5nXG4gKiAgIH1cbiAqICAgcmV0dXJuIGZhbHNlOyAvLyBjb250aW51ZSBlZGl0aWluZ1xuICogfVxuICogY29uc3QgY29sb3JzTmFtZXM6IExpc3RNb2RlbDxzdHJpbmc+ID0gLi4uO1xuICogY29uc3QgbW9kZWwgPSBUYWJsZU1vZGVsLmZyb21MaXN0KGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmlyc3ROYW1lXCIpLmNlbGxFZGl0b3IoU3RyaW5nSW5wdXRDb21wb25lbnQpOyA8LS0gaW50ZXJmYWNlIENlbGxFZGl0b3IgeyB2YWx1ZU1vZGVsOiAgRGlydHlUcmFja2luZ0Zvcm0uVmFsdWVNb2RlbDxzdHJpbmc+IHwgVmFsdWVNb2RlbDxzdHJpbmc+OyB9XG4gKiAgIHRhYmxlLnBsdWNrKFwibGFzdE5hbWVcIikuY2VsbEVkaXRvcihTdHJpbmdJbnB1dENvbXBvbmVudCwge1xuICogICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3IucHJlc2VudChcIldlIG5lZWQgYSBsYXN0IG5hbWVcIildXG4gKiAgIH0pO1xuICogICB0YWJsZS5wbHVjayhcImFnZVwiKS5jZWxsRWRpdG9yKE51bWJlcklucHV0Q29tcG9uZW50KTtcbiAqICAgdGFibGUucGx1Y2soXCJmYXZvcml0ZUNvbG9yXCIpLmNlbGxFZGl0b3IoU2VsZWN0SW5wdXRDb21wb25lbnQsIHtcbiAqICAgICBpbml0aWFsaXNlQ29tcG9uZW50KGNvbXBvbmVudDogU2VsZWN0SW5wdXRDb21wb25lbnQpIHtcbiAqICAgICAgIHNlbGVjdElucHV0Lm9wdGlvbnNNb2RlbCA9IGNvbG9yc05hbWVzOyAvLyA8LSBpbml0aWFsaXNlIG91ciBjb21wb25lbnRcbiAqICAgICB9XG4gKiAgIH0pO1xuICogICB0YWJsZS5hZGRFZGl0Q29udHJvbHMoc2F2ZUNvbW1hbmQpOyAvLyA8LSByZXF1aXJlZCB0byBlbmFibGUgZWRpdGluZ1xuICogfSk7XG4gKlxuICogU2VsZWN0aW9uIG1vZGVsc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IG1vZGVsID0gbmV3IFRhYmxlTW9kZWwoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUuYWRkU2VsZWN0aW9uQ29sdW1uKHNlbGVjdGlvbk1vZGVsKTsgLy8gPC0gY2FuIGJlIHNpbmdsZSBvciBtdWx0aXBsZSBzZWxlY3Rpb24gbW9kZWxcbiAqICAgdGFibGUucGx1Y2soXCJmaXJzdE5hbWVcIik7XG4gKiAgIHRhYmxlLnBsdWNrKFwibGFzdE5hbWVcIik7XG4gKiB9KTtcbiAqXG4gKiBDdXN0b20gY2VsbCByZW5kZXJlcnMgYW5kIGVkaXRvcnNcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmF2b3JpdGVDb2xvclwiKVxuICogICAgICAuY2VsbEhlYWRlclJlbmRlcmVyKENlbGxIZWFkZXJSZW5kZXJlckNvbXBvbmVudCwgKGNvbXBvbmVudCwgY29sdW1uKSA9PiB7XG4gKiAgICAgICAgLy8gY29uZmlndXJlIHlvdXIgY29tcG9uZW50IHdpdGggd2hhdCBldmVyIHlvdSBuZWVkLlxuICogICAgICB9KTtcbiAqICAgICAgLmNlbGxSZW5kZXJlcihDZWxsUmVuZGVyZXJDb21wb25lbnQpIC8vIDwtLSBpbnRlcmZhY2UgQ2VsbEVkaXRvciB7IHZhbHVlOiBzdHJpbmc7IH1cbiAqICAgICAgLmNlbGxFZGl0b3IoQ2VsbEVkaXRvckNvbXBvbmVudC4pOyAvLyA8LS0gaW50ZXJmYWNlIENlbGxFZGl0b3IgeyB2YWx1ZU1vZGVsOiAgRGlydHlUcmFja2luZ0Zvcm0uVmFsdWVNb2RlbDxzdHJpbmc+IHwgVmFsdWVNb2RlbDxzdHJpbmc+OyB9XG4gKiAgIHRhYmxlLmFkZEN1c3RvbUNvbHVtbihcImZ1bGxOYW1lXCIsIGhlcm8gPT4gYCR7aGVyby5maXJzdE5hbWV9ICR7aGVyby5sYXN0TmFtZX1gKTtcbiAqIH0pO1xuICpcbiAqIFRlbXBsYXRlIGNvbHVtbnNcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLmFkZFNlbGVjdGlvbkNvbHVtbihzZWxlY3Rpb25Nb2RlbCk7IC8vIDwtIGNhbiBiZSBzaW5nbGUgb3IgbXVsdGlwbGUgc2VsZWN0aW9uIG1vZGVsXG4gKiAgIHRhYmxlLmFkZFRlbXBsYXRlQ29sdW1uKFwibXlUZW1wbGF0ZVwiKTtcbiAqIH0pO1xuICpcbiAqIDxkaXYgKmF1cENvbHVtblRlbXBsYXRlPVwibGV0IGhlcm87IGNvbHVtbklkOiAnbXlUZW1wbGF0ZSdcIj57e2hlcm8uYWdlfX08L2Rpdj5cbiAqXG4gKiBJMThuXG4gKiBAZXhhbXBsZVxuICogW3RhYmxlLnltbF1cbiAqIHRhYmxlOlxuICogICBjb2x1bW5zKENvbHVtblRleHRQcm9wZXJ0aWVzW10pOlxuICogICAgICBmaXJzdE5hbWU6XG4gKiAgICAgICAgIGhlYWRlclRleHQ6IFwiRmlyc3QgTmFtZVwiXG4gKiAgICAgIGZ1bGxOYW1lOlxuICogICAgICAgICBoZWFkZXJUZXh0OiBcIkZ1bGwgTmFtZVwiXG4gKlxuICogY29uc3QgbW9kZWwgPSBuZXcgVGFibGVNb2RlbChoZXJvTGlzdCwgdGFibGUgPT4ge1xuICogICB0YWJsZS5wbHVjayhcImZhdm9yaXRlQ29sb3JcIikuY2VsbFJlbmRlcmVyKC4uLikuY2VsbEVkaXRvciguLi4pO1xuICogICB0YWJsZS5hZGRDdXN0b21Db2x1bW4oXCJmdWxsTmFtZVwiLCBoZXJvID0+IGAke2hlcm8uZmlyc3ROYW1lfSAke2hlcm8ubGFzdE5hbWV9YCk7XG4gKlxuICogICB0YWJsZS5jb2x1bW5UZXh0UHJvcGVydGllcyhJMThuLnRhYmxlLmNvbHVtbnMpOyAvLyA8LSBjb25maWd1cmVzIGFsbCBjb2x1bW5zXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIFRhYmxlTW9kZWw8Um93IGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIEFic3RyYWN0VGFibGVNb2RlbDxSb3c+IHtcblxuICBjb25zdHJ1Y3Rvcihzb3VyY2VPZlRydXRoPzogTGlzdE1vZGVsPFJvdz4sIGJ1aWxkZXI/OiAodGFibGU6IFRhYmxlTW9kZWw8Um93PikgPT4gdm9pZCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKGJ1aWxkZXIpIHtcbiAgICAgIGJ1aWxkZXIodGhpcyk7XG4gICAgfVxuICAgIGlmIChzb3VyY2VPZlRydXRoKSB7XG4gICAgICB0aGlzLnNldERhdGFTb3VyY2Uoc291cmNlT2ZUcnV0aCk7XG4gICAgfVxuICB9XG5cbiAgYmluZFRvVGFibGUoZmlsdGVyZWRSb3dzJDogTGlzdE1vZGVsPFJvdz4sIHZpc2libGVSb3dzJDogTGlzdE1vZGVsPFJvdz4pIHtcbiAgICB0aGlzLl9maWx0ZXJlZFJvd3MkLnNldERlbGVnYXRlKGZpbHRlcmVkUm93cyQpXG4gICAgdGhpcy5fdmlzaWJsZVJvd3MkLnNldERlbGVnYXRlKHZpc2libGVSb3dzJCk7XG4gIH1cblxuICBnZXQgaXNVc2luZ1RlbXBvcmFyeVNlbGVjdGlvbk1vZGVsJCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbC5pc1VzaW5nVGVtcG9yYXJ5U2VsZWN0aW9uTW9kZWwkO1xuICB9XG5cbiAgYXN5bmMgd2l0aFRlbXBvcmFyeU11bHRpcGxlU2VsZWN0aW9uTW9kZWw8Uj4ocHJvY2VzczogKHNlbGVjdGlvbk1vZGVsOiBNdWx0aXBsZVNlbGVjdGlvbk1vZGVsPFJvdywgYW55PikgPT4gUHJvbWlzZTxSPikge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkNvbHVtbk1vZGVsLndpdGhUZW1wb3JhcnlTZWxlY3Rpb25Nb2RlbChnYXJiYWdlID0+IHtcbiAgICAgIHJldHVybiBuZXcgTXVsdGlwbGVTZWxlY3Rpb25Nb2RlbDxSb3csIHN0cmluZz4odGhpcy5maWx0ZXJlZFJvd3MkLCB7XG4gICAgICAgIGlkZW50aWZpZWRXaXRoOiB0aGlzLmRhdGFTb3VyY2UkLmlkZW50aXR5T2YsXG4gICAgICAgIGRpc3Bvc2VkV2l0aDogZ2FyYmFnZVxuICAgICAgfSk7XG4gICAgfSwgcHJvY2Vzcyk7XG4gIH1cblxuXG59XG5cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90YWJsZS90YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUczRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEVHO0FBQ0gsTUFBTSxPQUFPLFVBQWdCLFNBQVEsa0JBQXVCO0lBRTFELFlBQVksYUFBOEIsRUFBRSxPQUEwQztRQUNwRixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxhQUE2QixFQUFFLFlBQTRCO1FBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxjQUFvQyxFQUFFLG1CQUFtRDtRQUMxRyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xpc3RNb2RlbCwgU2VsZWN0aW9uTW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtBYnN0cmFjdFRhYmxlTW9kZWx9IGZyb20gXCIuLi9hYnN0cmFjdC10YWJsZS1tb2RlbFwiO1xuaW1wb3J0IHtTZWxlY3Rpb25Db2x1bW5Nb2RlbH0gZnJvbSBcIi4uL2NvbHVtbi9zZWxlY3Rpb24tY29sdW1uLW1vZGVsXCI7XG5cbi8qKlxuICogRXhhbXBsZTpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmlyc3ROYW1lXCIpO1xuICogICB0YWJsZS5wbHVjayhcImxhc3ROYW1lXCIpO1xuICogICB0YWJsZS5hZGRDdXN0b21Db2x1bW4oXCJmdWxsTmFtZVwiLCBoZXJvID0+IGAke2hlcm8uZmlyc3ROYW1lfSAke2hlcm8ubGFzdE5hbWV9YCk7XG4gKiB9KTtcbiAqXG4gKiBFZGl0YWJsZSB0YWJsZXNcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzYXZlQ29tbWFuZCA9IFVuYXJ5Q29tbWFuZC5jcmVhdGUoKGZvcm06IEZvcm08SGVybz4pID0+IHtcbiAqICAgaWYgKGZvcm0udmFsaWRhdGUoKSkge1xuICogICAgIC8vIG5vcm1hbCBmb3JtIHNhdmUgc3R1ZmZcbiAqICAgICByZXR1cm4gdHJ1ZTsgLy8gZmluaXNoIGVkaXRpbmdcbiAqICAgfVxuICogICByZXR1cm4gZmFsc2U7IC8vIGNvbnRpbnVlIGVkaXRpaW5nXG4gKiB9XG4gKiBjb25zdCBjb2xvcnNOYW1lczogTGlzdE1vZGVsPHN0cmluZz4gPSAuLi47XG4gKiBjb25zdCBtb2RlbCA9IFRhYmxlTW9kZWwuZnJvbUxpc3QoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUucGx1Y2soXCJmaXJzdE5hbWVcIikuY2VsbEVkaXRvcihTdHJpbmdJbnB1dENvbXBvbmVudCk7IDwtLSBpbnRlcmZhY2UgQ2VsbEVkaXRvciB7IHZhbHVlTW9kZWw6ICBEaXJ0eVRyYWNraW5nRm9ybS5WYWx1ZU1vZGVsPHN0cmluZz4gfCBWYWx1ZU1vZGVsPHN0cmluZz47IH1cbiAqICAgdGFibGUucGx1Y2soXCJsYXN0TmFtZVwiKS5jZWxsRWRpdG9yKFN0cmluZ0lucHV0Q29tcG9uZW50LCB7XG4gKiAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvci5wcmVzZW50KFwiV2UgbmVlZCBhIGxhc3QgbmFtZVwiKV1cbiAqICAgfSk7XG4gKiAgIHRhYmxlLnBsdWNrKFwiYWdlXCIpLmNlbGxFZGl0b3IoTnVtYmVySW5wdXRDb21wb25lbnQpO1xuICogICB0YWJsZS5wbHVjayhcImZhdm9yaXRlQ29sb3JcIikuY2VsbEVkaXRvcihTZWxlY3RJbnB1dENvbXBvbmVudCwge1xuICogICAgIGluaXRpYWxpc2VDb21wb25lbnQoY29tcG9uZW50OiBTZWxlY3RJbnB1dENvbXBvbmVudCkge1xuICogICAgICAgc2VsZWN0SW5wdXQub3B0aW9uc01vZGVsID0gY29sb3JzTmFtZXM7IC8vIDwtIGluaXRpYWxpc2Ugb3VyIGNvbXBvbmVudFxuICogICAgIH1cbiAqICAgfSk7XG4gKiAgIHRhYmxlLmFkZEVkaXRDb250cm9scyhzYXZlQ29tbWFuZCk7IC8vIDwtIHJlcXVpcmVkIHRvIGVuYWJsZSBlZGl0aW5nXG4gKiB9KTtcbiAqXG4gKiBTZWxlY3Rpb24gbW9kZWxzXG4gKiBAZXhhbXBsZVxuICogY29uc3QgbW9kZWwgPSBuZXcgVGFibGVNb2RlbChoZXJvTGlzdCwgdGFibGUgPT4ge1xuICogICB0YWJsZS5hZGRTZWxlY3Rpb25Db2x1bW4oc2VsZWN0aW9uTW9kZWwpOyAvLyA8LSBjYW4gYmUgc2luZ2xlIG9yIG11bHRpcGxlIHNlbGVjdGlvbiBtb2RlbFxuICogICB0YWJsZS5wbHVjayhcImZpcnN0TmFtZVwiKTtcbiAqICAgdGFibGUucGx1Y2soXCJsYXN0TmFtZVwiKTtcbiAqIH0pO1xuICpcbiAqIEN1c3RvbSBjZWxsIHJlbmRlcmVycyBhbmQgZWRpdG9yc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IG1vZGVsID0gbmV3IFRhYmxlTW9kZWwoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUucGx1Y2soXCJmYXZvcml0ZUNvbG9yXCIpXG4gKiAgICAgIC5jZWxsSGVhZGVyUmVuZGVyZXIoQ2VsbEhlYWRlclJlbmRlcmVyQ29tcG9uZW50LCAoY29tcG9uZW50LCBjb2x1bW4pID0+IHtcbiAqICAgICAgICAvLyBjb25maWd1cmUgeW91ciBjb21wb25lbnQgd2l0aCB3aGF0IGV2ZXIgeW91IG5lZWQuXG4gKiAgICAgIH0pO1xuICogICAgICAuY2VsbFJlbmRlcmVyKENlbGxSZW5kZXJlckNvbXBvbmVudCkgLy8gPC0tIGludGVyZmFjZSBDZWxsRWRpdG9yIHsgdmFsdWU6IHN0cmluZzsgfVxuICogICAgICAuY2VsbEVkaXRvcihDZWxsRWRpdG9yQ29tcG9uZW50Lik7IC8vIDwtLSBpbnRlcmZhY2UgQ2VsbEVkaXRvciB7IHZhbHVlTW9kZWw6ICBEaXJ0eVRyYWNraW5nRm9ybS5WYWx1ZU1vZGVsPHN0cmluZz4gfCBWYWx1ZU1vZGVsPHN0cmluZz47IH1cbiAqICAgdGFibGUuYWRkQ3VzdG9tQ29sdW1uKFwiZnVsbE5hbWVcIiwgaGVybyA9PiBgJHtoZXJvLmZpcnN0TmFtZX0gJHtoZXJvLmxhc3ROYW1lfWApO1xuICogfSk7XG4gKlxuICogVGVtcGxhdGUgY29sdW1uc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IG1vZGVsID0gbmV3IFRhYmxlTW9kZWwoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUuYWRkU2VsZWN0aW9uQ29sdW1uKHNlbGVjdGlvbk1vZGVsKTsgLy8gPC0gY2FuIGJlIHNpbmdsZSBvciBtdWx0aXBsZSBzZWxlY3Rpb24gbW9kZWxcbiAqICAgdGFibGUuYWRkVGVtcGxhdGVDb2x1bW4oXCJteVRlbXBsYXRlXCIpO1xuICogfSk7XG4gKlxuICogPGRpdiAqYXVwQ29sdW1uVGVtcGxhdGU9XCJsZXQgaGVybzsgY29sdW1uSWQ6ICdteVRlbXBsYXRlJ1wiPnt7aGVyby5hZ2V9fTwvZGl2PlxuICpcbiAqIEkxOG5cbiAqIEBleGFtcGxlXG4gKiBbdGFibGUueW1sXVxuICogdGFibGU6XG4gKiAgIGNvbHVtbnMoQ29sdW1uVGV4dFByb3BlcnRpZXNbXSk6XG4gKiAgICAgIGZpcnN0TmFtZTpcbiAqICAgICAgICAgaGVhZGVyVGV4dDogXCJGaXJzdCBOYW1lXCJcbiAqICAgICAgZnVsbE5hbWU6XG4gKiAgICAgICAgIGhlYWRlclRleHQ6IFwiRnVsbCBOYW1lXCJcbiAqXG4gKiBjb25zdCBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmF2b3JpdGVDb2xvclwiKS5jZWxsUmVuZGVyZXIoLi4uKS5jZWxsRWRpdG9yKC4uLik7XG4gKiAgIHRhYmxlLmFkZEN1c3RvbUNvbHVtbihcImZ1bGxOYW1lXCIsIGhlcm8gPT4gYCR7aGVyby5maXJzdE5hbWV9ICR7aGVyby5sYXN0TmFtZX1gKTtcbiAqXG4gKiAgIHRhYmxlLmNvbHVtblRleHRQcm9wZXJ0aWVzKEkxOG4udGFibGUuY29sdW1ucyk7IC8vIDwtIGNvbmZpZ3VyZXMgYWxsIGNvbHVtbnNcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgVGFibGVNb2RlbDxSb3c+IGV4dGVuZHMgQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz4ge1xuXG4gIGNvbnN0cnVjdG9yKHNvdXJjZU9mVHJ1dGg/OiBMaXN0TW9kZWw8Um93PiwgYnVpbGRlcj86ICh0YWJsZTogVGFibGVNb2RlbDxSb3c+KSA9PiB2b2lkKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoYnVpbGRlcikge1xuICAgICAgYnVpbGRlcih0aGlzKTtcbiAgICB9XG4gICAgaWYgKHNvdXJjZU9mVHJ1dGgpIHtcbiAgICAgIHRoaXMuc2V0RGF0YVNvdXJjZShzb3VyY2VPZlRydXRoKTtcbiAgICB9XG4gIH1cblxuICBiaW5kVG9UYWJsZShmaWx0ZXJlZFJvd3MkOiBMaXN0TW9kZWw8Um93PiwgdmlzaWJsZVJvd3MkOiBMaXN0TW9kZWw8Um93Pikge1xuICAgIHRoaXMuX2ZpbHRlcmVkUm93cyQuc2V0RGVsZWdhdGUoZmlsdGVyZWRSb3dzJClcbiAgICB0aGlzLl92aXNpYmxlUm93cyQuc2V0RGVsZWdhdGUodmlzaWJsZVJvd3MkKTtcbiAgfVxuXG4gIGFkZFNlbGVjdGlvbkNvbHVtbihzZWxlY3Rpb25Nb2RlbD86IFNlbGVjdGlvbk1vZGVsPFJvdz4sIHNob3dTZWxlY3Rpb25Db2x1bW4/OiBWYWx1ZU1vZGVsPGJvb2xlYW4+IHwgYm9vbGVhbik6IFNlbGVjdGlvbkNvbHVtbk1vZGVsPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLl9hZGRTZWxlY3Rpb25Db2x1bW4oc2VsZWN0aW9uTW9kZWwsIHNob3dTZWxlY3Rpb25Db2x1bW4pO1xuICB9XG59XG5cbiJdfQ==
@@ -1,13 +1,14 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Component, Injector, Input, ViewChild } from "@angular/core";
3
- import { CanProxy, DelegatingListModel, Dsl, Proxify, proxify, StoreInValueModel, ValueModel } from "@coolon/pectin";
2
+ import { Component, Injector, Input } from "@angular/core";
3
+ import { CanProxy, DelegatingListModel, Dsl, MutableValueModel, PagedListModel, Proxify, proxify, StoreInValueModel, ValueModel } from "@coolon/pectin";
4
4
  import { AbstractTableComponent } from '../abstract-table.component';
5
5
  import { TableFilterModel } from "../filter/table-filter-model";
6
- import { TableBodyComponent } from "../renderer/table-body/table-body.component";
7
6
  import { TableModel } from "./table-model";
8
7
  import * as i0 from "@angular/core";
9
- import * as i1 from "../../../directives/highlight-text-model.directive";
10
- import * as i2 from "../renderer/table-body/table-body.component";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "../../../directives/highlight-text-model.directive";
10
+ import * as i3 from "../paginator/paginator.component";
11
+ import * as i4 from "../renderer/table-body/table-body.component";
11
12
  /**
12
13
  * Create your model:
13
14
  * @example
@@ -75,30 +76,31 @@ export class TableComponent extends AbstractTableComponent {
75
76
  #filterModel_accessor_storage = proxify((TableFilterModel));
76
77
  get filterModel() { return this.#filterModel_accessor_storage; }
77
78
  set filterModel(value) { this.#filterModel_accessor_storage = value; }
78
- tableBody;
79
- #scrollMode$_accessor_storage = proxify((ValueModel));
80
- /**
81
- * Set to true to scroll mode to classic or virtual (default). Virtual scrolll performs better for large data sets but clamps the row height. Classic scroll
82
- * renders all rows but allows row heights to grow.
83
- */
84
- get scrollMode$() { return this.#scrollMode$_accessor_storage; }
85
- set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
86
- #scrollMode_accessor_storage;
87
- get scrollMode() { return this.#scrollMode_accessor_storage; }
88
- set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
79
+ #enablePaging$_accessor_storage = proxify((ValueModel));
80
+ get enablePaging$() { return this.#enablePaging$_accessor_storage; }
81
+ set enablePaging$(value) { this.#enablePaging$_accessor_storage = value; }
82
+ #enablePaging_accessor_storage = false;
83
+ get enablePaging() { return this.#enablePaging_accessor_storage; }
84
+ set enablePaging(value) { this.#enablePaging_accessor_storage = value; }
85
+ // enablePaging() {
86
+ // if (isNil(this.pageController)) {
87
+ // const pagedListModel = this.registerDisposable(PagedListModel.create(this._visibleRows$.getDelegate(), this._pageSize));
88
+ // this._visibleRows$.setDelegate(pagedListModel);
89
+ // this._pageController = pagedListModel.pageController;
90
+ // }
91
+ // }
89
92
  _footerContentAdded = false;
90
93
  _filteredRows$ = this.registerDisposable(new DelegatingListModel());
91
- tableBodyScrollMode$;
94
+ _pageSize = new MutableValueModel();
95
+ pagedListModel;
92
96
  constructor(injector) {
93
97
  super(injector);
94
- const { chain, when } = Dsl.disposeWith(this);
95
- this.tableBodyScrollMode$ = chain(this.enableScrolling$).map(enable => {
96
- return enable ? (this.scrollMode$.value ?? "virtual") : 'none';
97
- }, { dependsOn: this.scrollMode$ });
98
+ const { when } = Dsl.disposeWith(this);
99
+ this.onDispose(() => this.disposeOfPagedListModel());
100
+ when(this.enablePaging$).changes(enabled => this.configurePaging(enabled));
98
101
  }
99
102
  ngOnInit() {
100
103
  super.ngOnInit();
101
- const { when } = Dsl.disposeWith(this);
102
104
  if (CanProxy.hasTarget(this.filterModel)) {
103
105
  this.registerDisposable(this.filterModel.bindToTable(this._dataSource$, this.getModel().textSearchPredicate$));
104
106
  this.highlightText$.setDelegate(this.filterModel.highlightText$);
@@ -107,27 +109,50 @@ export class TableComponent extends AbstractTableComponent {
107
109
  else {
108
110
  this._filteredRows$.setDelegate(this._dataSource$);
109
111
  }
110
- this._visibleRows$.setDelegate(this._filteredRows$);
111
- // let users of the model know what the current visible and filtered rows are for selection models and what not
112
+ this.configurePaging(this.enablePaging$.value);
112
113
  this.tableModel.bindToTable(this._filteredRows$, this._visibleRows$);
113
- when.anyOf(...this.tableModel.viewStateDependencies).changes(() => this.cdr.markForCheck());
114
- this.viewStateDependsOn(this._filteredRows$, this.tableModel.visibleColumns$);
115
114
  }
116
115
  getModel() {
117
116
  return this.tableModel;
118
117
  }
118
+ get pageController() {
119
+ // TODO: need to support external page controllers if the paging occurs to our primary data source.
120
+ return this.pagedListModel.pageController;
121
+ }
122
+ configurePaging(enable) {
123
+ if (enable) {
124
+ if (!this.pagedListModel) {
125
+ this.pagedListModel = PagedListModel.create(this._filteredRows$, this._pageSize);
126
+ }
127
+ this._visibleRows$.setDelegate(this.pagedListModel);
128
+ }
129
+ else {
130
+ this.disposeOfPagedListModel();
131
+ this._visibleRows$.setDelegate(this._filteredRows$);
132
+ }
133
+ }
134
+ disposeOfPagedListModel() {
135
+ if (this.pagedListModel) {
136
+ this.pagedListModel.dispose();
137
+ this.pagedListModel = null;
138
+ }
139
+ }
119
140
  footerContentChanged($event) {
120
141
  // console.log($event);
121
142
  this._footerContentAdded = true;
122
143
  }
144
+ //@Trace()
145
+ updatePageSize(count) {
146
+ this._pageSize.value = count;
147
+ }
123
148
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
124
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableComponent, selector: "aup-table", inputs: { tableModel: "tableModel", filterModel: "filterModel", scrollMode$: "scrollMode$", scrollMode: "scrollMode" }, providers: [
149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableComponent, selector: "aup-table", inputs: { tableModel: "tableModel", filterModel: "filterModel", enablePaging$: "enablePaging$", enablePaging: "enablePaging" }, providers: [
125
150
  { provide: AbstractTableComponent, useExisting: TableComponent }
126
- ], viewQueries: [{ propertyName: "tableBody", first: true, predicate: TableBodyComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"$any(tableModel)\"\n [footerRow]=\"tableModel.footerRowModel\"\n [showHeader$]=\"$any(showHeader$)\"\n [scrollMode$]=\"tableBodyScrollMode$\"\n [trackBy]=\"trackBy\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer], [slot=footer]\"></ng-content></div>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: i2.TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "footerRow", "showHeader$", "showHeader", "trackBy", "scrollMode$", "scrollMode"] }] });
151
+ ], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n [trackBy]=\"trackBy\"\n (visibleRowCount)=\"updatePageSize($event)\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer]\"></ng-content></div>\n <aup-paginator *ngIf=\"enablePaging$.value\" [pageController]=\"pageController\"></aup-paginator>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: i3.PaginatorComponent, selector: "aup-paginator", inputs: ["pageController"] }, { kind: "component", type: i4.TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "showHeader$", "showHeader", "trackBy", "enableScrolling"], outputs: ["visibleRowCount"] }] });
127
152
  }
128
153
  __decorate([
129
154
  Proxify(),
130
- __metadata("design:type", TableModel)
155
+ __metadata("design:type", Object)
131
156
  ], TableComponent.prototype, "tableModel", null);
132
157
  __decorate([
133
158
  Proxify(),
@@ -135,27 +160,24 @@ __decorate([
135
160
  ], TableComponent.prototype, "filterModel", null);
136
161
  __decorate([
137
162
  Proxify(),
138
- __metadata("design:type", ValueModel)
139
- ], TableComponent.prototype, "scrollMode$", null);
163
+ __metadata("design:type", Object)
164
+ ], TableComponent.prototype, "enablePaging$", null);
140
165
  __decorate([
141
166
  StoreInValueModel(),
142
167
  __metadata("design:type", Object)
143
- ], TableComponent.prototype, "scrollMode", null);
168
+ ], TableComponent.prototype, "enablePaging", null);
144
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableComponent, decorators: [{
145
170
  type: Component,
146
171
  args: [{ selector: 'aup-table', providers: [
147
172
  { provide: AbstractTableComponent, useExisting: TableComponent }
148
- ], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"$any(tableModel)\"\n [footerRow]=\"tableModel.footerRowModel\"\n [showHeader$]=\"$any(showHeader$)\"\n [scrollMode$]=\"tableBodyScrollMode$\"\n [trackBy]=\"trackBy\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer], [slot=footer]\"></ng-content></div>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"] }]
173
+ ], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [showHeader$]=\"showHeader$\"\n [enableScrolling]=\"enableScrolling\"\n [trackBy]=\"trackBy\"\n (visibleRowCount)=\"updatePageSize($event)\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer]\"></ng-content></div>\n <aup-paginator *ngIf=\"enablePaging$.value\" [pageController]=\"pageController\"></aup-paginator>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"] }]
149
174
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { tableModel: [{
150
175
  type: Input
151
176
  }], filterModel: [{
152
177
  type: Input
153
- }], tableBody: [{
154
- type: ViewChild,
155
- args: [TableBodyComponent]
156
- }], scrollMode$: [{
178
+ }], enablePaging$: [{
157
179
  type: Input
158
- }], scrollMode: [{
180
+ }], enablePaging: [{
159
181
  type: Input
160
182
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBMEIsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFDTCxRQUFRLEVBQ1IsbUJBQW1CLEVBQ25CLEdBQUcsRUFFSCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBRXpDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJERztBQVNILE1BQU0sT0FBTyxjQUFtQyxTQUFRLHNCQUEyQjtJQUd4RSwrQkFBOEIsT0FBTyxDQUFDLENBQUEsVUFBZSxDQUFBLENBQUMsQ0FBQztJQUF2RCxJQUFBLFVBQVUsZ0RBQTZDO0lBQXZELElBQUEsVUFBVSxzREFBNkM7SUFHdkQsZ0NBQWMsT0FBTyxDQUFDLENBQUEsZ0JBQXFCLENBQUEsQ0FBQyxD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LEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQztTQUMvRCxxRUFVVSxrQkFBa0IsdUVDN0YvQixnaEJBV0E7O0FENkVXO0lBREMsT0FBTyxFQUFFOzhCQUNFLFVBQVU7Z0RBQWlDO0FBR3ZEO0lBREMsT0FBTyxFQUFFOztpREFDa0M7QUFVNUM7SUFEQyxPQUFPLEVBQUU7OEJBQ0csVUFBVTtpREFBNkU7QUFHcEc7SUFEQyxpQkFBaUIsRUFBRTs7Z0RBQ2tCOzJGQW5CcEMsY0FBYztrQkFSMUIsU0FBUzsrQkFDRSxXQUFXLGFBR1Y7d0JBQ1QsRUFBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxnQkFBZ0IsRUFBQztxQkFDL0Q7K0ZBS1EsVUFBVTtzQkFEbEIsS0FBSztnQkFJRyxXQUFXO3NCQURuQixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBUXBCLFdBQVc7c0JBRG5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIENhblByb3h5LFxuICBEZWxlZ2F0aW5nTGlzdE1vZGVsLFxuICBEc2wsXG4gIExpc3RNb2RlbCxcbiAgUHJveGlmeSxcbiAgcHJveGlmeSxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge0Fic3RyYWN0VGFibGVNb2RlbH0gZnJvbSAnLi4vYWJzdHJhY3QtdGFibGUtbW9kZWwnO1xuaW1wb3J0IHtBYnN0cmFjdFRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtUYWJsZUZpbHRlck1vZGVsfSBmcm9tIFwiLi4vZmlsdGVyL3RhYmxlLWZpbHRlci1tb2RlbFwiO1xuaW1wb3J0IHtUYWJsZUJvZHlDb21wb25lbnR9IGZyb20gXCIuLi9yZW5kZXJlci90YWJsZS1ib2R5L3RhYmxlLWJvZHkuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlTW9kZWx9IGZyb20gXCIuL3RhYmxlLW1vZGVsXCI7XG5cbi8qKlxuICogQ3JlYXRlIHlvdXIgbW9kZWw6XG4gKiBAZXhhbXBsZVxuICogdGhpcy5oZXJvVGFibGVNb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmlyc3ROYW1lXCIpO1xuICogICB0YWJsZS5wbHVjayhcImxhc3ROYW1lXCIpO1xuICogICB0YWJsZS5hZGRDdXN0b21Db2x1bW4oXCJmdWxsTmFtZVwiLCBoZXJvID0+IGAke2hlcm8uZmlyc3ROYW1lfSAke2hlcm8ubGFzdE5hbWV9YCk7XG4gKiB9KTtcbiAqXG4gKiBDcmVhdGUgeW91ciB0YWJsZVxuICogQGV4YW1wbGVcbiAqIDxhdXAtdGFibGUgW3RhYmxlTW9kZWxdPVwiaGVyb1RhYmxlTW9kZWxcIj48L2F1cC10YWJsZT5cbiAqXG4gKiBDb2x1bW4gdGVtcGxhdGVzXG4gKiBAZXhhbXBsZVxuICogdGhpcy5oZXJvVGFibGVNb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmlyc3ROYW1lXCIpO1xuICogICB0YWJsZS5wbHVjayhcImxhc3ROYW1lXCIpO1xuICogICB0YWJsZS5hZGRUZW1wbGF0ZUNvbHVtbihcInNwZWNpYWxDb2x1bW5cIik7XG4gKiB9KTtcbiAqIDxhdXAtdGFibGUgW3RhYmxlTW9kZWxdPVwiaGVyb1RhYmxlTW9kZWxcIj5cbiAqICAgPGRpdiAqYXVwQ29sdW1uVGVtcGxhdGU9XCJsZXQgaGVybzsgY29sdW1uSWQ6ICdzcGVjaWFsQ29sdW1uJzsgZmlsbENlbGw6IHRydWU7IHBhZENoaWxkOmZhbHNlXCI+XG4gKiAgICAge3toZXJvLm5hbWV9fVxuICogICA8L2Rpdj5cbiAqIDwvYXVwLXRhYmxlPlxuICpcbiAqIFN0eWxpbmdcbiAqIEBleGFtcGxlXG4gKiAgLy8gZ2xvYmFsIHNldHRpbmdzXG4gKiA6cm9vdCB7XG4gKiAgIC0tYXVwLXRhYmxlLWNvbHVtbi1nYXA6IDEwcHg7IC8vIGRlZmF1bHRzIHRvIDI0cHhcbiAqICAgLS1hdXAtdGFibGUtcm93LWhvdmVyLWJhY2tncm91bmQtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wNSlcbiAqICAgLS1hdXAtdGFibGUtcm93LXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I6IHJlYmVjY2FwdXJwbGU7IC8vIGRlZmF1bHRzIHRvIHRyYW5zcGFyZW50XG4gKiAgIC0tYXVwLXRhYmxlLWZpcnN0LWNvbHVtbi1wYWRkaW5nLWxlZnQ6IDE4cHggLy8gZGVmYXVsdHMgdG8gLS1jb2x1bW4tZ2FwXG4gKiAgIC0tYXVwLXRhYmxlLWxhc3QtY29sdW1uLXBhZGRpbmctcmlnaHQ6IDE4cHggLy8gZGVmYXVsdHMgdG8gLS1jb2x1bW4tZ2FwXG4gKiB9XG4gKlxuICogLy8gcGVyIHRhYmxlIHNldHRpbmdzLlxuICogYXVwLXRhYmxlIHtcbiAqICAgLS1jb2x1bW4tZ2FwOiAxMHB4OyAvLyBkZWZhdWx0cyB0byAyNHB4XG4gKiAgIC0tcm93LWhvdmVyLWJhY2tncm91bmQtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wNSlcbiAqICAgLS1yb3ctc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvcjogcmViZWNjYXB1cnBsZTsgLy8gZGVmYXVsdHMgdG8gdHJhbnNwYXJlbnRcbiAqICAgLS1maXJzdC1jb2x1bW4tcGFkZGluZy1sZWZ0OiAxOHB4IC8vIGRlZmF1bHRzIHRvIC0tY29sdW1uLWdhcFxuICogICAtLWxhc3QtY29sdW1uLXBhZGRpbmctcmlnaHQ6IDE4cHggLy8gZGVmYXVsdHMgdG8gLS1jb2x1bW4tZ2FwXG4gKiAgIDo6bmctZGVlcCB7XG4gKiAgICAgIGF1cC10YWJsZS1oZWFkZXItY2VsbC1yZW5kZXJlcixcbiAqICAgICAgYXVwLXRhYmxlLWNlbGwtcmVuZGVyZXIge1xuICogICAgICAgICYuYXVwLWNvbC1teS1kYXNoZXJpc2VkLWNvbHVtbi1pZCB7XG4gKiAgICAgICAgICAvLyBkbyBzdHVmZlxuICogICAgICAgIH1cbiAqICAgICAgICAmLmZpcnN0LXZpc2libGUtY29sdW1uIHtcbiAqICAgICAgICAgIC8vIGRvIHN0dWZmXG4gKiAgICAgICAgfVxuICogICAgICAgICYubGFzdC12aXNpYmxlLWNvbHVtbiB7XG4gKiAgICAgICAgICAvLyBkbyBzdHVmZlxuICogICAgICAgIH1cbiAqICAgICAgfVxuICogICB9XG4gKiB9XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBBYnN0cmFjdFRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVGFibGVDb21wb25lbnR9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8Um93IGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIEFic3RyYWN0VGFibGVDb21wb25lbnQ8Um93PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciB0YWJsZU1vZGVsOiBUYWJsZU1vZGVsPFJvdz4gPSBwcm94aWZ5KFRhYmxlTW9kZWw8Um93Pik7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBmaWx0ZXJNb2RlbCA9IHByb3hpZnkoVGFibGVGaWx0ZXJNb2RlbDxSb3c+KVxuXG4gIEBWaWV3Q2hpbGQoVGFibGVCb2R5Q29tcG9uZW50KVxuICB0YWJsZUJvZHk6IFRhYmxlQm9keUNvbXBvbmVudDxSb3c+XG5cbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIHRvIHNjcm9sbCBtb2RlIHRvIGNsYXNzaWMgb3IgdmlydHVhbCAoZGVmYXVsdCkuICBWaXJ0dWFsIHNjcm9sbGwgcGVyZm9ybXMgYmV0dGVyIGZvciBsYXJnZSBkYXRhIHNldHMgYnV0IGNsYW1wcyB0aGUgcm93IGhlaWdodC4gIENsYXNzaWMgc2Nyb2xsXG4gICAqIHJlbmRlcnMgYWxsIHJvd3MgYnV0IGFsbG93cyByb3cgaGVpZ2h0cyB0byBncm93LlxuICAgKi9cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBzY3JvbGxNb2RlJDogVmFsdWVNb2RlbDxUYWJsZUNvbXBvbmVudC5TY3JvbGxNb2RlPiA9IHByb3hpZnkoVmFsdWVNb2RlbDxUYWJsZUNvbXBvbmVudC5TY3JvbGxNb2RlPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3Igc2Nyb2xsTW9kZTogVGFibGVDb21wb25lbnQuU2Nyb2xsTW9kZTtcblxuICBwcml2YXRlIF9mb290ZXJDb250ZW50QWRkZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJlZFJvd3MkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdMaXN0TW9kZWw8Um93PigpKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFibGVCb2R5U2Nyb2xsTW9kZSQ6IFZhbHVlTW9kZWw8VGFibGVCb2R5Q29tcG9uZW50LlNjcm9sbE1vZGU+O1xuXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICBjb25zdCB7Y2hhaW4sIHdoZW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMudGFibGVCb2R5U2Nyb2xsTW9kZSQgPSBjaGFpbih0aGlzLmVuYWJsZVNjcm9sbGluZyQpLm1hcChlbmFibGUgPT4ge1xuICAgICAgcmV0dXJuIGVuYWJsZSA/ICh0aGlzLnNjcm9sbE1vZGUkLnZhbHVlID8/IFwidmlydHVhbFwiKSBhcyBUYWJsZUJvZHlDb21wb25lbnQuU2Nyb2xsTW9kZSA6ICdub25lJ1xuICAgIH0sIHtkZXBlbmRzT246IHRoaXMuc2Nyb2xsTW9kZSR9KVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBjb25zdCB7d2hlbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgaWYgKENhblByb3h5Lmhhc1RhcmdldCh0aGlzLmZpbHRlck1vZGVsKSkge1xuICAgICAgdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUodGhpcy5maWx0ZXJNb2RlbC5iaW5kVG9UYWJsZSh0aGlzLl9kYXRhU291cmNlJCwgdGhpcy5nZXRNb2RlbCgpLnRleHRTZWFyY2hQcmVkaWNhdGUkKSk7XG4gICAgICB0aGlzLmhpZ2hsaWdodFRleHQkLnNldERlbGVnYXRlKHRoaXMuZmlsdGVyTW9kZWwuaGlnaGxpZ2h0VGV4dCQpO1xuICAgICAgdGhpcy5fZmlsdGVyZWRSb3dzJC5zZXREZWxlZ2F0ZSh0aGlzLmZpbHRlck1vZGVsLmZpbHRlcmVkUm93cyQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ZpbHRlcmVkUm93cyQuc2V0RGVsZWdhdGUodGhpcy5fZGF0YVNvdXJjZSQpO1xuICAgIH1cbiAgICB0aGlzLl92aXNpYmxlUm93cyQuc2V0RGVsZWdhdGUodGhpcy5fZmlsdGVyZWRSb3dzJCk7XG4gICAgLy8gbGV0IHVzZXJzIG9mIHRoZSBtb2RlbCBrbm93IHdoYXQgdGhlIGN1cnJlbnQgdmlzaWJsZSBhbmQgZmlsdGVyZWQgcm93cyBhcmUgZm9yIHNlbGVjdGlvbiBtb2RlbHMgYW5kIHdoYXQgbm90XG4gICAgdGhpcy50YWJsZU1vZGVsLmJpbmRUb1RhYmxlKHRoaXMuX2ZpbHRlcmVkUm93cyQsIHRoaXMuX3Zpc2libGVSb3dzJClcbiAgICB3aGVuLmFueU9mKC4uLnRoaXMudGFibGVNb2RlbC52aWV3U3RhdGVEZXBlbmRlbmNpZXMpLmNoYW5nZXMoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpXG4gICAgdGhpcy52aWV3U3RhdGVEZXBlbmRzT24odGhpcy5fZmlsdGVyZWRSb3dzJCwgdGhpcy50YWJsZU1vZGVsLnZpc2libGVDb2x1bW5zJCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0TW9kZWwoKTogQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWw7XG4gIH1cblxuICBmb290ZXJDb250ZW50Q2hhbmdlZCgkZXZlbnQ6IGFueSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCRldmVudCk7XG4gICAgdGhpcy5fZm9vdGVyQ29udGVudEFkZGVkID0gdHJ1ZTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFRhYmxlQ29tcG9uZW50IHtcbiAgZXhwb3J0IHR5cGUgU2Nyb2xsTW9kZSA9IE9taXQ8VGFibGVCb2R5Q29tcG9uZW50LlNjcm9sbE1vZGUsICdub25lJz47XG59XG4iLCI8YXVwLXRhYmxlLWJvZHkgW2RhdGEkXT1cInZpc2libGVSb3dzJFwiXG4gICAgICAgICAgICAgICAgW3RhYmxlTW9kZWxdPVwiJGFueSh0YWJsZU1vZGVsKVwiXG4gICAgICAgICAgICAgICAgW2Zvb3RlclJvd109XCJ0YWJsZU1vZGVsLmZvb3RlclJvd01vZGVsXCJcbiAgICAgICAgICAgICAgICBbc2hvd0hlYWRlciRdPVwiJGFueShzaG93SGVhZGVyJClcIlxuICAgICAgICAgICAgICAgIFtzY3JvbGxNb2RlJF09XCJ0YWJsZUJvZHlTY3JvbGxNb2RlJFwiXG4gICAgICAgICAgICAgICAgW3RyYWNrQnldPVwidHJhY2tCeVwiXG4gICAgICAgICAgICAgICAgW2F1cEhpZ2hsaWdodFRleHRNb2RlbF09XCJoaWdobGlnaHRUZXh0JFwiXG4+PC9hdXAtdGFibGUtYm9keT5cbjxzZWN0aW9uIGNsYXNzPVwidGFibGUtZm9vdGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJmb290ZXItY29udGVudFwiPjxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdLCBbc2xvdD1mb290ZXJdXCI+PC9uZy1jb250ZW50PjwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLG1CQUFtQixFQUNuQixHQUFHLEVBQ0gsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFFekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkRHO0FBU0gsTUFBTSxPQUFPLGNBQW9CLFNBQVEsc0JBQTJCO0lBR3pELCtCQUFhLE9BQU8sQ0FBQyxDQUFBLFVBQWUsQ0FBQSxDQUFDLENBQUM7SUFBdEMsSUFBQSxVQUFVLGdEQUE0QjtJQUF0QyxJQUFBLFVBQVUsc0RBQTRCO0lBR3RDLGdDQUFjLE9BQU8sQ0FBQyxDQUFBLGdCQUFxQixDQUFBLENBQUMsQ0FBQTtJQUE1QyxJQUFBLFdBQVcsaURBQWlDO0lBQTVD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SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBVztRQUM5Qix1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBQ0QsVUFBVTtJQUVWLGNBQWMsQ0FBQyxLQUFhO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO3VHQXRGVSxjQUFjOzJGQUFkLGNBQWMsb0tBSmQ7WUFDVCxFQUFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFDO1NBQy9ELGlEQ25GSCw0bEJBWUE7O0FENEVXO0lBREMsT0FBTyxFQUFFOztnREFDNEI7QUFHdEM7SUFEQyxPQUFPLEVBQUU7O2lEQUNrQztBQUk1QztJQURDLE9BQU8sRUFBRTs7bURBQ29DO0FBRzlDO0lBREMsaUJBQWlCLEVBQUU7O2tEQUNDOzJGQWJuQixjQUFjO2tCQVIxQixTQUFTOytCQUNFLFdBQVcsYUFHVjt3QkFDVCxFQUFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLGdCQUFnQixFQUFDO3FCQUMvRDsrRkFLUSxVQUFVO3NCQURsQixLQUFLO2dCQUlHLFdBQVc7c0JBRG5CLEtBQUs7Z0JBS0csYUFBYTtzQkFEckIsS0FBSztnQkFJRyxZQUFZO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQ2FuUHJveHksXG4gIERlbGVnYXRpbmdMaXN0TW9kZWwsXG4gIERzbCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFBhZ2VkTGlzdE1vZGVsLFxuICBQcm94aWZ5LFxuICBwcm94aWZ5LFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbFxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7QWJzdHJhY3RUYWJsZU1vZGVsfSBmcm9tICcuLi9hYnN0cmFjdC10YWJsZS1tb2RlbCc7XG5pbXBvcnQge0Fic3RyYWN0VGFibGVDb21wb25lbnR9IGZyb20gJy4uL2Fic3RyYWN0LXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQge1RhYmxlRmlsdGVyTW9kZWx9IGZyb20gXCIuLi9maWx0ZXIvdGFibGUtZmlsdGVyLW1vZGVsXCI7XG5pbXBvcnQge1RhYmxlTW9kZWx9IGZyb20gXCIuL3RhYmxlLW1vZGVsXCI7XG5cbi8qKlxuICogQ3JlYXRlIHlvdXIgbW9kZWw6XG4gKiBAZXhhbXBsZVxuICogdGhpcy5oZXJvVGFibGVNb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmlyc3ROYW1lXCIpO1xuICogICB0YWJsZS5wbHVjayhcImxhc3ROYW1lXCIpO1xuICogICB0YWJsZS5hZGRDdXN0b21Db2x1bW4oXCJmdWxsTmFtZVwiLCBoZXJvID0+IGAke2hlcm8uZmlyc3ROYW1lfSAke2hlcm8ubGFzdE5hbWV9YCk7XG4gKiB9KTtcbiAqXG4gKiBDcmVhdGUgeW91ciB0YWJsZVxuICogQGV4YW1wbGVcbiAqIDxhdXAtdGFibGUgW3RhYmxlTW9kZWxdPVwiaGVyb1RhYmxlTW9kZWxcIj48L2F1cC10YWJsZT5cbiAqXG4gKiBDb2x1bW4gdGVtcGxhdGVzXG4gKiBAZXhhbXBsZVxuICogdGhpcy5oZXJvVGFibGVNb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmlyc3ROYW1lXCIpO1xuICogICB0YWJsZS5wbHVjayhcImxhc3ROYW1lXCIpO1xuICogICB0YWJsZS5hZGRUZW1wbGF0ZUNvbHVtbihcInNwZWNpYWxDb2x1bW5cIik7XG4gKiB9KTtcbiAqIDxhdXAtdGFibGUgW3RhYmxlTW9kZWxdPVwiaGVyb1RhYmxlTW9kZWxcIj5cbiAqICAgPGRpdiAqYXVwQ29sdW1uVGVtcGxhdGU9XCJsZXQgaGVybzsgY29sdW1uSWQ6ICdzcGVjaWFsQ29sdW1uJzsgZmlsbENlbGw6IHRydWU7IHBhZENoaWxkOmZhbHNlXCI+XG4gKiAgICAge3toZXJvLm5hbWV9fVxuICogICA8L2Rpdj5cbiAqIDwvYXVwLXRhYmxlPlxuICpcbiAqIFN0eWxpbmdcbiAqIEBleGFtcGxlXG4gKiAgLy8gZ2xvYmFsIHNldHRpbmdzXG4gKiA6cm9vdCB7XG4gKiAgIC0tYXVwLXRhYmxlLWNvbHVtbi1nYXA6IDEwcHg7IC8vIGRlZmF1bHRzIHRvIDI0cHhcbiAqICAgLS1hdXAtdGFibGUtcm93LWhvdmVyLWJhY2tncm91bmQtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wNSlcbiAqICAgLS1hdXAtdGFibGUtcm93LXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I6IHJlYmVjY2FwdXJwbGU7IC8vIGRlZmF1bHRzIHRvIHRyYW5zcGFyZW50XG4gKiAgIC0tYXVwLXRhYmxlLWZpcnN0LWNvbHVtbi1wYWRkaW5nLWxlZnQ6IDE4cHggLy8gZGVmYXVsdHMgdG8gLS1jb2x1bW4tZ2FwXG4gKiAgIC0tYXVwLXRhYmxlLWxhc3QtY29sdW1uLXBhZGRpbmctcmlnaHQ6IDE4cHggLy8gZGVmYXVsdHMgdG8gLS1jb2x1bW4tZ2FwXG4gKiB9XG4gKlxuICogLy8gcGVyIHRhYmxlIHNldHRpbmdzLlxuICogYXVwLXRhYmxlIHtcbiAqICAgLS1jb2x1bW4tZ2FwOiAxMHB4OyAvLyBkZWZhdWx0cyB0byAyNHB4XG4gKiAgIC0tcm93LWhvdmVyLWJhY2tncm91bmQtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wNSlcbiAqICAgLS1yb3ctc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvcjogcmViZWNjYXB1cnBsZTsgLy8gZGVmYXVsdHMgdG8gdHJhbnNwYXJlbnRcbiAqICAgLS1maXJzdC1jb2x1bW4tcGFkZGluZy1sZWZ0OiAxOHB4IC8vIGRlZmF1bHRzIHRvIC0tY29sdW1uLWdhcFxuICogICAtLWxhc3QtY29sdW1uLXBhZGRpbmctcmlnaHQ6IDE4cHggLy8gZGVmYXVsdHMgdG8gLS1jb2x1bW4tZ2FwXG4gKiAgIDo6bmctZGVlcCB7XG4gKiAgICAgIGF1cC10YWJsZS1oZWFkZXItY2VsbC1yZW5kZXJlcixcbiAqICAgICAgYXVwLXRhYmxlLWNlbGwtcmVuZGVyZXIge1xuICogICAgICAgICYuYXVwLWNvbC1teS1kYXNoZXJpc2VkLWNvbHVtbi1pZCB7XG4gKiAgICAgICAgICAvLyBkbyBzdHVmZlxuICogICAgICAgIH1cbiAqICAgICAgICAmLmZpcnN0LXZpc2libGUtY29sdW1uIHtcbiAqICAgICAgICAgIC8vIGRvIHN0dWZmXG4gKiAgICAgICAgfVxuICogICAgICAgICYubGFzdC12aXNpYmxlLWNvbHVtbiB7XG4gKiAgICAgICAgICAvLyBkbyBzdHVmZlxuICogICAgICAgIH1cbiAqICAgICAgfVxuICogICB9XG4gKiB9XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBBYnN0cmFjdFRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVGFibGVDb21wb25lbnR9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8Um93PiBleHRlbmRzIEFic3RyYWN0VGFibGVDb21wb25lbnQ8Um93PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciB0YWJsZU1vZGVsID0gcHJveGlmeShUYWJsZU1vZGVsPFJvdz4pO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgZmlsdGVyTW9kZWwgPSBwcm94aWZ5KFRhYmxlRmlsdGVyTW9kZWw8Um93PilcblxuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgZW5hYmxlUGFnaW5nJCA9IHByb3hpZnkoVmFsdWVNb2RlbDxib29sZWFuPikgO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGVuYWJsZVBhZ2luZyA9IGZhbHNlO1xuXG4gIC8vIGVuYWJsZVBhZ2luZygpIHtcbiAgLy8gICBpZiAoaXNOaWwodGhpcy5wYWdlQ29udHJvbGxlcikpIHtcbiAgLy8gICAgIGNvbnN0IHBhZ2VkTGlzdE1vZGVsID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUoUGFnZWRMaXN0TW9kZWwuY3JlYXRlKHRoaXMuX3Zpc2libGVSb3dzJC5nZXREZWxlZ2F0ZSgpLCB0aGlzLl9wYWdlU2l6ZSkpO1xuICAvLyAgICAgdGhpcy5fdmlzaWJsZVJvd3MkLnNldERlbGVnYXRlKHBhZ2VkTGlzdE1vZGVsKTtcbiAgLy8gICAgIHRoaXMuX3BhZ2VDb250cm9sbGVyID0gcGFnZWRMaXN0TW9kZWwucGFnZUNvbnRyb2xsZXI7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgcHJpdmF0ZSBfZm9vdGVyQ29udGVudEFkZGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyZWRSb3dzJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nTGlzdE1vZGVsPFJvdz4oKSlcbiAgcHJpdmF0ZSBfcGFnZVNpemUgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8bnVtYmVyPigpO1xuICBwcml2YXRlIHBhZ2VkTGlzdE1vZGVsOiBQYWdlZExpc3RNb2RlbC5XcmFwcGVyPFJvdz47XG5cblxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgY29uc3Qge3doZW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMub25EaXNwb3NlKCgpID0+IHRoaXMuZGlzcG9zZU9mUGFnZWRMaXN0TW9kZWwoKSk7XG4gICAgd2hlbih0aGlzLmVuYWJsZVBhZ2luZyQpLmNoYW5nZXMoZW5hYmxlZCA9PiB0aGlzLmNvbmZpZ3VyZVBhZ2luZyhlbmFibGVkKSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIGlmIChDYW5Qcm94eS5oYXNUYXJnZXQodGhpcy5maWx0ZXJNb2RlbCkpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKHRoaXMuZmlsdGVyTW9kZWwuYmluZFRvVGFibGUodGhpcy5fZGF0YVNvdXJjZSQsIHRoaXMuZ2V0TW9kZWwoKS50ZXh0U2VhcmNoUHJlZGljYXRlJCkpO1xuICAgICAgdGhpcy5oaWdobGlnaHRUZXh0JC5zZXREZWxlZ2F0ZSh0aGlzLmZpbHRlck1vZGVsLmhpZ2hsaWdodFRleHQkKTtcbiAgICAgIHRoaXMuX2ZpbHRlcmVkUm93cyQuc2V0RGVsZWdhdGUodGhpcy5maWx0ZXJNb2RlbC5maWx0ZXJlZFJvd3MkKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9maWx0ZXJlZFJvd3MkLnNldERlbGVnYXRlKHRoaXMuX2RhdGFTb3VyY2UkKTtcbiAgICB9XG4gICAgdGhpcy5jb25maWd1cmVQYWdpbmcodGhpcy5lbmFibGVQYWdpbmckLnZhbHVlKVxuICAgIHRoaXMudGFibGVNb2RlbC5iaW5kVG9UYWJsZSh0aGlzLl9maWx0ZXJlZFJvd3MkLCB0aGlzLl92aXNpYmxlUm93cyQpXG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0TW9kZWwoKTogQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWw7XG4gIH1cblxuICBnZXQgcGFnZUNvbnRyb2xsZXIoKSB7XG4gICAgLy8gVE9ETzogbmVlZCB0byBzdXBwb3J0IGV4dGVybmFsIHBhZ2UgY29udHJvbGxlcnMgaWYgdGhlIHBhZ2luZyBvY2N1cnMgdG8gb3VyIHByaW1hcnkgZGF0YSBzb3VyY2UuXG4gICAgcmV0dXJuIHRoaXMucGFnZWRMaXN0TW9kZWwucGFnZUNvbnRyb2xsZXI7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZVBhZ2luZyhlbmFibGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZW5hYmxlKSB7XG4gICAgICBpZiAoIXRoaXMucGFnZWRMaXN0TW9kZWwpIHtcbiAgICAgICAgdGhpcy5wYWdlZExpc3RNb2RlbCA9IFBhZ2VkTGlzdE1vZGVsLmNyZWF0ZSh0aGlzLl9maWx0ZXJlZFJvd3MkLCB0aGlzLl9wYWdlU2l6ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLl92aXNpYmxlUm93cyQuc2V0RGVsZWdhdGUodGhpcy5wYWdlZExpc3RNb2RlbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcG9zZU9mUGFnZWRMaXN0TW9kZWwoKTtcbiAgICAgIHRoaXMuX3Zpc2libGVSb3dzJC5zZXREZWxlZ2F0ZSh0aGlzLl9maWx0ZXJlZFJvd3MkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRpc3Bvc2VPZlBhZ2VkTGlzdE1vZGVsKCkge1xuICAgIGlmICh0aGlzLnBhZ2VkTGlzdE1vZGVsKSB7XG4gICAgICB0aGlzLnBhZ2VkTGlzdE1vZGVsLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMucGFnZWRMaXN0TW9kZWwgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGZvb3RlckNvbnRlbnRDaGFuZ2VkKCRldmVudDogYW55KSB7XG4gICAgLy8gY29uc29sZS5sb2coJGV2ZW50KTtcbiAgICB0aGlzLl9mb290ZXJDb250ZW50QWRkZWQgPSB0cnVlO1xuICB9XG4gIC8vQFRyYWNlKClcblxuICB1cGRhdGVQYWdlU2l6ZShjb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFnZVNpemUudmFsdWUgPSBjb3VudDtcbiAgfVxufVxuIiwiPGF1cC10YWJsZS1ib2R5IFtkYXRhJF09XCJ2aXNpYmxlUm93cyRcIlxuICAgICAgICAgICAgICAgIFt0YWJsZU1vZGVsXT1cInRhYmxlTW9kZWxcIlxuICAgICAgICAgICAgICAgIFtzaG93SGVhZGVyJF09XCJzaG93SGVhZGVyJFwiXG4gICAgICAgICAgICAgICAgW2VuYWJsZVNjcm9sbGluZ109XCJlbmFibGVTY3JvbGxpbmdcIlxuICAgICAgICAgICAgICAgIFt0cmFja0J5XT1cInRyYWNrQnlcIlxuICAgICAgICAgICAgICAgICh2aXNpYmxlUm93Q291bnQpPVwidXBkYXRlUGFnZVNpemUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2F1cEhpZ2hsaWdodFRleHRNb2RlbF09XCJoaWdobGlnaHRUZXh0JFwiXG4+PC9hdXAtdGFibGUtYm9keT5cbjxzZWN0aW9uIGNsYXNzPVwidGFibGUtZm9vdGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJmb290ZXItY29udGVudFwiPjxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PjwvZGl2PlxuICA8YXVwLXBhZ2luYXRvciAqbmdJZj1cImVuYWJsZVBhZ2luZyQudmFsdWVcIiBbcGFnZUNvbnRyb2xsZXJdPVwicGFnZUNvbnRyb2xsZXJcIj48L2F1cC1wYWdpbmF0b3I+XG48L3NlY3Rpb24+XG4iXX0=
@@ -0,0 +1,84 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { MatMenuTrigger } from '@angular/material/menu';
3
+ import { Dsl } from '@coolon/pectin';
4
+ import { DisposableComponent } from '../../disposable-component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "../../commands/group/tool-bar/tool-bar.component";
8
+ import * as i3 from "../../commands/command/command.component";
9
+ import * as i4 from "../../commands/group/popup-menu/more-menu.component";
10
+ class MenuItemData {
11
+ factory;
12
+ face;
13
+ constructor(factory, face) {
14
+ this.factory = factory;
15
+ this.face = face;
16
+ }
17
+ }
18
+ /**
19
+ *
20
+ */
21
+ export class TableRowMenuComponent extends DisposableComponent {
22
+ value;
23
+ menu;
24
+ actions = [];
25
+ moreActions = [];
26
+ registerAction(commandFactory, properties) {
27
+ this.actions.push(new MenuItemData(commandFactory, properties));
28
+ }
29
+ registerMoreAction(commandFactory, properties) {
30
+ this.moreActions.push(new MenuItemData(commandFactory, properties));
31
+ }
32
+ constructor() {
33
+ super();
34
+ }
35
+ createMoreMenuCommand(item, value) {
36
+ const { when } = Dsl.disposeWith(this);
37
+ const command = item.factory.create(value, { disposedWith: this });
38
+ when(command.busy$).becomesFalsey(() => {
39
+ this.closeMoreMenu();
40
+ });
41
+ return command;
42
+ }
43
+ closeMoreMenu() {
44
+ this.menu.closeMenu();
45
+ }
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableRowMenuComponent, selector: "aup-table-row-menu", inputs: { value: "value" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MatMenuTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: `
48
+ <aup-tool-bar>
49
+ <aup-command *ngFor="let action of actions"
50
+ #comp
51
+ [command]="action.factory.create(value, {disposedWith: comp})"
52
+ [face]="action.face"></aup-command>
53
+ </aup-tool-bar>
54
+ <ng-container *ngIf="moreActions.length > 0">
55
+ <aup-more-menu>
56
+ <aup-command *ngFor="let action of moreActions" #comp [command]="action.factory.create(value, {disposedWith: comp})"
57
+ [face]="action.face"></aup-command>
58
+ </aup-more-menu>
59
+ </ng-container>
60
+ `, isInline: true, styles: [":host{display:inline-flex;flex-direction:row;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ToolBarComponent, selector: "aup-tool-bar" }, { kind: "component", type: i3.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: i4.MoreMenuComponent, selector: "aup-more-menu", inputs: ["tooltip"] }] });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowMenuComponent, decorators: [{
63
+ type: Component,
64
+ args: [{ selector: 'aup-table-row-menu', template: `
65
+ <aup-tool-bar>
66
+ <aup-command *ngFor="let action of actions"
67
+ #comp
68
+ [command]="action.factory.create(value, {disposedWith: comp})"
69
+ [face]="action.face"></aup-command>
70
+ </aup-tool-bar>
71
+ <ng-container *ngIf="moreActions.length > 0">
72
+ <aup-more-menu>
73
+ <aup-command *ngFor="let action of moreActions" #comp [command]="action.factory.create(value, {disposedWith: comp})"
74
+ [face]="action.face"></aup-command>
75
+ </aup-more-menu>
76
+ </ng-container>
77
+ `, styles: [":host{display:inline-flex;flex-direction:row;align-items:center}\n"] }]
78
+ }], ctorParameters: function () { return []; }, propDecorators: { value: [{
79
+ type: Input
80
+ }], menu: [{
81
+ type: ViewChild,
82
+ args: [MatMenuTrigger]
83
+ }] } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQsT0FBTyxFQUFVLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFJL0QsTUFBTSxZQUFZO0lBQ0s7SUFBNEM7SUFBakUsWUFBcUIsT0FBaUMsRUFBVyxJQUFpQjtRQUE3RCxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQUFXLFNBQUksR0FBSixJQUFJLENBQWE7SUFDbEYsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUF1QkgsTUFBTSxPQUFPLHFCQUF3QyxTQUFRLG1CQUFtQjtJQUc5RSxLQUFLLENBQUk7SUFHVCxJQUFJLENBQWlCO0lBRVosT0FBTyxHQUFzQixFQUFFLENBQUM7SUFDaEMsV0FBVyxHQUFzQixFQUFFLENBQUM7SUFFN0MsY0FBYyxDQUFDLGNBQXdDLEVBQUUsVUFBdUI7UUFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGtCQUFrQixDQUFDLGNBQXdDLEVBQUUsVUFBdUI7UUFDbEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBcUIsRUFBRSxLQUFRO1FBQ25ELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7dUdBbENVLHFCQUFxQjsyRkFBckIscUJBQXFCLDRIQUtyQixjQUFjLHVFQXpCZjs7Ozs7Ozs7Ozs7OztHQWFUOzsyRkFPVSxxQkFBcUI7a0JBdEJqQyxTQUFTOytCQUNFLG9CQUFvQixZQUNwQjs7Ozs7Ozs7Ozs7OztHQWFUOzBFQVVELEtBQUs7c0JBREosS0FBSztnQkFJTixJQUFJO3NCQURILFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0TWVudVRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5pbXBvcnQge0NvbW1hbmQsIERzbH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtDb21tYW5kRmFjZX0gZnJvbSAnLi4vLi4vY29tbWFuZHMvY29tbWFuZC1mYWNlJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHtDZWxsUmVuZGVyZXJ9IGZyb20gJy4uL3JlbmRlcmVyL2NlbGwtcmVuZGVyZXInO1xuXG5cbmNsYXNzIE1lbnVJdGVtRGF0YTxUIGV4dGVuZHMgb2JqZWN0PiAge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBmYWN0b3J5OiBDb21tYW5kLkZhY3Rvcnk8VCwgdm9pZD4sIHJlYWRvbmx5IGZhY2U6IENvbW1hbmRGYWNlKSB7XG4gIH1cbn1cblxuLyoqXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtdGFibGUtcm93LW1lbnUnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhdXAtdG9vbC1iYXI+XG4gICAgICA8YXVwLWNvbW1hbmQgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAjY29tcFxuICAgICAgICAgICAgICAgICAgIFtjb21tYW5kXT1cImFjdGlvbi5mYWN0b3J5LmNyZWF0ZSh2YWx1ZSwge2Rpc3Bvc2VkV2l0aDogY29tcH0pXCJcbiAgICAgICAgICAgICAgICAgICBbZmFjZV09XCJhY3Rpb24uZmFjZVwiPjwvYXVwLWNvbW1hbmQ+XG4gICAgPC9hdXAtdG9vbC1iYXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vcmVBY3Rpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxhdXAtbW9yZS1tZW51PlxuICAgICAgICA8YXVwLWNvbW1hbmQgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBtb3JlQWN0aW9uc1wiICNjb21wIFtjb21tYW5kXT1cImFjdGlvbi5mYWN0b3J5LmNyZWF0ZSh2YWx1ZSwge2Rpc3Bvc2VkV2l0aDogY29tcH0pXCJcbiAgICAgICAgICAgICAgICAgICAgIFtmYWNlXT1cImFjdGlvbi5mYWNlXCI+PC9hdXAtY29tbWFuZD5cbiAgICAgIDwvYXVwLW1vcmUtbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgYCxcbiAgc3R5bGVzOiBbYDpob3N0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1gXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVJvd01lbnVDb21wb25lbnQ8VCBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbFJlbmRlcmVyPFQ+IHtcblxuICBASW5wdXQoKVxuICB2YWx1ZTogVDtcblxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKVxuICBtZW51OiBNYXRNZW51VHJpZ2dlcjtcblxuICByZWFkb25seSBhY3Rpb25zOiBNZW51SXRlbURhdGE8VD5bXSA9IFtdO1xuICByZWFkb25seSBtb3JlQWN0aW9uczogTWVudUl0ZW1EYXRhPFQ+W10gPSBbXTtcblxuICByZWdpc3RlckFjdGlvbihjb21tYW5kRmFjdG9yeTogQ29tbWFuZC5GYWN0b3J5PFQsIHZvaWQ+LCBwcm9wZXJ0aWVzOiBDb21tYW5kRmFjZSkge1xuICAgIHRoaXMuYWN0aW9ucy5wdXNoKG5ldyBNZW51SXRlbURhdGEoY29tbWFuZEZhY3RvcnksIHByb3BlcnRpZXMpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyTW9yZUFjdGlvbihjb21tYW5kRmFjdG9yeTogQ29tbWFuZC5GYWN0b3J5PFQsIHZvaWQ+LCBwcm9wZXJ0aWVzOiBDb21tYW5kRmFjZSkge1xuICAgIHRoaXMubW9yZUFjdGlvbnMucHVzaChuZXcgTWVudUl0ZW1EYXRhKGNvbW1hbmRGYWN0b3J5LCBwcm9wZXJ0aWVzKSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgY3JlYXRlTW9yZU1lbnVDb21tYW5kKGl0ZW06IE1lbnVJdGVtRGF0YTxUPiwgdmFsdWU6IFQpOiBDb21tYW5kPHZvaWQ+IHtcbiAgICBjb25zdCB7IHdoZW4gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICBjb25zdCBjb21tYW5kID0gaXRlbS5mYWN0b3J5LmNyZWF0ZSh2YWx1ZSwge2Rpc3Bvc2VkV2l0aDogdGhpc30pO1xuICAgIHdoZW4oY29tbWFuZC5idXN5JCkuYmVjb21lc0ZhbHNleSgoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlTW9yZU1lbnUoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29tbWFuZDtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VNb3JlTWVudSgpIHtcbiAgICB0aGlzLm1lbnUuY2xvc2VNZW51KCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { assert } from '@coolon/pectin';
3
- import { MemoizeGet } from '@coolon/typescript-utilities';
4
- import { Memoize } from 'fast-typescript-memoize';
3
+ import { Memoize } from '@typescript-plus/fast-memoize-decorator';
5
4
  export const treeNodeDecorator = Symbol('TreeDecorator');
6
5
  export var DecoratedTreeNode;
7
6
  (function (DecoratedTreeNode) {
@@ -113,7 +112,7 @@ export var DecoratedTreeNode;
113
112
  }
114
113
  }
115
114
  __decorate([
116
- MemoizeGet(),
115
+ Memoize(),
117
116
  __metadata("design:type", Array),
118
117
  __metadata("design:paramtypes", [])
119
118
  ], Decorator.prototype, "children", null);
@@ -166,10 +165,10 @@ export var DecoratedTreeNode;
166
165
  __metadata("design:returntype", Array)
167
166
  ], Decorator.prototype, "ancestors", null);
168
167
  __decorate([
169
- MemoizeGet(),
168
+ Memoize(),
170
169
  __metadata("design:type", Number),
171
170
  __metadata("design:paramtypes", [])
172
171
  ], Decorator.prototype, "depth", null);
173
172
  DecoratedTreeNode.Decorator = Decorator;
174
173
  })(DecoratedTreeNode || (DecoratedTreeNode = {}));
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGVkLXRyZWUtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RyZWUtdGFibGUvZGVjb3JhdGVkLXRyZWUtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBUXpELE1BQU0sS0FBVyxpQkFBaUIsQ0FzS2pDO0FBdEtELFdBQWlCLGlCQUFpQjtJQUVoQyxTQUFnQixZQUFZLENBQUksSUFBTyxFQUFFLGVBQWlDO1FBQ3hFLE9BQU8sSUFBSSxTQUFTLENBQUksU0FBUyxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDMUUsQ0FBQztJQUZlLDhCQUFZLGVBRTNCLENBQUE7SUFFRCxTQUFnQixZQUFZLENBQUksSUFBTTtRQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBSGUsOEJBQVksZUFHM0IsQ0FBQTtJQUVELE1BQWEsU0FBUztRQUVDO1FBQTJEO1FBQTBCO1FBQTFHLFlBQXFCLE1BQXdDLEVBQW1CLElBQU8sRUFBbUIsZUFBaUM7WUFBdEgsV0FBTSxHQUFOLE1BQU0sQ0FBa0M7WUFBbUIsU0FBSSxHQUFKLElBQUksQ0FBRztZQUFtQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7WUFDekks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LE9BQU8sRUFBRTs7OztnREFHVDtJQWdCRDtRQURDLE9BQU8sRUFBRTs7Ozs4Q0FHVDtJQTJCRDtRQUFDLFVBQVUsRUFBRTs7OzBDQUdaO0lBNUdVLDJCQUFTLFlBeUpyQixDQUFBO0FBRUgsQ0FBQyxFQXRLZ0IsaUJBQWlCLEtBQWpCLGlCQUFpQixRQXNLakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Fzc2VydH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgTWVtb2l6ZUdldCB9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtNZW1vaXplfSBmcm9tICdmYXN0LXR5cGVzY3JpcHQtbWVtb2l6ZSc7XG5cbmV4cG9ydCBjb25zdCB0cmVlTm9kZURlY29yYXRvciA9IFN5bWJvbCgnVHJlZURlY29yYXRvcicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhc1RyZWVOb2RlRGVjb3JhdG9yPFQ+IHtcbiAgW3RyZWVOb2RlRGVjb3JhdG9yXTogRGVjb3JhdGVkVHJlZU5vZGUuRGVjb3JhdG9yPFQ+XG59XG5cbmV4cG9ydCB0eXBlIERlY29yYXRlZFRyZWVOb2RlPFQ+ID0gVCAmIEhhc1RyZWVOb2RlRGVjb3JhdG9yPFQ+XG5cbmV4cG9ydCBuYW1lc3BhY2UgRGVjb3JhdGVkVHJlZU5vZGUge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0ZVJvb3Q8VD4obm9kZTogVCwgZXh0cmFjdENoaWxkcmVuOiAobm9kZTogVCkgPT4gVFtdKTpEZWNvcmF0ZWRUcmVlTm9kZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBEZWNvcmF0b3I8VD4odW5kZWZpbmVkLCBub2RlLCBleHRyYWN0Q2hpbGRyZW4pLmRlY29yYXRlZE5vZGU7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVjb3JhdG9yPFQ+KG5vZGU6VCk6RGVjb3JhdG9yPFQ+IHtcbiAgICBhc3NlcnQubm90TmlsKG5vZGVbdHJlZU5vZGVEZWNvcmF0b3JdKTtcbiAgICByZXR1cm4gbm9kZVt0cmVlTm9kZURlY29yYXRvcl07XG4gIH1cblxuICBleHBvcnQgY2xhc3MgRGVjb3JhdG9yPFQ+IHtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmVudDogRGVjb3JhdGVkVHJlZU5vZGU8VD4gfCB1bmRlZmluZWQsIHByaXZhdGUgcmVhZG9ubHkgbm9kZTogVCwgcHJpdmF0ZSByZWFkb25seSBleHRyYWN0Q2hpbGRyZW46IChub2RlOiBUKSA9PiBUW10pIHtcbiAgICAgIG5vZGVbdHJlZU5vZGVEZWNvcmF0b3JdID0gdGhpczsgLy8gaW5qZWN0IG91ciBkZWNvcmF0b3IuXG4gICAgfVxuXG4gICAgQE1lbW9pemVHZXQoKVxuICAgIGdldCBjaGlsZHJlbigpOiBEZWNvcmF0ZWRUcmVlTm9kZTxUPltdIHtcbiAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RDaGlsZHJlbih0aGlzLm5vZGUpXG4gICAgICAgIC5tYXAoY2hpbGQgPT4gY2hpbGRbdHJlZU5vZGVEZWNvcmF0b3JdID8/IG5ldyBEZWNvcmF0b3IodGhpcy5kZWNvcmF0ZWROb2RlLCBjaGlsZCwgdGhpcy5leHRyYWN0Q2hpbGRyZW4pKVxuICAgICAgICAubWFwKGQgPT4gZC5kZWNvcmF0ZWROb2RlKVxuICAgIH1cblxuICAgIGdldCBkZWNvcmF0ZWROb2RlKCk6IERlY29yYXRlZFRyZWVOb2RlPFQ+IHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUgYXMgRGVjb3JhdGVkVHJlZU5vZGU8VD5cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3NCZWZvcmUoKTogVFtdIHtcbiAgICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmNoaWxkcmVuLnNsaWNlKDAsIHRoaXMubXlJbmRleCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3NBZnRlcigpOiBUW10ge1xuICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudFt0cmVlTm9kZURlY29yYXRvcl0uY2hpbGRyZW4uc2xpY2UoMSArIHRoaXMubXlJbmRleCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3MoKTogVFtdIHtcbiAgICAgIHJldHVybiBbXS5jb25jYXQodGhpcy5zaWJsaW5nc0JlZm9yZSgpLCB0aGlzLnNpYmxpbmdzQWZ0ZXIoKSk7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGlzRmlyc3RDaGlsZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMubXlJbmRleCgpID09PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIHByb3RlY3RlZCBteUluZGV4KCkge1xuICAgICAgY29uc3QgbXlJbmRleCA9IHRoaXMucGFyZW50W3RyZWVOb2RlRGVjb3JhdG9yXS5jaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gdGhpcy5ub2RlID09PSBjaGlsZCk7XG4gICAgICBhc3NlcnQuaXNUcnV0aHkobXlJbmRleCA+PSAwLCAnaWxsZWdhbCBzdGF0ZSwgZXhwZWN0ZWQgaW5kZXggdG8gYmUgPj0gMCcpO1xuICAgICAgcmV0dXJuIG15SW5kZXg7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGlzTGFzdENoaWxkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5teUluZGV4KCkgPT09IHRoaXMucGFyZW50W3RyZWVOb2RlRGVjb3JhdG9yXS5jaGlsZHJlbi5sZW5ndGggLSAxIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGhhc1NpYmxpbmdzKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmNoaWxkcmVuLmxlbmd0aCA+IDEgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBmaW5kKHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KTogVCB7XG4gICAgLy8gICByZXR1cm4gZmluZCh0aGlzLmRlc2NlbmRhbnRzKCksIHByZWRpY2F0ZSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gc2VsZWN0KHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KTogVFtdIHtcbiAgICAvLyAgIHJldHVybiBmaWx0ZXIodGhpcy5kZXNjZW5kYW50cygpLCBwcmVkaWNhdGUpO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGZsYXR0ZW5JbnRvKGFycmF5OiBUW10pOiBUW10ge1xuICAgIC8vICAgdGhpcy52aXNpdFNlbGZBbmREZXNjZW5kYW50cyhjaGlsZCA9PiBhcnJheS5wdXNoKGNoaWxkKSk7XG4gICAgLy8gICByZXR1cm4gYXJyYXk7XG4gICAgLy8gfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGFuY2VzdG9ycygpOiBUW10ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmFuY2VzdG9ycygpLmNvbmNhdChbdGhpcy5wYXJlbnRdKSA6IFtdO1xuICAgIH1cblxuICAgIC8vIGFuY2VzdG9yc0FuZFNlbGYoKTogVFtdIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLm1lbW9pemUoJ2FuY2VzdG9yc0FuZFNlbGYnLCAoKSA9PiB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmFuY2VzdG9ycygpLmNvbmNhdChbKHRoaXMuZGVjb3JhdGVkU2VsZildKTtcbiAgICAvLyAgIH0pO1xuICAgIC8vIH1cblxuICAgIC8vIHBhdGhUb1BhcmVudChwYXJlbnQ6IFQpOiBUW10ge1xuICAgIC8vICAgaWYgKHRoaXMubm9kZSA9PT0gcGFyZW50Lm5vZGUpIHtcbiAgICAvLyAgICAgcmV0dXJuIFtdO1xuICAgIC8vICAgfSBlbHNlIGlmICh0aGlzLnBhcmVudCkge1xuICAgIC8vICAgICBjb25zdCBwYXRoVG9QYXJlbnQgPSB0aGlzLnBhcmVudC5wYXRoVG9QYXJlbnQocGFyZW50KTtcbiAgICAvLyAgICAgcmV0dXJuIHBhdGhUb1BhcmVudC5jb25jYXQoW3RoaXMucGFyZW50XSk7XG4gICAgLy8gICB9IGVsc2Uge1xuICAgIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcmVudCBpcyBub3QgYW4gYW5jZXN0b3InKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBwYXRoVG9QYXJlbnRBbmRTZWxmKHBhcmVudCk6IFRbXSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5wYXRoVG9QYXJlbnQocGFyZW50KS5jb25jYXQoW3RoaXMuZGVjb3JhdGVkU2VsZl0pO1xuICAgIC8vIH1cblxuICAgIGlzUm9vdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhdGhpcy5wYXJlbnQ7XG4gICAgfVxuXG4gICAgQE1lbW9pemVHZXQoKVxuICAgIGdldCBkZXB0aCgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMuaXNSb290KCkgPyAwIDogdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmRlcHRoICsgMTtcbiAgICB9XG5cbiAgICBpc0xlYWYoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIXRoaXMuaXNSb290KCkgJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPCAxO1xuICAgIH1cblxuICAgIGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvLyBkZXB0aEZyb21QYXJlbnQocGFyZW50KTogbnVtYmVyIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLnBhdGhUb1BhcmVudChwYXJlbnQpLmxlbmd0aDtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyB0cmVlRGVwdGgoKTogbnVtYmVyIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLm1lbW9pemUoJ3RyZWVEZXB0aCcsICgpID0+IHtcbiAgICAvLyAgICAgcmV0dXJuIDEgKyB0aGlzLmRlc2NlbmRhbnRzKCkubWFwKGNoaWxkID0+IGNoaWxkLmRlcHRoRnJvbVBhcmVudCh0aGlzKSkucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiBNYXRoLm1heChwcmV2LCBjdXJyZW50KSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG5cbiAgICAvLyBmbGF0dGVuKCk6IFRbXSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5tZW1vaXplKCdmbGF0dGVuJywgKCkgPT4ge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5mbGF0dGVuSW50byhbXSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyB2aXNpdDxWIGV4dGVuZHMgVmlzaXRvcjxUPj4odmlzaXRvcjogVik6IFYge1xuICAgIC8vICAgdmlzaXRvci52aXNpdCh0aGlzIGFzIGFueSBhcyBUKTtcbiAgICAvLyAgIHJldHVybiB2aXNpdG9yO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIHZpc2l0Q2hpbGRyZW48ViBleHRlbmRzIFZpc2l0b3I8VD4+KHZpc2l0b3I6IFYpOiBWIHtcbiAgICAvLyAgIGVhY2godGhpcy5kZWNvcmF0ZWRDaGlsZHJlbiwgY2hpbGQgPT4gY2hpbGQudmlzaXQodmlzaXRvcikpO1xuICAgIC8vICAgcmV0dXJuIHZpc2l0b3I7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gdmlzaXRTZWxmQW5kRGVzY2VuZGFudHMoY2FsbGJhY2s6IChpdDogVCkgPT4gdm9pZCkge1xuICAgIC8vICAgdGhpcy52aXNpdChuZXcgU2VsZkFuZERlc2NlbmRhbnRzVmlzaXRvci5FYWNoPFQ+KGNhbGxiYWNrKSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gdmlzaXREZXNjZW5kYW50cyhjYWxsYmFjazogKGl0OiBUKSA9PiB2b2lkKSB7XG4gICAgLy8gICB0aGlzLnZpc2l0Q2hpbGRyZW4obmV3IFNlbGZBbmREZXNjZW5kYW50c1Zpc2l0b3IuRWFjaDxUPihjYWxsYmFjaykpO1xuICAgIC8vIH1cbiAgICAvL1xuXG4gIH1cblxufVxuIl19
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGVkLXRyZWUtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RyZWUtdGFibGUvZGVjb3JhdGVkLXRyZWUtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFRekQsTUFBTSxLQUFXLGlCQUFpQixDQXNLakM7QUF0S0QsV0FBaUIsaUJBQWlCO0lBRWhDLFNBQWdCLFlBQVksQ0FBSSxJQUFPLEVBQUUsZUFBaUM7UUFDeEUsT0FBTyxJQUFJLFNBQVMsQ0FBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUMxRSxDQUFDO0lBRmUsOEJBQVksZUFFM0IsQ0FBQTtJQUVELFNBQWdCLFlBQVksQ0FBSSxJQUFNO1FBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFIZSw4QkFBWSxlQUczQixDQUFBO0lBRUQsTUFBYSxTQUFTO1FBRUM7UUFBMkQ7UUFBMEI7UUFBMUcsWUFBcUIsTUFBd0MsRUFBbUIsSUFBTyxFQUFtQixlQUFpQztZQUF0SCxXQUFNLEdBQU4sTUFBTSxDQUFrQztZQUFtQixTQUFJLEdBQUosSUFBSSxDQUFHO1lBQW1CLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtZQUN6SSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyx3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OzhDQUdUO0lBMkJEO1FBQUMsT0FBTyxFQUFFOzs7MENBR1Q7SUE1R1UsMkJBQVMsWUF5SnJCLENBQUE7QUFFSCxDQUFDLEVBdEtnQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBc0tqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge01lbW9pemV9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvcic7XG5cbmV4cG9ydCBjb25zdCB0cmVlTm9kZURlY29yYXRvciA9IFN5bWJvbCgnVHJlZURlY29yYXRvcicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhc1RyZWVOb2RlRGVjb3JhdG9yPFQ+IHtcbiAgW3RyZWVOb2RlRGVjb3JhdG9yXTogRGVjb3JhdGVkVHJlZU5vZGUuRGVjb3JhdG9yPFQ+XG59XG5cbmV4cG9ydCB0eXBlIERlY29yYXRlZFRyZWVOb2RlPFQ+ID0gVCAmIEhhc1RyZWVOb2RlRGVjb3JhdG9yPFQ+XG5cbmV4cG9ydCBuYW1lc3BhY2UgRGVjb3JhdGVkVHJlZU5vZGUge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0ZVJvb3Q8VD4obm9kZTogVCwgZXh0cmFjdENoaWxkcmVuOiAobm9kZTogVCkgPT4gVFtdKTpEZWNvcmF0ZWRUcmVlTm9kZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBEZWNvcmF0b3I8VD4odW5kZWZpbmVkLCBub2RlLCBleHRyYWN0Q2hpbGRyZW4pLmRlY29yYXRlZE5vZGU7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVjb3JhdG9yPFQ+KG5vZGU6VCk6RGVjb3JhdG9yPFQ+IHtcbiAgICBhc3NlcnQubm90TmlsKG5vZGVbdHJlZU5vZGVEZWNvcmF0b3JdKTtcbiAgICByZXR1cm4gbm9kZVt0cmVlTm9kZURlY29yYXRvcl07XG4gIH1cblxuICBleHBvcnQgY2xhc3MgRGVjb3JhdG9yPFQ+IHtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmVudDogRGVjb3JhdGVkVHJlZU5vZGU8VD4gfCB1bmRlZmluZWQsIHByaXZhdGUgcmVhZG9ubHkgbm9kZTogVCwgcHJpdmF0ZSByZWFkb25seSBleHRyYWN0Q2hpbGRyZW46IChub2RlOiBUKSA9PiBUW10pIHtcbiAgICAgIG5vZGVbdHJlZU5vZGVEZWNvcmF0b3JdID0gdGhpczsgLy8gaW5qZWN0IG91ciBkZWNvcmF0b3IuXG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGdldCBjaGlsZHJlbigpOiBEZWNvcmF0ZWRUcmVlTm9kZTxUPltdIHtcbiAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RDaGlsZHJlbih0aGlzLm5vZGUpXG4gICAgICAgIC5tYXAoY2hpbGQgPT4gY2hpbGRbdHJlZU5vZGVEZWNvcmF0b3JdID8/IG5ldyBEZWNvcmF0b3IodGhpcy5kZWNvcmF0ZWROb2RlLCBjaGlsZCwgdGhpcy5leHRyYWN0Q2hpbGRyZW4pKVxuICAgICAgICAubWFwKGQgPT4gZC5kZWNvcmF0ZWROb2RlKVxuICAgIH1cblxuICAgIGdldCBkZWNvcmF0ZWROb2RlKCk6IERlY29yYXRlZFRyZWVOb2RlPFQ+IHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUgYXMgRGVjb3JhdGVkVHJlZU5vZGU8VD5cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3NCZWZvcmUoKTogVFtdIHtcbiAgICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmNoaWxkcmVuLnNsaWNlKDAsIHRoaXMubXlJbmRleCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3NBZnRlcigpOiBUW10ge1xuICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudFt0cmVlTm9kZURlY29yYXRvcl0uY2hpbGRyZW4uc2xpY2UoMSArIHRoaXMubXlJbmRleCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3MoKTogVFtdIHtcbiAgICAgIHJldHVybiBbXS5jb25jYXQodGhpcy5zaWJsaW5nc0JlZm9yZSgpLCB0aGlzLnNpYmxpbmdzQWZ0ZXIoKSk7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGlzRmlyc3RDaGlsZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMubXlJbmRleCgpID09PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIHByb3RlY3RlZCBteUluZGV4KCkge1xuICAgICAgY29uc3QgbXlJbmRleCA9IHRoaXMucGFyZW50W3RyZWVOb2RlRGVjb3JhdG9yXS5jaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gdGhpcy5ub2RlID09PSBjaGlsZCk7XG4gICAgICBhc3NlcnQuaXNUcnV0aHkobXlJbmRleCA+PSAwLCAnaWxsZWdhbCBzdGF0ZSwgZXhwZWN0ZWQgaW5kZXggdG8gYmUgPj0gMCcpO1xuICAgICAgcmV0dXJuIG15SW5kZXg7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGlzTGFzdENoaWxkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5teUluZGV4KCkgPT09IHRoaXMucGFyZW50W3RyZWVOb2RlRGVjb3JhdG9yXS5jaGlsZHJlbi5sZW5ndGggLSAxIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGhhc1NpYmxpbmdzKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmNoaWxkcmVuLmxlbmd0aCA+IDEgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBmaW5kKHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KTogVCB7XG4gICAgLy8gICByZXR1cm4gZmluZCh0aGlzLmRlc2NlbmRhbnRzKCksIHByZWRpY2F0ZSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gc2VsZWN0KHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KTogVFtdIHtcbiAgICAvLyAgIHJldHVybiBmaWx0ZXIodGhpcy5kZXNjZW5kYW50cygpLCBwcmVkaWNhdGUpO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGZsYXR0ZW5JbnRvKGFycmF5OiBUW10pOiBUW10ge1xuICAgIC8vICAgdGhpcy52aXNpdFNlbGZBbmREZXNjZW5kYW50cyhjaGlsZCA9PiBhcnJheS5wdXNoKGNoaWxkKSk7XG4gICAgLy8gICByZXR1cm4gYXJyYXk7XG4gICAgLy8gfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGFuY2VzdG9ycygpOiBUW10ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmFuY2VzdG9ycygpLmNvbmNhdChbdGhpcy5wYXJlbnRdKSA6IFtdO1xuICAgIH1cblxuICAgIC8vIGFuY2VzdG9yc0FuZFNlbGYoKTogVFtdIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLm1lbW9pemUoJ2FuY2VzdG9yc0FuZFNlbGYnLCAoKSA9PiB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmFuY2VzdG9ycygpLmNvbmNhdChbKHRoaXMuZGVjb3JhdGVkU2VsZildKTtcbiAgICAvLyAgIH0pO1xuICAgIC8vIH1cblxuICAgIC8vIHBhdGhUb1BhcmVudChwYXJlbnQ6IFQpOiBUW10ge1xuICAgIC8vICAgaWYgKHRoaXMubm9kZSA9PT0gcGFyZW50Lm5vZGUpIHtcbiAgICAvLyAgICAgcmV0dXJuIFtdO1xuICAgIC8vICAgfSBlbHNlIGlmICh0aGlzLnBhcmVudCkge1xuICAgIC8vICAgICBjb25zdCBwYXRoVG9QYXJlbnQgPSB0aGlzLnBhcmVudC5wYXRoVG9QYXJlbnQocGFyZW50KTtcbiAgICAvLyAgICAgcmV0dXJuIHBhdGhUb1BhcmVudC5jb25jYXQoW3RoaXMucGFyZW50XSk7XG4gICAgLy8gICB9IGVsc2Uge1xuICAgIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcmVudCBpcyBub3QgYW4gYW5jZXN0b3InKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBwYXRoVG9QYXJlbnRBbmRTZWxmKHBhcmVudCk6IFRbXSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5wYXRoVG9QYXJlbnQocGFyZW50KS5jb25jYXQoW3RoaXMuZGVjb3JhdGVkU2VsZl0pO1xuICAgIC8vIH1cblxuICAgIGlzUm9vdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhdGhpcy5wYXJlbnQ7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGdldCBkZXB0aCgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMuaXNSb290KCkgPyAwIDogdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmRlcHRoICsgMTtcbiAgICB9XG5cbiAgICBpc0xlYWYoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIXRoaXMuaXNSb290KCkgJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPCAxO1xuICAgIH1cblxuICAgIGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvLyBkZXB0aEZyb21QYXJlbnQocGFyZW50KTogbnVtYmVyIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLnBhdGhUb1BhcmVudChwYXJlbnQpLmxlbmd0aDtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyB0cmVlRGVwdGgoKTogbnVtYmVyIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLm1lbW9pemUoJ3RyZWVEZXB0aCcsICgpID0+IHtcbiAgICAvLyAgICAgcmV0dXJuIDEgKyB0aGlzLmRlc2NlbmRhbnRzKCkubWFwKGNoaWxkID0+IGNoaWxkLmRlcHRoRnJvbVBhcmVudCh0aGlzKSkucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiBNYXRoLm1heChwcmV2LCBjdXJyZW50KSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG5cbiAgICAvLyBmbGF0dGVuKCk6IFRbXSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5tZW1vaXplKCdmbGF0dGVuJywgKCkgPT4ge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5mbGF0dGVuSW50byhbXSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyB2aXNpdDxWIGV4dGVuZHMgVmlzaXRvcjxUPj4odmlzaXRvcjogVik6IFYge1xuICAgIC8vICAgdmlzaXRvci52aXNpdCh0aGlzIGFzIGFueSBhcyBUKTtcbiAgICAvLyAgIHJldHVybiB2aXNpdG9yO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIHZpc2l0Q2hpbGRyZW48ViBleHRlbmRzIFZpc2l0b3I8VD4+KHZpc2l0b3I6IFYpOiBWIHtcbiAgICAvLyAgIGVhY2godGhpcy5kZWNvcmF0ZWRDaGlsZHJlbiwgY2hpbGQgPT4gY2hpbGQudmlzaXQodmlzaXRvcikpO1xuICAgIC8vICAgcmV0dXJuIHZpc2l0b3I7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gdmlzaXRTZWxmQW5kRGVzY2VuZGFudHMoY2FsbGJhY2s6IChpdDogVCkgPT4gdm9pZCkge1xuICAgIC8vICAgdGhpcy52aXNpdChuZXcgU2VsZkFuZERlc2NlbmRhbnRzVmlzaXRvci5FYWNoPFQ+KGNhbGxiYWNrKSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gdmlzaXREZXNjZW5kYW50cyhjYWxsYmFjazogKGl0OiBUKSA9PiB2b2lkKSB7XG4gICAgLy8gICB0aGlzLnZpc2l0Q2hpbGRyZW4obmV3IFNlbGZBbmREZXNjZW5kYW50c1Zpc2l0b3IuRWFjaDxUPihjYWxsYmFjaykpO1xuICAgIC8vIH1cbiAgICAvL1xuXG4gIH1cblxufVxuIl19
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
100
100
  'mat:chevron_right';
101
101
  };
102
102
  })(TreeLabelCellRendererComponent || (TreeLabelCellRendererComponent = {}));
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RyZWUtdGFibGUvdHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsR0FBRyxFQUFrQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT25ELE1BQU0sT0FBTyw4QkFBaUQsU0FBUSxtQkFBbUI7SUFFL0UsS0FBSyxHQUFHLElBQUksaUJBQWlCLEVBQUssQ0FBQztJQUdsQyx3QkFBUztJQUFULElBQUEsS0FBSywyQ0FBSTtJQUFULElBQUEsS0FBSyxpREFBSTtJQUdsQixLQUFLLENBQVM7SUFHZCxXQUFXLENBQWdDO0lBRTNDLHVFQUF1RTtJQUV2RSxjQUFjLENBQW9CO0lBRXpCLFFBQVEsQ0FBb0Q7SUFFckUsU0FBUyxDQUEyQjtJQUNwQyxXQUFXLENBQTJCO0lBQ3RDLFNBQVMsQ0FBMEI7SUFFbkM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakQsTUFBTSxLQUFLLEdBQXdDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxSCxPQUFPLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNoSyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2FBQ2hNO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUMsT0FBTyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDOUMsT0FBTyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSw4QkFBOEIsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1RixPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLDhCQUE4QixDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNySCxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQ0ksTUFBTTtRQUNSLE9BQU8saUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ1IsT0FBTyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXO0lBQ1gsZ0JBQWdCLENBQUMsTUFBa0IsRUFBRSxJQUFPO1FBQzFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoSCxDQUFDO3VHQTFFVSw4QkFBOEI7MkZBQTlCLDhCQUE4Qix5UkNiM0MseVpBUUE7O0FEVVc7SUFEQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7OzJEQUNsQjsyRkFMUCw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsOEJBQThCOzBFQVMvQixLQUFLO3NCQURiLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBMENGLE1BQU07c0JBRFQsV0FBVzt1QkFBQyxZQUFZO2dCQU1yQixNQUFNO3NCQURULFdBQVc7dUJBQUMsWUFBWTs7QUFpQjNCLFdBQWlCLDhCQUE4QjtJQUNoQyxtREFBb0IsR0FBb0MsQ0FBQyxJQUFTLEVBQUUsUUFBaUIsRUFBRSxXQUFtQixFQUFFLEVBQUU7UUFDekgsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLENBQUM7WUFDYixTQUFTLENBQUMsQ0FBQztZQUNYLFFBQVEsQ0FBQyxDQUFDO2dCQUNSLGlCQUFpQixDQUFDLENBQUM7Z0JBQ25CLG1CQUFtQixDQUFDO0lBQzFCLENBQUMsQ0FBQztBQUNKLENBQUMsRUFUZ0IsOEJBQThCLEtBQTlCLDhCQUE4QixRQVM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RzbCwgTGlzdE1vZGVsQ2hhaW4sIE11dGFibGVWYWx1ZU1vZGVsLCBTdG9yZUluVmFsdWVNb2RlbCwgVmFsdWVNb2RlbENoYWlufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7Q2VsbFJlbmRlcmVyfSBmcm9tICcuLi8uLi9yZW5kZXJlci9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7RGVjb3JhdGVkVHJlZU5vZGV9IGZyb20gJy4uL2RlY29yYXRlZC10cmVlLW5vZGUnO1xuaW1wb3J0IHtUcmVlSW5oZXJpdGFuY2VJY29uQ29tcG9uZW50fSBmcm9tICcuLi90cmVlLWluaGVyaXRhbmNlLWljb24vdHJlZS1pbmhlcml0YW5jZS1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge1RyZWVUYWJsZU1vZGVsfSBmcm9tICcuLi90cmVlLXRhYmxlLW1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRyZWUtbGFiZWwtY2VsbC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQ8VCBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbFJlbmRlcmVyPFQ+LCBPbkluaXQge1xuXG4gIHByaXZhdGUgbm9kZSQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VD4oKTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoXCJub2RlJFwiKVxuICBhY2Nlc3NvciB2YWx1ZTogVDtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGljb25GYWN0b3J5OiBUcmVlVGFibGVNb2RlbC5JY29uRmFjdG9yeTxUPjtcblxuICAvLyBUT0RPOiBNYWtlIHRoaXMgaGF2ZSBhIHByb3BlciBkZWxlZ2F0ZSBzbyBJIGNhbiBzYWZlbHkgdXNlIGl0IGhlcmUuLlxuICBASW5wdXQoKVxuICB0cmVlVGFibGVNb2RlbDogVHJlZVRhYmxlTW9kZWw8VD47XG5cbiAgcmVhZG9ubHkgaWNvbkxpc3Q6IExpc3RNb2RlbENoYWluPFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZT47XG5cbiAgY2FuRXhwYW5kOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG4gIGNhbkNvbGxhcHNlOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG4gIGljb25Nb2RlbDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5pY29uTGlzdCA9IGNoYWluKHRoaXMubm9kZSQpLm1hcFRvTGlzdChub2RlID0+IHtcbiAgICAgIGNvbnN0IGljb25zOiBUcmVlSW5oZXJpdGFuY2VJY29uQ29tcG9uZW50LlR5cGVbXSA9IERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5hbmNlc3RvcnMoKS5zbGljZSgxKS5tYXAoYW5jZXN0b3IgPT4ge1xuICAgICAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKGFuY2VzdG9yKS5pc0xhc3RDaGlsZCgpID8gVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlLklDT05fQkxBTksgOiBUcmVlSW5oZXJpdGFuY2VJY29uQ29tcG9uZW50LlR5cGUuSUNPTl9USFJPVUdIO1xuICAgICAgfSk7XG4gICAgICBpZiAoIURlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5pc1Jvb3QoKSkge1xuICAgICAgICBpY29ucy5wdXNoKERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5pc0xhc3RDaGlsZCgpID8gVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlLklDT05fSU5IRVJJVEVEX1RFUk1JTkFMIDogVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlLklDT05fSU5IRVJJVEVEX1RIUk9VR0hfVEVSTUlOQUwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGljb25zO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBjb25zdCB7IGNoYWluIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5jYW5FeHBhbmQgPSBjaGFpbih0aGlzLm5vZGUkKS5tYXAobm9kZSA9PiB7XG4gICAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKG5vZGUpLmhhc0NoaWxkcmVuKCkgJiYgdGhpcy50cmVlVGFibGVNb2RlbC5pc0NvbGxhcHNlZChub2RlKTtcbiAgICB9LCB7IGRlcGVuZHNPbjogdGhpcy50cmVlVGFibGVNb2RlbC5pc0V4cGFuZGVkUHJlZGljYXRlJCB9KTtcblxuICAgIHRoaXMuY2FuQ29sbGFwc2UgPSBjaGFpbih0aGlzLm5vZGUkKS5tYXAobm9kZSA9PiB7XG4gICAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKG5vZGUpLmhhc0NoaWxkcmVuKCkgJiYgIXRoaXMudHJlZVRhYmxlTW9kZWwuaXNDb2xsYXBzZWQobm9kZSk7XG4gICAgfSwgeyBkZXBlbmRzT246IHRoaXMudHJlZVRhYmxlTW9kZWwuaXNFeHBhbmRlZFByZWRpY2F0ZSQgfSk7XG5cbiAgICB0aGlzLmljb25Nb2RlbCA9IGNoYWluKHRoaXMubm9kZSQpLm1hcChub2RlID0+IHtcbiAgICAgIGNvbnN0IGV4cGFuZGVkID0gdGhpcy50cmVlVGFibGVNb2RlbC5pc0V4cGFuZGVkKHRoaXMubm9kZSk7XG4gICAgICBjb25zdCBpY29uRmFjdG9yeSA9IHRoaXMuaWNvbkZhY3RvcnkgPz8gVHJlZUxhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50LkRFRkFVTFRfSUNPTl9GQUNUT1JZO1xuICAgICAgcmV0dXJuIGljb25GYWN0b3J5KG5vZGUsIGV4cGFuZGVkLCBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQuREVGQVVMVF9JQ09OX0ZBQ1RPUlkobm9kZSwgZXhwYW5kZWQsIHVuZGVmaW5lZCkpO1xuICAgIH0sIHsgZGVwZW5kc09uOiB0aGlzLnRyZWVUYWJsZU1vZGVsLmlzRXhwYW5kZWRQcmVkaWNhdGUkIH0pO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb290JylcbiAgZ2V0IGlzUm9vdCgpIHtcbiAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKHRoaXMubm9kZSkuaXNSb290KCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxlYWYnKVxuICBnZXQgaXNMZWFmKCkge1xuICAgIHJldHVybiBEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3IodGhpcy5ub2RlKS5pc0xlYWYoKTtcbiAgfVxuXG4gIGdldCBub2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGUkLnZhbHVlO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZXhwYW5kT3JDb2xsYXBzZSgkZXZlbnQ6IE1vdXNlRXZlbnQsIG5vZGU6IFQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy50cmVlVGFibGVNb2RlbC5pc0NvbGxhcHNlZChub2RlKSA/IHRoaXMudHJlZVRhYmxlTW9kZWwuZXhwYW5kKG5vZGUpIDogdGhpcy50cmVlVGFibGVNb2RlbC5jb2xsYXBzZShub2RlKTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFRyZWVMYWJlbENlbGxSZW5kZXJlckNvbXBvbmVudCB7XG4gIGV4cG9ydCBjb25zdCBERUZBVUxUX0lDT05fRkFDVE9SWTogVHJlZVRhYmxlTW9kZWwuSWNvbkZhY3Rvcnk8YW55PiA9IChub2RlOiBhbnksIGV4cGFuZGVkOiBib29sZWFuLCBkZWZhdWx0SWNvbjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgaXNMZWFmID0gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKG5vZGUpLmlzTGVhZigpO1xuICAgIHJldHVybiBpc0xlYWYgP1xuICAgICAgdW5kZWZpbmVkIDpcbiAgICAgIGV4cGFuZGVkID9cbiAgICAgICAgJ21hdDpleHBhbmRfbW9yZScgOlxuICAgICAgICAnbWF0OmNoZXZyb25fcmlnaHQnO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInRyZWUtaWNvbnNcIj5cbiAgPGF1cC10cmVlLWluaGVyaXRhbmNlLWljb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgaWNvbkxpc3QudmFsdWVcIiBbdHlwZV09XCJ0eXBlXCI+PC9hdXAtdHJlZS1pbmhlcml0YW5jZS1pY29uPlxuICA8YXVwLWljb24gKm5nSWY9XCJpY29uTW9kZWwudmFsdWVcIlxuICAgICAgICAgICAgW2ljb25dPVwiaWNvbk1vZGVsLnZhbHVlXCJcbiAgICAgICAgICAgIFtjbGFzcy5jbGlja2FibGVdPVwiY2FuRXhwYW5kLnZhbHVlIHx8IGNhbkNvbGxhcHNlLnZhbHVlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRPckNvbGxhcHNlKCRldmVudCwgbm9kZSlcIiA+PC9hdXAtaWNvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImxhYmVsXCI+e3tsYWJlbH19PC9kaXY+XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RyZWUtdGFibGUvdHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsR0FBRyxFQUFrQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT25ELE1BQU0sT0FBTyw4QkFBa0MsU0FBUSxtQkFBbUI7SUFFaEUsS0FBSyxHQUFHLElBQUksaUJBQWlCLEVBQUssQ0FBQztJQUdsQyx3QkFBUztJQUFULElBQUEsS0FBSywyQ0FBSTtJQUFULElBQUEsS0FBSyxpREFBSTtJQUdsQixLQUFLLENBQVM7SUFHZCxXQUFXLENBQWdDO0lBRTNDLHVF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QU1yQixNQUFNO3NCQURULFdBQVc7dUJBQUMsWUFBWTs7QUFpQjNCLFdBQWlCLDhCQUE4QjtJQUNoQyxtREFBb0IsR0FBb0MsQ0FBQyxJQUFTLEVBQUUsUUFBaUIsRUFBRSxXQUFtQixFQUFFLEVBQUU7UUFDekgsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLENBQUM7WUFDYixTQUFTLENBQUMsQ0FBQztZQUNYLFFBQVEsQ0FBQyxDQUFDO2dCQUNSLGlCQUFpQixDQUFDLENBQUM7Z0JBQ25CLG1CQUFtQixDQUFDO0lBQzFCLENBQUMsQ0FBQztBQUNKLENBQUMsRUFUZ0IsOEJBQThCLEtBQTlCLDhCQUE4QixRQVM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RzbCwgTGlzdE1vZGVsQ2hhaW4sIE11dGFibGVWYWx1ZU1vZGVsLCBTdG9yZUluVmFsdWVNb2RlbCwgVmFsdWVNb2RlbENoYWlufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7Q2VsbFJlbmRlcmVyfSBmcm9tICcuLi8uLi9yZW5kZXJlci9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7RGVjb3JhdGVkVHJlZU5vZGV9IGZyb20gJy4uL2RlY29yYXRlZC10cmVlLW5vZGUnO1xuaW1wb3J0IHtUcmVlSW5oZXJpdGFuY2VJY29uQ29tcG9uZW50fSBmcm9tICcuLi90cmVlLWluaGVyaXRhbmNlLWljb24vdHJlZS1pbmhlcml0YW5jZS1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge1RyZWVUYWJsZU1vZGVsfSBmcm9tICcuLi90cmVlLXRhYmxlLW1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRyZWUtbGFiZWwtY2VsbC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQ8VD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbFJlbmRlcmVyPFQ+LCBPbkluaXQge1xuXG4gIHByaXZhdGUgbm9kZSQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VD4oKTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoXCJub2RlJFwiKVxuICBhY2Nlc3NvciB2YWx1ZTogVDtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGljb25GYWN0b3J5OiBUcmVlVGFibGVNb2RlbC5JY29uRmFjdG9yeTxUPjtcblxuICAvLyBUT0RPOiBNYWtlIHRoaXMgaGF2ZSBhIHByb3BlciBkZWxlZ2F0ZSBzbyBJIGNhbiBzYWZlbHkgdXNlIGl0IGhlcmUuLlxuICBASW5wdXQoKVxuICB0cmVlVGFibGVNb2RlbDogVHJlZVRhYmxlTW9kZWw8VD47XG5cbiAgcmVhZG9ubHkgaWNvbkxpc3Q6IExpc3RNb2RlbENoYWluPFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZT47XG5cbiAgY2FuRXhwYW5kOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG4gIGNhbkNvbGxhcHNlOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG4gIGljb25Nb2RlbDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5pY29uTGlzdCA9IGNoYWluKHRoaXMubm9kZSQpLm1hcFRvTGlzdChub2RlID0+IHtcbiAgICAgIGNvbnN0IGljb25zOiBUcmVlSW5oZXJpdGFuY2VJY29uQ29tcG9uZW50LlR5cGVbXSA9IERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5hbmNlc3RvcnMoKS5zbGljZSgxKS5tYXAoYW5jZXN0b3IgPT4ge1xuICAgICAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKGFuY2VzdG9yKS5pc0xhc3RDaGlsZCgpID8gVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlLklDT05fQkxBTksgOiBUcmVlSW5oZXJpdGFuY2VJY29uQ29tcG9uZW50LlR5cGUuSUNPTl9USFJPVUdIO1xuICAgICAgfSk7XG4gICAgICBpZiAoIURlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5pc1Jvb3QoKSkge1xuICAgICAgICBpY29ucy5wdXNoKERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5pc0xhc3RDaGlsZCgpID8gVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlLklDT05fSU5IRVJJVEVEX1RFUk1JTkFMIDogVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlLklDT05fSU5IRVJJVEVEX1RIUk9VR0hfVEVSTUlOQUwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGljb25zO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBjb25zdCB7IGNoYWluIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5jYW5FeHBhbmQgPSBjaGFpbih0aGlzLm5vZGUkKS5tYXAobm9kZSA9PiB7XG4gICAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKG5vZGUpLmhhc0NoaWxkcmVuKCkgJiYgdGhpcy50cmVlVGFibGVNb2RlbC5pc0NvbGxhcHNlZChub2RlKTtcbiAgICB9LCB7IGRlcGVuZHNPbjogdGhpcy50cmVlVGFibGVNb2RlbC5pc0V4cGFuZGVkUHJlZGljYXRlJCB9KTtcblxuICAgIHRoaXMuY2FuQ29sbGFwc2UgPSBjaGFpbih0aGlzLm5vZGUkKS5tYXAobm9kZSA9PiB7XG4gICAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKG5vZGUpLmhhc0NoaWxkcmVuKCkgJiYgIXRoaXMudHJlZVRhYmxlTW9kZWwuaXNDb2xsYXBzZWQobm9kZSk7XG4gICAgfSwgeyBkZXBlbmRzT246IHRoaXMudHJlZVRhYmxlTW9kZWwuaXNFeHBhbmRlZFByZWRpY2F0ZSQgfSk7XG5cbiAgICB0aGlzLmljb25Nb2RlbCA9IGNoYWluKHRoaXMubm9kZSQpLm1hcChub2RlID0+IHtcbiAgICAgIGNvbnN0IGV4cGFuZGVkID0gdGhpcy50cmVlVGFibGVNb2RlbC5pc0V4cGFuZGVkKHRoaXMubm9kZSk7XG4gICAgICBjb25zdCBpY29uRmFjdG9yeSA9IHRoaXMuaWNvbkZhY3RvcnkgPz8gVHJlZUxhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50LkRFRkFVTFRfSUNPTl9GQUNUT1JZO1xuICAgICAgcmV0dXJuIGljb25GYWN0b3J5KG5vZGUsIGV4cGFuZGVkLCBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQuREVGQVVMVF9JQ09OX0ZBQ1RPUlkobm9kZSwgZXhwYW5kZWQsIHVuZGVmaW5lZCkpO1xuICAgIH0sIHsgZGVwZW5kc09uOiB0aGlzLnRyZWVUYWJsZU1vZGVsLmlzRXhwYW5kZWRQcmVkaWNhdGUkIH0pO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb290JylcbiAgZ2V0IGlzUm9vdCgpIHtcbiAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKHRoaXMubm9kZSkuaXNSb290KCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxlYWYnKVxuICBnZXQgaXNMZWFmKCkge1xuICAgIHJldHVybiBEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3IodGhpcy5ub2RlKS5pc0xlYWYoKTtcbiAgfVxuXG4gIGdldCBub2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGUkLnZhbHVlO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZXhwYW5kT3JDb2xsYXBzZSgkZXZlbnQ6IE1vdXNlRXZlbnQsIG5vZGU6IFQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy50cmVlVGFibGVNb2RlbC5pc0NvbGxhcHNlZChub2RlKSA/IHRoaXMudHJlZVRhYmxlTW9kZWwuZXhwYW5kKG5vZGUpIDogdGhpcy50cmVlVGFibGVNb2RlbC5jb2xsYXBzZShub2RlKTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFRyZWVMYWJlbENlbGxSZW5kZXJlckNvbXBvbmVudCB7XG4gIGV4cG9ydCBjb25zdCBERUZBVUxUX0lDT05fRkFDVE9SWTogVHJlZVRhYmxlTW9kZWwuSWNvbkZhY3Rvcnk8YW55PiA9IChub2RlOiBhbnksIGV4cGFuZGVkOiBib29sZWFuLCBkZWZhdWx0SWNvbjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgaXNMZWFmID0gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKG5vZGUpLmlzTGVhZigpO1xuICAgIHJldHVybiBpc0xlYWYgP1xuICAgICAgdW5kZWZpbmVkIDpcbiAgICAgIGV4cGFuZGVkID9cbiAgICAgICAgJ21hdDpleHBhbmRfbW9yZScgOlxuICAgICAgICAnbWF0OmNoZXZyb25fcmlnaHQnO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInRyZWUtaWNvbnNcIj5cbiAgPGF1cC10cmVlLWluaGVyaXRhbmNlLWljb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgaWNvbkxpc3QudmFsdWVcIiBbdHlwZV09XCJ0eXBlXCI+PC9hdXAtdHJlZS1pbmhlcml0YW5jZS1pY29uPlxuICA8YXVwLWljb24gKm5nSWY9XCJpY29uTW9kZWwudmFsdWVcIlxuICAgICAgICAgICAgW2ljb25dPVwiaWNvbk1vZGVsLnZhbHVlXCJcbiAgICAgICAgICAgIFtjbGFzcy5jbGlja2FibGVdPVwiY2FuRXhwYW5kLnZhbHVlIHx8IGNhbkNvbGxhcHNlLnZhbHVlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRPckNvbGxhcHNlKCRldmVudCwgbm9kZSlcIiA+PC9hdXAtaWNvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImxhYmVsXCI+e3tsYWJlbH19PC9kaXY+XG4iXX0=
@@ -5,8 +5,8 @@ export class TreeLabelColumnModel extends ColumnModel {
5
5
  expansionModel;
6
6
  labelFactory = () => undefined;
7
7
  iconFactory;
8
- constructor(columnId, order, textPropertiesProvider, expansionModel) {
9
- super(columnId, order, textPropertiesProvider);
8
+ constructor(columnId, textPropertiesProvider, expansionModel) {
9
+ super(columnId, textPropertiesProvider);
10
10
  this.expansionModel = expansionModel;
11
11
  this.cellRenderer(TreeLabelCellRendererComponent);
12
12
  }
@@ -38,4 +38,4 @@ export class TreeLabelColumnModel extends ColumnModel {
38
38
  return this;
39
39
  }
40
40
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1sYWJlbC1jb2x1bW4tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtbGFiZWwtY29sdW1uLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUc3RyxNQUFNLE9BQU8sb0JBQXlDLFNBQVEsV0FBZ0I7SUFRdkQ7SUFOYixZQUFZLEdBQXFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztJQUNqRSxXQUFXLENBQWtDO0lBRXJELFlBQVksUUFBZ0IsRUFDaEIsS0FBeUIsRUFDekIsc0JBQTBELEVBQ2pELGNBQW1DO1FBQ3RELEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFENUIsbUJBQWMsR0FBZCxjQUFjLENBQXFCO1FBRXRELElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUErQyxRQUFXO1FBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFzQixDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUE2QjtRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsT0FBTyxDQUF5QyxPQUF3QztRQUN0RixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPLENBQXlDLE9BQXdDO1FBQ3RGLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBQzdCLENBQUM7SUFFUyxZQUFZLENBQWdELGFBQStCO1FBQ25HLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLDhCQUE4QixDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDN0csSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsU0FBUyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ2hEO1lBQ0QsU0FBUyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzlCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsU0FBUyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtUeXBlc30gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtDb2x1bW5Nb2RlbH0gZnJvbSAnLi4vY29sdW1uL2NvbHVtbi1tb2RlbCc7XG5pbXBvcnQge0NvbHVtbk9yZGVyTWFuYWdlcn0gZnJvbSBcIi4uL2NvbHVtbi9jb2x1bW4tb3JkZXItbWFuYWdlclwiO1xuaW1wb3J0IHtDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWZ9IGZyb20gJy4uL3JlbmRlcmVyL2NlbGwtcG9ydGFsLXJlZic7XG5pbXBvcnQge1RyZWVMYWJlbENlbGxSZW5kZXJlckNvbXBvbmVudH0gZnJvbSAnLi90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIvdHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1RyZWVUYWJsZU1vZGVsfSBmcm9tICcuL3RyZWUtdGFibGUtbW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgVHJlZUxhYmVsQ29sdW1uTW9kZWw8Um93IGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIENvbHVtbk1vZGVsPFJvdz4ge1xuXG4gIHByaXZhdGUgbGFiZWxGYWN0b3J5OiBUcmVlVGFibGVNb2RlbC5MYWJlbEZhY3Rvcnk8Um93PiA9ICgpID0+IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpY29uRmFjdG9yeTogVHJlZVRhYmxlTW9kZWwuSWNvbkZhY3Rvcnk8Um93PjtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5JZDogc3RyaW5nLFxuICAgICAgICAgICAgICBvcmRlcjogQ29sdW1uT3JkZXJNYW5hZ2VyLFxuICAgICAgICAgICAgICB0ZXh0UHJvcGVydGllc1Byb3ZpZGVyOiBDb2x1bW5Nb2RlbC5UZXh0UHJvcGVydGllc1Byb3ZpZGVyLFxuICAgICAgICAgICAgICByZWFkb25seSBleHBhbnNpb25Nb2RlbDogVHJlZVRhYmxlTW9kZWw8Um93Pikge1xuICAgIHN1cGVyKGNvbHVtbklkLCBvcmRlciwgdGV4dFByb3BlcnRpZXNQcm92aWRlcik7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXIoVHJlZUxhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIHBsdWNrPFAgZXh0ZW5kcyBUeXBlcy5TdHJpbmdWYWx1ZVByb3BlcnRpZXNPZjxSb3c+Pihwcm9wZXJ0eTogUCkge1xuICAgIHRoaXMudXNlTGFiZWwocm93ID0+IHJvd1twcm9wZXJ0eV0gYXMgdW5rbm93biBhcyBzdHJpbmcpXG4gIH1cblxuICB1c2VMYWJlbChmYWN0b3J5OiAocm93OiBSb3cpID0+IHN0cmluZykge1xuICAgIHRoaXMubGFiZWxGYWN0b3J5ID0gZmFjdG9yeTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAjdXNlSWNvbiBpbnN0ZWFkLlxuICAgKiBAcGFyYW0gZmFjdG9yeVxuICAgKi9cbiAgYWRkSWNvbjxQIGV4dGVuZHMgVHlwZXMuVmFsdWVQcm9wZXJ0aWVzT2Y8Um93Pj4oZmFjdG9yeTogVHJlZVRhYmxlTW9kZWwuSWNvbkZhY3Rvcnk8Um93Pikge1xuICAgIHRoaXMudXNlSWNvbihmYWN0b3J5KTtcbiAgfVxuXG4gIHVzZUljb248UCBleHRlbmRzIFR5cGVzLlZhbHVlUHJvcGVydGllc09mPFJvdz4+KGZhY3Rvcnk6IFRyZWVUYWJsZU1vZGVsLkljb25GYWN0b3J5PFJvdz4pIHtcbiAgICB0aGlzLmljb25GYWN0b3J5ID0gZmFjdG9yeTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjZWxsUmVuZGVyZXI8QyBleHRlbmRzIFRyZWVMYWJlbENlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEM+KTogdGhpcyB7XG4gICAgdGhpcy5jb25maWd1cmVDZWxsUmVuZGVyZXIobmV3IENvbXBvbmVudENlbGxSZW5kZXJlclBvcnRhbFJlZihjb21wb25lbnRUeXBlLCAoY29tcG9uZW50LCByb3dEYXRhLCBmaXJzdFRpbWUpID0+IHtcbiAgICAgIGlmIChmaXJzdFRpbWUpIHtcbiAgICAgICAgY29tcG9uZW50LnRyZWVUYWJsZU1vZGVsID0gdGhpcy5leHBhbnNpb25Nb2RlbDtcbiAgICAgIH1cbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IHJvd0RhdGEucm93O1xuICAgICAgY29tcG9uZW50LmxhYmVsID0gdGhpcy5sYWJlbEZhY3Rvcnkocm93RGF0YS5yb3cpO1xuICAgICAgY29tcG9uZW50Lmljb25GYWN0b3J5ID0gdGhpcy5pY29uRmFjdG9yeTtcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1sYWJlbC1jb2x1bW4tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtbGFiZWwtY29sdW1uLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUc3RyxNQUFNLE9BQU8sb0JBQTBCLFNBQVEsV0FBZ0I7SUFPeEM7SUFMYixZQUFZLEdBQXFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztJQUNqRSxXQUFXLENBQWtDO0lBRXJELFlBQVksUUFBZ0IsRUFDaEIsc0JBQTBELEVBQ2pELGNBQW1DO1FBQ3RELEtBQUssQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQURyQixtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFFdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxLQUFLLENBQStDLFFBQVc7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQXNCLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQTRCO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFHRDs7O09BR0c7SUFDSCxPQUFPLENBQXlDLE9BQXdDO1FBQ3RGLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU8sQ0FBeUMsT0FBd0M7UUFDdEYsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVTLFlBQVksQ0FBZ0QsYUFBK0I7UUFDbkcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksOEJBQThCLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRTtZQUM3RyxJQUFJLFNBQVMsRUFBRTtnQkFDYixTQUFTLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDaEQ7WUFDRCxTQUFTLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDOUIsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqRCxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1R5cGVzfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0NvbHVtbk1vZGVsfSBmcm9tICcuLi9jb2x1bW4vY29sdW1uLW1vZGVsJztcbmltcG9ydCB7Q29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmfSBmcm9tICcuLi9yZW5kZXJlci9jZWxsLXBvcnRhbC1yZWYnO1xuaW1wb3J0IHtUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnR9IGZyb20gJy4vdHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmVlVGFibGVNb2RlbH0gZnJvbSAnLi90cmVlLXRhYmxlLW1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFRyZWVMYWJlbENvbHVtbk1vZGVsPFJvdz4gZXh0ZW5kcyBDb2x1bW5Nb2RlbDxSb3c+IHtcblxuICBwcml2YXRlIGxhYmVsRmFjdG9yeTogVHJlZVRhYmxlTW9kZWwuTGFiZWxGYWN0b3J5PFJvdz4gPSAoKSA9PiB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaWNvbkZhY3Rvcnk6IFRyZWVUYWJsZU1vZGVsLkljb25GYWN0b3J5PFJvdz47XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgdGV4dFByb3BlcnRpZXNQcm92aWRlcjogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlcixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgZXhwYW5zaW9uTW9kZWw6IFRyZWVUYWJsZU1vZGVsPFJvdz4pIHtcbiAgICBzdXBlcihjb2x1bW5JZCwgdGV4dFByb3BlcnRpZXNQcm92aWRlcik7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXIoVHJlZUxhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIHBsdWNrPFAgZXh0ZW5kcyBUeXBlcy5TdHJpbmdWYWx1ZVByb3BlcnRpZXNPZjxSb3c+Pihwcm9wZXJ0eTogUCkge1xuICAgIHRoaXMudXNlTGFiZWwocm93ID0+IHJvd1twcm9wZXJ0eV0gYXMgdW5rbm93biBhcyBzdHJpbmcpXG4gIH1cblxuICB1c2VMYWJlbChmYWN0b3J5OiAocm93OlJvdykgPT4gc3RyaW5nKSB7XG4gICAgdGhpcy5sYWJlbEZhY3RvcnkgPSBmYWN0b3J5O1xuICB9XG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICN1c2VJY29uIGluc3RlYWQuXG4gICAqIEBwYXJhbSBmYWN0b3J5XG4gICAqL1xuICBhZGRJY29uPFAgZXh0ZW5kcyBUeXBlcy5WYWx1ZVByb3BlcnRpZXNPZjxSb3c+PihmYWN0b3J5OiBUcmVlVGFibGVNb2RlbC5JY29uRmFjdG9yeTxSb3c+KSB7XG4gICAgdGhpcy51c2VJY29uKGZhY3RvcnkpO1xuICB9XG5cbiAgdXNlSWNvbjxQIGV4dGVuZHMgVHlwZXMuVmFsdWVQcm9wZXJ0aWVzT2Y8Um93Pj4oZmFjdG9yeTogVHJlZVRhYmxlTW9kZWwuSWNvbkZhY3Rvcnk8Um93Pikge1xuICAgIHRoaXMuaWNvbkZhY3RvcnkgPSBmYWN0b3J5O1xuICB9XG5cbiAgcHJvdGVjdGVkIGNlbGxSZW5kZXJlcjxDIGV4dGVuZHMgVHJlZUxhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50PFJvdz4+KGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGU8Qz4pOiB0aGlzIHtcbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxSZW5kZXJlcihuZXcgQ29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmKGNvbXBvbmVudFR5cGUsIChjb21wb25lbnQsIHJvd0RhdGEsIGZpcnN0VGltZSkgPT4ge1xuICAgICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgICBjb21wb25lbnQudHJlZVRhYmxlTW9kZWwgPSB0aGlzLmV4cGFuc2lvbk1vZGVsO1xuICAgICAgfVxuICAgICAgY29tcG9uZW50LnZhbHVlID0gcm93RGF0YS5yb3c7XG4gICAgICBjb21wb25lbnQubGFiZWwgPSB0aGlzLmxhYmVsRmFjdG9yeShyb3dEYXRhLnJvdyk7XG4gICAgICBjb21wb25lbnQuaWNvbkZhY3RvcnkgPSB0aGlzLmljb25GYWN0b3J5O1xuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG59XG4iXX0=