@coolon/angular-ui-powerups 16.1.0-aplpha.79 → 16.1.0-aplpha.8

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 (277) hide show
  1. package/assets/activities/input-activities.scss +2 -10
  2. package/assets/form.scss +27 -62
  3. package/assets/table.scss +18 -15
  4. package/assets/tabs.scss +6 -2
  5. package/esm2022/lib/angular-ui-powerups.module.mjs +1 -1
  6. package/esm2022/lib/animations/slide-animations.mjs +1 -6
  7. package/esm2022/lib/components/alignment.mjs +1 -1
  8. package/esm2022/lib/components/busy-overlay/busy-overlay.component.mjs +9 -4
  9. package/esm2022/lib/components/cards/abstract-card-container.component.mjs +1 -1
  10. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +2 -2
  11. package/esm2022/lib/components/commands/command/command.component.mjs +13 -24
  12. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +3 -11
  13. package/esm2022/lib/components/commands/command-face.mjs +11 -11
  14. package/esm2022/lib/components/commands/flex.component.mjs +1 -1
  15. package/esm2022/lib/components/commands/group/command-container.mjs +1 -1
  16. package/esm2022/lib/components/commands/group/popup-aware.component.mjs +1 -1
  17. package/esm2022/lib/components/commands/group/popup-container.mjs +1 -1
  18. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +11 -11
  19. package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +1 -1
  20. package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +1 -1
  21. package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +2 -2
  22. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +16 -9
  23. package/esm2022/lib/components/commands/separator.component.mjs +1 -1
  24. package/esm2022/lib/components/components.module.mjs +17 -31
  25. package/esm2022/lib/components/disposable-component.mjs +37 -8
  26. package/esm2022/lib/components/empty-state/empty-state.component.mjs +6 -2
  27. package/esm2022/lib/components/exports.mjs +2 -6
  28. package/esm2022/lib/components/focus-container/focus-container.component.mjs +1 -1
  29. package/esm2022/lib/components/focusable.component.mjs +2 -2
  30. package/esm2022/lib/components/forms/abstract-input.component.mjs +15 -62
  31. package/esm2022/lib/components/forms/abstract-list-input.component.mjs +1 -1
  32. package/esm2022/lib/components/forms/abstract-value-input.component.mjs +1 -1
  33. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +4 -3
  34. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +1 -1
  35. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +3 -3
  36. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +10 -49
  37. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +3 -40
  38. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -12
  39. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +10 -22
  40. package/esm2022/lib/components/forms/text-input/text-input.component.mjs +1 -1
  41. package/esm2022/lib/components/icon/icon.component.mjs +3 -6
  42. package/esm2022/lib/components/labelled-value/labelled-value.component.mjs +1 -1
  43. package/esm2022/lib/components/loading-container/loading-container.component.mjs +9 -4
  44. package/esm2022/lib/components/noop/noop.component.mjs +4 -2
  45. package/esm2022/lib/components/resize-aware.component.mjs +24 -61
  46. package/esm2022/lib/components/scroll-container/scroll-container.component.mjs +2 -2
  47. package/esm2022/lib/components/section-header/section-header.component.mjs +1 -1
  48. package/esm2022/lib/components/switch-case/switch-case.component.mjs +2 -2
  49. package/esm2022/lib/components/tables/abstract-table-model.mjs +23 -40
  50. package/esm2022/lib/components/tables/abstract-table.component.mjs +5 -19
  51. package/esm2022/lib/components/tables/column/column-list-model.mjs +44 -0
  52. package/esm2022/lib/components/tables/column/column-model.mjs +7 -18
  53. package/esm2022/lib/components/tables/column/column-template/column-template.directive.mjs +1 -1
  54. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  55. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +5 -5
  56. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +5 -5
  57. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +5 -6
  58. package/esm2022/lib/components/tables/column/property-column-model.mjs +5 -5
  59. package/esm2022/lib/components/tables/column/selection-column-model.mjs +3 -3
  60. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +6 -6
  61. package/esm2022/lib/components/tables/editor/edit-session.mjs +2 -4
  62. package/esm2022/lib/components/tables/editor/editable-cell-renderer.mjs +1 -1
  63. package/esm2022/lib/components/tables/filter/column-text-search-formatter.mjs +1 -1
  64. package/esm2022/lib/components/tables/filter/enable-cell-text-search.decorator.mjs +2 -3
  65. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +2 -4
  66. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +2 -16
  67. package/esm2022/lib/components/tables/paginator/paginator.component.mjs +1 -1
  68. package/esm2022/lib/components/tables/renderer/cell-editors.mjs +1 -1
  69. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +3 -1
  70. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +6 -4
  71. package/esm2022/lib/components/tables/renderer/default-header-cell-renderer/default-header-cell-renderer.component.mjs +4 -2
  72. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +1 -1
  73. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +38 -213
  74. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +1 -1
  75. package/esm2022/lib/components/tables/renderer/table-header-cell/table-header-cell.component.mjs +4 -2
  76. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +1 -1
  77. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +2 -7
  78. package/esm2022/lib/components/tables/table/table-model.mjs +1 -1
  79. package/esm2022/lib/components/tables/table/table.component.mjs +67 -12
  80. package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +1 -1
  81. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +4 -5
  82. package/esm2022/lib/components/tables/tree-table/flattened-tree-list-model.mjs +1 -1
  83. package/esm2022/lib/components/tables/tree-table/tree-expansion-model.mjs +1 -1
  84. package/esm2022/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.mjs +4 -2
  85. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
  86. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +4 -4
  87. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +4 -7
  88. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +3 -3
  89. package/esm2022/lib/components/text/markdown/markdown.component.mjs +3 -3
  90. package/esm2022/lib/components/track.mjs +1 -1
  91. package/esm2022/lib/components/types/bounds.class.mjs +1 -1
  92. package/esm2022/lib/components/vertical-focus-container/vertical-focus-container.component.mjs +1 -1
  93. package/esm2022/lib/directives/command.directive.mjs +2 -2
  94. package/esm2022/lib/directives/directives.module.mjs +2 -2
  95. package/esm2022/lib/directives/exports.mjs +1 -2
  96. package/esm2022/lib/directives/focus-binding-factory.mjs +1 -1
  97. package/esm2022/lib/directives/focus-binding.directive.mjs +2 -2
  98. package/esm2022/lib/directives/focus-binding.mjs +1 -1
  99. package/esm2022/lib/directives/garbage-collector.directive.mjs +1 -2
  100. package/esm2022/lib/directives/highlight-text-model.directive.mjs +1 -1
  101. package/esm2022/lib/directives/highlight.pipe.mjs +2 -2
  102. package/esm2022/lib/interaction/abstract-interaction-context.mjs +1 -1
  103. package/esm2022/lib/interaction/activity-ref.mjs +2 -2
  104. package/esm2022/lib/interaction/activity.mjs +4 -4
  105. package/esm2022/lib/interaction/alert.mjs +2 -2
  106. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +4 -8
  107. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +3 -2
  108. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +3 -3
  109. package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +1 -1
  110. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +11 -28
  111. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +3 -1
  112. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +2 -2
  113. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
  114. package/esm2022/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.mjs +1 -1
  115. package/esm2022/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.mjs +1 -1
  116. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
  117. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
  118. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +1 -1
  119. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +1 -1
  120. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +1 -1
  121. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +1 -1
  122. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  123. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-editor-model.mjs +2 -2
  124. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +3 -3
  125. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +3 -3
  126. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -3
  127. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +1 -4
  128. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +4 -9
  129. package/esm2022/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.mjs +2 -3
  130. package/esm2022/lib/interaction/confirm.mjs +1 -1
  131. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +6 -6
  132. package/esm2022/lib/interaction/exports.mjs +1 -2
  133. package/esm2022/lib/interaction/in-place-interaction-context.mjs +1 -1
  134. package/esm2022/lib/interaction/interaction-context.mjs +1 -1
  135. package/esm2022/lib/interaction/interaction.module.mjs +23 -21
  136. package/esm2022/lib/interaction/route-synchronisation-adapter.mjs +1 -1
  137. package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +1 -1
  138. package/esm2022/lib/interaction/services/interaction.service.mjs +3 -3
  139. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +3 -2
  140. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +2 -1
  141. package/esm2022/lib/interaction/services/modal-interaction-context.factory.mjs +1 -1
  142. package/esm2022/lib/place/components/abstract-place-navigation.component.mjs +1 -1
  143. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +4 -3
  144. package/esm2022/lib/place/components/not-authorised-notice/not-authorised-notice.component.mjs +4 -2
  145. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +4 -4
  146. package/esm2022/lib/place/components/place-outlet/route-animations.mjs +1 -1
  147. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +4 -4
  148. package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +1 -1
  149. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  150. package/esm2022/lib/place/guards/noop-auth-guard.service.mjs +4 -2
  151. package/esm2022/lib/place/guards/place.guard.mjs +2 -2
  152. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  153. package/esm2022/lib/place/navigation/session/abstract-pop-state-navigation.mjs +1 -1
  154. package/esm2022/lib/place/navigation/session/event-cleanup/event-clean-up-session.mjs +1 -1
  155. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.mjs +1 -1
  156. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.mjs +1 -1
  157. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.mjs +1 -1
  158. package/esm2022/lib/place/navigation/session/interactions/navigating-during-interaction.mjs +2 -2
  159. package/esm2022/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.mjs +1 -1
  160. package/esm2022/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.mjs +3 -3
  161. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +6 -3
  162. package/esm2022/lib/place/navigation/session/navigating.mjs +2 -2
  163. package/esm2022/lib/place/navigation/session/navigation-context.mjs +1 -1
  164. package/esm2022/lib/place/navigation/session/navigation-session.mjs +1 -1
  165. package/esm2022/lib/place/navigation/session/pop-state-navigation.mjs +1 -1
  166. package/esm2022/lib/place/place-access-guard.mjs +1 -1
  167. package/esm2022/lib/place/place-component.mjs +30 -29
  168. package/esm2022/lib/place/place-config.mjs +1 -1
  169. package/esm2022/lib/place/place-definition.mjs +3 -3
  170. package/esm2022/lib/place/place-history.mjs +5 -3
  171. package/esm2022/lib/place/place-router.mjs +15 -17
  172. package/esm2022/lib/place/place.decorator.mjs +2 -2
  173. package/esm2022/lib/place/place.module.mjs +5 -1
  174. package/esm2022/lib/place/route/formatter.mjs +2 -2
  175. package/esm2022/lib/place/route/json-types.mjs +1 -1
  176. package/esm2022/lib/place/route/parameter-decorators.mjs +50 -54
  177. package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
  178. package/esm2022/lib/place/route/parameter-sanitiser.mjs +1 -1
  179. package/esm2022/lib/place/route/parameter-snapshot.mjs +1 -1
  180. package/esm2022/lib/place/route/visit-segment-sanitiser.mjs +1 -1
  181. package/esm2022/lib/place/url-service.mjs +1 -1
  182. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  183. package/esm2022/lib/place/visit-segment.mjs +2 -2
  184. package/esm2022/lib/place/visit.mjs +2 -2
  185. package/esm2022/lib/services/markdown/markdown.service.mjs +4 -2
  186. package/esm2022/lib/services/markdown/pill-plugin.mjs +3 -1
  187. package/esm2022/lib/services/visibility-service.mjs +4 -4
  188. package/fesm2022/coolon-angular-ui-powerups.mjs +1769 -2395
  189. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  190. package/lib/animations/slide-animations.d.ts +0 -1
  191. package/lib/components/busy-overlay/busy-overlay.component.d.ts +4 -1
  192. package/lib/components/commands/command/command.component.d.ts +4 -4
  193. package/lib/components/commands/command-face/command-face.component.d.ts +0 -2
  194. package/lib/components/commands/command-face.d.ts +7 -5
  195. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
  196. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +7 -3
  197. package/lib/components/components.module.d.ts +53 -55
  198. package/lib/components/disposable-component.d.ts +6 -1
  199. package/lib/components/empty-state/empty-state.component.d.ts +4 -1
  200. package/lib/components/exports.d.ts +1 -5
  201. package/lib/components/forms/abstract-input.component.d.ts +5 -13
  202. package/lib/components/forms/number-input/number-input.component.d.ts +4 -8
  203. package/lib/components/forms/password-input/password-input.component.d.ts +1 -7
  204. package/lib/components/forms/select-input/select-input.component.d.ts +3 -4
  205. package/lib/components/forms/string-input/string-input.component.d.ts +1 -3
  206. package/lib/components/loading-container/loading-container.component.d.ts +4 -1
  207. package/lib/components/noop/noop.component.d.ts +1 -0
  208. package/lib/components/resize-aware.component.d.ts +5 -24
  209. package/lib/components/switch-case/switch-case.component.d.ts +4 -4
  210. package/lib/components/tables/abstract-table-model.d.ts +5 -10
  211. package/lib/components/tables/abstract-table.component.d.ts +4 -5
  212. package/lib/components/tables/column/column-list-model.d.ts +13 -0
  213. package/lib/components/tables/column/column-model.d.ts +2 -6
  214. package/lib/components/tables/column/custom-template-column-model.d.ts +1 -2
  215. package/lib/components/tables/column/custom-value-column-model.d.ts +1 -2
  216. package/lib/components/tables/column/editor-controls-column-model.d.ts +1 -2
  217. package/lib/components/tables/column/list-propery-column-model.d.ts +1 -2
  218. package/lib/components/tables/column/property-column-model.d.ts +1 -2
  219. package/lib/components/tables/column/selection-column-model.d.ts +1 -2
  220. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +3 -3
  221. package/lib/components/tables/editor/editable-cell-renderer.d.ts +1 -1
  222. package/lib/components/tables/filter/enable-cell-text-search.decorator.d.ts +1 -1
  223. package/lib/components/tables/filter/text-search-predicate.d.ts +0 -9
  224. package/lib/components/tables/renderer/cell-portal-ref.d.ts +3 -2
  225. package/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.d.ts +1 -0
  226. package/lib/components/tables/renderer/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +1 -0
  227. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +15 -25
  228. package/lib/components/tables/renderer/table-header-cell/table-header-cell.component.d.ts +1 -0
  229. package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +1 -2
  230. package/lib/components/tables/table/table.component.d.ts +12 -6
  231. package/lib/components/tables/tree-table/tree-expansion-model.d.ts +2 -2
  232. package/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.d.ts +1 -0
  233. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +1 -2
  234. package/lib/components/tables/tree-table/tree-table-component.d.ts +2 -5
  235. package/lib/components/text/markdown/markdown.component.d.ts +1 -1
  236. package/lib/directives/exports.d.ts +0 -1
  237. package/lib/interaction/activity-ref.d.ts +2 -2
  238. package/lib/interaction/activity.d.ts +2 -2
  239. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +0 -1
  240. package/lib/interaction/components/activity-container/activity-container.component.d.ts +3 -7
  241. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +3 -2
  242. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  243. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +1 -1
  244. package/lib/interaction/components/input-activities/string-input-activity.d.ts +1 -1
  245. package/lib/interaction/directives/interaction-context-trigger-for.directive.d.ts +3 -3
  246. package/lib/interaction/exports.d.ts +0 -1
  247. package/lib/interaction/interaction.module.d.ts +28 -28
  248. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +2 -1
  249. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +2 -1
  250. package/lib/place/components/not-authorised-notice/not-authorised-notice.component.d.ts +1 -0
  251. package/lib/place/guards/noop-auth-guard.service.d.ts +1 -0
  252. package/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.d.ts +1 -0
  253. package/lib/place/place-component.d.ts +10 -4
  254. package/lib/place/place-history.d.ts +1 -0
  255. package/lib/place/place-router.d.ts +2 -2
  256. package/lib/place/place.decorator.d.ts +1 -1
  257. package/lib/place/place.module.d.ts +5 -4
  258. package/lib/place/route/json-types.d.ts +3 -1
  259. package/lib/place/visit-segment.d.ts +4 -4
  260. package/lib/place/visit.d.ts +2 -2
  261. package/lib/services/markdown/markdown.service.d.ts +1 -0
  262. package/lib/services/visibility-service.d.ts +1 -1
  263. package/package.json +7 -8
  264. package/esm2022/lib/components/forms/form-field.mjs +0 -2
  265. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +0 -33
  266. package/esm2022/lib/components/loadable-component.mjs +0 -49
  267. package/esm2022/lib/components/tables/column/column-manager.mjs +0 -81
  268. package/esm2022/lib/components/tables/column/column-order-manager.mjs +0 -19
  269. package/esm2022/lib/directives/resize-observer.directive.mjs +0 -40
  270. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +0 -129
  271. package/lib/components/forms/form-field.d.ts +0 -5
  272. package/lib/components/forms/search-input/search-input.component.d.ts +0 -10
  273. package/lib/components/loadable-component.d.ts +0 -17
  274. package/lib/components/tables/column/column-manager.d.ts +0 -19
  275. package/lib/components/tables/column/column-order-manager.d.ts +0 -20
  276. package/lib/directives/resize-observer.directive.d.ts +0 -16
  277. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +0 -53
