@rivet-health/design-system 40.44.0 → 40.44.2

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 (321) hide show
  1. package/{esm2020 → esm2022}/lib/accessibility/sr-only/sr-only.component.mjs +4 -4
  2. package/esm2022/lib/download/download.service.mjs +47 -0
  3. package/{esm2020 → esm2022}/lib/format/pipes/common.mjs +5 -5
  4. package/{esm2020 → esm2022}/lib/format/pipes/date.pipe.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/format/pipes/days.pipe.mjs +4 -4
  6. package/{esm2020 → esm2022}/lib/format/pipes/dollars.pipe.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/format/pipes/number.pipe.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/format/pipes/percentage.pipe.mjs +4 -4
  9. package/esm2022/lib/format/pipes/sentence-case.pipe.mjs +61 -0
  10. package/esm2022/lib/format/pipes/small-currency.pipe.mjs +24 -0
  11. package/esm2022/lib/format/pipes/small-number.pipe.mjs +29 -0
  12. package/esm2022/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +62 -0
  13. package/esm2022/lib/format/truncate/truncate.component.mjs +51 -0
  14. package/esm2022/lib/icon/dom-cache.mjs +32 -0
  15. package/esm2022/lib/icon/icon.component.mjs +86 -0
  16. package/{esm2020 → esm2022}/lib/icon/icons.mjs +1 -1
  17. package/{esm2020 → esm2022}/lib/input/alphabetic-field/alphabetic-field.component.mjs +4 -4
  18. package/esm2022/lib/input/auto-focus/auto-focus.directive.mjs +48 -0
  19. package/esm2022/lib/input/button/button.component.mjs +139 -0
  20. package/esm2022/lib/input/button-group/button-group.component.mjs +39 -0
  21. package/{esm2020 → esm2022}/lib/input/calendar/calendar.component.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/input/card-checkbox/card-checkbox.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/input/checkbox/checkbox.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/input/currency-field/currency-field.component.mjs +4 -4
  25. package/esm2022/lib/input/date/date.component.mjs +279 -0
  26. package/esm2022/lib/input/date-range/date-range.component.mjs +477 -0
  27. package/esm2022/lib/input/filter-chip/filter-chip.component.mjs +47 -0
  28. package/{esm2020 → esm2022}/lib/input/filter-dropdown/filter-dropdown.component.mjs +5 -5
  29. package/{esm2020 → esm2022}/lib/input/input-label/input-label.component.mjs +4 -4
  30. package/esm2022/lib/input/mentions-input/mentions-input.component.mjs +745 -0
  31. package/esm2022/lib/input/number-field/number-field.component.mjs +125 -0
  32. package/{esm2020 → esm2022}/lib/input/percentage-field/percentage-field.component.mjs +4 -4
  33. package/esm2022/lib/input/phone-field/phone-field.component.mjs +74 -0
  34. package/{esm2020 → esm2022}/lib/input/radio/radio.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/lib/input/search/search.component.mjs +4 -4
  36. package/esm2022/lib/input/search-select/search-select.component.mjs +189 -0
  37. package/esm2022/lib/input/select/select/select.component.mjs +178 -0
  38. package/{esm2020 → esm2022}/lib/input/select/select-node/select-node.component.mjs +4 -4
  39. package/esm2022/lib/input/select/state.mjs +882 -0
  40. package/{esm2020 → esm2022}/lib/input/simple-select/option-group.pipe.mjs +4 -4
  41. package/esm2022/lib/input/simple-select/simple-select.component.mjs +178 -0
  42. package/esm2022/lib/input/switch-checkbox/switch-checkbox.component.mjs +33 -0
  43. package/esm2022/lib/input/text-field/text-field.component.mjs +115 -0
  44. package/{esm2020 → esm2022}/lib/input/textarea-field/textarea-field.component.mjs +4 -4
  45. package/{esm2020 → esm2022}/lib/input/validation-message/validation-message.component.mjs +4 -4
  46. package/{esm2020 → esm2022}/lib/layout/card/card-actions.component.mjs +4 -4
  47. package/esm2022/lib/layout/card/card-content.component.mjs +64 -0
  48. package/esm2022/lib/layout/card/card-header.component.mjs +201 -0
  49. package/{esm2020 → esm2022}/lib/layout/card/card-link.component.mjs +5 -5
  50. package/{esm2020 → esm2022}/lib/layout/card/card-media.component.mjs +4 -4
  51. package/esm2022/lib/layout/card/card.component.mjs +291 -0
  52. package/{esm2020 → esm2022}/lib/layout/setting-row/setting-row.component.mjs +4 -4
  53. package/esm2022/lib/load/loading/loading.component.mjs +43 -0
  54. package/{esm2020 → esm2022}/lib/load/loading-cover/loading-cover.component.mjs +4 -4
  55. package/esm2022/lib/navigation/editable-heading/editable-heading.component.mjs +243 -0
  56. package/{esm2020 → esm2022}/lib/navigation/link/link.component.mjs +6 -6
  57. package/{esm2020 → esm2022}/lib/navigation/page-header/page-header.component.mjs +4 -4
  58. package/{esm2020 → esm2022}/lib/navigation/simple-tabs/simple-tab/simple-tab.component.mjs +4 -4
  59. package/{esm2020 → esm2022}/lib/navigation/simple-tabs/simple-tabs/simple-tabs.component.mjs +4 -4
  60. package/{esm2020 → esm2022}/lib/navigation/tabs/tab/tab.component.mjs +4 -4
  61. package/{esm2020 → esm2022}/lib/navigation/tabs/tabs/tabs.component.mjs +4 -4
  62. package/{esm2020 → esm2022}/lib/navigation/views/all-views-modal/all-views-modal.component.mjs +4 -4
  63. package/{esm2020 → esm2022}/lib/navigation/views/edit-view/edit-view.component.mjs +9 -9
  64. package/esm2022/lib/navigation/views/permission-picker/permission-picker.component.mjs +151 -0
  65. package/esm2022/lib/navigation/views/state.mjs +456 -0
  66. package/{esm2020 → esm2022}/lib/navigation/views/view-menu/view-menu.component.mjs +5 -5
  67. package/esm2022/lib/navigation/views/views/views.component.mjs +90 -0
  68. package/{esm2020 → esm2022}/lib/notification/badge/badge.component.mjs +4 -4
  69. package/esm2022/lib/notification/banner/banner-action.component.mjs +48 -0
  70. package/esm2022/lib/notification/banner/banner.component.mjs +61 -0
  71. package/esm2022/lib/notification/map-indicator/map-indicator.component.mjs +50 -0
  72. package/esm2022/lib/notification/map-indicator/map-indicators.mjs +15 -0
  73. package/{esm2020 → esm2022}/lib/notification/notification-badge/notification-badge.component.mjs +4 -4
  74. package/esm2022/lib/overlay/callout/callout.component.mjs +130 -0
  75. package/esm2022/lib/overlay/callout/callout.helpers.mjs +113 -0
  76. package/{esm2020 → esm2022}/lib/overlay/callout/help/help.component.mjs +4 -4
  77. package/esm2022/lib/overlay/callout/lock-scroll.directive.mjs +69 -0
  78. package/{esm2020 → esm2022}/lib/overlay/callout/menu/menu-item/menu-item.component.mjs +5 -5
  79. package/{esm2020 → esm2022}/lib/overlay/callout/menu/menu.component.mjs +4 -4
  80. package/esm2022/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +30 -0
  81. package/{esm2020 → esm2022}/lib/overlay/callout/tooltip/tooltip.component.mjs +4 -4
  82. package/esm2022/lib/overlay/callout/tooltip/tooltip.directive.mjs +138 -0
  83. package/esm2022/lib/overlay/modal/dialog/dialog.component.mjs +47 -0
  84. package/{esm2020 → esm2022}/lib/overlay/modal/dialog-stack.service.mjs +4 -4
  85. package/esm2022/lib/overlay/modal/form-dialog/form-dialog.component.mjs +146 -0
  86. package/esm2022/lib/overlay/modal/modal.component.mjs +31 -0
  87. package/{esm2020 → esm2022}/lib/overlay/modal/side-sheet/side-sheet.component.mjs +4 -4
  88. package/esm2022/lib/overlay/overlay-outlet.component.mjs +98 -0
  89. package/{esm2020 → esm2022}/lib/overlay/overlay.directive.mjs +5 -5
  90. package/{esm2020 → esm2022}/lib/overlay/overlay.service.mjs +5 -5
  91. package/{esm2020 → esm2022}/lib/overlay/toast/toast-action.component.mjs +4 -4
  92. package/esm2022/lib/overlay/toast/toast.component.mjs +41 -0
  93. package/{esm2020 → esm2022}/lib/riv.module.mjs +227 -227
  94. package/esm2022/lib/size/size.directive.mjs +33 -0
  95. package/esm2022/lib/table/simple-table/coordinate-helper.mjs +61 -0
  96. package/esm2022/lib/table/simple-table/simple-table-cell.component.mjs +36 -0
  97. package/esm2022/lib/table/simple-table/simple-table-header-cell.component.mjs +37 -0
  98. package/{esm2020 → esm2022}/lib/table/simple-table/simple-table-row.component.mjs +4 -4
  99. package/esm2022/lib/table/simple-table/simple-table.component.mjs +104 -0
  100. package/esm2022/lib/table/table/clipboard.mjs +182 -0
  101. package/esm2022/lib/table/table/state-helpers/collapse-helpers.mjs +116 -0
  102. package/esm2022/lib/table/table/state-helpers/column-helpers.mjs +383 -0
  103. package/{esm2020 → esm2022}/lib/table/table/state-helpers/display-helpers.mjs +1 -1
  104. package/esm2022/lib/table/table/state-helpers/nesting-helpers.mjs +123 -0
  105. package/esm2022/lib/table/table/state-helpers/order-helpers.mjs +164 -0
  106. package/esm2022/lib/table/table/state-helpers/pagination-helpers.mjs +139 -0
  107. package/esm2022/lib/table/table/state-helpers/result-helpers.mjs +70 -0
  108. package/esm2022/lib/table/table/state-helpers/search-helpers.mjs +72 -0
  109. package/esm2022/lib/table/table/state-helpers/selection-helpers.mjs +180 -0
  110. package/esm2022/lib/table/table/state.mjs +1035 -0
  111. package/esm2022/lib/table/table/table/table.component.mjs +367 -0
  112. package/{esm2020 → esm2022}/lib/table/table/table-collapse-all/table-collapse-all.component.mjs +5 -5
  113. package/esm2022/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +227 -0
  114. package/esm2022/lib/table/table/table-column-settings/table-column-settings.component.mjs +134 -0
  115. package/esm2022/lib/table/table/table-csv-export/table-csv-export.component.mjs +35 -0
  116. package/{esm2020 → esm2022}/lib/table/table/table-header-resize-handle/table-header-resize-handle.component.mjs +6 -6
  117. package/esm2022/lib/table/table/table-search/table-search.component.mjs +71 -0
  118. package/{esm2020 → esm2022}/lib/table/table/table-search-columns/table-search-columns.component.mjs +4 -4
  119. package/esm2022/lib/visibility/visibility.directive.mjs +34 -0
  120. package/esm2022/lib/visualization/chart/chart-scaling.mjs +380 -0
  121. package/esm2022/lib/visualization/chart/chart.component.mjs +626 -0
  122. package/esm2022/lib/visualization/chart/chart.mjs +3768 -0
  123. package/{esm2020 → esm2022}/lib/visualization/data-table/data-table-cell.component.mjs +5 -5
  124. package/{esm2020 → esm2022}/lib/visualization/data-table/data-table-header-cell.component.mjs +4 -4
  125. package/{esm2020 → esm2022}/lib/visualization/data-table/data-table-row.component.mjs +4 -4
  126. package/{esm2020 → esm2022}/lib/visualization/data-table/data-table.component.mjs +4 -4
  127. package/{esm2020 → esm2022}/lib/visualization/donut/donut.component.mjs +4 -4
  128. package/{esm2020 → esm2022}/lib/visualization/funnel-chart/funnel-chart.component.mjs +5 -5
  129. package/esm2022/lib/visualization/funnel-chart/funnel-chart.helpers.mjs +33 -0
  130. package/{esm2020 → esm2022}/lib/visualization/highlight/highlight.component.mjs +4 -4
  131. package/esm2022/lib/visualization/highlight/highlight.helpers.mjs +20 -0
  132. package/esm2022/lib/visualization/intervals.mjs +63 -0
  133. package/{esm2020 → esm2022}/lib/visualization/issue/issue.component.mjs +4 -4
  134. package/{esm2020 → esm2022}/lib/visualization/legend-item/legend-item.component.mjs +4 -4
  135. package/{esm2020 → esm2022}/lib/visualization/metric/metric.component.mjs +4 -4
  136. package/{esm2020 → esm2022}/lib/visualization/mini-pie/mini-pie.component.mjs +4 -4
  137. package/{esm2020 → esm2022}/lib/visualization/progress/progress.component.mjs +5 -5
  138. package/esm2022/lib/visualization/stacked-column/stacked-column.component.mjs +377 -0
  139. package/esm2022/lib/visualization/stacked-column/stacked-column.helpers.mjs +18 -0
  140. package/esm2022/lib/visualization/stacked-row/stacked-row.component.mjs +270 -0
  141. package/esm2022/lib/visualization/stacked-row/stacked-row.helpers.mjs +74 -0
  142. package/esm2022/lib/visualization/time-series/time-series.component.mjs +374 -0
  143. package/esm2022/lib/visualization/time-series/time-series.helpers.mjs +15 -0
  144. package/esm2022/lib/visualization/trend/trend.component.mjs +51 -0
  145. package/{esm2020 → esm2022}/lib/visualization/zero-state/zero-state.component.mjs +4 -4
  146. package/{fesm2020 → fesm2022}/rivet-health-design-system.mjs +670 -670
  147. package/{fesm2020 → fesm2022}/rivet-health-design-system.mjs.map +1 -1
  148. package/lib/format/svg-text-truncate/svg-text-truncate.directive.d.ts +1 -1
  149. package/lib/format/truncate/truncate.component.d.ts +1 -1
  150. package/lib/icon/icon.component.d.ts +1 -1
  151. package/lib/input/auto-focus/auto-focus.directive.d.ts +1 -1
  152. package/lib/input/button/button.component.d.ts +1 -1
  153. package/lib/input/calendar/calendar.component.d.ts +1 -1
  154. package/lib/input/checkbox/checkbox.component.d.ts +1 -1
  155. package/lib/input/currency-field/currency-field.component.d.ts +1 -1
  156. package/lib/input/date/date.component.d.ts +1 -1
  157. package/lib/input/date-range/date-range.component.d.ts +1 -1
  158. package/lib/input/filter-chip/filter-chip.component.d.ts +1 -1
  159. package/lib/input/filter-dropdown/filter-dropdown.component.d.ts +1 -1
  160. package/lib/input/input-label/input-label.component.d.ts +1 -1
  161. package/lib/input/mentions-input/mentions-input.component.d.ts +1 -1
  162. package/lib/input/number-field/number-field.component.d.ts +1 -1
  163. package/lib/input/percentage-field/percentage-field.component.d.ts +1 -1
  164. package/lib/input/phone-field/phone-field.component.d.ts +1 -1
  165. package/lib/input/radio/radio.component.d.ts +1 -1
  166. package/lib/input/search/search.component.d.ts +1 -1
  167. package/lib/input/search-select/search-select.component.d.ts +1 -1
  168. package/lib/input/select/select/select.component.d.ts +1 -1
  169. package/lib/input/select/select-node/select-node.component.d.ts +1 -1
  170. package/lib/input/simple-select/simple-select.component.d.ts +1 -1
  171. package/lib/input/switch-checkbox/switch-checkbox.component.d.ts +1 -1
  172. package/lib/input/text-field/text-field.component.d.ts +1 -1
  173. package/lib/input/textarea-field/textarea-field.component.d.ts +1 -1
  174. package/lib/input/validation-message/validation-message.component.d.ts +1 -1
  175. package/lib/layout/card/card-actions.component.d.ts +1 -1
  176. package/lib/layout/card/card-content.component.d.ts +1 -1
  177. package/lib/layout/card/card-header.component.d.ts +1 -1
  178. package/lib/layout/card/card-link.component.d.ts +1 -1
  179. package/lib/layout/card/card-media.component.d.ts +1 -1
  180. package/lib/layout/card/card.component.d.ts +1 -1
  181. package/lib/layout/setting-row/setting-row.component.d.ts +1 -1
  182. package/lib/load/loading/loading.component.d.ts +1 -1
  183. package/lib/load/loading-cover/loading-cover.component.d.ts +1 -1
  184. package/lib/navigation/editable-heading/editable-heading.component.d.ts +1 -1
  185. package/lib/navigation/link/link.component.d.ts +1 -1
  186. package/lib/navigation/page-header/page-header.component.d.ts +1 -1
  187. package/lib/navigation/simple-tabs/simple-tab/simple-tab.component.d.ts +1 -1
  188. package/lib/navigation/tabs/tab/tab.component.d.ts +1 -1
  189. package/lib/navigation/views/all-views-modal/all-views-modal.component.d.ts +1 -1
  190. package/lib/navigation/views/edit-view/edit-view.component.d.ts +1 -1
  191. package/lib/navigation/views/permission-picker/permission-picker.component.d.ts +3 -3
  192. package/lib/navigation/views/view-menu/view-menu.component.d.ts +1 -1
  193. package/lib/navigation/views/views/views.component.d.ts +1 -1
  194. package/lib/notification/badge/badge.component.d.ts +1 -1
  195. package/lib/notification/banner/banner-action.component.d.ts +1 -1
  196. package/lib/notification/banner/banner.component.d.ts +1 -1
  197. package/lib/notification/map-indicator/map-indicator.component.d.ts +1 -1
  198. package/lib/notification/notification-badge/notification-badge.component.d.ts +1 -1
  199. package/lib/overlay/callout/callout.component.d.ts +1 -1
  200. package/lib/overlay/callout/help/help.component.d.ts +1 -1
  201. package/lib/overlay/callout/lock-scroll.directive.d.ts +1 -1
  202. package/lib/overlay/callout/menu/menu-item/menu-item.component.d.ts +1 -1
  203. package/lib/overlay/callout/menu/menu.component.d.ts +1 -1
  204. package/lib/overlay/callout/tooltip/locked-tooltip.directive.d.ts +1 -1
  205. package/lib/overlay/callout/tooltip/tooltip.component.d.ts +1 -1
  206. package/lib/overlay/callout/tooltip/tooltip.directive.d.ts +1 -1
  207. package/lib/overlay/modal/dialog/dialog.component.d.ts +1 -1
  208. package/lib/overlay/modal/form-dialog/form-dialog.component.d.ts +1 -1
  209. package/lib/overlay/modal/modal.component.d.ts +1 -1
  210. package/lib/overlay/modal/side-sheet/side-sheet.component.d.ts +1 -1
  211. package/lib/overlay/toast/toast.component.d.ts +1 -1
  212. package/lib/table/simple-table/simple-table-header-cell.component.d.ts +1 -1
  213. package/lib/table/simple-table/simple-table-row.component.d.ts +1 -1
  214. package/lib/table/table/table/table.component.d.ts +1 -1
  215. package/lib/table/table/table-collapse-all/table-collapse-all.component.d.ts +1 -1
  216. package/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.d.ts +1 -1
  217. package/lib/table/table/table-column-settings/table-column-settings.component.d.ts +1 -1
  218. package/lib/table/table/table-csv-export/table-csv-export.component.d.ts +1 -1
  219. package/lib/table/table/table-search/table-search.component.d.ts +1 -1
  220. package/lib/table/table/table-search-columns/table-search-columns.component.d.ts +1 -1
  221. package/lib/visualization/chart/chart.component.d.ts +1 -1
  222. package/lib/visualization/data-table/data-table-row.component.d.ts +1 -1
  223. package/lib/visualization/donut/donut.component.d.ts +1 -1
  224. package/lib/visualization/funnel-chart/funnel-chart.component.d.ts +1 -1
  225. package/lib/visualization/highlight/highlight.component.d.ts +1 -1
  226. package/lib/visualization/issue/issue.component.d.ts +1 -1
  227. package/lib/visualization/legend-item/legend-item.component.d.ts +1 -1
  228. package/lib/visualization/metric/metric.component.d.ts +1 -1
  229. package/lib/visualization/mini-pie/mini-pie.component.d.ts +1 -1
  230. package/lib/visualization/progress/progress.component.d.ts +1 -1
  231. package/lib/visualization/stacked-column/stacked-column.component.d.ts +3 -3
  232. package/lib/visualization/stacked-row/stacked-row.component.d.ts +1 -1
  233. package/lib/visualization/time-series/time-series.component.d.ts +3 -3
  234. package/lib/visualization/trend/trend.component.d.ts +1 -1
  235. package/lib/visualization/zero-state/zero-state.component.d.ts +1 -1
  236. package/package.json +5 -11
  237. package/esm2020/lib/download/download.service.mjs +0 -47
  238. package/esm2020/lib/format/pipes/sentence-case.pipe.mjs +0 -61
  239. package/esm2020/lib/format/pipes/small-currency.pipe.mjs +0 -24
  240. package/esm2020/lib/format/pipes/small-number.pipe.mjs +0 -29
  241. package/esm2020/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +0 -62
  242. package/esm2020/lib/format/truncate/truncate.component.mjs +0 -51
  243. package/esm2020/lib/icon/dom-cache.mjs +0 -32
  244. package/esm2020/lib/icon/icon.component.mjs +0 -86
  245. package/esm2020/lib/input/auto-focus/auto-focus.directive.mjs +0 -48
  246. package/esm2020/lib/input/button/button.component.mjs +0 -139
  247. package/esm2020/lib/input/button-group/button-group.component.mjs +0 -39
  248. package/esm2020/lib/input/date/date.component.mjs +0 -279
  249. package/esm2020/lib/input/date-range/date-range.component.mjs +0 -477
  250. package/esm2020/lib/input/filter-chip/filter-chip.component.mjs +0 -47
  251. package/esm2020/lib/input/mentions-input/mentions-input.component.mjs +0 -745
  252. package/esm2020/lib/input/number-field/number-field.component.mjs +0 -125
  253. package/esm2020/lib/input/phone-field/phone-field.component.mjs +0 -74
  254. package/esm2020/lib/input/search-select/search-select.component.mjs +0 -189
  255. package/esm2020/lib/input/select/select/select.component.mjs +0 -178
  256. package/esm2020/lib/input/select/state.mjs +0 -882
  257. package/esm2020/lib/input/simple-select/simple-select.component.mjs +0 -178
  258. package/esm2020/lib/input/switch-checkbox/switch-checkbox.component.mjs +0 -33
  259. package/esm2020/lib/input/text-field/text-field.component.mjs +0 -115
  260. package/esm2020/lib/layout/card/card-content.component.mjs +0 -64
  261. package/esm2020/lib/layout/card/card-header.component.mjs +0 -201
  262. package/esm2020/lib/layout/card/card.component.mjs +0 -291
  263. package/esm2020/lib/load/loading/loading.component.mjs +0 -43
  264. package/esm2020/lib/navigation/editable-heading/editable-heading.component.mjs +0 -243
  265. package/esm2020/lib/navigation/views/permission-picker/permission-picker.component.mjs +0 -151
  266. package/esm2020/lib/navigation/views/state.mjs +0 -456
  267. package/esm2020/lib/navigation/views/views/views.component.mjs +0 -90
  268. package/esm2020/lib/notification/banner/banner-action.component.mjs +0 -48
  269. package/esm2020/lib/notification/banner/banner.component.mjs +0 -61
  270. package/esm2020/lib/notification/map-indicator/map-indicator.component.mjs +0 -50
  271. package/esm2020/lib/notification/map-indicator/map-indicators.mjs +0 -15
  272. package/esm2020/lib/overlay/callout/callout.component.mjs +0 -130
  273. package/esm2020/lib/overlay/callout/callout.helpers.mjs +0 -113
  274. package/esm2020/lib/overlay/callout/lock-scroll.directive.mjs +0 -69
  275. package/esm2020/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +0 -30
  276. package/esm2020/lib/overlay/callout/tooltip/tooltip.directive.mjs +0 -138
  277. package/esm2020/lib/overlay/modal/dialog/dialog.component.mjs +0 -47
  278. package/esm2020/lib/overlay/modal/form-dialog/form-dialog.component.mjs +0 -146
  279. package/esm2020/lib/overlay/modal/modal.component.mjs +0 -31
  280. package/esm2020/lib/overlay/overlay-outlet.component.mjs +0 -98
  281. package/esm2020/lib/overlay/toast/toast.component.mjs +0 -41
  282. package/esm2020/lib/size/size.directive.mjs +0 -33
  283. package/esm2020/lib/table/simple-table/coordinate-helper.mjs +0 -61
  284. package/esm2020/lib/table/simple-table/simple-table-cell.component.mjs +0 -36
  285. package/esm2020/lib/table/simple-table/simple-table-header-cell.component.mjs +0 -37
  286. package/esm2020/lib/table/simple-table/simple-table.component.mjs +0 -104
  287. package/esm2020/lib/table/table/clipboard.mjs +0 -182
  288. package/esm2020/lib/table/table/state-helpers/collapse-helpers.mjs +0 -116
  289. package/esm2020/lib/table/table/state-helpers/column-helpers.mjs +0 -383
  290. package/esm2020/lib/table/table/state-helpers/nesting-helpers.mjs +0 -123
  291. package/esm2020/lib/table/table/state-helpers/order-helpers.mjs +0 -164
  292. package/esm2020/lib/table/table/state-helpers/pagination-helpers.mjs +0 -139
  293. package/esm2020/lib/table/table/state-helpers/result-helpers.mjs +0 -70
  294. package/esm2020/lib/table/table/state-helpers/search-helpers.mjs +0 -72
  295. package/esm2020/lib/table/table/state-helpers/selection-helpers.mjs +0 -180
  296. package/esm2020/lib/table/table/state.mjs +0 -1035
  297. package/esm2020/lib/table/table/table/table.component.mjs +0 -367
  298. package/esm2020/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +0 -227
  299. package/esm2020/lib/table/table/table-column-settings/table-column-settings.component.mjs +0 -134
  300. package/esm2020/lib/table/table/table-csv-export/table-csv-export.component.mjs +0 -35
  301. package/esm2020/lib/table/table/table-search/table-search.component.mjs +0 -71
  302. package/esm2020/lib/visibility/visibility.directive.mjs +0 -34
  303. package/esm2020/lib/visualization/chart/chart-scaling.mjs +0 -380
  304. package/esm2020/lib/visualization/chart/chart.component.mjs +0 -626
  305. package/esm2020/lib/visualization/chart/chart.mjs +0 -3768
  306. package/esm2020/lib/visualization/funnel-chart/funnel-chart.helpers.mjs +0 -33
  307. package/esm2020/lib/visualization/highlight/highlight.helpers.mjs +0 -20
  308. package/esm2020/lib/visualization/intervals.mjs +0 -63
  309. package/esm2020/lib/visualization/stacked-column/stacked-column.component.mjs +0 -377
  310. package/esm2020/lib/visualization/stacked-column/stacked-column.helpers.mjs +0 -18
  311. package/esm2020/lib/visualization/stacked-row/stacked-row.component.mjs +0 -270
  312. package/esm2020/lib/visualization/stacked-row/stacked-row.helpers.mjs +0 -74
  313. package/esm2020/lib/visualization/time-series/time-series.component.mjs +0 -374
  314. package/esm2020/lib/visualization/time-series/time-series.helpers.mjs +0 -15
  315. package/esm2020/lib/visualization/trend/trend.component.mjs +0 -51
  316. package/fesm2015/rivet-health-design-system.mjs +0 -18370
  317. package/fesm2015/rivet-health-design-system.mjs.map +0 -1
  318. /package/{esm2020 → esm2022}/lib/overlay/callout/select-callout-defaults.mjs +0 -0
  319. /package/{esm2020 → esm2022}/lib/util/local-storage.mjs +0 -0
  320. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  321. /package/{esm2020 → esm2022}/rivet-health-design-system.mjs +0 -0