@@ -1,152 +1,14 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Component, Directive, ElementRef, HostBinding, Inject, InjectionToken, Input, Optional } from "@angular/core";
3
- import { Dsl, ListModel, Logger, MutableValueModel, Proxify, proxify, StoreInValueModel, TransactionObserver, ValueModel } from "@coolon/pectin";
4
- import { TableVirtualScrollDataSource } from "ng-table-virtual-scroll";
2
+ import { Component, ElementRef, EventEmitter, HostBinding, Input, NgZone, Output } from "@angular/core";
3
+ import { Dsl, ListModel, MutableValueModel, Proxify, proxify, StoreInValueModel, TransactionObserver, ValueModel } from "@coolon/pectin";
5
4
  import { ResizeAwareComponent } from "../../../resize-aware.component";
6
5
  import { AbstractTableModel } from "../../abstract-table-model";
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@angular/common";
9
8
  import * as i2 from "@angular/material/table";
10
- import * as i3 from "@angular/cdk/scrolling";
11
- import * as i4 from "ng-table-virtual-scroll";
12
- import * as i5 from "../table-cell/table-cell.component";
13
- import * as i6 from "../table-header-cell/table-header-cell.component";
14
- // /**
15
- // * Virtual Scroll Strategy
16
- // */
17
- // export class CustomVirtualScrollStrategy extends FixedSizeVirtualScrollStrategy {
18
- // protected readonly garbage = new GarbageCollector();
19
- //
20
- // constructor(rowHeight$: ValueModel<number>, minBufferPx: number, maxBufferPx: number) {
21
- // super(rowHeight$.value, minBufferPx, maxBufferPx);
22
- // const {chain, when} = Dsl.disposeWith(this.garbage);
23
- // when(rowHeight$).changes(h => {
24
- // this.updateItemAndBufferSize(h, minBufferPx, maxBufferPx);
25
- // }, {initialValue: "triggerChangeUnlessNil"})
26
- // }
27
- // }
28
- // export class VirtualScrollDataSource<Row> extends DataSource<Row> implements Disposable, Disposable.Collector {
29
- //
30
- // private garbage = new GarbageCollector();
31
- //
32
- // readonly virtualScrollRowRange$: ValueModelChain<{ start: number; end: number }>;
33
- // readonly virtualScrollSpacerSize$: ValueModelChain<number>;
34
- // readonly totalContentSize$: ValueModelChain<number>;
35
- // readonly showVirtualScrollOffset: (index: number, rowData: any) => boolean;
36
- //
37
- // protected readonly virtualRowsObservable$ = new BehaviorSubject<readonly Row[]>([]);
38
- // private readonly virtualScrollPixelOffset$ = new MutableValueModel<number>(0);
39
- //
40
- //
41
- // constructor(readonly viewport: CdkVirtualScrollViewport, data$:ListModel<Row>, readonly rowHeight$:ValueModel<number>, pageSize$: ValueModel<number>) {
42
- // super();
43
- // const {chain, when, observe} = Dsl.disposeWith(this);
44
- //
45
- // observe.valuesFrom(viewport.elementScrolled()).subscribe((ev: Event) => {
46
- // this.virtualScrollPixelOffset$.value = (ev.currentTarget as any).scrollTop;
47
- // });
48
- //
49
- // this.virtualScrollRowRange$ = chain(this.virtualScrollPixelOffset$).map(rawPixelOffset => {
50
- // const startIndex = Math.floor(rawPixelOffset / this.rowHeight$.value);
51
- // console.log(rawPixelOffset, startIndex)
52
- // // const prevExtraData = startIndex > 5 ? 5 : 0;
53
- // const prevExtraData = 0;
54
- // // return rows.slice(startIndex - prevExtraData, startIndex + (pageSize$.value - prevExtraData));
55
- // return {
56
- // start: startIndex - prevExtraData,
57
- // end: startIndex + (pageSize$.value - prevExtraData)
58
- // }
59
- // }, {
60
- // dependsOn: [this.rowHeight$, pageSize$],
61
- // postponeWhile: chain.numericValue(pageSize$).isLessThan(1),
62
- // changed: (is, was) => {
63
- // return was?.start !== is?.start || was?.end !== is?.end
64
- // }
65
- // })
66
- //
67
- // this.virtualScrollSpacerSize$ = chain(this.virtualScrollRowRange$).map(range => {
68
- // const pixelOffset = this.rowHeight$.value * range.start;
69
- // return pixelOffset;
70
- // }, { dependsOn: this.rowHeight$})
71
- //
72
- // this.totalContentSize$ = chain(data$).count().map(rowCount => {
73
- // return this.rowHeight$.value * rowCount
74
- // }, {dependsOn: rowHeight$})
75
- //
76
- // chain(this.virtualScrollRowRange$).mapToList(range => {
77
- // return data$.value.slice(range.start, range.end);
78
- // }, {
79
- // dependsOn: data$
80
- // }).subscribe(visibleRows => {
81
- // console.log(visibleRows)
82
- // this.virtualRowsObservable$.next(visibleRows)
83
- // });
84
- //
85
- // when(this.virtualScrollSpacerSize$).changes(scrollTop => {
86
- // viewport.setRenderedContentOffset(scrollTop, "to-start");
87
- // }, {initialValue: "triggerChangeUnlessNil"});
88
- //
89
- // when(this.totalContentSize$).changes(totalSize => {
90
- // viewport.setTotalContentSize(totalSize);
91
- // }, {initialValue: "triggerChangeUnlessNil"});
92
- //
93
- //
94
- // this.showVirtualScrollOffset = (index: number, rowData: any): boolean => {
95
- // const haveScrolled = this.virtualScrollSpacerSize$.value > 0;
96
- // const firstRow = index === 0;
97
- // return index === 0 && haveScrolled
98
- // };
99
- //
100
- //
101
- //
102
- // }
103
- //
104
- //
105
- //
106
- // dispose(): void {
107
- // this.garbage.dispose();
108
- // }
109
- //
110
- // registerDisposable<T extends Disposable>(disposable: T): T {
111
- // return this.garbage.registerDisposable(disposable);
112
- // }
113
- //
114
- //
115
- // connect(collectionViewer: CollectionViewer): Observable<readonly Row[]> {
116
- // return this.virtualRowsObservable$;
117
- // }
118
- //
119
- // disconnect(collectionViewer: CollectionViewer): void {
120
- // // noop
121
- // }
122
- //
123
- //
124
- // }
125
- export const AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER = new InjectionToken("AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER");
126
- export class TableRowAttributesDirective {
127
- elementRef;
128
- aupTableRowAttributes;
129
- constructor(elementRef) {
130
- this.elementRef = elementRef;
131
- }
132
- ngOnInit() {
133
- for (const attr in this.aupTableRowAttributes) {
134
- this.elementRef.nativeElement.setAttribute(attr, this.aupTableRowAttributes[attr]);
135
- }
136
- }
137
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
138
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: TableRowAttributesDirective, selector: "[aupTableRowAttributes]", inputs: { aupTableRowAttributes: "aupTableRowAttributes" }, ngImport: i0 });
139
- }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, decorators: [{
141
- type: Directive,
142
- args: [{
143
- selector: "[aupTableRowAttributes]",
144
- }]
145
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { aupTableRowAttributes: [{
146
- type: Input
147
- }] } });
9
+ import * as i3 from "../table-cell/table-cell.component";
10
+ import * as i4 from "../table-header-cell/table-header-cell.component";
148
11
  export class TableBodyComponent extends ResizeAwareComponent {
149
- bufferMultiplier;
150
12
  #data$_accessor_storage = proxify((ListModel));
151
13
  get data$() { return this.#data$_accessor_storage; }
152
14
  set data$(value) { this.#data$_accessor_storage = value; }
@@ -159,57 +21,47 @@ export class TableBodyComponent extends ResizeAwareComponent {
159
21
  #showHeader_accessor_storage = true;
160
22
  get showHeader() { return this.#showHeader_accessor_storage; }
161
23
  set showHeader(value) { this.#showHeader_accessor_storage = value; }
24
+ visibleRowCount = new EventEmitter();
162
25
  trackBy;
163
- #scrollMode$_accessor_storage = proxify((ValueModel));
164
- get scrollMode$() { return this.#scrollMode$_accessor_storage; }
165
- set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
166
- #scrollMode_accessor_storage = "none";
167
- get scrollMode() { return this.#scrollMode_accessor_storage; }
168
- set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
26
+ /**
27
+ * Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
28
+ * need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
29
+ * containment area.
30
+ */
31
+ enableScrolling = false;
169
32
  columns$;
170
33
  columnIds$;
171
34
  columnsById$;
35
+ _visibleRowCount$;
172
36
  // TODO: support user defined header and row heights via css vars.
173
37
  headerHeight$ = new MutableValueModel(29);
174
38
  rowHeight$ = new MutableValueModel(40);
175
39
  baseCssClass = "aup-table-component";
176
- virtualScrollDataSource = new TableVirtualScrollDataSource();
177
- constructor(bufferMultiplier = 1) {
178
- super();
179
- this.bufferMultiplier = bufferMultiplier;
180
- const { chain, when, observe } = Dsl.disposeWith(this);
40
+ constructor(elementRef, ngZone) {
41
+ super(elementRef, ngZone);
42
+ const { chain, when } = Dsl.disposeWith(this);
181
43
  const actualHeaderHeight$ = chain(this.showHeader$).map(show => {
182
44
  return show ? this.headerHeight$.value : 0;
183
45
  }, { dependsOn: this.headerHeight$ });
184
- // this.tableBodyHeight$ = chain(this.bounds$).map(bounds => {
185
- // return (bounds.height - actualHeaderHeight$.value)
186
- // }, {dependsOn: actualHeaderHeight$})
187
- // .otherwise(0);
188
- // const visibleRowCount$ = chain(this.bounds$).map(bounds => {
189
- // // TODO: this doesn't take into account any css styling adjustments etc. Will investigate if it's an issue.
190
- // const rawRowCount = (bounds.height - actualHeaderHeight$.value) / this.rowHeight$.value;
191
- // return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
192
- // }, {
193
- // dependsOn: [actualHeaderHeight$, this.rowHeight$],
194
- // postponeWhile: chain(this.bounds$).pluckNumeric("height").isLessThan(1)
195
- // });
196
- // // const pageSize$ = chain(visibleRowCount$)
197
- // // .map(count => 2 * count).otherwise(0)
198
- // const pageSize$ = ValueModel.constant(12)
199
- when(this.data$).changes(is => {
200
- this.virtualScrollDataSource.data = is;
201
- this.scheduleTableHeightCheck();
202
- }, { initialValue: "evaluate" });
46
+ this._visibleRowCount$ = chain(this.bounds$).map(bounds => {
47
+ // TODO: this doesn't take into account any css styling adjustments etc. Will investigate if it's an issue.
48
+ const rawRowCount = (bounds.height - actualHeaderHeight$.value) / this.rowHeight$.value;
49
+ return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
50
+ }, {
51
+ dependsOn: [actualHeaderHeight$, this.rowHeight$],
52
+ postponeWhile: chain(this.bounds$).pluckNumeric("height").isLessThan(1)
53
+ });
54
+ when(this._visibleRowCount$).changes(visibleRows => {
55
+ this.visibleRowCount.emit(visibleRows);
56
+ }, { initialValue: "triggerChangeUnlessNil" });
203
57
  this.onInit(() => {
204
58
  this.columns$ = chain(this.tableModel.columns);
205
59
  this.columnIds$ = chain(this.columns$).pluck("columnId");
206
60
  this.columnsById$ = chain(this.columns$).indexBy('columnId');
207
61
  });
208
- const txo = new TransactionObserver({ verbose: false }).onEvent(e => console.log(e.name, e.payload));
209
- // txo.observe('this.virtualScrollRowRange$', this.virtualScrollRowRange$);
210
- // txo.observe('this.virtualScrollSpacerSize$', this.virtualScrollSpacerSize$);
211
- // txo.observe('this.virtualRows$', this.virtualRows$);
212
- // txo.observe('this.tableBodyHeight$', this.tableBodyHeight$);
62
+ const txo = new TransactionObserver().onEvent(e => console.log(e.name, e.payload));
63
+ txo.observe('this.boundsModel', this.bounds$);
64
+ txo.observe('this._visibleRowCount$', this._visibleRowCount$);
213
65
  }
214
66
  get hideHeader() {
215
67
  return !this.showHeader;
@@ -238,22 +90,8 @@ export class TableBodyComponent extends ResizeAwareComponent {
238
90
  }
239
91
  return classes;
240
92
  }
241
- scheduleTableHeightCheck(waitMillis = 50) {
242
- setTimeout(() => {
243
- const tbody = this.elementRef.nativeElement.querySelector("tbody");
244
- const bodyHeight = tbody.offsetHeight;
245
- if (this.data$.length > 0 && bodyHeight < this.rowHeight$.value) {
246
- // Hacks to get our virtual scroll to repaint
247
- Logger.get(this).log(`rowCount=${this.data$.length}, bodyHeight=${bodyHeight} -> vritual table not rendering, triggering resize to force repaint`);
248
- window.dispatchEvent(new Event('resize'));
249
- if (waitMillis < 500) {
250
- this.scheduleTableHeightCheck(waitMillis + 50);
251
- }
252
- }
253
- }, waitMillis);
254
- }
255
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, deps: [{ token: AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
256
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableBodyComponent, selector: "aup-table-body", inputs: { data$: "data$", tableModel: "tableModel", showHeader$: "showHeader$", showHeader: "showHeader", trackBy: "trackBy", scrollMode$: "scrollMode$", scrollMode: "scrollMode" }, host: { properties: { "attr.scrollMode": "this.scrollMode", "class": "this.baseCssClass", "class.hide-header": "this.hideHeader" } }, usesInheritance: true, ngImport: i0, template: "\n<div class=\"classic-scroll-container\" *ngIf=\"scrollMode$.value !== 'virtual'\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\" [multiTemplateDataRows]>\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [aupTableRowAttributes]=\"tableModel.getRowAttributes(row)\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n<cdk-virtual-scroll-viewport *ngIf=\"scrollMode$.value === 'virtual'\"\n [tvsItemSize]=\"rowHeight$.value\" [headerHeight]=\"headerHeight$.value\" [bufferMultiplier]=\"bufferMultiplier\">\n <table mat-table [dataSource]=\"virtualScrollDataSource\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [aupTableRowAttributes]=\"tableModel.getRowAttributes(row)\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</cdk-virtual-scroll-viewport>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host[scrollMode=virtual] cdk-virtual-scroll-viewport{flex:1}:host[scrollMode=classic]{min-height:0}:host[scrollMode=classic] .classic-scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i4.TableItemSizeDirective, selector: "cdk-virtual-scroll-viewport[tvsItemSize]", inputs: ["tvsItemSize", "headerEnabled", "headerHeight", "footerEnabled", "footerHeight", "bufferMultiplier"] }, { kind: "directive", type: TableRowAttributesDirective, selector: "[aupTableRowAttributes]", inputs: ["aupTableRowAttributes"] }, { kind: "component", type: i5.TableCellComponent, selector: "aup-table-cell", inputs: ["row", "column", "editSession", "tableModel"] }, { kind: "component", type: i6.TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: ["column"] }] });
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
94
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableBodyComponent, selector: "aup-table-body", inputs: { data$: "data$", tableModel: "tableModel", showHeader$: "showHeader$", showHeader: "showHeader", trackBy: "trackBy", enableScrolling: "enableScrolling" }, outputs: { visibleRowCount: "visibleRowCount" }, host: { properties: { "class.enable-scrolling": "this.enableScrolling", "class": "this.baseCssClass", "class.hide-header": "this.hideHeader" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.TableCellComponent, selector: "aup-table-cell", inputs: ["row", "column", "editSession", "tableModel"] }, { kind: "component", type: i4.TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: ["column"] }] });
257
95
  }
258
96
  __decorate([
259
97
  Proxify(),
@@ -271,23 +109,10 @@ __decorate([
271
109
  StoreInValueModel(),
272
110
  __metadata("design:type", Object)
273
111
  ], TableBodyComponent.prototype, "showHeader", null);
274
- __decorate([
275
- Proxify(),
276
- __metadata("design:type", ValueModel)
277
- ], TableBodyComponent.prototype, "scrollMode$", null);
278
- __decorate([
279
- StoreInValueModel(),
280
- __metadata("design:type", String)
281
- ], TableBodyComponent.prototype, "scrollMode", null);
282
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, decorators: [{
283
113
  type: Component,
284
- args: [{ selector: "aup-table-body", template: "\n<div class=\"classic-scroll-container\" *ngIf=\"scrollMode$.value !== 'virtual'\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\" [multiTemplateDataRows]>\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [aupTableRowAttributes]=\"tableModel.getRowAttributes(row)\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n<cdk-virtual-scroll-viewport *ngIf=\"scrollMode$.value === 'virtual'\"\n [tvsItemSize]=\"rowHeight$.value\" [headerHeight]=\"headerHeight$.value\" [bufferMultiplier]=\"bufferMultiplier\">\n <table mat-table [dataSource]=\"virtualScrollDataSource\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [aupTableRowAttributes]=\"tableModel.getRowAttributes(row)\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</cdk-virtual-scroll-viewport>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host[scrollMode=virtual] cdk-virtual-scroll-viewport{flex:1}:host[scrollMode=classic]{min-height:0}:host[scrollMode=classic] .classic-scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"] }]
285
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
286
- type: Inject,
287
- args: [AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER]
288
- }, {
289
- type: Optional
290
- }] }]; }, propDecorators: { data$: [{
114
+ args: [{ selector: "aup-table-body", template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"] }]
115
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { data$: [{
291
116
  type: Input
292
117
  }], tableModel: [{
293
118
  type: Input
@@ -295,15 +120,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
295
120
  type: Input
296
121
  }], showHeader: [{
297
122
  type: Input
123
+ }], visibleRowCount: [{
124
+ type: Output
298
125
  }], trackBy: [{
299
126
  type: Input
300
- }], scrollMode$: [{
301
- type: Input
302
- }], scrollMode: [{
127
+ }], enableScrolling: [{
303
128
  type: Input
304
129
  }, {
305
130
  type: HostBinding,
306
- args: ["attr.scrollMode"]
131
+ args: ["class.enable-scrolling"]
307
132
  }], baseCssClass: [{
308
133
  type: HostBinding,
309
134
  args: ["class"]
@@ -311,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
311
136
  type: HostBinding,
312
137
  args: ["class.hide-header"]
313
138
  }] } });
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1ib2R5L3RhYmxlLWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtYm9keS90YWJsZS1ib2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFNQSxPQUFPLEVBR0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQ2hDLFdBQVcsRUFBRSxNQUFNLEVBQ1gsY0FBYyxFQUN0QixLQUFLLEVBQ0csUUFBUSxFQUdqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsR0FBRyxFQUVILFNBQVMsRUFDTyxNQUFNLEVBRXRCLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFckUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBRzlELE1BQU07QUFDTiw2QkFBNkI7QUFDN0IsTUFBTTtBQUNOLG9GQUFvRjtBQUNwRix5REFBeUQ7QUFDekQsRUFBRTtBQUNGLDRGQUE0RjtBQUM1Rix5REFBeUQ7QUFDekQsMkRBQTJEO0FBQzNELHNDQUFzQztBQUN0QyxtRUFBbUU7QUFDbkUsbURBQW1EO0FBQ25ELE1BQU07QUFDTixJ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O0FBSTVHO0lBRkMsaUJBQWlCLEVBQUU7O29EQUUrQjsyRkF0QmpELGtCQUFrQjtrQkFWOUIsU0FBUzsrQkFDRSxnQkFBZ0I7OzBCQWdEYixNQUFNOzJCQUFDLDBDQUEwQzs7MEJBQUcsUUFBUTs0Q0FwQ2hFLEtBQUs7c0JBRGIsS0FBSztnQkFJRyxVQUFVO3NCQURsQixLQUFLO2dCQUlHLFdBQVc7c0JBRG5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFEbEIsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsS0FBSztnQkFLRyxVQUFVO3NCQUZsQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFjOUIsWUFBWTtzQkFEWCxXQUFXO3VCQUFDLE9BQU87Z0JBc0RoQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb2xsZWN0aW9uVmlld2VyLCBEYXRhU291cmNlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zXCI7XG5pbXBvcnQge1xuICBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsXG4gIEZpeGVkU2l6ZVZpcnR1YWxTY3JvbGxTdHJhdGVneSxcbiAgVklSVFVBTF9TQ1JPTExfU1RSQVRFR1lcbn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9zY3JvbGxpbmdcIjtcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsIEluamVjdCxcbiAgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uSW5pdCwgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbiwgTG9nZ2VyLFxuICBNYXBNb2RlbENoYWluLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgUHJveGlmeSxcbiAgcHJveGlmeSxcbiAgU3RvcmVJblZhbHVlTW9kZWwsIFRyYWNlLFxuICBUcmFuc2FjdGlvbk9ic2VydmVyLFxuICBWYWx1ZU1vZGVsLFxuICBWYWx1ZU1vZGVsQ2hhaW5cbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge1RhYmxlVmlydHVhbFNjcm9sbERhdGFTb3VyY2V9IGZyb20gXCJuZy10YWJsZS12aXJ0dWFsLXNjcm9sbFwiO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1Jlc2l6ZUF3YXJlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vcmVzaXplLWF3YXJlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtBYnN0cmFjdFRhYmxlTW9kZWx9IGZyb20gXCIuLi8uLi9hYnN0cmFjdC10YWJsZS1tb2RlbFwiO1xuaW1wb3J0IHtDb2x1bW5Nb2RlbH0gZnJvbSBcIi4uLy4uL2NvbHVtbi9jb2x1bW4tbW9kZWxcIjtcblxuLy8gLyoqXG4vLyAgKiBWaXJ0dWFsIFNjcm9sbCBTdHJhdGVneVxuLy8gICovXG4vLyBleHBvcnQgY2xhc3MgQ3VzdG9tVmlydHVhbFNjcm9sbFN0cmF0ZWd5IGV4dGVuZHMgRml4ZWRTaXplVmlydHVhbFNjcm9sbFN0cmF0ZWd5IHtcbi8vICAgcHJvdGVjdGVkIHJlYWRvbmx5IGdhcmJhZ2UgPSBuZXcgR2FyYmFnZUNvbGxlY3RvcigpO1xuLy9cbi8vICAgY29uc3RydWN0b3Iocm93SGVpZ2h0JDogVmFsdWVNb2RlbDxudW1iZXI+LCBtaW5CdWZmZXJQeDogbnVtYmVyLCBtYXhCdWZmZXJQeDogbnVtYmVyKSB7XG4vLyAgICAgc3VwZXIocm93SGVpZ2h0JC52YWx1ZSwgbWluQnVmZmVyUHgsIG1heEJ1ZmZlclB4KTtcbi8vICAgICBjb25zdCB7Y2hhaW4sIHdoZW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMuZ2FyYmFnZSk7XG4vLyAgICAgd2hlbihyb3dIZWlnaHQkKS5jaGFuZ2VzKGggPT4ge1xuLy8gICAgICAgdGhpcy51cGRhdGVJdGVtQW5kQnVmZmVyU2l6ZShoLCBtaW5CdWZmZXJQeCwgbWF4QnVmZmVyUHgpO1xuLy8gICAgIH0sIHtpbml0aWFsVmFsdWU6IFwidHJpZ2dlckNoYW5nZVVubGVzc05pbFwifSlcbi8vICAgfVxuLy8gfVxuXG5cbi8vIGV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsRGF0YVNvdXJjZTxSb3c+IGV4dGVuZHMgRGF0YVNvdXJjZTxSb3c+IGltcGxlbWVudHMgRGlzcG9zYWJsZSwgRGlzcG9zYWJsZS5Db2xsZWN0b3Ige1xuLy9cbi8vICAgcHJpdmF0ZSBnYXJiYWdlID0gbmV3IEdhcmJhZ2VDb2xsZWN0b3IoKTtcbi8vXG4vLyAgIHJlYWRvbmx5IHZpcnR1YWxTY3JvbGxSb3dSYW5nZSQ6IFZhbHVlTW9kZWxDaGFpbjx7IHN0YXJ0OiBudW1iZXI7IGVuZDogbnVtYmVyIH0+O1xuLy8gICByZWFkb25seSB2aXJ0dWFsU2Nyb2xsU3BhY2VyU2l6ZSQ6IFZhbHVlTW9kZWxDaGFpbjxudW1iZXI+O1xuLy8gICByZWFkb25seSB0b3RhbENvbnRlbnRTaXplJDogVmFsdWVNb2RlbENoYWluPG51bWJlcj47XG4vLyAgIHJlYWRvbmx5IHNob3dWaXJ0dWFsU2Nyb2xsT2Zmc2V0OiAoaW5kZXg6IG51bWJlciwgcm93RGF0YTogYW55KSA9PiBib29sZWFuO1xuLy9cbi8vICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZpcnR1YWxSb3dzT2JzZXJ2YWJsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHJlYWRvbmx5IFJvd1tdPihbXSk7XG4vLyAgIHByaXZhdGUgcmVhZG9ubHkgdmlydHVhbFNjcm9sbFBpeGVsT2Zmc2V0JCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxudW1iZXI+KDApO1xuLy9cbi8vXG4vLyAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHZpZXdwb3J0OiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIGRhdGEkOkxpc3RNb2RlbDxSb3c+LCByZWFkb25seSByb3dIZWlnaHQkOlZhbHVlTW9kZWw8bnVtYmVyPiwgcGFnZVNpemUkOiBWYWx1ZU1vZGVsPG51bWJlcj4pIHtcbi8vICAgICBzdXBlcigpO1xuLy8gICAgIGNvbnN0IHtjaGFpbiwgd2hlbiwgb2JzZXJ2ZX0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4vL1xuLy8gICAgIG9ic2VydmUudmFsdWVzRnJvbSh2aWV3cG9ydC5lbGVtZW50U2Nyb2xsZWQoKSkuc3Vic2NyaWJlKChldjogRXZlbnQpID0+IHtcbi8vICAgICAgIHRoaXMudmlydHVhbFNjcm9sbFBpeGVsT2Zmc2V0JC52YWx1ZSA9IChldi5jdXJyZW50VGFyZ2V0IGFzIGFueSkuc2Nyb2xsVG9wO1xuLy8gICAgIH0pO1xuLy9cbi8vICAgICB0aGlzLnZpcnR1YWxTY3JvbGxSb3dSYW5nZSQgPSBjaGFpbih0aGlzLnZpcnR1YWxTY3JvbGxQaXhlbE9mZnNldCQpLm1hcChyYXdQaXhlbE9mZnNldCA9PiB7XG4vLyAgICAgICBjb25zdCBzdGFydEluZGV4ID0gTWF0aC5mbG9vcihyYXdQaXhlbE9mZnNldCAvIHRoaXMucm93SGVpZ2h0JC52YWx1ZSk7XG4vLyAgICAgICBjb25zb2xlLmxvZyhyYXdQaXhlbE9mZnNldCwgc3RhcnRJbmRleClcbi8vICAgICAgIC8vIGNvbnN0IHByZXZFeHRyYURhdGEgPSBzdGFydEluZGV4ID4gNSA/IDUgOiAwO1xuLy8gICAgICAgY29uc3QgcHJldkV4dHJhRGF0YSA9IDA7XG4vLyAgICAgICAvLyByZXR1cm4gcm93cy5zbGljZShzdGFydEluZGV4IC0gcHJldkV4dHJhRGF0YSwgc3RhcnRJbmRleCArIChwYWdlU2l6ZSQudmFsdWUgLSBwcmV2RXh0cmFEYXRhKSk7XG4vLyAgICAgICByZXR1cm4ge1xuLy8gICAgICAgICBzdGFydDogc3RhcnRJbmRleCAtIHByZXZFeHRyYURhdGEsXG4vLyAgICAgICAgIGVuZDogc3RhcnRJbmRleCArIChwYWdlU2l6ZSQudmFsdWUgLSBwcmV2RXh0cmFEYXRhKVxuLy8gICAgICAgfVxuLy8gICAgIH0sIHtcbi8vICAgICAgIGRlcGVuZHNPbjogW3RoaXMucm93SGVpZ2h0JCwgcGFnZVNpemUkXSxcbi8vICAgICAgIHBvc3Rwb25lV2hpbGU6IGNoYWluLm51bWVyaWNWYWx1ZShwYWdlU2l6ZSQpLmlzTGVzc1RoYW4oMSksXG4vLyAgICAgICBjaGFuZ2VkOiAoaXMsIHdhcykgPT4ge1xuLy8gICAgICAgICByZXR1cm4gd2FzPy5zdGFydCAhPT0gaXM/LnN0YXJ0IHx8IHdhcz8uZW5kICE9PSBpcz8uZW5kXG4vLyAgICAgICB9XG4vLyAgICAgfSlcbi8vXG4vLyAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsU3BhY2VyU2l6ZSQgPSBjaGFpbih0aGlzLnZpcnR1YWxTY3JvbGxSb3dSYW5nZSQpLm1hcChyYW5nZSA9PiB7XG4vLyAgICAgICBjb25zdCBwaXhlbE9mZnNldCA9IHRoaXMucm93SGVpZ2h0JC52YWx1ZSAqIHJhbmdlLnN0YXJ0O1xuLy8gICAgICAgcmV0dXJuIHBpeGVsT2Zmc2V0O1xuLy8gICAgIH0sIHsgZGVwZW5kc09uOiB0aGlzLnJvd0hlaWdodCR9KVxuLy9cbi8vICAgICB0aGlzLnRvdGFsQ29udGVudFNpemUkID0gY2hhaW4oZGF0YSQpLmNvdW50KCkubWFwKHJvd0NvdW50ID0+IHtcbi8vICAgICAgIHJldHVybiB0aGlzLnJvd0hlaWdodCQudmFsdWUgKiByb3dDb3VudFxuLy8gICAgIH0sIHtkZXBlbmRzT246IHJvd0hlaWdodCR9KVxuLy9cbi8vICAgICBjaGFpbih0aGlzLnZpcnR1YWxTY3JvbGxSb3dSYW5nZSQpLm1hcFRvTGlzdChyYW5nZSA9PiB7XG4vLyAgICAgICByZXR1cm4gZGF0YSQudmFsdWUuc2xpY2UocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7XG4vLyAgICAgfSwge1xuLy8gICAgICAgZGVwZW5kc09uOiBkYXRhJFxuLy8gICAgIH0pLnN1YnNjcmliZSh2aXNpYmxlUm93cyA9PiB7XG4vLyAgICAgICBjb25zb2xlLmxvZyh2aXNpYmxlUm93cylcbi8vICAgICAgIHRoaXMudmlydHVhbFJvd3NPYnNlcnZhYmxlJC5uZXh0KHZpc2libGVSb3dzKVxuLy8gICAgIH0pO1xuLy9cbi8vICAgICB3aGVuKHRoaXMudmlydHVhbFNjcm9sbFNwYWNlclNpemUkKS5jaGFuZ2VzKHNjcm9sbFRvcCA9PiB7XG4vLyAgICAgICB2aWV3cG9ydC5zZXRSZW5kZXJlZENvbnRlbnRPZmZzZXQoc2Nyb2xsVG9wLCBcInRvLXN0YXJ0XCIpO1xuLy8gICAgIH0sIHtpbml0aWFsVmFsdWU6IFwidHJpZ2dlckNoYW5nZVVubGVzc05pbFwifSk7XG4vL1xuLy8gICAgIHdoZW4odGhpcy50b3RhbENvbnRlbnRTaXplJCkuY2hhbmdlcyh0b3RhbFNpemUgPT4ge1xuLy8gICAgICAgdmlld3BvcnQuc2V0VG90YWxDb250ZW50U2l6ZSh0b3RhbFNpemUpO1xuLy8gICAgIH0sIHtpbml0aWFsVmFsdWU6IFwidHJpZ2dlckNoYW5nZVVubGVzc05pbFwifSk7XG4vL1xuLy9cbi8vICAgICB0aGlzLnNob3dWaXJ0dWFsU2Nyb2xsT2Zmc2V0ID0gKGluZGV4OiBudW1iZXIsIHJvd0RhdGE6IGFueSk6IGJvb2xlYW4gPT4ge1xuLy8gICAgICAgY29uc3QgaGF2ZVNjcm9sbGVkID0gdGhpcy52aXJ0dWFsU2Nyb2xsU3BhY2VyU2l6ZSQudmFsdWUgPiAwO1xuLy8gICAgICAgY29uc3QgZmlyc3RSb3cgPSBpbmRleCA9PT0gMDtcbi8vICAgICAgIHJldHVybiBpbmRleCA9PT0gMCAmJiBoYXZlU2Nyb2xsZWRcbi8vICAgICB9O1xuLy9cbi8vXG4vL1xuLy8gICB9XG4vL1xuLy9cbi8vXG4vLyAgIGRpc3Bvc2UoKTogdm9pZCB7XG4vLyAgICAgdGhpcy5nYXJiYWdlLmRpc3Bvc2UoKTtcbi8vICAgfVxuLy9cbi8vICAgcmVnaXN0ZXJEaXNwb3NhYmxlPFQgZXh0ZW5kcyBEaXNwb3NhYmxlPihkaXNwb3NhYmxlOiBUKTogVCB7XG4vLyAgICAgcmV0dXJuIHRoaXMuZ2FyYmFnZS5yZWdpc3RlckRpc3Bvc2FibGUoZGlzcG9zYWJsZSk7XG4vLyAgIH1cbi8vXG4vL1xuLy8gICBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFJvd1tdPiB7XG4vLyAgICAgcmV0dXJuIHRoaXMudmlydHVhbFJvd3NPYnNlcnZhYmxlJDtcbi8vICAgfVxuLy9cbi8vICAgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XG4vLyAgICAgLy8gbm9vcFxuLy8gICB9XG4vL1xuLy9cbi8vIH1cblxuZXhwb3J0IGNvbnN0IEFVUF9UQUJMRV9WSVJUVUFMX1NDUk9MTF9CVUZGRVJfTVVMVElQTElFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KFwiQVVQX1RBQkxFX1ZJUlRVQUxfU0NST0xMX0JVRkZFUl9NVUxUSVBMSUVSXCIpXG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIlthdXBUYWJsZVJvd0F0dHJpYnV0ZXNdXCIsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlUm93QXR0cmlidXRlc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgYXVwVGFibGVSb3dBdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGF0dHIgaW4gdGhpcy5hdXBUYWJsZVJvd0F0dHJpYnV0ZXMpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyLCB0aGlzLmF1cFRhYmxlUm93QXR0cmlidXRlc1thdHRyXSk7XG4gICAgfVxuICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF1cC10YWJsZS1ib2R5XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUtYm9keS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdGFibGUtYm9keS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgLy8gcHJvdmlkZXJzOiBbe1xuICAvLyAgIHByb3ZpZGU6IFZJUlRVQUxfU0NST0xMX1NUUkFURUdZLCB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gIC8vICAgICByZXR1cm4gaW5qZWN0KFRhYmxlQm9keUNvbXBvbmVudCkudmlydHVhbFNjcm9sbFN0cmF0ZWd5XG4gIC8vICAgfVxuICAvLyB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVCb2R5Q29tcG9uZW50PFJvdz4gZXh0ZW5kcyBSZXNpemVBd2FyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBkYXRhJCA9IHByb3hpZnkoTGlzdE1vZGVsPFJvdz4pO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgdGFibGVNb2RlbCA9IHByb3hpZnkoQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz4pO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3Igc2hvd0hlYWRlciQgPSBwcm94aWZ5KFZhbHVlTW9kZWw8Ym9vbGVhbj4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIHNob3dIZWFkZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHRyYWNrQnk6IChpbmRleDogbnVtYmVyLCBpdGVtOiBSb3cpID0+IGFueVxuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3Igc2Nyb2xsTW9kZSQ6IFZhbHVlTW9kZWw8VGFibGVCb2R5Q29tcG9uZW50LlNjcm9sbE1vZGU+ID0gcHJveGlmeShWYWx1ZU1vZGVsPFRhYmxlQm9keUNvbXBvbmVudC5TY3JvbGxNb2RlPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgQEhvc3RCaW5kaW5nKFwiYXR0ci5zY3JvbGxNb2RlXCIpXG4gIGFjY2Vzc29yIHNjcm9sbE1vZGU6IFRhYmxlQm9keUNvbXBvbmVudC5TY3JvbGxNb2RlID0gXCJub25lXCI7XG5cbiAgY29sdW1ucyQ6IExpc3RNb2RlbENoYWluPENvbHVtbk1vZGVsPFJvdz4+O1xuICBjb2x1bW5JZHMkOiBMaXN0TW9kZWxDaGFpbjxzdHJpbmc+O1xuXG4gIHByaXZhdGUgY29sdW1uc0J5SWQkOiBNYXBNb2RlbENoYWluPHN0cmluZywgQ29sdW1uTW9kZWw8Um93Pj47XG5cblxuICAvLyBUT0RPOiBzdXBwb3J0IHVzZXIgZGVmaW5lZCBoZWFkZXIgYW5kIHJvdyBoZWlnaHRzIHZpYSBjc3MgdmFycy5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhlYWRlckhlaWdodCQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8bnVtYmVyPigyOSk7XG4gIHByb3RlY3RlZCByb3dIZWlnaHQkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPG51bWJlcj4oNDApO1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpXG4gIGJhc2VDc3NDbGFzcyA9IFwiYXVwLXRhYmxlLWNvbXBvbmVudFwiO1xuXG4gIHByb3RlY3RlZCB2aXJ0dWFsU2Nyb2xsRGF0YVNvdXJjZSA9IG5ldyBUYWJsZVZpcnR1YWxTY3JvbGxEYXRhU291cmNlPFJvdz4oKTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFVUF9UQUJMRV9WSVJUVUFMX1NDUk9MTF9CVUZGRVJfTVVMVElQTElFUikgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGJ1ZmZlck11bHRpcGxpZXI6bnVtYmVyID0gMSkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB3aGVuLCBvYnNlcnZlfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIGNvbnN0IGFjdHVhbEhlYWRlckhlaWdodCQgPSBjaGFpbih0aGlzLnNob3dIZWFkZXIkKS5tYXAoc2hvdyA9PiB7XG4gICAgICByZXR1cm4gc2hvdyA/IHRoaXMuaGVhZGVySGVpZ2h0JC52YWx1ZSA6IDA7XG4gICAgfSwge2RlcGVuZHNPbjogdGhpcy5oZWFkZXJIZWlnaHQkfSk7XG5cbiAgICAvLyB0aGlzLnRhYmxlQm9keUhlaWdodCQgPSBjaGFpbih0aGlzLmJvdW5kcyQpLm1hcChib3VuZHMgPT4ge1xuICAgIC8vICAgcmV0dXJuIChib3VuZHMuaGVpZ2h0IC0gYWN0dWFsSGVhZGVySGVpZ2h0JC52YWx1ZSlcbiAgICAvLyB9LCB7ZGVwZW5kc09uOiBhY3R1YWxIZWFkZXJIZWlnaHQkfSlcbiAgICAvLyAgIC5vdGhlcndpc2UoMCk7XG5cblxuICAgIC8vIGNvbnN0IHZpc2libGVSb3dDb3VudCQgPSBjaGFpbih0aGlzLmJvdW5kcyQpLm1hcChib3VuZHMgPT4ge1xuICAgIC8vICAgLy8gVE9ETzogdGhpcyBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IGFueSBjc3Mgc3R5bGluZyBhZGp1c3RtZW50cyBldGMuICBXaWxsIGludmVzdGlnYXRlIGlmIGl0J3MgYW4gaXNzdWUuXG4gICAgLy8gICBjb25zdCByYXdSb3dDb3VudCA9IChib3VuZHMuaGVpZ2h0IC0gYWN0dWFsSGVhZGVySGVpZ2h0JC52YWx1ZSkgLyB0aGlzLnJvd0hlaWdodCQudmFsdWU7XG4gICAgLy8gICByZXR1cm4gcmF3Um93Q291bnQgPCAxID8gMCA6IE1hdGguZmxvb3IocmF3Um93Q291bnQpO1xuICAgIC8vIH0sIHtcbiAgICAvLyAgIGRlcGVuZHNPbjogW2FjdHVhbEhlYWRlckhlaWdodCQsIHRoaXMucm93SGVpZ2h0JF0sXG4gICAgLy8gICBwb3N0cG9uZVdoaWxlOiBjaGFpbih0aGlzLmJvdW5kcyQpLnBsdWNrTnVtZXJpYyhcImhlaWdodFwiKS5pc0xlc3NUaGFuKDEpXG4gICAgLy8gfSk7XG5cbiAgICAvLyAvLyBjb25zdCBwYWdlU2l6ZSQgPSBjaGFpbih2aXNpYmxlUm93Q291bnQkKVxuICAgIC8vIC8vICAgLm1hcChjb3VudCA9PiAyICogY291bnQpLm90aGVyd2lzZSgwKVxuICAgIC8vIGNvbnN0IHBhZ2VTaXplJCA9IFZhbHVlTW9kZWwuY29uc3RhbnQoMTIpXG5cblxuICAgIHdoZW4odGhpcy5kYXRhJCkuY2hhbmdlcyhpcyA9PiB7XG4gICAgICB0aGlzLnZpcnR1YWxTY3JvbGxEYXRhU291cmNlLmRhdGEgPSBpcztcbiAgICAgIHRoaXMuc2NoZWR1bGVUYWJsZUhlaWdodENoZWNrKCk7XG4gICAgfSwge2luaXRpYWxWYWx1ZTogXCJldmFsdWF0ZVwifSlcblxuXG4gICAgdGhpcy5vbkluaXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb2x1bW5zJCA9IGNoYWluKHRoaXMudGFibGVNb2RlbC5jb2x1bW5zKTtcbiAgICAgIHRoaXMuY29sdW1uSWRzJCA9IGNoYWluKHRoaXMuY29sdW1ucyQpLnBsdWNrKFwiY29sdW1uSWRcIik7XG4gICAgICB0aGlzLmNvbHVtbnNCeUlkJCA9IGNoYWluKHRoaXMuY29sdW1ucyQpLmluZGV4QnkoJ2NvbHVtbklkJyk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0eG8gPSBuZXcgVHJhbnNhY3Rpb25PYnNlcnZlcih7dmVyYm9zZTogZmFsc2V9KS5vbkV2ZW50KGUgPT4gY29uc29sZS5sb2coZS5uYW1lLCBlLnBheWxvYWQpKTtcbiAgICAvLyB0eG8ub2JzZXJ2ZSgndGhpcy52aXJ0dWFsU2Nyb2xsUm93UmFuZ2UkJywgdGhpcy52aXJ0dWFsU2Nyb2xsUm93UmFuZ2UkKTtcbiAgICAvLyB0eG8ub2JzZXJ2ZSgndGhpcy52aXJ0dWFsU2Nyb2xsU3BhY2VyU2l6ZSQnLCB0aGlzLnZpcnR1YWxTY3JvbGxTcGFjZXJTaXplJCk7XG4gICAgLy8gdHhvLm9ic2VydmUoJ3RoaXMudmlydHVhbFJvd3MkJywgdGhpcy52aXJ0dWFsUm93cyQpO1xuICAgIC8vIHR4by5vYnNlcnZlKCd0aGlzLnRhYmxlQm9keUhlaWdodCQnLCB0aGlzLnRhYmxlQm9keUhlaWdodCQpO1xuXG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5oaWRlLWhlYWRlclwiKVxuICBnZXQgaGlkZUhlYWRlcigpIHtcbiAgICByZXR1cm4gIXRoaXMuc2hvd0hlYWRlcjtcbiAgfVxuXG4gIGlzRWRpdGluZyhyb3c6IFJvdyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudGFibGVNb2RlbC5nZXRFZGl0U2Vzc2lvbkZvcihyb3cpO1xuICB9XG5cbiAgbm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uTW9kZWw6IENvbHVtbk1vZGVsPFJvdz4sIHJvdzogUm93KSB7XG4gICAgdGhpcy50YWJsZU1vZGVsLl9ub3RpZnlDZWxsQ2xpY2tlZChjb2x1bW5Nb2RlbCwgcm93KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG5cbiAgaXNGaXJzdFZpc2libGVDb2x1bW4oY29sdW1uSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWwuZmlyc3RWaXNpYmxlQ29sdW1uJC5xdWVyeSgpLnZhbHVlPy5jb2x1bW5JZCA9PT0gY29sdW1uSWQ7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuXG4gIGlzTGFzdFZpc2libGVDb2x1bW4oY29sdW1uSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWwubGFzdFZpc2libGVDb2x1bW4kLnF1ZXJ5KCkudmFsdWU/LmNvbHVtbklkID09PSBjb2x1bW5JZDtcbiAgfVxuXG4gIGdldENvbHVtbkNsYXNzZXMoY29sdW1uSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBbYGF1cC1jb2wtJHt0aGlzLmNvbHVtbnNCeUlkJC5nZXQoY29sdW1uSWQpLmRhc2hlcmlzZWRDb2x1bW5JZH1gXTtcbiAgICBpZiAodGhpcy5pc0ZpcnN0VmlzaWJsZUNvbHVtbihjb2x1bW5JZCkpIHtcbiAgICAgIGNsYXNzZXMucHVzaChcImZpcnN0LXZpc2libGUtY29sdW1uXCIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0xhc3RWaXNpYmxlQ29sdW1uKGNvbHVtbklkKSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKFwibGFzdC12aXNpYmxlLWNvbHVtblwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlVGFibGVIZWlnaHRDaGVjayh3YWl0TWlsbGlzID0gNTApIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHRib2R5ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcInRib2R5XCIpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgYm9keUhlaWdodCA9IHRib2R5Lm9mZnNldEhlaWdodDtcbiAgICAgIGlmICh0aGlzLmRhdGEkLmxlbmd0aCA+IDAgJiYgYm9keUhlaWdodCA8IHRoaXMucm93SGVpZ2h0JC52YWx1ZSkge1xuICAgICAgICAvLyBIYWNrcyB0byBnZXQgb3VyIHZpcnR1YWwgc2Nyb2xsIHRvIHJlcGFpbnRcbiAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS5sb2coYHJvd0NvdW50PSR7dGhpcy5kYXRhJC5sZW5ndGh9LCBib2R5SGVpZ2h0PSR7Ym9keUhlaWdodH0gLT4gdnJpdHVhbCB0YWJsZSBub3QgcmVuZGVyaW5nLCB0cmlnZ2VyaW5nIHJlc2l6ZSB0byBmb3JjZSByZXBhaW50YClcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7XG4gICAgICAgIGlmICh3YWl0TWlsbGlzIDwgNTAwKSB7XG4gICAgICAgICAgdGhpcy5zY2hlZHVsZVRhYmxlSGVpZ2h0Q2hlY2sod2FpdE1pbGxpcyArIDUwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIHdhaXRNaWxsaXMpXG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBUYWJsZUJvZHlDb21wb25lbnQge1xuICBleHBvcnQgdHlwZSBTY3JvbGxNb2RlID0gXCJub25lXCIgfCBcImNsYXNzaWNcIiB8IFwidmlydHVhbFwiO1xuXG59XG4iLCJcbjxkaXYgY2xhc3M9XCJjbGFzc2ljLXNjcm9sbC1jb250YWluZXJcIiAqbmdJZj1cInNjcm9sbE1vZGUkLnZhbHVlICE9PSAndmlydHVhbCdcIj5cbiAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhJC52YWx1ZVwiIFt0cmFja0J5XT1cInRyYWNrQnlcIiBbbXVsdGlUZW1wbGF0ZURhdGFSb3dzXT5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zJC52YWx1ZTsgaW5kZXggYXMgaW5kZXg7IGZpcnN0IGFzIGZpcnN0OyBsYXN0IGFzIGxhc3RcIlxuICAgICAgICAgICAgICAgICAgbWF0Q29sdW1uRGVmPVwie3tjb2x1bW4uY29sdW1uSWR9fVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBbY2xhc3MuZmxleF09XCJjb2x1bW4uaXNGbGV4KClcIiBbY2xhc3MuaGlkZV09XCIhY29sdW1uLmlzVmlzaWJsZSgpXCI+XG4gICAgICAgIDxhdXAtdGFibGUtaGVhZGVyLWNlbGwgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWlkXT1cImNvbHVtbi5jb2x1bW5JZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImdldENvbHVtbkNsYXNzZXMoY29sdW1uLmNvbHVtbklkKVwiXG4gICAgICAgID48L2F1cC10YWJsZS1oZWFkZXItY2VsbD5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgKGNsaWNrKT1cIm5vdGlmeUNlbGxDbGlja2VkKGNvbHVtbiwgcm93KVwiXG4gICAgICAgICAgW2NsYXNzLmVuYWJsZS1jdXJzb3JdPVwidGFibGVNb2RlbC5pc0N1cnNvckVuYWJsZWQoY29sdW1uKVwiXG4gICAgICAgICAgW2NsYXNzLmZsZXhdPVwiY29sdW1uLmlzRmxleCgpXCJcbiAgICAgICAgICBbY2xhc3MuaGlkZV09XCIhY29sdW1uLmlzVmlzaWJsZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGF1cC10YWJsZS1jZWxsIFtjb2x1bW5dPVwiJGFueShjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3ddPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJsZU1vZGVsXT1cIiRhbnkodGFibGVNb2RlbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRTZXNzaW9uXT1cIiRhbnkodGFibGVNb2RlbC5nZXRFZGl0U2Vzc2lvbkZvcihyb3cpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWlkXT1cImNvbHVtbi5jb2x1bW5JZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q29sdW1uQ2xhc3Nlcyhjb2x1bW4uY29sdW1uSWQpXCJcbiAgICAgICAgPjwvYXVwLXRhYmxlLWNlbGw+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5JZHMkLnZhbHVlOyBzdGlja3k6IHRydWVcIj48L3RyPlxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBjb2x1bW5JZHMkLnZhbHVlOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW25nQ2xhc3NdPVwidGFibGVNb2RlbC5nZXRSb3dDbGFzc2VzKHJvdylcIlxuICAgICAgICBbY2xhc3MuZW5hYmxlLWhvdmVyXT1cInRhYmxlTW9kZWwuaXNIb3ZlckVuYWJsZWQoKVwiXG4gICAgICAgIFthdXBUYWJsZVJvd0F0dHJpYnV0ZXNdPVwidGFibGVNb2RlbC5nZXRSb3dBdHRyaWJ1dGVzKHJvdylcIlxuICAgICAgICBbYXR0ci5hdXAtcm93LWlkXT1cInRyYWNrQnkoaSwgcm93KVwiXG4gICAgPjwvdHI+XG5cbiAgPC90YWJsZT5cbjwvZGl2PlxuXG48Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0ICAqbmdJZj1cInNjcm9sbE1vZGUkLnZhbHVlID09PSAndmlydHVhbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R2c0l0ZW1TaXplXT1cInJvd0hlaWdodCQudmFsdWVcIiBbaGVhZGVySGVpZ2h0XT1cImhlYWRlckhlaWdodCQudmFsdWVcIiBbYnVmZmVyTXVsdGlwbGllcl09XCJidWZmZXJNdWx0aXBsaWVyXCI+XG4gIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwidmlydHVhbFNjcm9sbERhdGFTb3VyY2VcIiBbdHJhY2tCeV09XCJ0cmFja0J5XCI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1ucyQudmFsdWU7IGluZGV4IGFzIGluZGV4OyBmaXJzdCBhcyBmaXJzdDsgbGFzdCBhcyBsYXN0XCJcbiAgICAgICAgICAgICAgICAgIG1hdENvbHVtbkRlZj1cInt7Y29sdW1uLmNvbHVtbklkfX1cIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgW2NsYXNzLmZsZXhdPVwiY29sdW1uLmlzRmxleCgpXCIgW2NsYXNzLmhpZGVdPVwiIWNvbHVtbi5pc1Zpc2libGUoKVwiPlxuICAgICAgICA8YXVwLXRhYmxlLWhlYWRlci1jZWxsIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pZF09XCJjb2x1bW4uY29sdW1uSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRDb2x1bW5DbGFzc2VzKGNvbHVtbi5jb2x1bW5JZClcIlxuICAgICAgICA+PC9hdXAtdGFibGUtaGVhZGVyLWNlbGw+XG4gICAgICA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIChjbGljayk9XCJub3RpZnlDZWxsQ2xpY2tlZChjb2x1bW4sIHJvdylcIlxuICAgICAgICAgIFtjbGFzcy5lbmFibGUtY3Vyc29yXT1cInRhYmxlTW9kZWwuaXNDdXJzb3JFbmFibGVkKGNvbHVtbilcIlxuICAgICAgICAgIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiXG4gICAgICAgICAgW2NsYXNzLmhpZGVdPVwiIWNvbHVtbi5pc1Zpc2libGUoKVwiXG4gICAgICA+XG4gICAgICAgIDxhdXAtdGFibGUtY2VsbCBbY29sdW1uXT1cIiRhbnkoY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFibGVNb2RlbF09XCIkYW55KHRhYmxlTW9kZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlZGl0U2Vzc2lvbl09XCIkYW55KHRhYmxlTW9kZWwuZ2V0RWRpdFNlc3Npb25Gb3Iocm93KSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWluZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pZF09XCJjb2x1bW4uY29sdW1uSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImdldENvbHVtbkNsYXNzZXMoY29sdW1uLmNvbHVtbklkKVwiXG4gICAgICAgID48L2F1cC10YWJsZS1jZWxsPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiY29sdW1uSWRzJC52YWx1ZTsgc3RpY2t5OiB0cnVlXCI+PC90cj5cbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogY29sdW1uSWRzJC52YWx1ZTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInRhYmxlTW9kZWwuZ2V0Um93Q2xhc3Nlcyhyb3cpXCJcbiAgICAgICAgW2NsYXNzLmVuYWJsZS1ob3Zlcl09XCJ0YWJsZU1vZGVsLmlzSG92ZXJFbmFibGVkKClcIlxuICAgICAgICBbYXVwVGFibGVSb3dBdHRyaWJ1dGVzXT1cInRhYmxlTW9kZWwuZ2V0Um93QXR0cmlidXRlcyhyb3cpXCJcbiAgICAgICAgW2F0dHIuYXVwLXJvdy1pZF09XCJ0cmFja0J5KGksIHJvdylcIlxuICAgID48L3RyPlxuXG4gIDwvdGFibGU+XG48L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cblxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1ib2R5L3RhYmxlLWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtYm9keS90YWJsZS1ib2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFDTCxHQUFHLEVBQ0gsU0FBUyxFQUdULGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsT0FBTyxFQUNQLGlCQUFpQixFQUFFLG1CQUFtQixFQUN0QyxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBUTlELE1BQU0sT0FBTyxrQkFBd0IsU0FBUSxvQkFBb0I7SUFHdEQsMEJBQVEsT0FBTyxDQUFDLENBQUEsU0FBYyxDQUFBLENBQUMsQ0FBQztJQUFoQyxJQUFBLEtBQUssMkNBQTJCO0lBQWhDLElBQUEsS0FBSyxpREFBMkI7SUFHaEMsK0JBQWEsT0FBTyxDQUFDLENBQUEsa0JBQXVCLENBQUEsQ0FBQyxDQUFDO0lBQTlDLElBQUEsVUFBVSxnREFBb0M7SUFBOUMsSUFBQSxVQUFVLHNEQUFvQztJQUc5QyxnQ0FBYyxP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Q2xGLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUN0QztRQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNyQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7dUdBMUdVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLG9iQ3JCL0IseXZEQXNDQTs7QURkVztJQURDLE9BQU8sRUFBRTs7K0NBQ3NCO0FBR2hDO0lBREMsT0FBTyxFQUFFOztvREFDb0M7QUFHOUM7SUFEQyxPQUFPLEVBQUU7O3FEQUNpQztBQUczQztJQURDLGlCQUFpQixFQUFFOztvREFDRjsyRkFaaEIsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGdCQUFnQjtzSEFPakIsS0FBSztzQkFEYixLQUFLO2dCQUlHLFVBQVU7c0JBRGxCLEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsS0FBSztnQkFJRyxVQUFVO3NCQURsQixLQUFLO2dCQUlHLGVBQWU7c0JBRHZCLE1BQU07Z0JBSVAsT0FBTztzQkFETixLQUFLO2dCQVVOLGVBQWU7c0JBRmQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBZXJDLFlBQVk7c0JBRFgsV0FBVzt1QkFBQyxPQUFPO2dCQW1DaEIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgTmdab25lLCBPbkluaXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIERzbCxcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTWFwTW9kZWxDaGFpbixcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFByb3hpZnksXG4gIHByb3hpZnksXG4gIFN0b3JlSW5WYWx1ZU1vZGVsLCBUcmFuc2FjdGlvbk9ic2VydmVyLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtSZXNpemVBd2FyZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL3Jlc2l6ZS1hd2FyZS5jb21wb25lbnRcIjtcbmltcG9ydCB7QWJzdHJhY3RUYWJsZU1vZGVsfSBmcm9tIFwiLi4vLi4vYWJzdHJhY3QtdGFibGUtbW9kZWxcIjtcbmltcG9ydCB7Q29sdW1uTW9kZWx9IGZyb20gXCIuLi8uLi9jb2x1bW4vY29sdW1uLW1vZGVsXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhdXAtdGFibGUtYm9keVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3RhYmxlLWJvZHkuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQm9keUNvbXBvbmVudDxSb3c+IGV4dGVuZHMgUmVzaXplQXdhcmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgZGF0YSQgPSBwcm94aWZ5KExpc3RNb2RlbDxSb3c+KTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIHRhYmxlTW9kZWwgPSBwcm94aWZ5KEFic3RyYWN0VGFibGVNb2RlbDxSb3c+KTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIHNob3dIZWFkZXIkID0gcHJveGlmeShWYWx1ZU1vZGVsPGJvb2xlYW4+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBzaG93SGVhZGVyID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgdmlzaWJsZVJvd0NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQElucHV0KClcbiAgdHJhY2tCeTogKGluZGV4OiBudW1iZXIsIGl0ZW06IFJvdykgPT4gYW55XG5cbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIHRvIGVuYWJsZSBzY3JvbGxpbmcuICBPbmNlIGVuYWJsZWQgdGhlIHRhYmxlIHdpbGwgaGF2ZSAwIGltcGxpY2l0IGhlaWdodC4gIFlvdSB3aWxsIGVpdGhlclxuICAgKiBuZWVkIHRvIHNldCBpdCBleHBsaWNpdGx5IGUuZy4gaGVpZ2h0OiA0MDBweDsgb3IgYnkgdXNpbmcgZmxleCBvciBncmlkIGxheW91dCB0byBtYWtlIGl0IGZpbGwgaXQnc1xuICAgKiBjb250YWlubWVudCBhcmVhLlxuICAgKi9cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZW5hYmxlLXNjcm9sbGluZ1wiKVxuICBlbmFibGVTY3JvbGxpbmcgPSBmYWxzZTtcblxuICBjb2x1bW5zJDogTGlzdE1vZGVsQ2hhaW48Q29sdW1uTW9kZWw8Um93Pj47XG4gIGNvbHVtbklkcyQ6IExpc3RNb2RlbENoYWluPHN0cmluZz47XG4gIHByaXZhdGUgY29sdW1uc0J5SWQkOiBNYXBNb2RlbENoYWluPHN0cmluZywgQ29sdW1uTW9kZWw8Um93Pj47XG5cbiAgcmVhZG9ubHkgX3Zpc2libGVSb3dDb3VudCQ6IFZhbHVlTW9kZWw8bnVtYmVyPjtcblxuXG4gIC8vIFRPRE86IHN1cHBvcnQgdXNlciBkZWZpbmVkIGhlYWRlciBhbmQgcm93IGhlaWdodHMgdmlhIGNzcyB2YXJzLlxuICBwcml2YXRlIHJlYWRvbmx5IGhlYWRlckhlaWdodCQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8bnVtYmVyPigyOSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm93SGVpZ2h0JCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxudW1iZXI+KDQwKTtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKVxuICBiYXNlQ3NzQ2xhc3MgPSBcImF1cC10YWJsZS1jb21wb25lbnRcIjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBuZ1pvbmU6IE5nWm9uZSkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIG5nWm9uZSk7XG4gICAgY29uc3Qge2NoYWluLCB3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIGNvbnN0IGFjdHVhbEhlYWRlckhlaWdodCQgPSBjaGFpbih0aGlzLnNob3dIZWFkZXIkKS5tYXAoc2hvdyA9PiB7XG4gICAgICByZXR1cm4gc2hvdyA/IHRoaXMuaGVhZGVySGVpZ2h0JC52YWx1ZSA6IDA7XG4gICAgfSwge2RlcGVuZHNPbjogdGhpcy5oZWFkZXJIZWlnaHQkfSk7XG5cbiAgICB0aGlzLl92aXNpYmxlUm93Q291bnQkID0gY2hhaW4odGhpcy5ib3VuZHMkKS5tYXAoYm91bmRzID0+IHtcbiAgICAgIC8vIFRPRE86IHRoaXMgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCBhbnkgY3NzIHN0eWxpbmcgYWRqdXN0bWVudHMgZXRjLiAgV2lsbCBpbnZlc3RpZ2F0ZSBpZiBpdCdzIGFuIGlzc3VlLlxuICAgICAgY29uc3QgcmF3Um93Q291bnQgPSAoYm91bmRzLmhlaWdodCAtIGFjdHVhbEhlYWRlckhlaWdodCQudmFsdWUpIC8gdGhpcy5yb3dIZWlnaHQkLnZhbHVlO1xuICAgICAgcmV0dXJuIHJhd1Jvd0NvdW50IDwgMSA/IDAgOiBNYXRoLmZsb29yKHJhd1Jvd0NvdW50KTtcbiAgICB9LCB7XG4gICAgICBkZXBlbmRzT246IFthY3R1YWxIZWFkZXJIZWlnaHQkLCB0aGlzLnJvd0hlaWdodCRdLFxuICAgICAgcG9zdHBvbmVXaGlsZTogY2hhaW4odGhpcy5ib3VuZHMkKS5wbHVja051bWVyaWMoXCJoZWlnaHRcIikuaXNMZXNzVGhhbigxKVxuICAgIH0pO1xuXG4gICAgd2hlbih0aGlzLl92aXNpYmxlUm93Q291bnQkKS5jaGFuZ2VzKHZpc2libGVSb3dzID0+IHtcbiAgICAgIHRoaXMudmlzaWJsZVJvd0NvdW50LmVtaXQodmlzaWJsZVJvd3MpO1xuICAgIH0sIHtpbml0aWFsVmFsdWU6IFwidHJpZ2dlckNoYW5nZVVubGVzc05pbFwifSk7XG5cbiAgICB0aGlzLm9uSW5pdCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbHVtbnMkID0gY2hhaW4odGhpcy50YWJsZU1vZGVsLmNvbHVtbnMpO1xuICAgICAgdGhpcy5jb2x1bW5JZHMkID0gY2hhaW4odGhpcy5jb2x1bW5zJCkucGx1Y2soXCJjb2x1bW5JZFwiKTtcbiAgICAgIHRoaXMuY29sdW1uc0J5SWQkID0gY2hhaW4odGhpcy5jb2x1bW5zJCkuaW5kZXhCeSgnY29sdW1uSWQnKTtcbiAgICB9KVxuICAgIGNvbnN0IHR4byA9IG5ldyBUcmFuc2FjdGlvbk9ic2VydmVyKCkub25FdmVudChlID0+IGNvbnNvbGUubG9nKGUubmFtZSwgZS5wYXlsb2FkKSk7XG4gICAgdHhvLm9ic2VydmUoJ3RoaXMuYm91bmRzTW9kZWwnLCB0aGlzLmJvdW5kcyQpO1xuICAgIHR4by5vYnNlcnZlKCd0aGlzLl92aXNpYmxlUm93Q291bnQkJywgdGhpcy5fdmlzaWJsZVJvd0NvdW50JCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5oaWRlLWhlYWRlclwiKVxuICBnZXQgaGlkZUhlYWRlcigpIHtcbiAgICByZXR1cm4gIXRoaXMuc2hvd0hlYWRlcjtcbiAgfVxuXG4gIGlzRWRpdGluZyhyb3c6IFJvdyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudGFibGVNb2RlbC5nZXRFZGl0U2Vzc2lvbkZvcihyb3cpO1xuICB9XG5cbiAgbm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uTW9kZWw6IENvbHVtbk1vZGVsPFJvdz4sIHJvdzogUm93KSB7XG4gICAgdGhpcy50YWJsZU1vZGVsLl9ub3RpZnlDZWxsQ2xpY2tlZChjb2x1bW5Nb2RlbCwgcm93KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGlzRmlyc3RWaXNpYmxlQ29sdW1uKGNvbHVtbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU1vZGVsLmZpcnN0VmlzaWJsZUNvbHVtbiQucXVlcnkoKS52YWx1ZT8uY29sdW1uSWQgPT09IGNvbHVtbklkO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgaXNMYXN0VmlzaWJsZUNvbHVtbihjb2x1bW5JZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVNb2RlbC5sYXN0VmlzaWJsZUNvbHVtbiQucXVlcnkoKS52YWx1ZT8uY29sdW1uSWQgPT09IGNvbHVtbklkO1xuICB9XG5cbiAgZ2V0Q29sdW1uQ2xhc3Nlcyhjb2x1bW5JZDogc3RyaW5nKSB7XG4gICAgY29uc3QgY2xhc3NlcyA9IFtgYXVwLWNvbC0ke3RoaXMuY29sdW1uc0J5SWQkLmdldChjb2x1bW5JZCkuZGFzaGVyaXNlZENvbHVtbklkfWBdO1xuICAgIGlmICh0aGlzLmlzRmlyc3RWaXNpYmxlQ29sdW1uKGNvbHVtbklkKSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKFwiZmlyc3QtdmlzaWJsZS1jb2x1bW5cIik7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzTGFzdFZpc2libGVDb2x1bW4oY29sdW1uSWQpKSB7XG4gICAgICBjbGFzc2VzLnB1c2goXCJsYXN0LXZpc2libGUtY29sdW1uXCIpO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNjcm9sbC1jb250YWluZXJcIj5cbiAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhJC52YWx1ZVwiIFt0cmFja0J5XT1cInRyYWNrQnlcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zJC52YWx1ZTsgaW5kZXggYXMgaW5kZXg7IGZpcnN0IGFzIGZpcnN0OyBsYXN0IGFzIGxhc3RcIlxuICAgICAgICAgICAgICAgICAgbWF0Q29sdW1uRGVmPVwie3tjb2x1bW4uY29sdW1uSWR9fVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBbY2xhc3MuZmxleF09XCJjb2x1bW4uaXNGbGV4KClcIiBbY2xhc3MuaGlkZV09XCIhY29sdW1uLmlzVmlzaWJsZSgpXCI+XG4gICAgICAgIDxhdXAtdGFibGUtaGVhZGVyLWNlbGwgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWlkXT1cImNvbHVtbi5jb2x1bW5JZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImdldENvbHVtbkNsYXNzZXMoY29sdW1uLmNvbHVtbklkKVwiXG4gICAgICAgID48L2F1cC10YWJsZS1oZWFkZXItY2VsbD5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgKGNsaWNrKT1cIm5vdGlmeUNlbGxDbGlja2VkKGNvbHVtbiwgcm93KVwiXG4gICAgICAgICAgW2NsYXNzLmVuYWJsZS1jdXJzb3JdPVwidGFibGVNb2RlbC5pc0N1cnNvckVuYWJsZWQoY29sdW1uKVwiXG4gICAgICAgICAgW2NsYXNzLmZsZXhdPVwiY29sdW1uLmlzRmxleCgpXCJcbiAgICAgICAgICBbY2xhc3MuaGlkZV09XCIhY29sdW1uLmlzVmlzaWJsZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGF1cC10YWJsZS1jZWxsIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3ddPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJsZU1vZGVsXT1cInRhYmxlTW9kZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRTZXNzaW9uXT1cInRhYmxlTW9kZWwuZ2V0RWRpdFNlc3Npb25Gb3Iocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWlkXT1cImNvbHVtbi5jb2x1bW5JZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q29sdW1uQ2xhc3Nlcyhjb2x1bW4uY29sdW1uSWQpXCJcbiAgICAgICAgPjwvYXVwLXRhYmxlLWNlbGw+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5JZHMkLnZhbHVlOyBzdGlja3k6IHRydWVcIj48L3RyPlxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBjb2x1bW5JZHMkLnZhbHVlOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW25nQ2xhc3NdPVwidGFibGVNb2RlbC5nZXRSb3dDbGFzc2VzKHJvdylcIlxuICAgICAgICBbY2xhc3MuZW5hYmxlLWhvdmVyXT1cInRhYmxlTW9kZWwuaXNIb3ZlckVuYWJsZWQoKVwiXG4gICAgICAgIFthdHRyLmF1cC1yb3ctaWRdPVwidHJhY2tCeShpLCByb3cpXCJcbiAgICA+PC90cj5cblxuICA8L3RhYmxlPlxuPC9kaXY+XG5cbiJdfQ==
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
98
98
  type: HostBinding,
99
99
  args: ['class.padChild']
100
100
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtY2VsbC90YWJsZS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBeUIsT0FBTyxFQUFFLEdBQUcsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTzVFLE1BQU0sT0FBTyxrQkFBd0IsU0FBUSxtQkFBbUI7SUFHOUQsR0FBRyxDQUFNO0lBR1QsTUFBTSxDQUFtQjtJQUd6QixXQUFXLENBQW1CO0lBRzlCLFVBQVUsQ0FBMEI7SUFFNUIsY0FBYyxDQUFnQjtJQUV0QyxDQUFDLG9CQUFvQixDQUFDLENBQWM7SUFDcEMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFjO0lBR2xDLGlCQUFpQixHQUFH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LEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQVNOLGlCQUFpQjtzQkFEaEIsV0FBVzt1QkFBQyxPQUFPO2dCQUlwQixRQUFRO3NCQURQLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUk3QixRQUFRO3NCQURQLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiwgUG9ydGFsfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHtDb21wb25lbnQsIENvbXBvbmVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXN9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0Jvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sIENvbW1hbmQsIERzbCwgSGFzRm9jdXNDb250ZXh0fSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2Rpc3Bvc2FibGUtY29tcG9uZW50XCI7XG5pbXBvcnQge0Fic3RyYWN0VGFibGVNb2RlbH0gZnJvbSBcIi4uLy4uL2Fic3RyYWN0LXRhYmxlLW1vZGVsXCI7XG5pbXBvcnQge0NvbHVtbk1vZGVsLCBSb3dEYXRhfSBmcm9tIFwiLi4vLi4vY29sdW1uL2NvbHVtbi1tb2RlbFwiO1xuaW1wb3J0IHtFZGl0U2Vzc2lvbn0gZnJvbSBcIi4uLy4uL2VkaXRvci9lZGl0LXNlc3Npb25cIjtcbmltcG9ydCB7Q0VMTF9FRElUT1JfUE9SVEFMLCBDRUxMX1JFTkRFUkVSX1BPUlRBTH0gZnJvbSBcIi4uL2NlbGwtcG9ydGFsLXJlZlwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtdGFibGUtY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY2VsbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KClcbiAgcm93OiBSb3c7XG5cbiAgQElucHV0KClcbiAgY29sdW1uOiBDb2x1bW5Nb2RlbDxSb3c+O1xuXG4gIEBJbnB1dCgpXG4gIGVkaXRTZXNzaW9uOiBFZGl0U2Vzc2lvbjxSb3c+O1xuXG4gIEBJbnB1dCgpXG4gIHRhYmxlTW9kZWw6IEFic3RyYWN0VGFibGVNb2RlbDxSb3c+O1xuXG4gIHByaXZhdGUgZWRpdFJvd0NvbW1hbmQ6IENvbW1hbmQ8dm9pZD47XG5cbiAgW0NFTExfUkVOREVSRVJfUE9SVEFMXTogUG9ydGFsPGFueT47XG4gIFtDRUxMX0VESVRPUl9QT1JUQUxdOiBQb3J0YWw8YW55PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZGVmYXVsdENsYXNzTmFtZXMgPSAnYXVwLWNlbGwtcmVuZGVyZXInO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsbENlbGwnKVxuICBmaWxsQ2VsbCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucGFkQ2hpbGQnKVxuICBwYWRDaGlsZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZmlyc3RFZGl0YWJsZUNvbHVtbjogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZWRpdFJvd0NvbW1hbmQgPSBDb21tYW5kLmNyZWF0ZSgoKSA9PiB7XG4gICAgICB0aGlzLnRhYmxlTW9kZWwuc3RhcnRFZGl0U2Vzc2lvbih0aGlzLnJvdyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm9uSW5pdCgoKSA9PiB7XG4gICAgICBjb25zdCB7IGNoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAgIHRoaXMuZmlyc3RFZGl0YWJsZUNvbHVtbiA9IGNoYWluKHRoaXMudGFibGVNb2RlbC5maXJzdEVkaXRhYmxlQ29sdW1uJCkuZXF1YWxzKHRoaXMuY29sdW1uKTsgLy8gdGhpcyB3b3VsZCBicmVhayBpZiB0aGUgY29sdW1uIGNoYW5nZWQuXG4gICAgICB0aGlzLmNvbHVtbi5hdHRhY2hDZWxsKHRoaXMpO1xuICAgIH0pXG4gIH1cblxuICBoYXNBY3RpdmVFZGl0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5lZGl0U2Vzc2lvbiAmJiAhIXRoaXMuY29sdW1uLmhhc0VkaXRvclBvcnRhbCgpO1xuICB9XG5cbiAgaW5pdGlhbGlzZVJlbmRlcmVyKHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICB0aGlzLmNvbHVtbi5vblJlbmRlcmVyQXR0YWNoZWQodGhpcywgcmVmKTtcbiAgfVxuXG4gIGluaXRpYWxpc2VFZGl0b3IocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIHRoaXMuY29sdW1uLm9uRWRpdG9yQXR0YWNoZWQodGhpcywgcmVmKTtcbiAgICBpZiAodGhpcy5maXJzdEVkaXRhYmxlQ29sdW1uLnZhbHVlKSB7XG4gICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzEyMDcwXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudHJ5QW5kRm9jdXNFZGl0b3IocmVmKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cnlBbmRGb2N1c0VkaXRvcihyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgaWYgKHJlZiBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgY29uc3QgZWRpdG9yID0gcmVmLmluc3RhbmNlO1xuICAgICAgLy8gQ2VsbEVkaXRvckNvbXBvbmVudDxSb3c+IHwgQ2VsbExpc3RFZGl0b3JDb21wb25lbnQ8Um93PlxuICAgICAgaWYgKGVkaXRvci5yZXF1ZXN0Rm9jdXMpIHtcbiAgICAgICAgZWRpdG9yLnJlcXVlc3RGb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSAoZWRpdG9yWyd2YWx1ZU1vZGVsJ10gfHwgZWRpdG9yWydsaXN0TW9kZWwnXSkgYXMgSGFzRm9jdXNDb250ZXh0O1xuICAgICAgICBtb2RlbD8uZm9jdXNDb250ZXh0Py5yZXF1ZXN0Rm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbi51cGRhdGVQb3J0YWxDb250ZW50KHRoaXMpO1xuICB9XG5cbiAgZ2V0UmVuZGVyZXJQb3J0YWwoKSB7XG4gICAgcmV0dXJuIHRoaXNbQ0VMTF9SRU5ERVJFUl9QT1JUQUxdO1xuICB9XG5cbiAgZ2V0RWRpdG9yUG9ydGFsKCkge1xuICAgIHJldHVybiB0aGlzW0NFTExfRURJVE9SX1BPUlRBTF07XG4gIH1cblxuICBnZXRSb3dEYXRhKCk6IFJvd0RhdGE8Um93PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJvdzogdGhpcy5yb3csXG4gICAgICBlZGl0U2Vzc2lvbjogdGhpcy5lZGl0U2Vzc2lvbixcbiAgICAgIGVkaXRSb3dDb21tYW5kOiB0aGlzLmVkaXRSb3dDb21tYW5kXG4gICAgfTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNBY3RpdmVFZGl0b3IoKVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwiZ2V0UmVuZGVyZXJQb3J0YWwoKVwiIChhdHRhY2hlZCk9XCJpbml0aWFsaXNlUmVuZGVyZXIoJGV2ZW50KVwiPjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0FjdGl2ZUVkaXRvcigpXCIgW2Nka1BvcnRhbE91dGxldF09XCJnZXRFZGl0b3JQb3J0YWwoKVwiIChhdHRhY2hlZCk9XCJpbml0aWFsaXNlRWRpdG9yKCRldmVudClcIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtY2VsbC90YWJsZS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBMEIsT0FBTyxFQUFFLEdBQUcsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTzlFLE1BQU0sT0FBTyxrQkFBd0IsU0FBUSxtQkFBbUI7SUFHOUQsR0FBRyxDQUFNO0lBR1QsTUFBTSxDQUFtQjtJQUd6QixXQUFXLENBQW1CO0lBRzlCLFVBQVUsQ0FBMEI7SUFFNUIsY0FBYyxDQUFnQjtJQUV0QyxDQUFDLG9CQUFvQixDQUFDLENBQWM7SUFDcEMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFjO0lBR2xDLGlCQUFpQixHQUFH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LEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQVNOLGlCQUFpQjtzQkFEaEIsV0FBVzt1QkFBQyxPQUFPO2dCQUlwQixRQUFRO3NCQURQLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUk3QixRQUFRO3NCQURQLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYsIFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCb29sZWFuVmFsdWVNb2RlbENoYWluLCBDb21tYW5kLCBEc2wsIEhhc0ZvY3VzQ29udGV4dCB9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9kaXNwb3NhYmxlLWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQWJzdHJhY3RUYWJsZU1vZGVsIH0gZnJvbSBcIi4uLy4uL2Fic3RyYWN0LXRhYmxlLW1vZGVsXCI7XG5pbXBvcnQgeyBDb2x1bW5Nb2RlbCwgUm93RGF0YSB9IGZyb20gXCIuLi8uLi9jb2x1bW4vY29sdW1uLW1vZGVsXCI7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gXCIuLi8uLi9lZGl0b3IvZWRpdC1zZXNzaW9uXCI7XG5pbXBvcnQgeyBDRUxMX0VESVRPUl9QT1JUQUwsIENFTExfUkVOREVSRVJfUE9SVEFMIH0gZnJvbSBcIi4uL2NlbGwtcG9ydGFsLXJlZlwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtdGFibGUtY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY2VsbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KClcbiAgcm93OiBSb3c7XG5cbiAgQElucHV0KClcbiAgY29sdW1uOiBDb2x1bW5Nb2RlbDxSb3c+O1xuXG4gIEBJbnB1dCgpXG4gIGVkaXRTZXNzaW9uOiBFZGl0U2Vzc2lvbjxSb3c+O1xuXG4gIEBJbnB1dCgpXG4gIHRhYmxlTW9kZWw6IEFic3RyYWN0VGFibGVNb2RlbDxSb3c+O1xuXG4gIHByaXZhdGUgZWRpdFJvd0NvbW1hbmQ6IENvbW1hbmQ8dm9pZD47XG5cbiAgW0NFTExfUkVOREVSRVJfUE9SVEFMXTogUG9ydGFsPGFueT47XG4gIFtDRUxMX0VESVRPUl9QT1JUQUxdOiBQb3J0YWw8YW55PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZGVmYXVsdENsYXNzTmFtZXMgPSAnYXVwLWNlbGwtcmVuZGVyZXInO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsbENlbGwnKVxuICBmaWxsQ2VsbCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucGFkQ2hpbGQnKVxuICBwYWRDaGlsZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZmlyc3RFZGl0YWJsZUNvbHVtbjogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZWRpdFJvd0NvbW1hbmQgPSBDb21tYW5kLmNyZWF0ZSgoKSA9PiB7XG4gICAgICB0aGlzLnRhYmxlTW9kZWwuc3RhcnRFZGl0U2Vzc2lvbih0aGlzLnJvdyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm9uSW5pdCgoKSA9PiB7XG4gICAgICBjb25zdCB7IGNoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAgIHRoaXMuZmlyc3RFZGl0YWJsZUNvbHVtbiA9IGNoYWluKHRoaXMudGFibGVNb2RlbC5maXJzdEVkaXRhYmxlQ29sdW1uJCkuZXF1YWxzKHRoaXMuY29sdW1uKTsgLy8gdGhpcyB3b3VsZCBicmVhayBpZiB0aGUgY29sdW1uIGNoYW5nZWQuXG4gICAgICB0aGlzLmNvbHVtbi5hdHRhY2hDZWxsKHRoaXMpO1xuICAgIH0pXG4gIH1cblxuICBoYXNBY3RpdmVFZGl0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5lZGl0U2Vzc2lvbiAmJiAhIXRoaXMuY29sdW1uLmhhc0VkaXRvclBvcnRhbCgpO1xuICB9XG5cbiAgaW5pdGlhbGlzZVJlbmRlcmVyKHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICB0aGlzLmNvbHVtbi5vblJlbmRlcmVyQXR0YWNoZWQodGhpcywgcmVmKTtcbiAgfVxuXG4gIGluaXRpYWxpc2VFZGl0b3IocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIHRoaXMuY29sdW1uLm9uRWRpdG9yQXR0YWNoZWQodGhpcywgcmVmKTtcbiAgICBpZiAodGhpcy5maXJzdEVkaXRhYmxlQ29sdW1uLnZhbHVlKSB7XG4gICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzEyMDcwXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudHJ5QW5kRm9jdXNFZGl0b3IocmVmKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cnlBbmRGb2N1c0VkaXRvcihyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgaWYgKHJlZiBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgY29uc3QgZWRpdG9yID0gcmVmLmluc3RhbmNlO1xuICAgICAgLy8gQ2VsbEVkaXRvckNvbXBvbmVudDxSb3c+IHwgQ2VsbExpc3RFZGl0b3JDb21wb25lbnQ8Um93PlxuICAgICAgaWYgKGVkaXRvci5yZXF1ZXN0Rm9jdXMpIHtcbiAgICAgICAgZWRpdG9yLnJlcXVlc3RGb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSAoZWRpdG9yWyd2YWx1ZU1vZGVsJ10gfHwgZWRpdG9yWydsaXN0TW9kZWwnXSkgYXMgSGFzRm9jdXNDb250ZXh0O1xuICAgICAgICBtb2RlbD8uZm9jdXNDb250ZXh0Py5yZXF1ZXN0Rm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbi51cGRhdGVQb3J0YWxDb250ZW50KHRoaXMpO1xuICB9XG5cbiAgZ2V0UmVuZGVyZXJQb3J0YWwoKSB7XG4gICAgcmV0dXJuIHRoaXNbQ0VMTF9SRU5ERVJFUl9QT1JUQUxdO1xuICB9XG5cbiAgZ2V0RWRpdG9yUG9ydGFsKCkge1xuICAgIHJldHVybiB0aGlzW0NFTExfRURJVE9SX1BPUlRBTF07XG4gIH1cblxuICBnZXRSb3dEYXRhKCk6IFJvd0RhdGE8Um93PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJvdzogdGhpcy5yb3csXG4gICAgICBlZGl0U2Vzc2lvbjogdGhpcy5lZGl0U2Vzc2lvbixcbiAgICAgIGVkaXRSb3dDb21tYW5kOiB0aGlzLmVkaXRSb3dDb21tYW5kXG4gICAgfTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNBY3RpdmVFZGl0b3IoKVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwiZ2V0UmVuZGVyZXJQb3J0YWwoKVwiIChhdHRhY2hlZCk9XCJpbml0aWFsaXNlUmVuZGVyZXIoJGV2ZW50KVwiPjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0FjdGl2ZUVkaXRvcigpXCIgW2Nka1BvcnRhbE91dGxldF09XCJnZXRFZGl0b3JQb3J0YWwoKVwiIChhdHRhY2hlZCk9XCJpbml0aWFsaXNlRWRpdG9yKCRldmVudClcIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -7,6 +7,8 @@ export class TableHeaderCellComponent {
7
7
  column;
8
8
  defaultClassNames = 'aup-header-cell-renderer';
9
9
  [HEADER_CELL_RENDERER_PORTAL];
10
+ constructor() {
11
+ }
10
12
  ngOnInit() {
11
13
  this.column.attachHeaderCell(this);
12
14
  }
@@ -23,10 +25,10 @@ export class TableHeaderCellComponent {
23
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableHeaderCellComponent, decorators: [{
24
26
  type: Component,
25
27
  args: [{ selector: 'aup-table-header-cell', template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event)\"></ng-container>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"] }]
26
- }], propDecorators: { column: [{
28
+ }], ctorParameters: function () { return []; }, propDecorators: { column: [{
27
29
  type: Input
28
30
  }], defaultClassNames: [{
29
31
  type: HostBinding,
30
32
  args: ['class']
31
33
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBTy9ELE1BQU0sT0FBTyx3QkFBd0I7SUFHbkMsTUFBTSxDQUFtQjtJQUd6QixpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztJQUUvQyxDQUFDLDJCQUEyQixDQUFDLENBQWM7SUFFM0MsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVc7SUFDWCxnQkFBZ0IsQ0FBQyxHQUErQjtRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDM0MsQ0FBQzt1R0FyQlUsd0JBQXdCOzJGQUF4Qix3QkFBd0Isd0pDVnJDLDJHQUNBOzsyRkRTYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsdUJBQXVCOzhCQU9qQyxNQUFNO3NCQURMLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Nka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmLCBQb3J0YWx9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0NvbHVtbk1vZGVsfSBmcm9tIFwiLi4vLi4vY29sdW1uL2NvbHVtbi1tb2RlbFwiO1xuaW1wb3J0IHtIRUFERVJfQ0VMTF9SRU5ERVJFUl9QT1JUQUx9IGZyb20gXCIuLi9jZWxsLXBvcnRhbC1yZWZcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRhYmxlLWhlYWRlci1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRlckNlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpXG4gIGNvbHVtbjogQ29sdW1uTW9kZWw8YW55PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZGVmYXVsdENsYXNzTmFtZXMgPSAnYXVwLWhlYWRlci1jZWxsLXJlbmRlcmVyJztcblxuICBbSEVBREVSX0NFTExfUkVOREVSRVJfUE9SVEFMXTogUG9ydGFsPGFueT47XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb2x1bW4uYXR0YWNoSGVhZGVyQ2VsbCh0aGlzKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGluaXRpYWxpc2VIZWFkZXIocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIHRoaXMuY29sdW1uLm9uSGVhZGVyQXR0YWNoZWQodGhpcywgcmVmKTtcbiAgfVxuXG4gIGdldFBvcnRhbCgpIHtcbiAgICByZXR1cm4gdGhpc1tIRUFERVJfQ0VMTF9SRU5ERVJFUl9QT1JUQUxdO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtjZGtQb3J0YWxPdXRsZXRdPVwiZ2V0UG9ydGFsKClcIiAoYXR0YWNoZWQpPVwiaW5pdGlhbGlzZUhlYWRlcigkZXZlbnQpXCI+PC9uZy1jb250YWluZXI+XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBT2pFLE1BQU0sT0FBTyx3QkFBd0I7SUFHbkMsTUFBTSxDQUFtQjtJQUd6QixpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztJQUUvQyxDQUFDLDJCQUEyQixDQUFDLENBQWM7SUFFM0M7SUFDQSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVc7SUFDWCxnQkFBZ0IsQ0FBQyxHQUErQjtRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDM0MsQ0FBQzt1R0F4QlUsd0JBQXdCOzJGQUF4Qix3QkFBd0Isd0pDVnJDLDJHQUNBOzsyRkRTYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsdUJBQXVCOzBFQU9qQyxNQUFNO3NCQURMLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiwgUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29sdW1uTW9kZWwgfSBmcm9tIFwiLi4vLi4vY29sdW1uL2NvbHVtbi1tb2RlbFwiO1xuaW1wb3J0IHsgSEVBREVSX0NFTExfUkVOREVSRVJfUE9SVEFMIH0gZnJvbSBcIi4uL2NlbGwtcG9ydGFsLXJlZlwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtdGFibGUtaGVhZGVyLWNlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgY29sdW1uOiBDb2x1bW5Nb2RlbDxhbnk+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBkZWZhdWx0Q2xhc3NOYW1lcyA9ICdhdXAtaGVhZGVyLWNlbGwtcmVuZGVyZXInO1xuXG4gIFtIRUFERVJfQ0VMTF9SRU5ERVJFUl9QT1JUQUxdOiBQb3J0YWw8YW55PjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uLmF0dGFjaEhlYWRlckNlbGwodGhpcyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBpbml0aWFsaXNlSGVhZGVyKHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICB0aGlzLmNvbHVtbi5vbkhlYWRlckF0dGFjaGVkKHRoaXMsIHJlZik7XG4gIH1cblxuICBnZXRQb3J0YWwoKSB7XG4gICAgcmV0dXJuIHRoaXNbSEVBREVSX0NFTExfUkVOREVSRVJfUE9SVEFMXTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbY2RrUG9ydGFsT3V0bGV0XT1cImdldFBvcnRhbCgpXCIgKGF0dGFjaGVkKT1cImluaXRpYWxpc2VIZWFkZXIoJGV2ZW50KVwiPjwvbmctY29udGFpbmVyPlxuIl19
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
30
30
  type: Component,
31
31
  args: [{ selector: 'aup-table-more-menu-popup', template: '' }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9yZS1tZW51LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3JlbmRlcmVyL3RhYmxlLW1vcmUtbWVudS90YWJsZS1tb3JlLW1lbnUtcG9wdXAvdGFibGUtbW9yZS1tZW51LXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBVSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOztBQU9yRSxNQUFNLE9BQU8sMkJBQStCLFNBQVEsbUJBQW1CO0lBRTdELE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxvQkFBb0IsRUFBSyxDQUFDLENBQUE7SUFFdkQsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLG9CQUFvQixFQUFXLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0YsYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLGlCQUFpQixFQUFRLENBQUMsQ0FBQTtJQUd2RixVQUFVLENBQUMsSUFBbUIsRUFBRSxZQUEyQjtRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsWUFBWSxDQUFDLFNBQThCO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUE7SUFDakMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO3VHQTVCVSwyQkFBMkI7MkZBQTNCLDJCQUEyQix3RkFINUIsRUFBRTs7MkZBR0QsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDJCQUEyQixZQUMzQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0NvbW1hbmQsIERlbGVnYXRpbmdDb21tYW5kLCBEZWxlZ2F0aW5nVmFsdWVNb2RlbCwgVmFsdWVNb2RlbH0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi8uLi9kaXNwb3NhYmxlLWNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtdGFibGUtbW9yZS1tZW51LXBvcHVwJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZU1vcmVNZW51UG9wdXBDb21wb25lbnQ8VD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcblxuICBwcml2YXRlIF92YWx1ZSQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8VD4oKSlcblxuICBwcml2YXRlIHJlYWRvbmx5IF92aXNpYmxlJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpKS53aXRoRGVmYXVsdCh0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2VDb21tYW5kID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdDb21tYW5kPHZvaWQ+KCkpXG5cblxuICBpbml0aWFsaXNlKHJvdyQ6IFZhbHVlTW9kZWw8VD4sIGNsb3NlQ29tbWFuZDogQ29tbWFuZDx2b2lkPikge1xuICAgIHRoaXMuX3ZhbHVlJC5zZXREZWxlZ2F0ZShyb3ckKTtcbiAgICB0aGlzLl9jbG9zZUNvbW1hbmQuc2V0RGVsZWdhdGUoY2xvc2VDb21tYW5kKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2aXNpYmxlV2hpbGUoY29uZGl0aW9uOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgdGhpcy5fdmlzaWJsZSQuc2V0RGVsZWdhdGUoY29uZGl0aW9uKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldCB2aXNpYmxlJCgpOiBWYWx1ZU1vZGVsPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZSQucmVhZG9ubHkkXG4gIH1cblxuICBnZXQgY2xvc2VDb21tYW5kKCk6IENvbW1hbmQ8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZUNvbW1hbmQ7XG4gIH1cblxuICBnZXQgdmFsdWUkKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZSQucmVhZG9ubHkkO1xuICB9XG5cblxufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9yZS1tZW51LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3JlbmRlcmVyL3RhYmxlLW1vcmUtbWVudS90YWJsZS1tb3JlLW1lbnUtcG9wdXAvdGFibGUtbW9yZS1tZW51LXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBVyxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOztBQU9yRSxNQUFNLE9BQU8sMkJBQStCLFNBQVEsbUJBQW1CO0lBRTdELE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxvQkFBb0IsRUFBSyxDQUFDLENBQUE7SUFFdkQsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLG9CQUFvQixFQUFXLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0YsYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLGlCQUFpQixFQUFRLENBQUMsQ0FBQTtJQUd2RixVQUFVLENBQUMsSUFBbUIsRUFBRSxZQUEyQjtRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsWUFBWSxDQUFDLFNBQThCO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUE7SUFDakMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO3VHQTVCVSwyQkFBMkI7MkZBQTNCLDJCQUEyQix3RkFINUIsRUFBRTs7MkZBR0QsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDJCQUEyQixZQUMzQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1hbmQsIERlbGVnYXRpbmdDb21tYW5kLCBEZWxlZ2F0aW5nVmFsdWVNb2RlbCwgVmFsdWVNb2RlbCB9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vZGlzcG9zYWJsZS1jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRhYmxlLW1vcmUtbWVudS1wb3B1cCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50PFQ+IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSBfdmFsdWUkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPFQ+KCkpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdmlzaWJsZSQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKSkud2l0aERlZmF1bHQodHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NlQ29tbWFuZCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nQ29tbWFuZDx2b2lkPigpKVxuXG5cbiAgaW5pdGlhbGlzZShyb3ckOiBWYWx1ZU1vZGVsPFQ+LCBjbG9zZUNvbW1hbmQ6IENvbW1hbmQ8dm9pZD4pIHtcbiAgICB0aGlzLl92YWx1ZSQuc2V0RGVsZWdhdGUocm93JCk7XG4gICAgdGhpcy5fY2xvc2VDb21tYW5kLnNldERlbGVnYXRlKGNsb3NlQ29tbWFuZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdmlzaWJsZVdoaWxlKGNvbmRpdGlvbjogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgIHRoaXMuX3Zpc2libGUkLnNldERlbGVnYXRlKGNvbmRpdGlvbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQgdmlzaWJsZSQoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUkLnJlYWRvbmx5JFxuICB9XG5cbiAgZ2V0IGNsb3NlQ29tbWFuZCgpOiBDb21tYW5kPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VDb21tYW5kO1xuICB9XG5cbiAgZ2V0IHZhbHVlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUkLnJlYWRvbmx5JDtcbiAgfVxuXG5cbn1cbiJdfQ==
@@ -19,15 +19,13 @@ export class TableMoreMenuComponent extends DisposableComponent {
19
19
  popupType$ = new MutableValueModel();
20
20
  popupComponentPortal$;
21
21
  _visible$ = this.registerDisposable(new DelegatingValueModel());
22
- initialiseCallback;
23
22
  constructor() {
24
23
  super();
25
24
  const { chain } = Dsl.disposeWith(this);
26
25
  this.popupComponentPortal$ = chain(this.popupType$).map(type => new ComponentPortal(type));
27
26
  }
28
- configurePopupComponentType(popupComponentType, configureCallback) {
27
+ configurePopupComponentType(popupComponentType) {
29
28
  this.popupType$.value = popupComponentType;
30
- this.initialiseCallback = configureCallback;
31
29
  }
32
30
  // Stops tree selection when clicking the menu button
33
31
  preventDefault($event) {
@@ -38,9 +36,6 @@ export class TableMoreMenuComponent extends DisposableComponent {
38
36
  const component = $event.instance;
39
37
  component.initialise(this.value$, Command.create(() => this.matMenuTrigger.closeMenu()));
40
38
  this._visible$.setDelegate(component.visible$);
41
- if (this.initialiseCallback) {
42
- this.initialiseCallback(component);
43
- }
44
39
  }
45
40
  get visible$() {
46
41
  return this._visible$.readonly$;
@@ -62,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
62
57
  type: HostListener,
63
58
  args: ["click", ["$event"]]
64
59
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9yZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3JlbmRlcmVyL3RhYmxlLW1vcmUtbWVudS90YWJsZS1tb3JlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtbW9yZS1tZW51L3RhYmxlLW1vcmUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUE2QixlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEVBQUMsU0FBUyxFQUFnQixZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsT0FBTyxFQUNQLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBU2xFLE1BQU0sT0FBTyxzQkFBMEIsU0FBUSxtQkFBbUI7SUFHeEQsTUFBTSxHQUFHLElBQUksaUJBQWlCLEVBQUssQ0FBQztJQUduQyx3QkFBUztJQUFULElBQUEsS0FBSywyQ0FBSTtJQUFULElBQUEsS0FBSyxpREFBSTtJQUdsQixjQUFjLENBQWlCO0lBRWQsVUFBVSxHQUFHLElBQUksaUJBQWlCLEVBQWlELENBQUM7SUFFckcscUJBQXFCLENBQW1FO0lBRXZFLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLENBQUM7SUFDbEYsa0JBQWtCLENBQXVEO0lBRWpGO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxrQkFBaUUsRUFBRSxpQkFBc0U7UUFDbkssSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUM7UUFDM0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDO0lBQzlDLENBQUM7SUFHRCxxREFBcUQ7SUFFckQsY0FBYyxDQUFDLE1BQWtCO1FBQy9CLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFrQztRQUMzQyxNQUFNLFNBQVMsR0FBSSxNQUF1RCxDQUFDLFFBQVEsQ0FBQztRQUNwRixTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQzt1R0FoRFUsc0JBQXNCOzJGQUF0QixzQkFBc0IsdUtBUXRCLGNBQWMsdUVDN0IzQiwrWEFRQTs7QURtQlc7SUFEUixpQkFBaUIsRUFBRTs7bURBQ0Y7MkZBTlAsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLHFCQUFxQjswRUFVdEIsS0FBSyxNQUdkLGNBQWM7c0JBRGIsU0FBUzt1QkFBQyxjQUFjO2dCQXdCekIsY0FBYztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYsIENvbXBvbmVudFBvcnRhbH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7Q29tcG9uZW50LCBDb21wb25lbnRSZWYsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtNYXRNZW51VHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7XG4gIENvbW1hbmQsXG4gIERlbGVnYXRpbmdWYWx1ZU1vZGVsLFxuICBEc2wsXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtDb25zdHJ1Y3RhYmxlfSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vZGlzcG9zYWJsZS1jb21wb25lbnRcIjtcbmltcG9ydCB7Q2VsbFJlbmRlcmVyfSBmcm9tIFwiLi4vY2VsbC1yZW5kZXJlclwiO1xuaW1wb3J0IHtUYWJsZU1vcmVNZW51UG9wdXBDb21wb25lbnR9IGZyb20gXCIuL3RhYmxlLW1vcmUtbWVudS1wb3B1cC90YWJsZS1tb3JlLW1lbnUtcG9wdXAuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhdXAtdGFibGUtbW9yZS1tZW51XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUtbW9yZS1tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90YWJsZS1tb3JlLW1lbnUuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVNb3JlTWVudUNvbXBvbmVudDxUPiBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBDZWxsUmVuZGVyZXI8VD4ge1xuXG5cbiAgcHJpdmF0ZSB2YWx1ZSQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VD4oKTtcblxuICBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciB2YWx1ZTogVDtcblxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKVxuICBtYXRNZW51VHJpZ2dlcjogTWF0TWVudVRyaWdnZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwb3B1cFR5cGUkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPENvbnN0cnVjdGFibGU8VGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50PFQ+Pj4oKTtcblxuICBwb3B1cENvbXBvbmVudFBvcnRhbCQ6IFZhbHVlTW9kZWxDaGFpbjxDb21wb25lbnRQb3J0YWw8VGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50PFQ+Pj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdmlzaWJsZSQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKSk7XG4gIHByaXZhdGUgaW5pdGlhbGlzZUNhbGxiYWNrPzogKGNvbXBvbmVudDogVGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50PFQ+KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMucG9wdXBDb21wb25lbnRQb3J0YWwkID0gY2hhaW4odGhpcy5wb3B1cFR5cGUkKS5tYXAodHlwZSA9PiBuZXcgQ29tcG9uZW50UG9ydGFsKHR5cGUpKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZVBvcHVwQ29tcG9uZW50VHlwZShwb3B1cENvbXBvbmVudFR5cGU6IENvbnN0cnVjdGFibGU8VGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50PFQ+PiwgY29uZmlndXJlQ2FsbGJhY2s/OiAoY29tcG9uZW50OlRhYmxlTW9yZU1lbnVQb3B1cENvbXBvbmVudDxUPikgPT4gdm9pZCkge1xuICAgIHRoaXMucG9wdXBUeXBlJC52YWx1ZSA9IHBvcHVwQ29tcG9uZW50VHlwZTtcbiAgICB0aGlzLmluaXRpYWxpc2VDYWxsYmFjayA9IGNvbmZpZ3VyZUNhbGxiYWNrO1xuICB9XG5cblxuICAvLyBTdG9wcyB0cmVlIHNlbGVjdGlvbiB3aGVuIGNsaWNraW5nIHRoZSBtZW51IGJ1dHRvblxuICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxuICBwcmV2ZW50RGVmYXVsdCgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBpbml0aWFsaXNlKCRldmVudDogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICBjb25zdCBjb21wb25lbnQgPSAoJGV2ZW50IGFzIENvbXBvbmVudFJlZjxUYWJsZU1vcmVNZW51UG9wdXBDb21wb25lbnQ8VD4+KS5pbnN0YW5jZTtcbiAgICBjb21wb25lbnQuaW5pdGlhbGlzZSh0aGlzLnZhbHVlJCwgQ29tbWFuZC5jcmVhdGUoKCkgPT4gdGhpcy5tYXRNZW51VHJpZ2dlci5jbG9zZU1lbnUoKSkpO1xuICAgIHRoaXMuX3Zpc2libGUkLnNldERlbGVnYXRlKGNvbXBvbmVudC52aXNpYmxlJCk7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGlzZUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLmluaXRpYWxpc2VDYWxsYmFjayhjb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2aXNpYmxlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZSQucmVhZG9ubHkkO1xuICB9XG5cbn1cbiIsIjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgPG5nLXRlbXBsYXRlIG1hdE1lbnVDb250ZW50IFtjZGtQb3J0YWxPdXRsZXRdPVwicG9wdXBDb21wb25lbnRQb3J0YWwkLnZhbHVlXCJcbiAgICAgICAgICAgICAgIChhdHRhY2hlZCk9XCJpbml0aWFsaXNlKCRldmVudClcIj48L25nLXRlbXBsYXRlPlxuPC9tYXQtbWVudT5cblxuPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBkYXRhLWN5PVwibW9yZS1tZW51LXRyaWdnZXJcIiAqbmdJZj1cInZpc2libGUkLnZhbHVlXCI+XG4gIDxhdXAtaWNvbiBpY29uPVwibWF0Om1vcmVfdmVydFwiPjwvYXVwLWljb24+XG48L2J1dHRvbj5cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9yZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3JlbmRlcmVyL3RhYmxlLW1vcmUtbWVudS90YWJsZS1tb3JlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtbW9yZS1tZW51L3RhYmxlLW1vcmUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUE2QixlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEVBQUMsU0FBUyxFQUFnQixZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsT0FBTyxFQUNQLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBU2xFLE1BQU0sT0FBTyxzQkFBMEIsU0FBUSxtQkFBbUI7SUFHeEQsTUFBTSxHQUFHLElBQUksaUJBQWlCLEVBQUssQ0FBQztJQUduQyx3QkFBUztJQUFULElBQUEsS0FBSywyQ0FBSTtJQUFULElBQUEsS0FBSyxpREFBSTtJQUdsQixjQUFjLENBQWlCO0lBRWQsVUFBVSxHQUFHLElBQUksaUJBQWlCLEVBQWlELENBQUM7SUFFckcscUJBQXFCLENBQW1FO0lBRXZFLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLENBQUM7SUFFMUY7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELDJCQUEyQixDQUFDLGtCQUFpRTtRQUMzRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQztJQUM3QyxDQUFDO0lBR0QscURBQXFEO0lBRXJELGNBQWMsQ0FBQyxNQUFrQjtRQUMvQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBa0M7UUFDM0MsTUFBTSxTQUFTLEdBQUksTUFBdUQsQ0FBQyxRQUFRLENBQUM7UUFDcEYsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQ2xDLENBQUM7dUdBM0NVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHVLQVF0QixjQUFjLHVFQzdCM0IsK1hBUUE7O0FEbUJXO0lBRFIsaUJBQWlCLEVBQUU7O21EQUNGOzJGQU5QLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7MEVBVXRCLEtBQUssTUFHZCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsY0FBYztnQkFzQnpCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Nka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmLCBDb21wb25lbnRQb3J0YWx9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7TWF0TWVudVRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XG5pbXBvcnQge1xuICBDb21tYW5kLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRHNsLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7Q29uc3RydWN0YWJsZX0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2Rpc3Bvc2FibGUtY29tcG9uZW50XCI7XG5pbXBvcnQge0NlbGxSZW5kZXJlcn0gZnJvbSBcIi4uL2NlbGwtcmVuZGVyZXJcIjtcbmltcG9ydCB7VGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50fSBmcm9tIFwiLi90YWJsZS1tb3JlLW1lbnUtcG9wdXAvdGFibGUtbW9yZS1tZW51LXBvcHVwLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXVwLXRhYmxlLW1vcmUtbWVudVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RhYmxlLW1vcmUtbWVudS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdGFibGUtbW9yZS1tZW51LmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlTW9yZU1lbnVDb21wb25lbnQ8VD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbFJlbmRlcmVyPFQ+IHtcblxuXG4gIHByaXZhdGUgdmFsdWUkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFQ+KCk7XG5cbiAgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3IgdmFsdWU6IFQ7XG5cbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcilcbiAgbWF0TWVudVRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBUeXBlJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxDb25zdHJ1Y3RhYmxlPFRhYmxlTW9yZU1lbnVQb3B1cENvbXBvbmVudDxUPj4+KCk7XG5cbiAgcG9wdXBDb21wb25lbnRQb3J0YWwkOiBWYWx1ZU1vZGVsQ2hhaW48Q29tcG9uZW50UG9ydGFsPFRhYmxlTW9yZU1lbnVQb3B1cENvbXBvbmVudDxUPj4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Zpc2libGUkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMucG9wdXBDb21wb25lbnRQb3J0YWwkID0gY2hhaW4odGhpcy5wb3B1cFR5cGUkKS5tYXAodHlwZSA9PiBuZXcgQ29tcG9uZW50UG9ydGFsKHR5cGUpKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZVBvcHVwQ29tcG9uZW50VHlwZShwb3B1cENvbXBvbmVudFR5cGU6IENvbnN0cnVjdGFibGU8VGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50PFQ+Pikge1xuICAgIHRoaXMucG9wdXBUeXBlJC52YWx1ZSA9IHBvcHVwQ29tcG9uZW50VHlwZTtcbiAgfVxuXG5cbiAgLy8gU3RvcHMgdHJlZSBzZWxlY3Rpb24gd2hlbiBjbGlja2luZyB0aGUgbWVudSBidXR0b25cbiAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIsIFtcIiRldmVudFwiXSlcbiAgcHJldmVudERlZmF1bHQoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgkZXZlbnQ6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gKCRldmVudCBhcyBDb21wb25lbnRSZWY8VGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50PFQ+PikuaW5zdGFuY2U7XG4gICAgY29tcG9uZW50LmluaXRpYWxpc2UodGhpcy52YWx1ZSQsIENvbW1hbmQuY3JlYXRlKCgpID0+IHRoaXMubWF0TWVudVRyaWdnZXIuY2xvc2VNZW51KCkpKTtcbiAgICB0aGlzLl92aXNpYmxlJC5zZXREZWxlZ2F0ZShjb21wb25lbnQudmlzaWJsZSQpO1xuICB9XG5cbiAgZ2V0IHZpc2libGUkKCkge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlJC5yZWFkb25seSQ7XG4gIH1cblxufVxuIiwiPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgW2Nka1BvcnRhbE91dGxldF09XCJwb3B1cENvbXBvbmVudFBvcnRhbCQudmFsdWVcIlxuICAgICAgICAgICAgICAgKGF0dGFjaGVkKT1cImluaXRpYWxpc2UoJGV2ZW50KVwiPjwvbmctdGVtcGxhdGU+XG48L21hdC1tZW51PlxuXG48YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGRhdGEtY3k9XCJtb3JlLW1lbnUtdHJpZ2dlclwiICpuZ0lmPVwidmlzaWJsZSQudmFsdWVcIj5cbiAgPGF1cC1pY29uIGljb249XCJtYXQ6bW9yZV92ZXJ0XCI+PC9hdXAtaWNvbj5cbjwvYnV0dG9uPlxuIl19