@@ -1,104 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, } from '@angular/core';
2
- import { RivTable } from '../table/state';
3
- import { createCellCoordinateCalculator } from './coordinate-helper';
4
- import { SimpleTableCellComponent } from './simple-table-cell.component';
5
- import { SimpleTableHeaderCellComponent } from './simple-table-header-cell.component';
6
- import { TableColumnHelpers } from '../table/state-helpers/column-helpers';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- export class SimpleTableComponent {
10
- ngAfterContentChecked() {
11
- this.setCellProperties();
12
- }
13
- setCellProperties() {
14
- const { headerCells, dataCells } = this;
15
- if (!headerCells || !dataCells)
16
- return;
17
- let runningWidthTotal = 0;
18
- headerCells.forEach((headerCell, i) => {
19
- const { dataType } = headerCell;
20
- if (!dataType) {
21
- const allowedTypes = RivTable.ColumnDataTypes.join(', ');
22
- throw new Error(`Each header cell must define an appropriate dataType, one of ${allowedTypes}`);
23
- }
24
- const newAlignment = TableColumnHelpers.getColumnAlignment(dataType, i === 0);
25
- const newLeftPinOffset = runningWidthTotal;
26
- runningWidthTotal += headerCell.width;
27
- const changed = headerCell.alignment != newAlignment ||
28
- headerCell.leftPinOffset != newLeftPinOffset;
29
- headerCell.alignment = newAlignment;
30
- headerCell.leftPinOffset = newLeftPinOffset;
31
- // Only mark for check when changed to prevent infinite cycles
32
- if (changed) {
33
- queueMicrotask(() => {
34
- headerCell.cdr.markForCheck();
35
- });
36
- }
37
- });
38
- const cellSpanData = dataCells.map(dataCell => {
39
- const element = dataCell.elementRef.nativeElement;
40
- return {
41
- rowspan: parseInt(element.getAttribute('rowspan') || '1', 10),
42
- colspan: parseInt(element.getAttribute('colspan') || '1', 10),
43
- };
44
- });
45
- // When there are no header cells, calculate totalColumns from the first <tr>
46
- let totalColumns = headerCells.length;
47
- if (totalColumns === 0 && dataCells.length > 0) {
48
- const firstRow = dataCells.first?.elementRef.nativeElement.parentElement;
49
- if (firstRow) {
50
- // Count td elements in the first row and sum their colspans
51
- const cellsInFirstRow = Array.from(firstRow.querySelectorAll('td[riv-simple-table-cell]'));
52
- totalColumns = cellsInFirstRow.reduce((sum, cell) => {
53
- const colspan = parseInt(cell.getAttribute('colspan') || '1', 10);
54
- return sum + colspan;
55
- }, 0);
56
- }
57
- // Fallback to 1 if we couldn't determine
58
- if (totalColumns === 0) {
59
- totalColumns = 1;
60
- }
61
- }
62
- const getCellCoordinates = createCellCoordinateCalculator(cellSpanData, totalColumns);
63
- const maxRow = Math.max(...dataCells.map((_, i) => getCellCoordinates(i).end.row));
64
- dataCells.forEach((dataCell, cellIndex) => {
65
- const bounds = getCellCoordinates(cellIndex);
66
- const headerCell = headerCells.get(bounds.start.col);
67
- let changed = false;
68
- if (headerCell) {
69
- changed =
70
- dataCell.alignment != headerCell.alignment ||
71
- dataCell.pinned != headerCell.pinned ||
72
- dataCell.leftPinOffset != headerCell.leftPinOffset;
73
- dataCell.alignment = headerCell.alignment;
74
- dataCell.pinned = headerCell.pinned;
75
- dataCell.leftPinOffset = headerCell.leftPinOffset;
76
- }
77
- const newIsLastRow = bounds.end.row === maxRow;
78
- changed = changed || dataCell.isLastRow != newIsLastRow;
79
- dataCell.isLastRow = newIsLastRow;
80
- // Only mark for check when changed to prevent infinite cycles
81
- if (changed) {
82
- queueMicrotask(() => {
83
- dataCell.cdr.markForCheck();
84
- });
85
- }
86
- });
87
- }
88
- }
89
- SimpleTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SimpleTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
90
- SimpleTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SimpleTableComponent, selector: "riv-simple-table", queries: [{ propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true }, { propertyName: "headerCells", predicate: SimpleTableHeaderCellComponent, descendants: true }, { propertyName: "dataCells", predicate: SimpleTableCellComponent, descendants: true }], ngImport: i0, template: "<div class=\"header\" *ngIf=\"headerTemplate\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n</div>\n<div class=\"container\" tabindex=\"0\">\n <table>\n <ng-content></ng-content>\n </table>\n</div>\n", styles: [":host{display:grid;width:100%;min-height:0}.header{border-width:var(--border-width) var(--border-width) 0 var(--border-width);border-style:solid;border-color:var(--border-light);border-top-left-radius:var(--border-radius-medium);border-top-right-radius:var(--border-radius-medium)}.header+.container{border-top-left-radius:0;border-top-right-radius:0}.container{border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-medium);overflow:auto}table{border-collapse:separate;width:100%;table-layout:fixed}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SimpleTableComponent, decorators: [{
92
- type: Component,
93
- args: [{ selector: 'riv-simple-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"header\" *ngIf=\"headerTemplate\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n</div>\n<div class=\"container\" tabindex=\"0\">\n <table>\n <ng-content></ng-content>\n </table>\n</div>\n", styles: [":host{display:grid;width:100%;min-height:0}.header{border-width:var(--border-width) var(--border-width) 0 var(--border-width);border-style:solid;border-color:var(--border-light);border-top-left-radius:var(--border-radius-medium);border-top-right-radius:var(--border-radius-medium)}.header+.container{border-top-left-radius:0;border-top-right-radius:0}.container{border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-medium);overflow:auto}table{border-collapse:separate;width:100%;table-layout:fixed}\n"] }]
94
- }], propDecorators: { headerTemplate: [{
95
- type: ContentChild,
96
- args: ['header']
97
- }], headerCells: [{
98
- type: ContentChildren,
99
- args: [SimpleTableHeaderCellComponent, { descendants: true }]
100
- }], dataCells: [{
101
- type: ContentChildren,
102
- args: [SimpleTableCellComponent, { descendants: true }]
103
- }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3NpbXBsZS10YWJsZS9zaW1wbGUtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxHQUdoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQVEzRSxNQUFNLE9BQU8sb0JBQW9CO0lBVS9CLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUV2QyxJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUMxQixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDYixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekQsTUFBTSxJQUFJLEtBQUssQ0FDYixnRUFBZ0UsWUFBWSxFQUFFLENBQy9FLENBQUM7YUFDSDtZQUVELE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLGtCQUFrQixDQUN4RCxRQUFRLEVBQ1IsQ0FBQyxLQUFLLENBQUMsQ0FDUixDQUFDO1lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztZQUMzQyxpQkFBaUIsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDO1lBRXRDLE1BQU0sT0FBTyxHQUNYLFVBQVUsQ0FBQyxTQUFTLElBQUksWUFBWTtnQkFDcEMsVUFBVSxDQUFDLGFBQWEsSUFBSSxnQkFBZ0IsQ0FBQztZQUMvQyxVQUFVLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQztZQUNwQyxVQUFVLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDO1lBRTVDLDhEQUE4RDtZQUM5RCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxjQUFjLENBQUMsR0FBRyxFQUFFO29CQUNsQixVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNoQyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1lBQ2xELE9BQU87Z0JBQ0wsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQzdELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO2FBQzlELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILDZFQUE2RTtRQUM3RSxJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ3RDLElBQUksWUFBWSxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM5QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1lBQ3pFLElBQUksUUFBUSxFQUFFO2dCQUNaLDREQUE0RDtnQkFDNUQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDaEMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDLENBQ3ZELENBQUM7Z0JBQ0YsWUFBWSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7b0JBQ2xELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDbEUsT0FBTyxHQUFHLEdBQUcsT0FBTyxDQUFDO2dCQUN2QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDUDtZQUNELHlDQUF5QztZQUN6QyxJQUFJLFlBQVksS0FBSyxDQUFDLEVBQUU7Z0JBQ3RCLFlBQVksR0FBRyxDQUFDLENBQUM7YUFDbEI7U0FDRjtRQUVELE1BQU0sa0JBQWtCLEdBQUcsOEJBQThCLENBQ3ZELFlBQVksRUFDWixZQUFZLENBQ2IsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3JCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FDMUQsQ0FBQztRQUVGLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFN0MsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLFVBQVUsRUFBRTtnQkFDZCxPQUFPO29CQUNMLFFBQVEsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLFNBQVM7d0JBQzFDLFFBQVEsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU07d0JBQ3BDLFFBQVEsQ0FBQyxhQUFhLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQztnQkFFckQsUUFBUSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUMxQyxRQUFRLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQzthQUNuRDtZQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQztZQUMvQyxPQUFPLEdBQUcsT0FBTyxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksWUFBWSxDQUFDO1lBQ3hELFFBQVEsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1lBRWxDLDhEQUE4RDtZQUM5RCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxjQUFjLENBQUMsR0FBRyxFQUFFO29CQUNsQixRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM5QixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEFqSFUsb0JBQW9CO3NHQUFwQixvQkFBb0IsK0tBSWQsOEJBQThCLCtEQUc5Qix3QkFBd0IsZ0RDNUIzQyx5T0FRQTs0RkRhYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07OEJBSS9DLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxRQUFRO2dCQUlkLFdBQVc7c0JBRGxCLGVBQWU7dUJBQUMsOEJBQThCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUk5RCxTQUFTO3NCQURoQixlQUFlO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vdGFibGUvc3RhdGUnO1xuaW1wb3J0IHsgY3JlYXRlQ2VsbENvb3JkaW5hdGVDYWxjdWxhdG9yIH0gZnJvbSAnLi9jb29yZGluYXRlLWhlbHBlcic7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3NpbXBsZS10YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQgfSBmcm9tICcuL3NpbXBsZS10YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW5IZWxwZXJzIH0gZnJvbSAnLi4vdGFibGUvc3RhdGUtaGVscGVycy9jb2x1bW4taGVscGVycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi1zaW1wbGUtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2ltcGxlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2ltcGxlLXRhYmxlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNpbXBsZVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicpXG4gIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBoZWFkZXJDZWxscz86IFF1ZXJ5TGlzdDxTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2ltcGxlVGFibGVDZWxsQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgZGF0YUNlbGxzPzogUXVlcnlMaXN0PFNpbXBsZVRhYmxlQ2VsbENvbXBvbmVudD47XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIHRoaXMuc2V0Q2VsbFByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2VsbFByb3BlcnRpZXMoKSB7XG4gICAgY29uc3QgeyBoZWFkZXJDZWxscywgZGF0YUNlbGxzIH0gPSB0aGlzO1xuICAgIGlmICghaGVhZGVyQ2VsbHMgfHwgIWRhdGFDZWxscykgcmV0dXJuO1xuXG4gICAgbGV0IHJ1bm5pbmdXaWR0aFRvdGFsID0gMDtcbiAgICBoZWFkZXJDZWxscy5mb3JFYWNoKChoZWFkZXJDZWxsLCBpKSA9PiB7XG4gICAgICBjb25zdCB7IGRhdGFUeXBlIH0gPSBoZWFkZXJDZWxsO1xuICAgICAgaWYgKCFkYXRhVHlwZSkge1xuICAgICAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBSaXZUYWJsZS5Db2x1bW5EYXRhVHlwZXMuam9pbignLCAnKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBFYWNoIGhlYWRlciBjZWxsIG11c3QgZGVmaW5lIGFuIGFwcHJvcHJpYXRlIGRhdGFUeXBlLCBvbmUgb2YgJHthbGxvd2VkVHlwZXN9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3QWxpZ25tZW50ID0gVGFibGVDb2x1bW5IZWxwZXJzLmdldENvbHVtbkFsaWdubWVudChcbiAgICAgICAgZGF0YVR5cGUsXG4gICAgICAgIGkgPT09IDAsXG4gICAgICApO1xuICAgICAgY29uc3QgbmV3TGVmdFBpbk9mZnNldCA9IHJ1bm5pbmdXaWR0aFRvdGFsO1xuICAgICAgcnVubmluZ1dpZHRoVG90YWwgKz0gaGVhZGVyQ2VsbC53aWR0aDtcblxuICAgICAgY29uc3QgY2hhbmdlZCA9XG4gICAgICAgIGhlYWRlckNlbGwuYWxpZ25tZW50ICE9IG5ld0FsaWdubWVudCB8fFxuICAgICAgICBoZWFkZXJDZWxsLmxlZnRQaW5PZmZzZXQgIT0gbmV3TGVmdFBpbk9mZnNldDtcbiAgICAgIGhlYWRlckNlbGwuYWxpZ25tZW50ID0gbmV3QWxpZ25tZW50O1xuICAgICAgaGVhZGVyQ2VsbC5sZWZ0UGluT2Zmc2V0ID0gbmV3TGVmdFBpbk9mZnNldDtcblxuICAgICAgLy8gT25seSBtYXJrIGZvciBjaGVjayB3aGVuIGNoYW5nZWQgdG8gcHJldmVudCBpbmZpbml0ZSBjeWNsZXNcbiAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICBoZWFkZXJDZWxsLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBjZWxsU3BhbkRhdGEgPSBkYXRhQ2VsbHMubWFwKGRhdGFDZWxsID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkYXRhQ2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByb3dzcGFuOiBwYXJzZUludChlbGVtZW50LmdldEF0dHJpYnV0ZSgncm93c3BhbicpIHx8ICcxJywgMTApLFxuICAgICAgICBjb2xzcGFuOiBwYXJzZUludChlbGVtZW50LmdldEF0dHJpYnV0ZSgnY29sc3BhbicpIHx8ICcxJywgMTApLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIFdoZW4gdGhlcmUgYXJlIG5vIGhlYWRlciBjZWxscywgY2FsY3VsYXRlIHRvdGFsQ29sdW1ucyBmcm9tIHRoZSBmaXJzdCA8dHI+XG4gICAgbGV0IHRvdGFsQ29sdW1ucyA9IGhlYWRlckNlbGxzLmxlbmd0aDtcbiAgICBpZiAodG90YWxDb2x1bW5zID09PSAwICYmIGRhdGFDZWxscy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaXJzdFJvdyA9IGRhdGFDZWxscy5maXJzdD8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICBpZiAoZmlyc3RSb3cpIHtcbiAgICAgICAgLy8gQ291bnQgdGQgZWxlbWVudHMgaW4gdGhlIGZpcnN0IHJvdyBhbmQgc3VtIHRoZWlyIGNvbHNwYW5zXG4gICAgICAgIGNvbnN0IGNlbGxzSW5GaXJzdFJvdyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgZmlyc3RSb3cucXVlcnlTZWxlY3RvckFsbCgndGRbcml2LXNpbXBsZS10YWJsZS1jZWxsXScpLFxuICAgICAgICApO1xuICAgICAgICB0b3RhbENvbHVtbnMgPSBjZWxsc0luRmlyc3RSb3cucmVkdWNlKChzdW0sIGNlbGwpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2xzcGFuID0gcGFyc2VJbnQoY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKSB8fCAnMScsIDEwKTtcbiAgICAgICAgICByZXR1cm4gc3VtICsgY29sc3BhbjtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9XG4gICAgICAvLyBGYWxsYmFjayB0byAxIGlmIHdlIGNvdWxkbid0IGRldGVybWluZVxuICAgICAgaWYgKHRvdGFsQ29sdW1ucyA9PT0gMCkge1xuICAgICAgICB0b3RhbENvbHVtbnMgPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldENlbGxDb29yZGluYXRlcyA9IGNyZWF0ZUNlbGxDb29yZGluYXRlQ2FsY3VsYXRvcihcbiAgICAgIGNlbGxTcGFuRGF0YSxcbiAgICAgIHRvdGFsQ29sdW1ucyxcbiAgICApO1xuXG4gICAgY29uc3QgbWF4Um93ID0gTWF0aC5tYXgoXG4gICAgICAuLi5kYXRhQ2VsbHMubWFwKChfLCBpKSA9PiBnZXRDZWxsQ29vcmRpbmF0ZXMoaSkuZW5kLnJvdyksXG4gICAgKTtcblxuICAgIGRhdGFDZWxscy5mb3JFYWNoKChkYXRhQ2VsbCwgY2VsbEluZGV4KSA9PiB7XG4gICAgICBjb25zdCBib3VuZHMgPSBnZXRDZWxsQ29vcmRpbmF0ZXMoY2VsbEluZGV4KTtcblxuICAgICAgY29uc3QgaGVhZGVyQ2VsbCA9IGhlYWRlckNlbGxzLmdldChib3VuZHMuc3RhcnQuY29sKTtcbiAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICBpZiAoaGVhZGVyQ2VsbCkge1xuICAgICAgICBjaGFuZ2VkID1cbiAgICAgICAgICBkYXRhQ2VsbC5hbGlnbm1lbnQgIT0gaGVhZGVyQ2VsbC5hbGlnbm1lbnQgfHxcbiAgICAgICAgICBkYXRhQ2VsbC5waW5uZWQgIT0gaGVhZGVyQ2VsbC5waW5uZWQgfHxcbiAgICAgICAgICBkYXRhQ2VsbC5sZWZ0UGluT2Zmc2V0ICE9IGhlYWRlckNlbGwubGVmdFBpbk9mZnNldDtcblxuICAgICAgICBkYXRhQ2VsbC5hbGlnbm1lbnQgPSBoZWFkZXJDZWxsLmFsaWdubWVudDtcbiAgICAgICAgZGF0YUNlbGwucGlubmVkID0gaGVhZGVyQ2VsbC5waW5uZWQ7XG4gICAgICAgIGRhdGFDZWxsLmxlZnRQaW5PZmZzZXQgPSBoZWFkZXJDZWxsLmxlZnRQaW5PZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0lzTGFzdFJvdyA9IGJvdW5kcy5lbmQucm93ID09PSBtYXhSb3c7XG4gICAgICBjaGFuZ2VkID0gY2hhbmdlZCB8fCBkYXRhQ2VsbC5pc0xhc3RSb3cgIT0gbmV3SXNMYXN0Um93O1xuICAgICAgZGF0YUNlbGwuaXNMYXN0Um93ID0gbmV3SXNMYXN0Um93O1xuXG4gICAgICAvLyBPbmx5IG1hcmsgZm9yIGNoZWNrIHdoZW4gY2hhbmdlZCB0byBwcmV2ZW50IGluZmluaXRlIGN5Y2xlc1xuICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgIGRhdGFDZWxsLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIiAqbmdJZj1cImhlYWRlclRlbXBsYXRlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgdGFiaW5kZXg9XCIwXCI+XG4gIDx0YWJsZT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
@@ -1,182 +0,0 @@
1
- import { sumBy } from 'lodash';
2
- /**
3
- * Clipboard serialization for `riv-table`.
4
- *
5
- * Rows that have a link render as `<a class="row-link">` rather than `<tr>`, and
6
- * the browser's clipboard serializer does not treat those as table rows — the
7
- * copied content pastes into a spreadsheet as one lateral run instead of a grid.
8
- * These helpers rebuild the rendered grid so that copied content pastes as rows
9
- * and columns.
10
- */
11
- export var RivTableClipboard;
12
- (function (RivTableClipboard) {
13
- /** Cells that hold controls rather than data. */
14
- const controlCellSelector = 'th.selection-head, th.menu-head, td.selection-body, td.menu-body';
15
- /** The column name within a header cell; the rest of the cell is controls. */
16
- const headerLabelSelector = '.header-wrapper';
17
- /** Elements whose text exists for assistive technology only. */
18
- const assistiveTextSelector = 'riv-sr-only';
19
- /** Rows that stand in for data rather than carrying it. */
20
- const fillerRowSelector = 'riv-zero-state';
21
- /** Elements that own their own clipboard behavior. */
22
- const editableSelector = 'input, textarea, select, [contenteditable=""], [contenteditable="true"]';
23
- /** Whether the copy came from a control that serializes its own value. */
24
- function isEditable(target) {
25
- return (target instanceof Element && target.closest(editableSelector) !== null);
26
- }
27
- RivTableClipboard.isEditable = isEditable;
28
- /**
29
- * Whether `host` is the first element of its kind that the selection touches.
30
- * A selection can span several tables; deferring to the first keeps instances
31
- * from overwriting each other's clipboard data.
32
- */
33
- function ownsSelection(host, isSelected) {
34
- return (Array.from(document.querySelectorAll(host.localName)).find(element => isSelected(element)) === host);
35
- }
36
- RivTableClipboard.ownsSelection = ownsSelection;
37
- /**
38
- * Serializes the selected region of `tables` (one per row group), or null when
39
- * the selection covers at most one cell — those are left to the browser so
40
- * that copying part of a cell's text keeps working.
41
- *
42
- * `endpoints` are where the selection starts and ends, which narrow the copied
43
- * columns to that span. A selection is a linear range in reading order, so
44
- * dragging down one column touches every column in between; the endpoints are
45
- * what distinguish "this column" from "these rows".
46
- */
47
- function extract(tables, isSelected, endpoints = []) {
48
- const layouts = tables.map(layout);
49
- const columns = selectedColumns(layouts, isSelected, endpoints);
50
- const headers = layouts.flatMap(l => l.header);
51
- const rows = layouts
52
- .flatMap(l => l.body)
53
- .filter(row => selectedCount(row, isSelected) > 0);
54
- // Header cells own the pointer for column reordering, so a drag cannot
55
- // reach them; the header comes along with any copied data instead.
56
- const header = headers.find(row => selectedCount(row, isSelected) > 0) ??
57
- (rows.length > 0 ? headers[0] : undefined);
58
- if (columns.length === 0 ||
59
- sumBy([...(header ? [header] : []), ...rows], row => selectedCount(row, isSelected)) < 2)
60
- return null;
61
- return {
62
- text: toText(header, rows, columns),
63
- html: toHtml(header, rows, columns),
64
- };
65
- }
66
- RivTableClipboard.extract = extract;
67
- function toText(header, rows, columns) {
68
- return [
69
- ...(header ? [columns.map(column => headerText(header[column]))] : []),
70
- ...rows.map(row => columns.map(column => text(row[column]))),
71
- ]
72
- .map(cells => cells.join('\t'))
73
- .join('\n');
74
- }
75
- function toHtml(header, rows, columns) {
76
- const cells = (values, tag) => values.map(value => `<${tag}>${escapeHtml(value)}</${tag}>`).join('');
77
- return [
78
- '<table>',
79
- header
80
- ? `<thead><tr>${cells(columns.map(column => headerText(header[column])), 'th')}</tr></thead>`
81
- : '',
82
- `<tbody>${rows
83
- .map(row => `<tr>${cells(columns.map(column => text(row[column])), 'td')}</tr>`)
84
- .join('')}</tbody>`,
85
- '</table>',
86
- ].join('');
87
- }
88
- function layout(table) {
89
- return {
90
- header: grid(Array.from(table.querySelectorAll(':scope > thead > tr')).filter(isDataRow)),
91
- body: grid(Array.from(table.querySelectorAll(':scope > tbody > tr, :scope > tbody > a.row-link')).filter(isDataRow)),
92
- };
93
- }
94
- /**
95
- * Maps rows onto a column grid. Cells covered by a rowspan repeat the spanning
96
- * cell so that every line has one value per column, matching how CSV export
97
- * flattens spans.
98
- */
99
- function grid(rows) {
100
- const cells = rows.map(() => []);
101
- rows.forEach((row, rowIndex) => {
102
- let column = 0;
103
- for (const cell of dataCells(row)) {
104
- while (cells[rowIndex][column] !== undefined)
105
- column++;
106
- const rowSpan = Math.max(1, cell.rowSpan);
107
- const colSpan = Math.max(1, cell.colSpan);
108
- for (let r = rowIndex; r <= Math.min(rows.length - 1, rowIndex + rowSpan - 1); r++)
109
- for (let c = column; c < column + colSpan; c++)
110
- cells[r][c] = cell;
111
- column += colSpan;
112
- }
113
- });
114
- return cells;
115
- }
116
- function dataCells(row) {
117
- return Array.from(row.querySelectorAll(':scope > td, :scope > th')).filter(cell => !cell.matches(controlCellSelector));
118
- }
119
- /** Excludes the zero-state row, which spans every column. */
120
- function isDataRow(row) {
121
- return (row.querySelector(fillerRowSelector) === null &&
122
- dataCells(row).every(cell => cell.colSpan <= 1));
123
- }
124
- function selectedColumns(layouts, isSelected, endpoints) {
125
- const columns = new Set();
126
- for (const { header, body } of layouts)
127
- for (const row of [...header, ...body])
128
- row.forEach((cell, column) => {
129
- if (cell !== undefined && isSelected(cell))
130
- columns.add(column);
131
- });
132
- const touched = [...columns].sort((a, b) => a - b);
133
- // Both ends have to land in a cell to describe a span; anything else (a
134
- // select-all, an endpoint on a row rather than a cell) keeps every column.
135
- const span = endpoints
136
- .map(node => (node ? columnOf(layouts, node) : undefined))
137
- .filter((column) => column !== undefined);
138
- return span.length === endpoints.length && span.length > 1
139
- ? touched.filter(column => column >= Math.min(...span) && column <= Math.max(...span))
140
- : touched;
141
- }
142
- function columnOf(layouts, node) {
143
- for (const { header, body } of layouts)
144
- for (const row of [...header, ...body]) {
145
- const column = row.findIndex(cell => cell?.contains(node) === true);
146
- if (column >= 0)
147
- return column;
148
- }
149
- return undefined;
150
- }
151
- function selectedCount(row, isSelected) {
152
- return row.filter(cell => cell !== undefined && isSelected(cell)).length;
153
- }
154
- function headerText(cell) {
155
- return text(cell?.querySelector(headerLabelSelector) ?? cell);
156
- }
157
- function text(cell) {
158
- return cell ? visibleText(cell).replace(/\s+/g, ' ').trim() : '';
159
- }
160
- /**
161
- * Template indentation lands in the DOM as newlines and runs of spaces, which
162
- * split a single row across several spreadsheet rows unless collapsed by the
163
- * caller. Comment anchors and screen-reader-only content are dropped, and
164
- * sibling nodes are separated so that adjacent elements do not run together.
165
- */
166
- function visibleText(node) {
167
- if (node instanceof Text)
168
- return node.nodeValue ?? '';
169
- if (node instanceof Element)
170
- return node.matches(assistiveTextSelector)
171
- ? ''
172
- : Array.from(node.childNodes).map(visibleText).join(' ');
173
- return '';
174
- }
175
- function escapeHtml(value) {
176
- return value
177
- .replace(/&/g, '&amp;')
178
- .replace(/</g, '&lt;')
179
- .replace(/>/g, '&gt;');
180
- }
181
- })(RivTableClipboard || (RivTableClipboard = {}));
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFL0I7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLEtBQVcsaUJBQWlCLENBMlFqQztBQTNRRCxXQUFpQixpQkFBaUI7SUFDaEMsaURBQWlEO0lBQ2pELE1BQU0sbUJBQW1CLEdBQ3ZCLGtFQUFrRSxDQUFDO0lBRXJFLDhFQUE4RTtJQUM5RSxNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDO0lBRTlDLGdFQUFnRTtJQUNoRSxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQztJQUU1QywyREFBMkQ7SUFDM0QsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztJQUUzQyxzREFBc0Q7SUFDdEQsTUFBTSxnQkFBZ0IsR0FDcEIseUVBQXlFLENBQUM7SUFvQjVFLDBFQUEwRTtJQUMxRSxTQUFnQixVQUFVLENBQUMsTUFBMEI7UUFDbkQsT0FBTyxDQUNMLE1BQU0sWUFBWSxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksQ0FDdkUsQ0FBQztJQUNKLENBQUM7SUFKZSw0QkFBVSxhQUl6QixDQUFBO0lBRUQ7Ozs7T0FJRztJQUNILFNBQWdCLGFBQWEsQ0FDM0IsSUFBYSxFQUNiLFVBQXlCO1FBRXpCLE9BQU8sQ0FDTCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDbkUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUNwQixLQUFLLElBQUksQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQVRlLCtCQUFhLGdC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LENBQUMsSUFBZ0M7UUFDNUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxXQUFXLENBQUMsSUFBVTtRQUM3QixJQUFJLElBQUksWUFBWSxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUN0RCxJQUFJLElBQUksWUFBWSxPQUFPO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ0osQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUyxVQUFVLENBQUMsS0FBYTtRQUMvQixPQUFPLEtBQUs7YUFDVCxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN0QixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQzthQUNyQixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7QUFDSCxDQUFDLEVBM1FnQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBMlFqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN1bUJ5IH0gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBDbGlwYm9hcmQgc2VyaWFsaXphdGlvbiBmb3IgYHJpdi10YWJsZWAuXG4gKlxuICogUm93cyB0aGF0IGhhdmUgYSBsaW5rIHJlbmRlciBhcyBgPGEgY2xhc3M9XCJyb3ctbGlua1wiPmAgcmF0aGVyIHRoYW4gYDx0cj5gLCBhbmRcbiAqIHRoZSBicm93c2VyJ3MgY2xpcGJvYXJkIHNlcmlhbGl6ZXIgZG9lcyBub3QgdHJlYXQgdGhvc2UgYXMgdGFibGUgcm93cyDigJQgdGhlXG4gKiBjb3BpZWQgY29udGVudCBwYXN0ZXMgaW50byBhIHNwcmVhZHNoZWV0IGFzIG9uZSBsYXRlcmFsIHJ1biBpbnN0ZWFkIG9mIGEgZ3JpZC5cbiAqIFRoZXNlIGhlbHBlcnMgcmVidWlsZCB0aGUgcmVuZGVyZWQgZ3JpZCBzbyB0aGF0IGNvcGllZCBjb250ZW50IHBhc3RlcyBhcyByb3dzXG4gKiBhbmQgY29sdW1ucy5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBSaXZUYWJsZUNsaXBib2FyZCB7XG4gIC8qKiBDZWxscyB0aGF0IGhvbGQgY29udHJvbHMgcmF0aGVyIHRoYW4gZGF0YS4gKi9cbiAgY29uc3QgY29udHJvbENlbGxTZWxlY3RvciA9XG4gICAgJ3RoLnNlbGVjdGlvbi1oZWFkLCB0aC5tZW51LWhlYWQsIHRkLnNlbGVjdGlvbi1ib2R5LCB0ZC5tZW51LWJvZHknO1xuXG4gIC8qKiBUaGUgY29sdW1uIG5hbWUgd2l0aGluIGEgaGVhZGVyIGNlbGw7IHRoZSByZXN0IG9mIHRoZSBjZWxsIGlzIGNvbnRyb2xzLiAqL1xuICBjb25zdCBoZWFkZXJMYWJlbFNlbGVjdG9yID0gJy5oZWFkZXItd3JhcHBlcic7XG5cbiAgLyoqIEVsZW1lbnRzIHdob3NlIHRleHQgZXhpc3RzIGZvciBhc3Npc3RpdmUgdGVjaG5vbG9neSBvbmx5LiAqL1xuICBjb25zdCBhc3Npc3RpdmVUZXh0U2VsZWN0b3IgPSAncml2LXNyLW9ubHknO1xuXG4gIC8qKiBSb3dzIHRoYXQgc3RhbmQgaW4gZm9yIGRhdGEgcmF0aGVyIHRoYW4gY2FycnlpbmcgaXQuICovXG4gIGNvbnN0IGZpbGxlclJvd1NlbGVjdG9yID0gJ3Jpdi16ZXJvLXN0YXRlJztcblxuICAvKiogRWxlbWVudHMgdGhhdCBvd24gdGhlaXIgb3duIGNsaXBib2FyZCBiZWhhdmlvci4gKi9cbiAgY29uc3QgZWRpdGFibGVTZWxlY3RvciA9XG4gICAgJ2lucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBbY29udGVudGVkaXRhYmxlPVwiXCJdLCBbY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXSc7XG5cbiAgZXhwb3J0IHR5cGUgUGF5bG9hZCA9IHtcbiAgICAvKiogVGFiLWRlbGltaXRlZCByb3dzLCBvbmUgbGluZSBwZXIgcm93LiAqL1xuICAgIHRleHQ6IHN0cmluZztcbiAgICAvKiogRXF1aXZhbGVudCB0YWJsZSBtYXJrdXAsIGZvciB0YXJnZXRzIHRoYXQgcHJlZmVyIHJpY2ggY29udGVudC4gKi9cbiAgICBodG1sOiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqIFByZWRpY2F0ZSBmb3Igd2hldGhlciBhIG5vZGUgZmFsbHMgd2l0aGluIHRoZSB1c2VyJ3Mgc2VsZWN0aW9uLiAqL1xuICBleHBvcnQgdHlwZSBTZWxlY3Rpb25UZXN0ID0gKG5vZGU6IE5vZGUpID0+IGJvb2xlYW47XG5cbiAgLyoqIEEgcmVuZGVyZWQgcm93LCBob2xkaW5nIHRoZSBjZWxsIG9jY3VweWluZyBlYWNoIGRhdGEgY29sdW1uLiAqL1xuICB0eXBlIFJvdyA9IHJlYWRvbmx5IChFbGVtZW50IHwgdW5kZWZpbmVkKVtdO1xuXG4gIHR5cGUgTGF5b3V0ID0ge1xuICAgIGhlYWRlcjogcmVhZG9ubHkgUm93W107XG4gICAgYm9keTogcmVhZG9ubHkgUm93W107XG4gIH07XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvcHkgY2FtZSBmcm9tIGEgY29udHJvbCB0aGF0IHNlcmlhbGl6ZXMgaXRzIG93biB2YWx1ZS4gKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzRWRpdGFibGUodGFyZ2V0OiBFdmVudFRhcmdldCB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCAmJiB0YXJnZXQuY2xvc2VzdChlZGl0YWJsZVNlbGVjdG9yKSAhPT0gbnVsbFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBgaG9zdGAgaXMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgaXRzIGtpbmQgdGhhdCB0aGUgc2VsZWN0aW9uIHRvdWNoZXMuXG4gICAqIEEgc2VsZWN0aW9uIGNhbiBzcGFuIHNldmVyYWwgdGFibGVzOyBkZWZlcnJpbmcgdG8gdGhlIGZpcnN0IGtlZXBzIGluc3RhbmNlc1xuICAgKiBmcm9tIG92ZXJ3cml0aW5nIGVhY2ggb3RoZXIncyBjbGlwYm9hcmQgZGF0YS5cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBvd25zU2VsZWN0aW9uKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgaXNTZWxlY3RlZDogU2VsZWN0aW9uVGVzdCxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChob3N0LmxvY2FsTmFtZSkpLmZpbmQoZWxlbWVudCA9PlxuICAgICAgICBpc1NlbGVjdGVkKGVsZW1lbnQpLFxuICAgICAgKSA9PT0gaG9zdFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyB0aGUgc2VsZWN0ZWQgcmVnaW9uIG9mIGB0YWJsZXNgIChvbmUgcGVyIHJvdyBncm91cCksIG9yIG51bGwgd2hlblxuICAgKiB0aGUgc2VsZWN0aW9uIGNvdmVycyBhdCBtb3N0IG9uZSBjZWxsIOKAlCB0aG9zZSBhcmUgbGVmdCB0byB0aGUgYnJvd3NlciBzb1xuICAgKiB0aGF0IGNvcHlpbmcgcGFydCBvZiBhIGNlbGwncyB0ZXh0IGtlZXBzIHdvcmtpbmcuXG4gICAqXG4gICAqIGBlbmRwb2ludHNgIGFyZSB3aGVyZSB0aGUgc2VsZWN0aW9uIHN0YXJ0cyBhbmQgZW5kcywgd2hpY2ggbmFycm93IHRoZSBjb3BpZWRcbiAgICogY29sdW1ucyB0byB0aGF0IHNwYW4uIEEgc2VsZWN0aW9uIGlzIGEgbGluZWFyIHJhbmdlIGluIHJlYWRpbmcgb3JkZXIsIHNvXG4gICAqIGRyYWdnaW5nIGRvd24gb25lIGNvbHVtbiB0b3VjaGVzIGV2ZXJ5IGNvbHVtbiBpbiBiZXR3ZWVuOyB0aGUgZW5kcG9pbnRzIGFyZVxuICAgKiB3aGF0IGRpc3Rpbmd1aXNoIFwidGhpcyBjb2x1bW5cIiBmcm9tIFwidGhlc2Ugcm93c1wiLlxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3QoXG4gICAgdGFibGVzOiByZWFkb25seSBIVE1MVGFibGVFbGVtZW50W10sXG4gICAgaXNTZWxlY3RlZDogU2VsZWN0aW9uVGVzdCxcbiAgICBlbmRwb2ludHM6IHJlYWRvbmx5IChOb2RlIHwgbnVsbCB8IHVuZGVmaW5lZClbXSA9IFtdLFxuICApOiBQYXlsb2FkIHwgbnVsbCB7XG4gICAgY29uc3QgbGF5b3V0cyA9IHRhYmxlcy5tYXAobGF5b3V0KTtcbiAgICBjb25zdCBjb2x1bW5zID0gc2VsZWN0ZWRDb2x1bW5zKGxheW91dHMsIGlzU2VsZWN0ZWQsIGVuZHBvaW50cyk7XG4gICAgY29uc3QgaGVhZGVycyA9IGxheW91dHMuZmxhdE1hcChsID0+IGwuaGVhZGVyKTtcbiAgICBjb25zdCByb3dzID0gbGF5b3V0c1xuICAgICAgLmZsYXRNYXAobCA9PiBsLmJvZHkpXG4gICAgICAuZmlsdGVyKHJvdyA9PiBzZWxlY3RlZENvdW50KHJvdywgaXNTZWxlY3RlZCkgPiAwKTtcbiAgICAvLyBIZWFkZXIgY2VsbHMgb3duIHRoZSBwb2ludGVyIGZvciBjb2x1bW4gcmVvcmRlcmluZywgc28gYSBkcmFnIGNhbm5vdFxuICAgIC8vIHJlYWNoIHRoZW07IHRoZSBoZWFkZXIgY29tZXMgYWxvbmcgd2l0aCBhbnkgY29waWVkIGRhdGEgaW5zdGVhZC5cbiAgICBjb25zdCBoZWFkZXIgPVxuICAgICAgaGVhZGVycy5maW5kKHJvdyA9PiBzZWxlY3RlZENvdW50KHJvdywgaXNTZWxlY3RlZCkgPiAwKSA/P1xuICAgICAgKHJvd3MubGVuZ3RoID4gMCA/IGhlYWRlcnNbMF0gOiB1bmRlZmluZWQpO1xuXG4gICAgaWYgKFxuICAgICAgY29sdW1ucy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHN1bUJ5KFsuLi4oaGVhZGVyID8gW2hlYWRlcl0gOiBbXSksIC4uLnJvd3NdLCByb3cgPT5cbiAgICAgICAgc2VsZWN0ZWRDb3VudChyb3csIGlzU2VsZWN0ZWQpLFxuICAgICAgKSA8IDJcbiAgICApXG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiB0b1RleHQoaGVhZGVyLCByb3dzLCBjb2x1bW5zKSxcbiAgICAgIGh0bWw6IHRvSHRtbChoZWFkZXIsIHJvd3MsIGNvbHVtbnMpLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB0b1RleHQoXG4gICAgaGVhZGVyOiBSb3cgfCB1bmRlZmluZWQsXG4gICAgcm93czogcmVhZG9ubHkgUm93W10sXG4gICAgY29sdW1uczogcmVhZG9ubHkgbnVtYmVyW10sXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLihoZWFkZXIgPyBbY29sdW1ucy5tYXAoY29sdW1uID0+IGhlYWRlclRleHQoaGVhZGVyW2NvbHVtbl0pKV0gOiBbXSksXG4gICAgICAuLi5yb3dzLm1hcChyb3cgPT4gY29sdW1ucy5tYXAoY29sdW1uID0+IHRleHQocm93W2NvbHVtbl0pKSksXG4gICAgXVxuICAgICAgLm1hcChjZWxscyA9PiBjZWxscy5qb2luKCdcXHQnKSlcbiAgICAgIC5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRvSHRtbChcbiAgICBoZWFkZXI6IFJvdyB8IHVuZGVmaW5lZCxcbiAgICByb3dzOiByZWFkb25seSBSb3dbXSxcbiAgICBjb2x1bW5zOiByZWFkb25seSBudW1iZXJbXSxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBjZWxscyA9ICh2YWx1ZXM6IHJlYWRvbmx5IHN0cmluZ1tdLCB0YWc6ICd0aCcgfCAndGQnKSA9PlxuICAgICAgdmFsdWVzLm1hcCh2YWx1ZSA9PiBgPCR7dGFnfT4ke2VzY2FwZUh0bWwodmFsdWUpfTwvJHt0YWd9PmApLmpvaW4oJycpO1xuICAgIHJldHVybiBbXG4gICAgICAnPHRhYmxlPicsXG4gICAgICBoZWFkZXJcbiAgICAgICAgPyBgPHRoZWFkPjx0cj4ke2NlbGxzKFxuICAgICAgICAgICAgY29sdW1ucy5tYXAoY29sdW1uID0+IGhlYWRlclRleHQoaGVhZGVyW2NvbHVtbl0pKSxcbiAgICAgICAgICAgICd0aCcsXG4gICAgICAgICAgKX08L3RyPjwvdGhlYWQ+YFxuICAgICAgICA6ICcnLFxuICAgICAgYDx0Ym9keT4ke3Jvd3NcbiAgICAgICAgLm1hcChcbiAgICAgICAgICByb3cgPT5cbiAgICAgICAgICAgIGA8dHI+JHtjZWxscyhcbiAgICAgICAgICAgICAgY29sdW1ucy5tYXAoY29sdW1uID0+IHRleHQocm93W2NvbHVtbl0pKSxcbiAgICAgICAgICAgICAgJ3RkJyxcbiAgICAgICAgICAgICl9PC90cj5gLFxuICAgICAgICApXG4gICAgICAgIC5qb2luKCcnKX08L3Rib2R5PmAsXG4gICAgICAnPC90YWJsZT4nLFxuICAgIF0uam9pbignJyk7XG4gIH1cblxuICBmdW5jdGlvbiBsYXlvdXQodGFibGU6IEhUTUxUYWJsZUVsZW1lbnQpOiBMYXlvdXQge1xuICAgIHJldHVybiB7XG4gICAgICBoZWFkZXI6IGdyaWQoXG4gICAgICAgIEFycmF5LmZyb20odGFibGUucXVlcnlTZWxlY3RvckFsbCgnOnNjb3BlID4gdGhlYWQgPiB0cicpKS5maWx0ZXIoXG4gICAgICAgICAgaXNEYXRhUm93LFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIGJvZHk6IGdyaWQoXG4gICAgICAgIEFycmF5LmZyb20oXG4gICAgICAgICAgdGFibGUucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICc6c2NvcGUgPiB0Ym9keSA+IHRyLCA6c2NvcGUgPiB0Ym9keSA+IGEucm93LWxpbmsnLFxuICAgICAgICAgICksXG4gICAgICAgICkuZmlsdGVyKGlzRGF0YVJvdyksXG4gICAgICApLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTWFwcyByb3dzIG9udG8gYSBjb2x1bW4gZ3JpZC4gQ2VsbHMgY292ZXJlZCBieSBhIHJvd3NwYW4gcmVwZWF0IHRoZSBzcGFubmluZ1xuICAgKiBjZWxsIHNvIHRoYXQgZXZlcnkgbGluZSBoYXMgb25lIHZhbHVlIHBlciBjb2x1bW4sIG1hdGNoaW5nIGhvdyBDU1YgZXhwb3J0XG4gICAqIGZsYXR0ZW5zIHNwYW5zLlxuICAgKi9cbiAgZnVuY3Rpb24gZ3JpZChyb3dzOiByZWFkb25seSBFbGVtZW50W10pOiBSb3dbXSB7XG4gICAgY29uc3QgY2VsbHM6IChFbGVtZW50IHwgdW5kZWZpbmVkKVtdW10gPSByb3dzLm1hcCgoKSA9PiBbXSk7XG4gICAgcm93cy5mb3JFYWNoKChyb3csIHJvd0luZGV4KSA9PiB7XG4gICAgICBsZXQgY29sdW1uID0gMDtcbiAgICAgIGZvciAoY29uc3QgY2VsbCBvZiBkYXRhQ2VsbHMocm93KSkge1xuICAgICAgICB3aGlsZSAoY2VsbHNbcm93SW5kZXhdW2NvbHVtbl0gIT09IHVuZGVmaW5lZCkgY29sdW1uKys7XG4gICAgICAgIGNvbnN0IHJvd1NwYW4gPSBNYXRoLm1heCgxLCBjZWxsLnJvd1NwYW4pO1xuICAgICAgICBjb25zdCBjb2xTcGFuID0gTWF0aC5tYXgoMSwgY2VsbC5jb2xTcGFuKTtcbiAgICAgICAgZm9yIChcbiAgICAgICAgICBsZXQgciA9IHJvd0luZGV4O1xuICAgICAgICAgIHIgPD0gTWF0aC5taW4ocm93cy5sZW5ndGggLSAxLCByb3dJbmRleCArIHJvd1NwYW4gLSAxKTtcbiAgICAgICAgICByKytcbiAgICAgICAgKVxuICAgICAgICAgIGZvciAobGV0IGMgPSBjb2x1bW47IGMgPCBjb2x1bW4gKyBjb2xTcGFuOyBjKyspIGNlbGxzW3JdW2NdID0gY2VsbDtcbiAgICAgICAgY29sdW1uICs9IGNvbFNwYW47XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNlbGxzO1xuICB9XG5cbiAgZnVuY3Rpb24gZGF0YUNlbGxzKHJvdzogRWxlbWVudCk6IEhUTUxUYWJsZUNlbGxFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgcm93LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KCc6c2NvcGUgPiB0ZCwgOnNjb3BlID4gdGgnKSxcbiAgICApLmZpbHRlcihjZWxsID0+ICFjZWxsLm1hdGNoZXMoY29udHJvbENlbGxTZWxlY3RvcikpO1xuICB9XG5cbiAgLyoqIEV4Y2x1ZGVzIHRoZSB6ZXJvLXN0YXRlIHJvdywgd2hpY2ggc3BhbnMgZXZlcnkgY29sdW1uLiAqL1xuICBmdW5jdGlvbiBpc0RhdGFSb3cocm93OiBFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHJvdy5xdWVyeVNlbGVjdG9yKGZpbGxlclJvd1NlbGVjdG9yKSA9PT0gbnVsbCAmJlxuICAgICAgZGF0YUNlbGxzKHJvdykuZXZlcnkoY2VsbCA9PiBjZWxsLmNvbFNwYW4gPD0gMSlcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gc2VsZWN0ZWRDb2x1bW5zKFxuICAgIGxheW91dHM6IHJlYWRvbmx5IExheW91dFtdLFxuICAgIGlzU2VsZWN0ZWQ6IFNlbGVjdGlvblRlc3QsXG4gICAgZW5kcG9pbnRzOiByZWFkb25seSAoTm9kZSB8IG51bGwgfCB1bmRlZmluZWQpW10sXG4gICk6IG51bWJlcltdIHtcbiAgICBjb25zdCBjb2x1bW5zID0gbmV3IFNldDxudW1iZXI+KCk7XG4gICAgZm9yIChjb25zdCB7IGhlYWRlciwgYm9keSB9IG9mIGxheW91dHMpXG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiBbLi4uaGVhZGVyLCAuLi5ib2R5XSlcbiAgICAgICAgcm93LmZvckVhY2goKGNlbGwsIGNvbHVtbikgPT4ge1xuICAgICAgICAgIGlmIChjZWxsICE9PSB1bmRlZmluZWQgJiYgaXNTZWxlY3RlZChjZWxsKSkgY29sdW1ucy5hZGQoY29sdW1uKTtcbiAgICAgICAgfSk7XG4gICAgY29uc3QgdG91Y2hlZCA9IFsuLi5jb2x1bW5zXS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG5cbiAgICAvLyBCb3RoIGVuZHMgaGF2ZSB0byBsYW5kIGluIGEgY2VsbCB0byBkZXNjcmliZSBhIHNwYW47IGFueXRoaW5nIGVsc2UgKGFcbiAgICAvLyBzZWxlY3QtYWxsLCBhbiBlbmRwb2ludCBvbiBhIHJvdyByYXRoZXIgdGhhbiBhIGNlbGwpIGtlZXBzIGV2ZXJ5IGNvbHVtbi5cbiAgICBjb25zdCBzcGFuID0gZW5kcG9pbnRzXG4gICAgICAubWFwKG5vZGUgPT4gKG5vZGUgPyBjb2x1bW5PZihsYXlvdXRzLCBub2RlKSA6IHVuZGVmaW5lZCkpXG4gICAgICAuZmlsdGVyKChjb2x1bW4pOiBjb2x1bW4gaXMgbnVtYmVyID0+IGNvbHVtbiAhPT0gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gc3Bhbi5sZW5ndGggPT09IGVuZHBvaW50cy5sZW5ndGggJiYgc3Bhbi5sZW5ndGggPiAxXG4gICAgICA/IHRvdWNoZWQuZmlsdGVyKFxuICAgICAgICAgIGNvbHVtbiA9PiBjb2x1bW4gPj0gTWF0aC5taW4oLi4uc3BhbikgJiYgY29sdW1uIDw9IE1hdGgubWF4KC4uLnNwYW4pLFxuICAgICAgICApXG4gICAgICA6IHRvdWNoZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBjb2x1bW5PZihcbiAgICBsYXlvdXRzOiByZWFkb25seSBMYXlvdXRbXSxcbiAgICBub2RlOiBOb2RlLFxuICApOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGZvciAoY29uc3QgeyBoZWFkZXIsIGJvZHkgfSBvZiBsYXlvdXRzKVxuICAgICAgZm9yIChjb25zdCByb3cgb2YgWy4uLmhlYWRlciwgLi4uYm9keV0pIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gcm93LmZpbmRJbmRleChjZWxsID0+IGNlbGw/LmNvbnRhaW5zKG5vZGUpID09PSB0cnVlKTtcbiAgICAgICAgaWYgKGNvbHVtbiA+PSAwKSByZXR1cm4gY29sdW1uO1xuICAgICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBzZWxlY3RlZENvdW50KHJvdzogUm93LCBpc1NlbGVjdGVkOiBTZWxlY3Rpb25UZXN0KTogbnVtYmVyIHtcbiAgICByZXR1cm4gcm93LmZpbHRlcihjZWxsID0+IGNlbGwgIT09IHVuZGVmaW5lZCAmJiBpc1NlbGVjdGVkKGNlbGwpKS5sZW5ndGg7XG4gIH1cblxuICBmdW5jdGlvbiBoZWFkZXJUZXh0KGNlbGw6IEVsZW1lbnQgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0KGNlbGw/LnF1ZXJ5U2VsZWN0b3IoaGVhZGVyTGFiZWxTZWxlY3RvcikgPz8gY2VsbCk7XG4gIH1cblxuICBmdW5jdGlvbiB0ZXh0KGNlbGw6IEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2VsbCA/IHZpc2libGVUZXh0KGNlbGwpLnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCkgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBpbmRlbnRhdGlvbiBsYW5kcyBpbiB0aGUgRE9NIGFzIG5ld2xpbmVzIGFuZCBydW5zIG9mIHNwYWNlcywgd2hpY2hcbiAgICogc3BsaXQgYSBzaW5nbGUgcm93IGFjcm9zcyBzZXZlcmFsIHNwcmVhZHNoZWV0IHJvd3MgdW5sZXNzIGNvbGxhcHNlZCBieSB0aGVcbiAgICogY2FsbGVyLiBDb21tZW50IGFuY2hvcnMgYW5kIHNjcmVlbi1yZWFkZXItb25seSBjb250ZW50IGFyZSBkcm9wcGVkLCBhbmRcbiAgICogc2libGluZyBub2RlcyBhcmUgc2VwYXJhdGVkIHNvIHRoYXQgYWRqYWNlbnQgZWxlbWVudHMgZG8gbm90IHJ1biB0b2dldGhlci5cbiAgICovXG4gIGZ1bmN0aW9uIHZpc2libGVUZXh0KG5vZGU6IE5vZGUpOiBzdHJpbmcge1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgVGV4dCkgcmV0dXJuIG5vZGUubm9kZVZhbHVlID8/ICcnO1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgRWxlbWVudClcbiAgICAgIHJldHVybiBub2RlLm1hdGNoZXMoYXNzaXN0aXZlVGV4dFNlbGVjdG9yKVxuICAgICAgICA/ICcnXG4gICAgICAgIDogQXJyYXkuZnJvbShub2RlLmNoaWxkTm9kZXMpLm1hcCh2aXNpYmxlVGV4dCkuam9pbignICcpO1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGZ1bmN0aW9uIGVzY2FwZUh0bWwodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgfVxufVxuIl19
@@ -1,116 +0,0 @@
1
- export var TableCollapseHelpers;
2
- (function (TableCollapseHelpers) {
3
- function toggleRowCollapse(state, id) {
4
- const currentSet = state.collapseState.defaultTo === 'collapsed'
5
- ? state.collapseState.expandedRows
6
- : state.collapseState.collapsedRows;
7
- const newSet = new Set(currentSet);
8
- const alreadyInSet = newSet.has(id);
9
- if (alreadyInSet) {
10
- newSet.delete(id);
11
- }
12
- else {
13
- newSet.add(id);
14
- }
15
- if (state.collapseState.defaultTo === 'collapsed') {
16
- return {
17
- ...state,
18
- collapseState: {
19
- ...state.collapseState,
20
- expandedRows: newSet,
21
- },
22
- };
23
- }
24
- else {
25
- return {
26
- ...state,
27
- collapseState: {
28
- ...state.collapseState,
29
- collapsedRows: newSet,
30
- },
31
- };
32
- }
33
- }
34
- TableCollapseHelpers.toggleRowCollapse = toggleRowCollapse;
35
- function toggleHeaderCollapse(state, id) {
36
- const currentSet = state.collapseState.defaultTo === 'collapsed'
37
- ? state.collapseState.expandedHeaders
38
- : state.collapseState.collapsedHeaders;
39
- const newSet = new Set(currentSet);
40
- const alreadyInSet = newSet.has(id);
41
- if (alreadyInSet) {
42
- newSet.delete(id);
43
- }
44
- else {
45
- newSet.add(id);
46
- }
47
- if (state.collapseState.defaultTo === 'collapsed') {
48
- return {
49
- ...state,
50
- collapseState: {
51
- ...state.collapseState,
52
- expandedHeaders: newSet,
53
- },
54
- };
55
- }
56
- else {
57
- return {
58
- ...state,
59
- collapseState: {
60
- ...state.collapseState,
61
- collapsedHeaders: newSet,
62
- },
63
- };
64
- }
65
- }
66
- TableCollapseHelpers.toggleHeaderCollapse = toggleHeaderCollapse;
67
- function toggleAllCollapsed(state) {
68
- if (isAllExpanded(state.collapseState)) {
69
- return {
70
- ...state,
71
- collapseState: {
72
- defaultTo: 'collapsed',
73
- expandedRows: new Set(),
74
- expandedHeaders: new Set(),
75
- },
76
- };
77
- }
78
- else {
79
- return {
80
- ...state,
81
- collapseState: {
82
- defaultTo: 'expanded',
83
- collapsedRows: new Set(),
84
- collapsedHeaders: new Set(),
85
- },
86
- };
87
- }
88
- }
89
- TableCollapseHelpers.toggleAllCollapsed = toggleAllCollapsed;
90
- function isAllExpanded(collapseState) {
91
- return (collapseState.defaultTo === 'expanded' &&
92
- collapseState.collapsedHeaders.size === 0 &&
93
- collapseState.collapsedRows.size === 0);
94
- }
95
- TableCollapseHelpers.isAllExpanded = isAllExpanded;
96
- function isRowCollapsed(state, id) {
97
- if (state.collapseState.defaultTo === 'collapsed') {
98
- const isExpanded = state.collapseState.expandedRows.has(id);
99
- return !isExpanded;
100
- }
101
- return state.collapseState.collapsedRows.has(id);
102
- }
103
- TableCollapseHelpers.isRowCollapsed = isRowCollapsed;
104
- function isHeaderCollapsed(state, id) {
105
- if (!id) {
106
- return false;
107
- }
108
- if (state.collapseState.defaultTo === 'collapsed') {
109
- const isExpanded = state.collapseState.expandedHeaders.has(id);
110
- return !isExpanded;
111
- }
112
- return state.collapseState.collapsedHeaders.has(id);
113
- }
114
- TableCollapseHelpers.isHeaderCollapsed = isHeaderCollapsed;
115
- })(TableCollapseHelpers || (TableCollapseHelpers = {}));
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3N0YXRlLWhlbHBlcnMvY29sbGFwc2UtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLEtBQVcsb0JBQW9CLENBc0pwQztBQXRKRCxXQUFpQixvQkFBb0I7SUFDbkMsU0FBZ0IsaUJBQWlCLENBTS9CLEtBQXFDLEVBQ3JDLEVBQVc7UUFFWCxNQUFNLFVBQVUsR0FDZCxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsS0FBSyxXQUFXO1lBQzNDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVk7WUFDbEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBRXhDLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sWUFBWSxHQUFZLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFN0MsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuQjthQUFNO1lBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNoQjtRQUVELElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEtBQUssV0FBVyxFQUFFO1lBQ2pELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLGFBQWEsRUFBRTtvQkFDYixHQUFHLEtBQUssQ0FBQyxhQUFhO29CQUN0QixZQUFZLEVBQUUsTUFBTTtpQkFDckI7YUFDRixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLGFBQWEsRUFBRTtvQkFDYixHQUFHLEtBQUssQ0FBQyxhQUFhO29CQUN0QixhQUFhLEVBQUUsTUFBTTtp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QUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFDakQsTUFBTSxVQUFVLEdBQVksS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDcEI7UUFDRCxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFkZSxzQ0FBaUIsb0JBY2hDLENBQUE7QUFDSCxDQUFDLEVBdEpnQixvQkFBb0IsS0FBcEIsb0JBQW9CLFFBc0pwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5leHBvcnQgbmFtZXNwYWNlIFRhYmxlQ29sbGFwc2VIZWxwZXJzIHtcbiAgZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZVJvd0NvbGxhcHNlPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oXG4gICAgc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICBpZDogUlsnaWQnXSxcbiAgKTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICBjb25zdCBjdXJyZW50U2V0OiBTZXQ8UlsnaWQnXT4gPVxuICAgICAgc3RhdGUuY29sbGFwc2VTdGF0ZS5kZWZhdWx0VG8gPT09ICdjb2xsYXBzZWQnXG4gICAgICAgID8gc3RhdGUuY29sbGFwc2VTdGF0ZS5leHBhbmRlZFJvd3NcbiAgICAgICAgOiBzdGF0ZS5jb2xsYXBzZVN0YXRlLmNvbGxhcHNlZFJvd3M7XG5cbiAgICBjb25zdCBuZXdTZXQgPSBuZXcgU2V0KGN1cnJlbnRTZXQpO1xuICAgIGNvbnN0IGFscmVhZHlJblNldDogYm9vbGVhbiA9IG5ld1NldC5oYXMoaWQpO1xuXG4gICAgaWYgKGFscmVhZHlJblNldCkge1xuICAgICAgbmV3U2V0LmRlbGV0ZShpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1NldC5hZGQoaWQpO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZVN0YXRlLmRlZmF1bHRUbyA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb2xsYXBzZVN0YXRlOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29sbGFwc2VTdGF0ZSxcbiAgICAgICAgICBleHBhbmRlZFJvd3M6IG5ld1NldCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb2xsYXBzZVN0YXRlOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29sbGFwc2VTdGF0ZSxcbiAgICAgICAgICBjb2xsYXBzZWRSb3dzOiBuZXdTZXQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiB0b2dnbGVIZWFkZXJDb2xsYXBzZTxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgaWQ6IHN0cmluZyxcbiAgKTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICBjb25zdCBjdXJyZW50U2V0OiBTZXQ8c3RyaW5nPiA9XG4gICAgICBzdGF0ZS5jb2xsYXBzZVN0YXRlLmRlZmF1bHRUbyA9PT0gJ2NvbGxhcHNlZCdcbiAgICAgICAgPyBzdGF0ZS5jb2xsYXBzZVN0YXRlLmV4cGFuZGVkSGVhZGVyc1xuICAgICAgICA6IHN0YXRlLmNvbGxhcHNlU3RhdGUuY29sbGFwc2VkSGVhZGVycztcblxuICAgIGNvbnN0IG5ld1NldCA9IG5ldyBTZXQoY3VycmVudFNldCk7XG4gICAgY29uc3QgYWxyZWFkeUluU2V0OiBib29sZWFuID0gbmV3U2V0LmhhcyhpZCk7XG5cbiAgICBpZiAoYWxyZWFkeUluU2V0KSB7XG4gICAgICBuZXdTZXQuZGVsZXRlKGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2V0LmFkZChpZCk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlU3RhdGUuZGVmYXVsdFRvID09PSAnY29sbGFwc2VkJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbGxhcHNlU3RhdGU6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb2xsYXBzZVN0YXRlLFxuICAgICAgICAgIGV4cGFuZGVkSGVhZGVyczogbmV3U2V0LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbGxhcHNlU3RhdGU6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb2xsYXBzZVN0YXRlLFxuICAgICAgICAgIGNvbGxhcHNlZEhlYWRlcnM6IG5ld1NldCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUFsbENvbGxhcHNlZDxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4pOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGlmIChpc0FsbEV4cGFuZGVkKHN0YXRlLmNvbGxhcHNlU3RhdGUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29sbGFwc2VTdGF0ZToge1xuICAgICAgICAgIGRlZmF1bHRUbzogJ2NvbGxhcHNlZCcsXG4gICAgICAgICAgZXhwYW5kZWRSb3dzOiBuZXcgU2V0KCksXG4gICAgICAgICAgZXhwYW5kZWRIZWFkZXJzOiBuZXcgU2V0KCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29sbGFwc2VTdGF0ZToge1xuICAgICAgICAgIGRlZmF1bHRUbzogJ2V4cGFuZGVkJyxcbiAgICAgICAgICBjb2xsYXBzZWRSb3dzOiBuZXcgU2V0KCksXG4gICAgICAgICAgY29sbGFwc2VkSGVhZGVyczogbmV3IFNldCgpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNBbGxFeHBhbmRlZDxSIGV4dGVuZHMgUml2VGFibGUuUm93PihcbiAgICBjb2xsYXBzZVN0YXRlOiBSaXZUYWJsZS5Db2xsYXBzZVN0YXRlPFI+LFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29sbGFwc2VTdGF0ZS5kZWZhdWx0VG8gPT09ICdleHBhbmRlZCcgJiZcbiAgICAgIGNvbGxhcHNlU3RhdGUuY29sbGFwc2VkSGVhZGVycy5zaXplID09PSAwICYmXG4gICAgICBjb2xsYXBzZVN0YXRlLmNvbGxhcHNlZFJvd3Muc2l6ZSA9PT0gMFxuICAgICk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNSb3dDb2xsYXBzZWQ8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LCBpZDogUlsnaWQnXSk6IGJvb2xlYW4ge1xuICAgIGlmIChzdGF0ZS5jb2xsYXBzZVN0YXRlLmRlZmF1bHRUbyA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgIGNvbnN0IGlzRXhwYW5kZWQ6IGJvb2xlYW4gPSBzdGF0ZS5jb2xsYXBzZVN0YXRlLmV4cGFuZGVkUm93cy5oYXMoaWQpO1xuICAgICAgcmV0dXJuICFpc0V4cGFuZGVkO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGUuY29sbGFwc2VTdGF0ZS5jb2xsYXBzZWRSb3dzLmhhcyhpZCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNIZWFkZXJDb2xsYXBzZWQ8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LCBpZDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlU3RhdGUuZGVmYXVsdFRvID09PSAnY29sbGFwc2VkJykge1xuICAgICAgY29uc3QgaXNFeHBhbmRlZDogYm9vbGVhbiA9IHN0YXRlLmNvbGxhcHNlU3RhdGUuZXhwYW5kZWRIZWFkZXJzLmhhcyhpZCk7XG4gICAgICByZXR1cm4gIWlzRXhwYW5kZWQ7XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZS5jb2xsYXBzZVN0YXRlLmNvbGxhcHNlZEhlYWRlcnMuaGFzKGlkKTtcbiAgfVxufVxuIl19