@rivet-health/design-system 40.44.3 → 41.0.0

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 (302) hide show
  1. package/fesm2022/rivet-health-design-system.mjs +23103 -18772
  2. package/fesm2022/rivet-health-design-system.mjs.map +1 -1
  3. package/package.json +8 -9
  4. package/types/rivet-health-design-system.d.ts +6566 -0
  5. package/esm2022/lib/accessibility/sr-only/sr-only.component.mjs +0 -18
  6. package/esm2022/lib/download/download.service.mjs +0 -47
  7. package/esm2022/lib/format/pipes/common.mjs +0 -24
  8. package/esm2022/lib/format/pipes/date.pipe.mjs +0 -20
  9. package/esm2022/lib/format/pipes/days.pipe.mjs +0 -20
  10. package/esm2022/lib/format/pipes/dollars.pipe.mjs +0 -19
  11. package/esm2022/lib/format/pipes/number.pipe.mjs +0 -19
  12. package/esm2022/lib/format/pipes/percentage.pipe.mjs +0 -19
  13. package/esm2022/lib/format/pipes/sentence-case.pipe.mjs +0 -61
  14. package/esm2022/lib/format/pipes/small-currency.pipe.mjs +0 -24
  15. package/esm2022/lib/format/pipes/small-number.pipe.mjs +0 -29
  16. package/esm2022/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +0 -62
  17. package/esm2022/lib/format/truncate/truncate.component.mjs +0 -51
  18. package/esm2022/lib/icon/dom-cache.mjs +0 -32
  19. package/esm2022/lib/icon/icon.component.mjs +0 -86
  20. package/esm2022/lib/icon/icons.mjs +0 -271
  21. package/esm2022/lib/input/alphabetic-field/alphabetic-field.component.mjs +0 -42
  22. package/esm2022/lib/input/auto-focus/auto-focus.directive.mjs +0 -48
  23. package/esm2022/lib/input/button/button.component.mjs +0 -139
  24. package/esm2022/lib/input/button-group/button-group.component.mjs +0 -39
  25. package/esm2022/lib/input/calendar/calendar.component.mjs +0 -318
  26. package/esm2022/lib/input/card-checkbox/card-checkbox.component.mjs +0 -13
  27. package/esm2022/lib/input/checkbox/checkbox.component.mjs +0 -84
  28. package/esm2022/lib/input/currency-field/currency-field.component.mjs +0 -26
  29. package/esm2022/lib/input/date/date.component.mjs +0 -279
  30. package/esm2022/lib/input/date-range/date-range.component.mjs +0 -477
  31. package/esm2022/lib/input/filter-chip/filter-chip.component.mjs +0 -47
  32. package/esm2022/lib/input/filter-dropdown/filter-dropdown.component.mjs +0 -89
  33. package/esm2022/lib/input/input-label/input-label.component.mjs +0 -38
  34. package/esm2022/lib/input/mentions-input/mentions-input.component.mjs +0 -745
  35. package/esm2022/lib/input/number-field/number-field.component.mjs +0 -125
  36. package/esm2022/lib/input/percentage-field/percentage-field.component.mjs +0 -20
  37. package/esm2022/lib/input/phone-field/phone-field.component.mjs +0 -74
  38. package/esm2022/lib/input/radio/radio.component.mjs +0 -58
  39. package/esm2022/lib/input/search/search.component.mjs +0 -26
  40. package/esm2022/lib/input/search-select/search-select.component.mjs +0 -189
  41. package/esm2022/lib/input/select/select/select.component.mjs +0 -178
  42. package/esm2022/lib/input/select/select-node/select-node.component.mjs +0 -60
  43. package/esm2022/lib/input/select/state.mjs +0 -882
  44. package/esm2022/lib/input/simple-select/option-group.pipe.mjs +0 -19
  45. package/esm2022/lib/input/simple-select/simple-select.component.mjs +0 -178
  46. package/esm2022/lib/input/switch-checkbox/switch-checkbox.component.mjs +0 -33
  47. package/esm2022/lib/input/text-field/text-field.component.mjs +0 -115
  48. package/esm2022/lib/input/textarea-field/textarea-field.component.mjs +0 -21
  49. package/esm2022/lib/input/validation-message/validation-message.component.mjs +0 -17
  50. package/esm2022/lib/layout/card/card-actions.component.mjs +0 -72
  51. package/esm2022/lib/layout/card/card-content.component.mjs +0 -64
  52. package/esm2022/lib/layout/card/card-header.component.mjs +0 -201
  53. package/esm2022/lib/layout/card/card-link.component.mjs +0 -94
  54. package/esm2022/lib/layout/card/card-media.component.mjs +0 -70
  55. package/esm2022/lib/layout/card/card.component.mjs +0 -291
  56. package/esm2022/lib/layout/setting-row/setting-row.component.mjs +0 -111
  57. package/esm2022/lib/load/loading/loading.component.mjs +0 -43
  58. package/esm2022/lib/load/loading-cover/loading-cover.component.mjs +0 -25
  59. package/esm2022/lib/navigation/editable-heading/editable-heading.component.mjs +0 -243
  60. package/esm2022/lib/navigation/link/link.component.mjs +0 -48
  61. package/esm2022/lib/navigation/page-header/page-header.component.mjs +0 -68
  62. package/esm2022/lib/navigation/simple-tabs/simple-tab/simple-tab.component.mjs +0 -43
  63. package/esm2022/lib/navigation/simple-tabs/simple-tabs/simple-tabs.component.mjs +0 -11
  64. package/esm2022/lib/navigation/tabs/tab/tab.component.mjs +0 -16
  65. package/esm2022/lib/navigation/tabs/tabs/tabs.component.mjs +0 -11
  66. package/esm2022/lib/navigation/views/all-views-modal/all-views-modal.component.mjs +0 -43
  67. package/esm2022/lib/navigation/views/edit-view/edit-view.component.mjs +0 -118
  68. package/esm2022/lib/navigation/views/permission-picker/permission-picker.component.mjs +0 -151
  69. package/esm2022/lib/navigation/views/state.mjs +0 -456
  70. package/esm2022/lib/navigation/views/view-menu/view-menu.component.mjs +0 -30
  71. package/esm2022/lib/navigation/views/views/views.component.mjs +0 -90
  72. package/esm2022/lib/notification/badge/badge.component.mjs +0 -45
  73. package/esm2022/lib/notification/banner/banner-action.component.mjs +0 -48
  74. package/esm2022/lib/notification/banner/banner.component.mjs +0 -61
  75. package/esm2022/lib/notification/map-indicator/map-indicator.component.mjs +0 -50
  76. package/esm2022/lib/notification/map-indicator/map-indicators.mjs +0 -15
  77. package/esm2022/lib/notification/notification-badge/notification-badge.component.mjs +0 -26
  78. package/esm2022/lib/overlay/callout/callout.component.mjs +0 -130
  79. package/esm2022/lib/overlay/callout/callout.helpers.mjs +0 -113
  80. package/esm2022/lib/overlay/callout/help/help.component.mjs +0 -23
  81. package/esm2022/lib/overlay/callout/lock-scroll.directive.mjs +0 -69
  82. package/esm2022/lib/overlay/callout/menu/menu-item/menu-item.component.mjs +0 -71
  83. package/esm2022/lib/overlay/callout/menu/menu.component.mjs +0 -38
  84. package/esm2022/lib/overlay/callout/select-callout-defaults.mjs +0 -13
  85. package/esm2022/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +0 -30
  86. package/esm2022/lib/overlay/callout/tooltip/tooltip.component.mjs +0 -57
  87. package/esm2022/lib/overlay/callout/tooltip/tooltip.directive.mjs +0 -138
  88. package/esm2022/lib/overlay/modal/dialog/dialog.component.mjs +0 -47
  89. package/esm2022/lib/overlay/modal/dialog-stack.service.mjs +0 -41
  90. package/esm2022/lib/overlay/modal/form-dialog/form-dialog.component.mjs +0 -146
  91. package/esm2022/lib/overlay/modal/modal.component.mjs +0 -31
  92. package/esm2022/lib/overlay/modal/side-sheet/side-sheet.component.mjs +0 -30
  93. package/esm2022/lib/overlay/overlay-outlet.component.mjs +0 -98
  94. package/esm2022/lib/overlay/overlay.directive.mjs +0 -25
  95. package/esm2022/lib/overlay/overlay.service.mjs +0 -35
  96. package/esm2022/lib/overlay/toast/toast-action.component.mjs +0 -11
  97. package/esm2022/lib/overlay/toast/toast.component.mjs +0 -41
  98. package/esm2022/lib/riv.module.mjs +0 -580
  99. package/esm2022/lib/size/size.directive.mjs +0 -33
  100. package/esm2022/lib/table/simple-table/coordinate-helper.mjs +0 -61
  101. package/esm2022/lib/table/simple-table/simple-table-cell.component.mjs +0 -36
  102. package/esm2022/lib/table/simple-table/simple-table-header-cell.component.mjs +0 -37
  103. package/esm2022/lib/table/simple-table/simple-table-row.component.mjs +0 -19
  104. package/esm2022/lib/table/simple-table/simple-table.component.mjs +0 -104
  105. package/esm2022/lib/table/table/clipboard.mjs +0 -182
  106. package/esm2022/lib/table/table/state-helpers/collapse-helpers.mjs +0 -116
  107. package/esm2022/lib/table/table/state-helpers/column-helpers.mjs +0 -383
  108. package/esm2022/lib/table/table/state-helpers/display-helpers.mjs +0 -50
  109. package/esm2022/lib/table/table/state-helpers/nesting-helpers.mjs +0 -123
  110. package/esm2022/lib/table/table/state-helpers/order-helpers.mjs +0 -164
  111. package/esm2022/lib/table/table/state-helpers/pagination-helpers.mjs +0 -139
  112. package/esm2022/lib/table/table/state-helpers/result-helpers.mjs +0 -70
  113. package/esm2022/lib/table/table/state-helpers/search-helpers.mjs +0 -72
  114. package/esm2022/lib/table/table/state-helpers/selection-helpers.mjs +0 -180
  115. package/esm2022/lib/table/table/state.mjs +0 -1035
  116. package/esm2022/lib/table/table/table/table.component.mjs +0 -367
  117. package/esm2022/lib/table/table/table-collapse-all/table-collapse-all.component.mjs +0 -25
  118. package/esm2022/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +0 -227
  119. package/esm2022/lib/table/table/table-column-settings/table-column-settings.component.mjs +0 -134
  120. package/esm2022/lib/table/table/table-csv-export/table-csv-export.component.mjs +0 -35
  121. package/esm2022/lib/table/table/table-header-resize-handle/table-header-resize-handle.component.mjs +0 -28
  122. package/esm2022/lib/table/table/table-search/table-search.component.mjs +0 -71
  123. package/esm2022/lib/table/table/table-search-columns/table-search-columns.component.mjs +0 -57
  124. package/esm2022/lib/util/local-storage.mjs +0 -17
  125. package/esm2022/lib/visibility/visibility.directive.mjs +0 -34
  126. package/esm2022/lib/visualization/chart/chart-scaling.mjs +0 -380
  127. package/esm2022/lib/visualization/chart/chart.component.mjs +0 -626
  128. package/esm2022/lib/visualization/chart/chart.mjs +0 -3768
  129. package/esm2022/lib/visualization/data-table/data-table-cell.component.mjs +0 -22
  130. package/esm2022/lib/visualization/data-table/data-table-header-cell.component.mjs +0 -11
  131. package/esm2022/lib/visualization/data-table/data-table-row.component.mjs +0 -19
  132. package/esm2022/lib/visualization/data-table/data-table.component.mjs +0 -17
  133. package/esm2022/lib/visualization/donut/donut.component.mjs +0 -54
  134. package/esm2022/lib/visualization/funnel-chart/funnel-chart.component.mjs +0 -73
  135. package/esm2022/lib/visualization/funnel-chart/funnel-chart.helpers.mjs +0 -33
  136. package/esm2022/lib/visualization/highlight/highlight.component.mjs +0 -24
  137. package/esm2022/lib/visualization/highlight/highlight.helpers.mjs +0 -20
  138. package/esm2022/lib/visualization/intervals.mjs +0 -63
  139. package/esm2022/lib/visualization/issue/issue.component.mjs +0 -30
  140. package/esm2022/lib/visualization/legend-item/legend-item.component.mjs +0 -49
  141. package/esm2022/lib/visualization/metric/metric.component.mjs +0 -52
  142. package/esm2022/lib/visualization/mini-pie/mini-pie.component.mjs +0 -51
  143. package/esm2022/lib/visualization/progress/progress.component.mjs +0 -24
  144. package/esm2022/lib/visualization/stacked-column/stacked-column.component.mjs +0 -377
  145. package/esm2022/lib/visualization/stacked-column/stacked-column.helpers.mjs +0 -18
  146. package/esm2022/lib/visualization/stacked-row/stacked-row.component.mjs +0 -270
  147. package/esm2022/lib/visualization/stacked-row/stacked-row.helpers.mjs +0 -74
  148. package/esm2022/lib/visualization/time-series/time-series.component.mjs +0 -374
  149. package/esm2022/lib/visualization/time-series/time-series.helpers.mjs +0 -15
  150. package/esm2022/lib/visualization/trend/trend.component.mjs +0 -51
  151. package/esm2022/lib/visualization/zero-state/zero-state.component.mjs +0 -22
  152. package/esm2022/public-api.mjs +0 -118
  153. package/esm2022/rivet-health-design-system.mjs +0 -5
  154. package/index.d.ts +0 -5
  155. package/lib/accessibility/sr-only/sr-only.component.d.ts +0 -12
  156. package/lib/download/download.service.d.ts +0 -9
  157. package/lib/format/pipes/common.d.ts +0 -6
  158. package/lib/format/pipes/date.pipe.d.ts +0 -8
  159. package/lib/format/pipes/days.pipe.d.ts +0 -8
  160. package/lib/format/pipes/dollars.pipe.d.ts +0 -9
  161. package/lib/format/pipes/number.pipe.d.ts +0 -8
  162. package/lib/format/pipes/percentage.pipe.d.ts +0 -8
  163. package/lib/format/pipes/sentence-case.pipe.d.ts +0 -8
  164. package/lib/format/pipes/small-currency.pipe.d.ts +0 -8
  165. package/lib/format/pipes/small-number.pipe.d.ts +0 -8
  166. package/lib/format/svg-text-truncate/svg-text-truncate.directive.d.ts +0 -14
  167. package/lib/format/truncate/truncate.component.d.ts +0 -17
  168. package/lib/icon/dom-cache.d.ts +0 -13
  169. package/lib/icon/icon.component.d.ts +0 -27
  170. package/lib/icon/icons.d.ts +0 -137
  171. package/lib/input/alphabetic-field/alphabetic-field.component.d.ts +0 -14
  172. package/lib/input/auto-focus/auto-focus.directive.d.ts +0 -21
  173. package/lib/input/button/button.component.d.ts +0 -37
  174. package/lib/input/button-group/button-group.component.d.ts +0 -11
  175. package/lib/input/calendar/calendar.component.d.ts +0 -67
  176. package/lib/input/card-checkbox/card-checkbox.component.d.ts +0 -6
  177. package/lib/input/checkbox/checkbox.component.d.ts +0 -32
  178. package/lib/input/currency-field/currency-field.component.d.ts +0 -9
  179. package/lib/input/date/date.component.d.ts +0 -62
  180. package/lib/input/date-range/date-range.component.d.ts +0 -97
  181. package/lib/input/filter-chip/filter-chip.component.d.ts +0 -13
  182. package/lib/input/filter-dropdown/filter-dropdown.component.d.ts +0 -30
  183. package/lib/input/input-label/input-label.component.d.ts +0 -17
  184. package/lib/input/mentions-input/mentions-input.component.d.ts +0 -93
  185. package/lib/input/number-field/number-field.component.d.ts +0 -36
  186. package/lib/input/percentage-field/percentage-field.component.d.ts +0 -7
  187. package/lib/input/phone-field/phone-field.component.d.ts +0 -17
  188. package/lib/input/radio/radio.component.d.ts +0 -28
  189. package/lib/input/search/search.component.d.ts +0 -10
  190. package/lib/input/search-select/search-select.component.d.ts +0 -62
  191. package/lib/input/select/select/select.component.d.ts +0 -63
  192. package/lib/input/select/select-node/select-node.component.d.ts +0 -30
  193. package/lib/input/select/state.d.ts +0 -250
  194. package/lib/input/simple-select/option-group.pipe.d.ts +0 -8
  195. package/lib/input/simple-select/simple-select.component.d.ts +0 -63
  196. package/lib/input/switch-checkbox/switch-checkbox.component.d.ts +0 -18
  197. package/lib/input/text-field/text-field.component.d.ts +0 -38
  198. package/lib/input/textarea-field/textarea-field.component.d.ts +0 -8
  199. package/lib/input/validation-message/validation-message.component.d.ts +0 -6
  200. package/lib/layout/card/card-actions.component.d.ts +0 -38
  201. package/lib/layout/card/card-content.component.d.ts +0 -33
  202. package/lib/layout/card/card-header.component.d.ts +0 -132
  203. package/lib/layout/card/card-link.component.d.ts +0 -54
  204. package/lib/layout/card/card-media.component.d.ts +0 -43
  205. package/lib/layout/card/card.component.d.ts +0 -215
  206. package/lib/layout/setting-row/setting-row.component.d.ts +0 -72
  207. package/lib/load/loading/loading.component.d.ts +0 -17
  208. package/lib/load/loading-cover/loading-cover.component.d.ts +0 -10
  209. package/lib/navigation/editable-heading/editable-heading.component.d.ts +0 -118
  210. package/lib/navigation/link/link.component.d.ts +0 -19
  211. package/lib/navigation/page-header/page-header.component.d.ts +0 -50
  212. package/lib/navigation/simple-tabs/simple-tab/simple-tab.component.d.ts +0 -11
  213. package/lib/navigation/simple-tabs/simple-tabs/simple-tabs.component.d.ts +0 -5
  214. package/lib/navigation/tabs/tab/tab.component.d.ts +0 -6
  215. package/lib/navigation/tabs/tabs/tabs.component.d.ts +0 -5
  216. package/lib/navigation/views/all-views-modal/all-views-modal.component.d.ts +0 -14
  217. package/lib/navigation/views/edit-view/edit-view.component.d.ts +0 -31
  218. package/lib/navigation/views/permission-picker/permission-picker.component.d.ts +0 -37
  219. package/lib/navigation/views/state.d.ts +0 -175
  220. package/lib/navigation/views/view-menu/view-menu.component.d.ts +0 -13
  221. package/lib/navigation/views/views/views.component.d.ts +0 -25
  222. package/lib/notification/badge/badge.component.d.ts +0 -14
  223. package/lib/notification/banner/banner-action.component.d.ts +0 -15
  224. package/lib/notification/banner/banner.component.d.ts +0 -25
  225. package/lib/notification/map-indicator/map-indicator.component.d.ts +0 -24
  226. package/lib/notification/map-indicator/map-indicators.d.ts +0 -9
  227. package/lib/notification/notification-badge/notification-badge.component.d.ts +0 -11
  228. package/lib/overlay/callout/callout.component.d.ts +0 -36
  229. package/lib/overlay/callout/callout.helpers.d.ts +0 -16
  230. package/lib/overlay/callout/help/help.component.d.ts +0 -11
  231. package/lib/overlay/callout/lock-scroll.directive.d.ts +0 -22
  232. package/lib/overlay/callout/menu/menu-item/menu-item.component.d.ts +0 -27
  233. package/lib/overlay/callout/menu/menu.component.d.ts +0 -17
  234. package/lib/overlay/callout/select-callout-defaults.d.ts +0 -5
  235. package/lib/overlay/callout/tooltip/locked-tooltip.directive.d.ts +0 -14
  236. package/lib/overlay/callout/tooltip/tooltip.component.d.ts +0 -26
  237. package/lib/overlay/callout/tooltip/tooltip.directive.d.ts +0 -48
  238. package/lib/overlay/modal/dialog/dialog.component.d.ts +0 -19
  239. package/lib/overlay/modal/dialog-stack.service.d.ts +0 -23
  240. package/lib/overlay/modal/form-dialog/form-dialog.component.d.ts +0 -63
  241. package/lib/overlay/modal/modal.component.d.ts +0 -11
  242. package/lib/overlay/modal/side-sheet/side-sheet.component.d.ts +0 -13
  243. package/lib/overlay/overlay-outlet.component.d.ts +0 -19
  244. package/lib/overlay/overlay.directive.d.ts +0 -13
  245. package/lib/overlay/overlay.service.d.ts +0 -14
  246. package/lib/overlay/toast/toast-action.component.d.ts +0 -5
  247. package/lib/overlay/toast/toast.component.d.ts +0 -17
  248. package/lib/riv.module.d.ts +0 -122
  249. package/lib/size/size.directive.d.ts +0 -12
  250. package/lib/table/simple-table/coordinate-helper.d.ts +0 -13
  251. package/lib/table/simple-table/simple-table-cell.component.d.ts +0 -19
  252. package/lib/table/simple-table/simple-table-header-cell.component.d.ts +0 -20
  253. package/lib/table/simple-table/simple-table-row.component.d.ts +0 -6
  254. package/lib/table/simple-table/simple-table.component.d.ts +0 -11
  255. package/lib/table/table/clipboard.d.ts +0 -38
  256. package/lib/table/table/state-helpers/collapse-helpers.d.ts +0 -9
  257. package/lib/table/table/state-helpers/column-helpers.d.ts +0 -29
  258. package/lib/table/table/state-helpers/display-helpers.d.ts +0 -5
  259. package/lib/table/table/state-helpers/nesting-helpers.d.ts +0 -13
  260. package/lib/table/table/state-helpers/order-helpers.d.ts +0 -13
  261. package/lib/table/table/state-helpers/pagination-helpers.d.ts +0 -12
  262. package/lib/table/table/state-helpers/result-helpers.d.ts +0 -10
  263. package/lib/table/table/state-helpers/search-helpers.d.ts +0 -17
  264. package/lib/table/table/state-helpers/selection-helpers.d.ts +0 -13
  265. package/lib/table/table/state.d.ts +0 -512
  266. package/lib/table/table/table/table.component.d.ts +0 -88
  267. package/lib/table/table/table-collapse-all/table-collapse-all.component.d.ts +0 -10
  268. package/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.d.ts +0 -52
  269. package/lib/table/table/table-column-settings/table-column-settings.component.d.ts +0 -37
  270. package/lib/table/table/table-csv-export/table-csv-export.component.d.ts +0 -14
  271. package/lib/table/table/table-header-resize-handle/table-header-resize-handle.component.d.ts +0 -11
  272. package/lib/table/table/table-search/table-search.component.d.ts +0 -21
  273. package/lib/table/table/table-search-columns/table-search-columns.component.d.ts +0 -23
  274. package/lib/util/local-storage.d.ts +0 -14
  275. package/lib/visibility/visibility.directive.d.ts +0 -12
  276. package/lib/visualization/chart/chart-scaling.d.ts +0 -100
  277. package/lib/visualization/chart/chart.component.d.ts +0 -116
  278. package/lib/visualization/chart/chart.d.ts +0 -354
  279. package/lib/visualization/data-table/data-table-cell.component.d.ts +0 -11
  280. package/lib/visualization/data-table/data-table-header-cell.component.d.ts +0 -5
  281. package/lib/visualization/data-table/data-table-row.component.d.ts +0 -6
  282. package/lib/visualization/data-table/data-table.component.d.ts +0 -6
  283. package/lib/visualization/donut/donut.component.d.ts +0 -22
  284. package/lib/visualization/funnel-chart/funnel-chart.component.d.ts +0 -30
  285. package/lib/visualization/funnel-chart/funnel-chart.helpers.d.ts +0 -4
  286. package/lib/visualization/highlight/highlight.component.d.ts +0 -15
  287. package/lib/visualization/highlight/highlight.helpers.d.ts +0 -2
  288. package/lib/visualization/intervals.d.ts +0 -8
  289. package/lib/visualization/issue/issue.component.d.ts +0 -10
  290. package/lib/visualization/legend-item/legend-item.component.d.ts +0 -22
  291. package/lib/visualization/metric/metric.component.d.ts +0 -20
  292. package/lib/visualization/mini-pie/mini-pie.component.d.ts +0 -17
  293. package/lib/visualization/progress/progress.component.d.ts +0 -8
  294. package/lib/visualization/stacked-column/stacked-column.component.d.ts +0 -129
  295. package/lib/visualization/stacked-column/stacked-column.helpers.d.ts +0 -3
  296. package/lib/visualization/stacked-row/stacked-row.component.d.ts +0 -109
  297. package/lib/visualization/stacked-row/stacked-row.helpers.d.ts +0 -53
  298. package/lib/visualization/time-series/time-series.component.d.ts +0 -126
  299. package/lib/visualization/time-series/time-series.helpers.d.ts +0 -34
  300. package/lib/visualization/trend/trend.component.d.ts +0 -13
  301. package/lib/visualization/zero-state/zero-state.component.d.ts +0 -9
  302. package/public-api.d.ts +0 -118
@@ -1,33 +0,0 @@
1
- import { Directive, EventEmitter, Output, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SizeDirective {
4
- constructor(elementRef, zone) {
5
- this.elementRef = elementRef;
6
- this.rivClientSize = new EventEmitter();
7
- this.resizeObserver = new ResizeObserver(entries => {
8
- zone.run(() => {
9
- for (const entry of entries) {
10
- this.rivClientSize.emit(entry.target.getBoundingClientRect());
11
- }
12
- });
13
- });
14
- }
15
- ngOnInit() {
16
- this.rivClientSize.emit(this.elementRef.nativeElement.getBoundingClientRect());
17
- this.resizeObserver.observe(this.elementRef.nativeElement);
18
- }
19
- ngOnDestroy() {
20
- this.resizeObserver.unobserve(this.elementRef.nativeElement);
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SizeDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: SizeDirective, selector: "[rivClientSize]", outputs: { rivClientSize: "rivClientSize" }, ngImport: i0 }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SizeDirective, decorators: [{
26
- type: Directive,
27
- args: [{
28
- selector: '[rivClientSize]',
29
- }]
30
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { rivClientSize: [{
31
- type: Output
32
- }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9zaXplL3NpemUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUlaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUFLdkIsTUFBTSxPQUFPLGFBQWE7SUFNeEIsWUFDbUIsVUFBbUMsRUFDcEQsSUFBWTtRQURLLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBSHRELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU0xQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNaLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRSxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQ3RELENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvRCxDQUFDOytHQTVCVSxhQUFhO21HQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBSHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7b0dBS0MsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyaXZDbGllbnRTaXplXScsXG59KVxuZXhwb3J0IGNsYXNzIFNpemVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIEBPdXRwdXQoKVxuICByaXZDbGllbnRTaXplID0gbmV3IEV2ZW50RW1pdHRlcjxET01SZWN0PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgem9uZTogTmdab25lLFxuICApIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGVudHJpZXMgPT4ge1xuICAgICAgem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICB0aGlzLnJpdkNsaWVudFNpemUuZW1pdChlbnRyeS50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucml2Q2xpZW50U2l6ZS5lbWl0KFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG59XG4iXX0=
@@ -1,61 +0,0 @@
1
- export function createCellCoordinateCalculator(cells, totalColumns) {
2
- // Pre-calculate coordinates for all cells
3
- const cellCoordinates = [];
4
- const grid = [];
5
- let currentRow = 0;
6
- let currentCol = 0;
7
- // Process each cell and store its coordinates
8
- for (let i = 0; i < cells.length; i++) {
9
- const { rowspan, colspan } = cells[i];
10
- // Find the next available position
11
- while (true) {
12
- // Ensure we have enough rows in our grid
13
- while (grid.length <= currentRow) {
14
- grid.push(new Array(totalColumns).fill(false));
15
- }
16
- // Check if current position is available
17
- if (!grid[currentRow][currentCol]) {
18
- break;
19
- }
20
- // Move to next column
21
- currentCol++;
22
- if (currentCol >= totalColumns) {
23
- currentCol = 0;
24
- currentRow++;
25
- }
26
- }
27
- // Store coordinates for this cell
28
- const startCoord = { row: currentRow, col: currentCol };
29
- const endCoord = {
30
- row: currentRow + rowspan - 1,
31
- col: currentCol + colspan - 1,
32
- };
33
- cellCoordinates[i] = { start: startCoord, end: endCoord };
34
- // Mark the positions this cell occupies as taken
35
- for (let r = currentRow; r < currentRow + rowspan; r++) {
36
- // Ensure we have enough rows
37
- while (grid.length <= r) {
38
- grid.push(new Array(totalColumns).fill(false));
39
- }
40
- for (let c = currentCol; c < currentCol + colspan; c++) {
41
- if (c < totalColumns) {
42
- grid[r][c] = true;
43
- }
44
- }
45
- }
46
- // Move to next position for the next cell
47
- currentCol++;
48
- if (currentCol >= totalColumns) {
49
- currentCol = 0;
50
- currentRow++;
51
- }
52
- }
53
- // Return the lookup function
54
- return function getCellCoordinates(cellIndex) {
55
- if (cellIndex < 0 || cellIndex >= cells.length) {
56
- throw new Error('Cell index out of bounds');
57
- }
58
- return cellCoordinates[cellIndex];
59
- };
60
- }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS9zaW1wbGUtdGFibGUvY29vcmRpbmF0ZS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxLQUFhLEVBQ2IsWUFBb0I7SUFFcEIsMENBQTBDO0lBQzFDLE1BQU0sZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBZ0IsRUFBRSxDQUFDO0lBQzdCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNuQixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFbkIsOENBQThDO0lBQzlDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEMsbUNBQW1DO1FBQ25DLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWix5Q0FBeUM7WUFDekMsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCx5Q0FBeUM7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsQ0FBQztZQUVELHNCQUFzQjtZQUN0QixVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksVUFBVSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUMvQixVQUFVLEdBQUcsQ0FBQyxDQUFDO2dCQUNmLFVBQVUsRUFBRSxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsTUFBTSxVQUFVLEdBQWUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBZTtZQUMzQixHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sR0FBRyxDQUFDO1lBQzdCLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxHQUFHLENBQUM7U0FDOUIsQ0FBQztRQUVGLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBRTFELGlEQUFpRDtRQUNqRCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELDZCQUE2QjtZQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRSxDQUFDO29CQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCwwQ0FBMEM7UUFDMUMsVUFBVSxFQUFFLENBQUM7UUFDYixJQUFJLFVBQVUsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUMvQixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsVUFBVSxFQUFFLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixPQUFPLFNBQVMsa0JBQWtCLENBQUMsU0FBaUI7UUFDbEQsSUFBSSxTQUFTLEdBQUcsQ0FBQyxJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ2VsbCA9IHtcbiAgcm93c3BhbjogbnVtYmVyO1xuICBjb2xzcGFuOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBDb29yZGluYXRlID0ge1xuICByb3c6IG51bWJlcjtcbiAgY29sOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBCb3VuZHMgPSB7XG4gIHN0YXJ0OiBDb29yZGluYXRlO1xuICBlbmQ6IENvb3JkaW5hdGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2VsbENvb3JkaW5hdGVDYWxjdWxhdG9yKFxuICBjZWxsczogQ2VsbFtdLFxuICB0b3RhbENvbHVtbnM6IG51bWJlcixcbik6IChjZWxsSW5kZXg6IG51bWJlcikgPT4gQm91bmRzIHtcbiAgLy8gUHJlLWNhbGN1bGF0ZSBjb29yZGluYXRlcyBmb3IgYWxsIGNlbGxzXG4gIGNvbnN0IGNlbGxDb29yZGluYXRlczogQm91bmRzW10gPSBbXTtcbiAgY29uc3QgZ3JpZDogYm9vbGVhbltdW10gPSBbXTtcbiAgbGV0IGN1cnJlbnRSb3cgPSAwO1xuICBsZXQgY3VycmVudENvbCA9IDA7XG5cbiAgLy8gUHJvY2VzcyBlYWNoIGNlbGwgYW5kIHN0b3JlIGl0cyBjb29yZGluYXRlc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGNlbGxzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgeyByb3dzcGFuLCBjb2xzcGFuIH0gPSBjZWxsc1tpXTtcblxuICAgIC8vIEZpbmQgdGhlIG5leHQgYXZhaWxhYmxlIHBvc2l0aW9uXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGVub3VnaCByb3dzIGluIG91ciBncmlkXG4gICAgICB3aGlsZSAoZ3JpZC5sZW5ndGggPD0gY3VycmVudFJvdykge1xuICAgICAgICBncmlkLnB1c2gobmV3IEFycmF5KHRvdGFsQ29sdW1ucykuZmlsbChmYWxzZSkpO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBjdXJyZW50IHBvc2l0aW9uIGlzIGF2YWlsYWJsZVxuICAgICAgaWYgKCFncmlkW2N1cnJlbnRSb3ddW2N1cnJlbnRDb2xdKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBNb3ZlIHRvIG5leHQgY29sdW1uXG4gICAgICBjdXJyZW50Q29sKys7XG4gICAgICBpZiAoY3VycmVudENvbCA+PSB0b3RhbENvbHVtbnMpIHtcbiAgICAgICAgY3VycmVudENvbCA9IDA7XG4gICAgICAgIGN1cnJlbnRSb3crKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdG9yZSBjb29yZGluYXRlcyBmb3IgdGhpcyBjZWxsXG4gICAgY29uc3Qgc3RhcnRDb29yZDogQ29vcmRpbmF0ZSA9IHsgcm93OiBjdXJyZW50Um93LCBjb2w6IGN1cnJlbnRDb2wgfTtcbiAgICBjb25zdCBlbmRDb29yZDogQ29vcmRpbmF0ZSA9IHtcbiAgICAgIHJvdzogY3VycmVudFJvdyArIHJvd3NwYW4gLSAxLFxuICAgICAgY29sOiBjdXJyZW50Q29sICsgY29sc3BhbiAtIDEsXG4gICAgfTtcblxuICAgIGNlbGxDb29yZGluYXRlc1tpXSA9IHsgc3RhcnQ6IHN0YXJ0Q29vcmQsIGVuZDogZW5kQ29vcmQgfTtcblxuICAgIC8vIE1hcmsgdGhlIHBvc2l0aW9ucyB0aGlzIGNlbGwgb2NjdXBpZXMgYXMgdGFrZW5cbiAgICBmb3IgKGxldCByID0gY3VycmVudFJvdzsgciA8IGN1cnJlbnRSb3cgKyByb3dzcGFuOyByKyspIHtcbiAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGVub3VnaCByb3dzXG4gICAgICB3aGlsZSAoZ3JpZC5sZW5ndGggPD0gcikge1xuICAgICAgICBncmlkLnB1c2gobmV3IEFycmF5KHRvdGFsQ29sdW1ucykuZmlsbChmYWxzZSkpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBjID0gY3VycmVudENvbDsgYyA8IGN1cnJlbnRDb2wgKyBjb2xzcGFuOyBjKyspIHtcbiAgICAgICAgaWYgKGMgPCB0b3RhbENvbHVtbnMpIHtcbiAgICAgICAgICBncmlkW3JdW2NdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1vdmUgdG8gbmV4dCBwb3NpdGlvbiBmb3IgdGhlIG5leHQgY2VsbFxuICAgIGN1cnJlbnRDb2wrKztcbiAgICBpZiAoY3VycmVudENvbCA+PSB0b3RhbENvbHVtbnMpIHtcbiAgICAgIGN1cnJlbnRDb2wgPSAwO1xuICAgICAgY3VycmVudFJvdysrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgbG9va3VwIGZ1bmN0aW9uXG4gIHJldHVybiBmdW5jdGlvbiBnZXRDZWxsQ29vcmRpbmF0ZXMoY2VsbEluZGV4OiBudW1iZXIpOiBCb3VuZHMge1xuICAgIGlmIChjZWxsSW5kZXggPCAwIHx8IGNlbGxJbmRleCA+PSBjZWxscy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2VsbCBpbmRleCBvdXQgb2YgYm91bmRzJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNlbGxDb29yZGluYXRlc1tjZWxsSW5kZXhdO1xuICB9O1xufVxuIl19
@@ -1,36 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SimpleTableCellComponent {
4
- constructor(cdr, elementRef) {
5
- this.cdr = cdr;
6
- this.elementRef = elementRef;
7
- }
8
- get classes() {
9
- return [
10
- this.alignment,
11
- this.pinned && 'pinned',
12
- this.isLastRow && 'last-row',
13
- ]
14
- .filter(Boolean)
15
- .join(' ');
16
- }
17
- get leftPx() {
18
- if (this.pinned && this.leftPinOffset != undefined) {
19
- return this.leftPinOffset;
20
- }
21
- return null;
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleTableCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SimpleTableCellComponent, selector: "[riv-simple-table-cell]", host: { properties: { "class": "this.classes", "style.left.px": "this.leftPx" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{height:calc(var(--base-grid-size) * 8);padding:var(--size-xxsmall) var(--size-small);font:var(--body-small);vertical-align:middle;background-color:inherit}:host:not(.last-row){border-bottom:var(--border-width) solid var(--border-light)}:host.pinned{position:sticky;z-index:var(--above-scroll-z-index)}\n", ":host.left{text-align:left}:host.center{text-align:center}:host.right{text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleTableCellComponent, decorators: [{
27
- type: Component,
28
- args: [{ selector: '[riv-simple-table-cell]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{height:calc(var(--base-grid-size) * 8);padding:var(--size-xxsmall) var(--size-small);font:var(--body-small);vertical-align:middle;background-color:inherit}:host:not(.last-row){border-bottom:var(--border-width) solid var(--border-light)}:host.pinned{position:sticky;z-index:var(--above-scroll-z-index)}\n", ":host.left{text-align:left}:host.center{text-align:center}:host.right{text-align:right}\n"] }]
29
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { classes: [{
30
- type: HostBinding,
31
- args: ['class']
32
- }], leftPx: [{
33
- type: HostBinding,
34
- args: ['style.left.px']
35
- }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhYmxlLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3NpbXBsZS10YWJsZS9zaW1wbGUtdGFibGUtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7O0FBU3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFTbkMsWUFDUyxHQUFzQixFQUN0QixVQUE0QztRQUQ1QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFrQztJQUNsRCxDQUFDO0lBRUosSUFDSSxPQUFPO1FBQ1QsT0FBTztZQUNMLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLE1BQU0sSUFBSSxRQUFRO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVTtTQUM3QjthQUNFLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBL0JVLHdCQUF3QjttR0FBeEIsd0JBQXdCLGtKQ2ZyQyw2QkFDQTs7NEZEY2Esd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTTsrR0FpQjNDLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxPQUFPO2dCQVloQixNQUFNO3NCQURULFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSaXZUYWJsZSB9IGZyb20gJy4uL3RhYmxlL3N0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3Jpdi1zaW1wbGUtdGFibGUtY2VsbF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2ltcGxlLXRhYmxlLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaW1wbGUtdGFibGUtY2VsbC5jb21wb25lbnQuY3NzJywgJy4vYWxpZ25tZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2ltcGxlVGFibGVDZWxsQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZXNlIGdldCBzZXQgYXV0b21hdGljYWxseSBieSB0aGUgcGFyZW50IFNpbXBsZVRhYmxlQ29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFsaWdubWVudD86IFJpdlRhYmxlLkNvbHVtbkFsaWdubWVudDtcbiAgcHVibGljIHBpbm5lZD86IGJvb2xlYW47XG4gIHB1YmxpYyBpc0xhc3RSb3c/OiBib29sZWFuO1xuICBwdWJsaWMgbGVmdFBpbk9mZnNldD86IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MVGFibGVDZWxsRWxlbWVudD4sXG4gICkge31cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNsYXNzZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuYWxpZ25tZW50LFxuICAgICAgdGhpcy5waW5uZWQgJiYgJ3Bpbm5lZCcsXG4gICAgICB0aGlzLmlzTGFzdFJvdyAmJiAnbGFzdC1yb3cnLFxuICAgIF1cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKCcgJyk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmxlZnQucHgnKVxuICBnZXQgbGVmdFB4KCkge1xuICAgIGlmICh0aGlzLnBpbm5lZCAmJiB0aGlzLmxlZnRQaW5PZmZzZXQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5sZWZ0UGluT2Zmc2V0O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -1,37 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SimpleTableHeaderCellComponent {
4
- constructor(cdr, elementRef) {
5
- this.cdr = cdr;
6
- this.elementRef = elementRef;
7
- }
8
- get classes() {
9
- return [this.alignment, this.pinned && 'pinned'].filter(Boolean).join(' ');
10
- }
11
- get leftPx() {
12
- if (this.pinned && this.leftPinOffset != undefined) {
13
- return this.leftPinOffset;
14
- }
15
- return null;
16
- }
17
- get width() {
18
- return this.elementRef.nativeElement.offsetWidth;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleTableHeaderCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SimpleTableHeaderCellComponent, selector: "[riv-simple-table-header-cell]", inputs: { dataType: "dataType", pinned: "pinned" }, host: { properties: { "class": "this.classes", "style.left.px": "this.leftPx" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{border-bottom:var(--border-width) solid var(--border-light);background-color:var(--surface-light-1);padding:var(--size-xxsmall) var(--size-small);position:sticky;top:0;font-size:var(--size-medium);font-weight:var(--font-weight-heavy);line-height:1;padding:var(--size-xsmall) var(--size-small);vertical-align:middle;height:calc(var(--base-grid-size) * 8);white-space:nowrap}:host.pinned{z-index:var(--above-scroll-z-index)}:host:not(:last-child){border-right:var(--border-width) solid var(--border-light)}\n", ":host.left{text-align:left}:host.center{text-align:center}:host.right{text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleTableHeaderCellComponent, decorators: [{
24
- type: Component,
25
- args: [{ selector: '[riv-simple-table-header-cell]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{border-bottom:var(--border-width) solid var(--border-light);background-color:var(--surface-light-1);padding:var(--size-xxsmall) var(--size-small);position:sticky;top:0;font-size:var(--size-medium);font-weight:var(--font-weight-heavy);line-height:1;padding:var(--size-xsmall) var(--size-small);vertical-align:middle;height:calc(var(--base-grid-size) * 8);white-space:nowrap}:host.pinned{z-index:var(--above-scroll-z-index)}:host:not(:last-child){border-right:var(--border-width) solid var(--border-light)}\n", ":host.left{text-align:left}:host.center{text-align:center}:host.right{text-align:right}\n"] }]
26
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { dataType: [{
27
- type: Input
28
- }], pinned: [{
29
- type: Input
30
- }], classes: [{
31
- type: HostBinding,
32
- args: ['class']
33
- }], leftPx: [{
34
- type: HostBinding,
35
- args: ['style.left.px']
36
- }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3NpbXBsZS10YWJsZS9zaW1wbGUtdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDOztBQVN2QixNQUFNLE9BQU8sOEJBQThCO0lBV3pDLFlBQ1MsR0FBc0IsRUFDdEIsVUFBNEM7UUFENUMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBa0M7SUFDbEQsQ0FBQztJQUVKLElBQ0ksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNuRCxDQUFDOytHQS9CVSw4QkFBOEI7bUdBQTlCLDhCQUE4Qiw2TUNoQjNDLDZCQUNBOzs0RkRlYSw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNOytHQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFjRixPQUFPO3NCQURWLFdBQVc7dUJBQUMsT0FBTztnQkFNaEIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vdGFibGUvc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbcml2LXNpbXBsZS10YWJsZS1oZWFkZXItY2VsbF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2ltcGxlLXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2ltcGxlLXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudC5jc3MnLCAnLi9hbGlnbm1lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhVHlwZT86IFJpdlRhYmxlLkNvbHVtbkRhdGFUeXBlO1xuXG4gIEBJbnB1dCgpIHBpbm5lZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgZ2V0cyBzZXQgYXV0b21hdGljYWxseSBieSB0aGUgcGFyZW50IFNpbXBsZVRhYmxlQ29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFsaWdubWVudD86IFJpdlRhYmxlLkNvbHVtbkFsaWdubWVudDtcbiAgcHVibGljIGxlZnRQaW5PZmZzZXQ/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+LFxuICApIHt9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBjbGFzc2VzKCkge1xuICAgIHJldHVybiBbdGhpcy5hbGlnbm1lbnQsIHRoaXMucGlubmVkICYmICdwaW5uZWQnXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0LnB4JylcbiAgZ2V0IGxlZnRQeCgpIHtcbiAgICBpZiAodGhpcy5waW5uZWQgJiYgdGhpcy5sZWZ0UGluT2Zmc2V0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMubGVmdFBpbk9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgd2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -1,19 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SimpleTableRowComponent {
4
- constructor() {
5
- this.selected = false;
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleTableRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SimpleTableRowComponent, selector: "[riv-simple-table-row]", inputs: { selected: "selected" }, host: { properties: { "class.selected": "this.selected" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:table-row;text-decoration:none;color:inherit;background-color:var(--surface-light-0);transition:background-color var(--short-transition)}:host(a),:host(button){cursor:pointer}:host(a):hover,:host(button):hover{background-color:var(--surface-light-2)}:host(a):active,:host(button):active{background-color:var(--surface-light-3)}:host.selected{background-color:var(--surface-light-selected)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleTableRowComponent, decorators: [{
11
- type: Component,
12
- args: [{ selector: '[riv-simple-table-row]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:table-row;text-decoration:none;color:inherit;background-color:var(--surface-light-0);transition:background-color var(--short-transition)}:host(a),:host(button){cursor:pointer}:host(a):hover,:host(button):hover{background-color:var(--surface-light-2)}:host(a):active,:host(button):active{background-color:var(--surface-light-3)}:host.selected{background-color:var(--surface-light-selected)}\n"] }]
13
- }], propDecorators: { selected: [{
14
- type: Input
15
- }, {
16
- type: HostBinding,
17
- args: ['class.selected']
18
- }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhYmxlLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDOztBQVF2QixNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBU0UsYUFBUSxHQUFZLEtBQUssQ0FBQztLQUMzQjsrR0FKWSx1QkFBdUI7bUdBQXZCLHVCQUF1Qiw2SkNicEMsNkJBQ0E7OzRGRFlhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07OEJBSy9DLFFBQVE7c0JBRlAsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbcml2LXNpbXBsZS10YWJsZS1yb3ddJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbXBsZS10YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaW1wbGUtdGFibGUtcm93LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNpbXBsZVRhYmxlUm93Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpXG4gIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -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
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", 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 }); }
90
- }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3NpbXBsZS10YWJsZS9zaW1wbGUtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxHQUdoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQVEzRSxNQUFNLE9BQU8sb0JBQW9CO0lBVS9CLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUV2QyxJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUMxQixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFDaEMsSUFB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d0IsZ0RDNUIzQyx5T0FRQTs7NEZEYWEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsUUFBUTtnQkFJZCxXQUFXO3NCQURsQixlQUFlO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJOUQsU0FBUztzQkFEaEIsZUFBZTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSaXZUYWJsZSB9IGZyb20gJy4uL3RhYmxlL3N0YXRlJztcbmltcG9ydCB7IGNyZWF0ZUNlbGxDb29yZGluYXRlQ2FsY3VsYXRvciB9IGZyb20gJy4vY29vcmRpbmF0ZS1oZWxwZXInO1xuaW1wb3J0IHsgU2ltcGxlVGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9zaW1wbGUtdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9zaW1wbGUtdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29sdW1uSGVscGVycyB9IGZyb20gJy4uL3RhYmxlL3N0YXRlLWhlbHBlcnMvY29sdW1uLWhlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtc2ltcGxlLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbXBsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpbXBsZS10YWJsZS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTaW1wbGVUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuICBAQ29udGVudENoaWxkKCdoZWFkZXInKVxuICBoZWFkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2ltcGxlVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgaGVhZGVyQ2VsbHM/OiBRdWVyeUxpc3Q8U2ltcGxlVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkcmVuKFNpbXBsZVRhYmxlQ2VsbENvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIGRhdGFDZWxscz86IFF1ZXJ5TGlzdDxTaW1wbGVUYWJsZUNlbGxDb21wb25lbnQ+O1xuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLnNldENlbGxQcm9wZXJ0aWVzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldENlbGxQcm9wZXJ0aWVzKCkge1xuICAgIGNvbnN0IHsgaGVhZGVyQ2VsbHMsIGRhdGFDZWxscyB9ID0gdGhpcztcbiAgICBpZiAoIWhlYWRlckNlbGxzIHx8ICFkYXRhQ2VsbHMpIHJldHVybjtcblxuICAgIGxldCBydW5uaW5nV2lkdGhUb3RhbCA9IDA7XG4gICAgaGVhZGVyQ2VsbHMuZm9yRWFjaCgoaGVhZGVyQ2VsbCwgaSkgPT4ge1xuICAgICAgY29uc3QgeyBkYXRhVHlwZSB9ID0gaGVhZGVyQ2VsbDtcbiAgICAgIGlmICghZGF0YVR5cGUpIHtcbiAgICAgICAgY29uc3QgYWxsb3dlZFR5cGVzID0gUml2VGFibGUuQ29sdW1uRGF0YVR5cGVzLmpvaW4oJywgJyk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRWFjaCBoZWFkZXIgY2VsbCBtdXN0IGRlZmluZSBhbiBhcHByb3ByaWF0ZSBkYXRhVHlwZSwgb25lIG9mICR7YWxsb3dlZFR5cGVzfWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0FsaWdubWVudCA9IFRhYmxlQ29sdW1uSGVscGVycy5nZXRDb2x1bW5BbGlnbm1lbnQoXG4gICAgICAgIGRhdGFUeXBlLFxuICAgICAgICBpID09PSAwLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IG5ld0xlZnRQaW5PZmZzZXQgPSBydW5uaW5nV2lkdGhUb3RhbDtcbiAgICAgIHJ1bm5pbmdXaWR0aFRvdGFsICs9IGhlYWRlckNlbGwud2lkdGg7XG5cbiAgICAgIGNvbnN0IGNoYW5nZWQgPVxuICAgICAgICBoZWFkZXJDZWxsLmFsaWdubWVudCAhPSBuZXdBbGlnbm1lbnQgfHxcbiAgICAgICAgaGVhZGVyQ2VsbC5sZWZ0UGluT2Zmc2V0ICE9IG5ld0xlZnRQaW5PZmZzZXQ7XG4gICAgICBoZWFkZXJDZWxsLmFsaWdubWVudCA9IG5ld0FsaWdubWVudDtcbiAgICAgIGhlYWRlckNlbGwubGVmdFBpbk9mZnNldCA9IG5ld0xlZnRQaW5PZmZzZXQ7XG5cbiAgICAgIC8vIE9ubHkgbWFyayBmb3IgY2hlY2sgd2hlbiBjaGFuZ2VkIHRvIHByZXZlbnQgaW5maW5pdGUgY3ljbGVzXG4gICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgaGVhZGVyQ2VsbC5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgY2VsbFNwYW5EYXRhID0gZGF0YUNlbGxzLm1hcChkYXRhQ2VsbCA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gZGF0YUNlbGwuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcm93c3BhbjogcGFyc2VJbnQoZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3Jvd3NwYW4nKSB8fCAnMScsIDEwKSxcbiAgICAgICAgY29sc3BhbjogcGFyc2VJbnQoZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKSB8fCAnMScsIDEwKSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBXaGVuIHRoZXJlIGFyZSBubyBoZWFkZXIgY2VsbHMsIGNhbGN1bGF0ZSB0b3RhbENvbHVtbnMgZnJvbSB0aGUgZmlyc3QgPHRyPlxuICAgIGxldCB0b3RhbENvbHVtbnMgPSBoZWFkZXJDZWxscy5sZW5ndGg7XG4gICAgaWYgKHRvdGFsQ29sdW1ucyA9PT0gMCAmJiBkYXRhQ2VsbHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlyc3RSb3cgPSBkYXRhQ2VsbHMuZmlyc3Q/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgaWYgKGZpcnN0Um93KSB7XG4gICAgICAgIC8vIENvdW50IHRkIGVsZW1lbnRzIGluIHRoZSBmaXJzdCByb3cgYW5kIHN1bSB0aGVpciBjb2xzcGFuc1xuICAgICAgICBjb25zdCBjZWxsc0luRmlyc3RSb3cgPSBBcnJheS5mcm9tKFxuICAgICAgICAgIGZpcnN0Um93LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RkW3Jpdi1zaW1wbGUtdGFibGUtY2VsbF0nKSxcbiAgICAgICAgKTtcbiAgICAgICAgdG90YWxDb2x1bW5zID0gY2VsbHNJbkZpcnN0Um93LnJlZHVjZSgoc3VtLCBjZWxsKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29sc3BhbiA9IHBhcnNlSW50KGNlbGwuZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgfHwgJzEnLCAxMCk7XG4gICAgICAgICAgcmV0dXJuIHN1bSArIGNvbHNwYW47XG4gICAgICAgIH0sIDApO1xuICAgICAgfVxuICAgICAgLy8gRmFsbGJhY2sgdG8gMSBpZiB3ZSBjb3VsZG4ndCBkZXRlcm1pbmVcbiAgICAgIGlmICh0b3RhbENvbHVtbnMgPT09IDApIHtcbiAgICAgICAgdG90YWxDb2x1bW5zID0gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRDZWxsQ29vcmRpbmF0ZXMgPSBjcmVhdGVDZWxsQ29vcmRpbmF0ZUNhbGN1bGF0b3IoXG4gICAgICBjZWxsU3BhbkRhdGEsXG4gICAgICB0b3RhbENvbHVtbnMsXG4gICAgKTtcblxuICAgIGNvbnN0IG1heFJvdyA9IE1hdGgubWF4KFxuICAgICAgLi4uZGF0YUNlbGxzLm1hcCgoXywgaSkgPT4gZ2V0Q2VsbENvb3JkaW5hdGVzKGkpLmVuZC5yb3cpLFxuICAgICk7XG5cbiAgICBkYXRhQ2VsbHMuZm9yRWFjaCgoZGF0YUNlbGwsIGNlbGxJbmRleCkgPT4ge1xuICAgICAgY29uc3QgYm91bmRzID0gZ2V0Q2VsbENvb3JkaW5hdGVzKGNlbGxJbmRleCk7XG5cbiAgICAgIGNvbnN0IGhlYWRlckNlbGwgPSBoZWFkZXJDZWxscy5nZXQoYm91bmRzLnN0YXJ0LmNvbCk7XG4gICAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgaWYgKGhlYWRlckNlbGwpIHtcbiAgICAgICAgY2hhbmdlZCA9XG4gICAgICAgICAgZGF0YUNlbGwuYWxpZ25tZW50ICE9IGhlYWRlckNlbGwuYWxpZ25tZW50IHx8XG4gICAgICAgICAgZGF0YUNlbGwucGlubmVkICE9IGhlYWRlckNlbGwucGlubmVkIHx8XG4gICAgICAgICAgZGF0YUNlbGwubGVmdFBpbk9mZnNldCAhPSBoZWFkZXJDZWxsLmxlZnRQaW5PZmZzZXQ7XG5cbiAgICAgICAgZGF0YUNlbGwuYWxpZ25tZW50ID0gaGVhZGVyQ2VsbC5hbGlnbm1lbnQ7XG4gICAgICAgIGRhdGFDZWxsLnBpbm5lZCA9IGhlYWRlckNlbGwucGlubmVkO1xuICAgICAgICBkYXRhQ2VsbC5sZWZ0UGluT2Zmc2V0ID0gaGVhZGVyQ2VsbC5sZWZ0UGluT2Zmc2V0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXdJc0xhc3RSb3cgPSBib3VuZHMuZW5kLnJvdyA9PT0gbWF4Um93O1xuICAgICAgY2hhbmdlZCA9IGNoYW5nZWQgfHwgZGF0YUNlbGwuaXNMYXN0Um93ICE9IG5ld0lzTGFzdFJvdztcbiAgICAgIGRhdGFDZWxsLmlzTGFzdFJvdyA9IG5ld0lzTGFzdFJvdztcblxuICAgICAgLy8gT25seSBtYXJrIGZvciBjaGVjayB3aGVuIGNoYW5nZWQgdG8gcHJldmVudCBpbmZpbml0ZSBjeWNsZXNcbiAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICBkYXRhQ2VsbC5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyXCIgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZVwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHRhYmluZGV4PVwiMFwiPlxuICA8dGFibGU+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
@@ -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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LENBQUM7SUFFRCxTQUFTLElBQUksQ0FBQyxJQUFnQztRQUM1QyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUFVO1FBQzdCLElBQUksSUFBSSxZQUFZLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ3RELElBQUksSUFBSSxZQUFZLE9BQU87WUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDO2dCQUN4QyxDQUFDLENBQUMsRUFBRTtnQkFDSixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhO1FBQy9CLE9BQU8sS0FBSzthQUNULE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO2FBQ3RCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztBQUNILENBQUMsRUEzUWdCLGlCQUFpQixLQUFqQixpQkFBaUIsUUEyUWpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3VtQnkgfSBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIENsaXBib2FyZCBzZXJpYWxpemF0aW9uIGZvciBgcml2LXRhYmxlYC5cbiAqXG4gKiBSb3dzIHRoYXQgaGF2ZSBhIGxpbmsgcmVuZGVyIGFzIGA8YSBjbGFzcz1cInJvdy1saW5rXCI+YCByYXRoZXIgdGhhbiBgPHRyPmAsIGFuZFxuICogdGhlIGJyb3dzZXIncyBjbGlwYm9hcmQgc2VyaWFsaXplciBkb2VzIG5vdCB0cmVhdCB0aG9zZSBhcyB0YWJsZSByb3dzIOKAlCB0aGVcbiAqIGNvcGllZCBjb250ZW50IHBhc3RlcyBpbnRvIGEgc3ByZWFkc2hlZXQgYXMgb25lIGxhdGVyYWwgcnVuIGluc3RlYWQgb2YgYSBncmlkLlxuICogVGhlc2UgaGVscGVycyByZWJ1aWxkIHRoZSByZW5kZXJlZCBncmlkIHNvIHRoYXQgY29waWVkIGNvbnRlbnQgcGFzdGVzIGFzIHJvd3NcbiAqIGFuZCBjb2x1bW5zLlxuICovXG5leHBvcnQgbmFtZXNwYWNlIFJpdlRhYmxlQ2xpcGJvYXJkIHtcbiAgLyoqIENlbGxzIHRoYXQgaG9sZCBjb250cm9scyByYXRoZXIgdGhhbiBkYXRhLiAqL1xuICBjb25zdCBjb250cm9sQ2VsbFNlbGVjdG9yID1cbiAgICAndGguc2VsZWN0aW9uLWhlYWQsIHRoLm1lbnUtaGVhZCwgdGQuc2VsZWN0aW9uLWJvZHksIHRkLm1lbnUtYm9keSc7XG5cbiAgLyoqIFRoZSBjb2x1bW4gbmFtZSB3aXRoaW4gYSBoZWFkZXIgY2VsbDsgdGhlIHJlc3Qgb2YgdGhlIGNlbGwgaXMgY29udHJvbHMuICovXG4gIGNvbnN0IGhlYWRlckxhYmVsU2VsZWN0b3IgPSAnLmhlYWRlci13cmFwcGVyJztcblxuICAvKiogRWxlbWVudHMgd2hvc2UgdGV4dCBleGlzdHMgZm9yIGFzc2lzdGl2ZSB0ZWNobm9sb2d5IG9ubHkuICovXG4gIGNvbnN0IGFzc2lzdGl2ZVRleHRTZWxlY3RvciA9ICdyaXYtc3Itb25seSc7XG5cbiAgLyoqIFJvd3MgdGhhdCBzdGFuZCBpbiBmb3IgZGF0YSByYXRoZXIgdGhhbiBjYXJyeWluZyBpdC4gKi9cbiAgY29uc3QgZmlsbGVyUm93U2VsZWN0b3IgPSAncml2LXplcm8tc3RhdGUnO1xuXG4gIC8qKiBFbGVtZW50cyB0aGF0IG93biB0aGVpciBvd24gY2xpcGJvYXJkIGJlaGF2aW9yLiAqL1xuICBjb25zdCBlZGl0YWJsZVNlbGVjdG9yID1cbiAgICAnaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIFtjb250ZW50ZWRpdGFibGU9XCJcIl0sIFtjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJdJztcblxuICBleHBvcnQgdHlwZSBQYXlsb2FkID0ge1xuICAgIC8qKiBUYWItZGVsaW1pdGVkIHJvd3MsIG9uZSBsaW5lIHBlciByb3cuICovXG4gICAgdGV4dDogc3RyaW5nO1xuICAgIC8qKiBFcXVpdmFsZW50IHRhYmxlIG1hcmt1cCwgZm9yIHRhcmdldHMgdGhhdCBwcmVmZXIgcmljaCBjb250ZW50LiAqL1xuICAgIGh0bWw6IHN0cmluZztcbiAgfTtcblxuICAvKiogUHJlZGljYXRlIGZvciB3aGV0aGVyIGEgbm9kZSBmYWxscyB3aXRoaW4gdGhlIHVzZXIncyBzZWxlY3Rpb24uICovXG4gIGV4cG9ydCB0eXBlIFNlbGVjdGlvblRlc3QgPSAobm9kZTogTm9kZSkgPT4gYm9vbGVhbjtcblxuICAvKiogQSByZW5kZXJlZCByb3csIGhvbGRpbmcgdGhlIGNlbGwgb2NjdXB5aW5nIGVhY2ggZGF0YSBjb2x1bW4uICovXG4gIHR5cGUgUm93ID0gcmVhZG9ubHkgKEVsZW1lbnQgfCB1bmRlZmluZWQpW107XG5cbiAgdHlwZSBMYXlvdXQgPSB7XG4gICAgaGVhZGVyOiByZWFkb25seSBSb3dbXTtcbiAgICBib2R5OiByZWFkb25seSBSb3dbXTtcbiAgfTtcblxuICAvKiogV2hldGhlciB0aGUgY29weSBjYW1lIGZyb20gYSBjb250cm9sIHRoYXQgc2VyaWFsaXplcyBpdHMgb3duIHZhbHVlLiAqL1xuICBleHBvcnQgZnVuY3Rpb24gaXNFZGl0YWJsZSh0YXJnZXQ6IEV2ZW50VGFyZ2V0IHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50ICYmIHRhcmdldC5jbG9zZXN0KGVkaXRhYmxlU2VsZWN0b3IpICE9PSBudWxsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGBob3N0YCBpcyB0aGUgZmlyc3QgZWxlbWVudCBvZiBpdHMga2luZCB0aGF0IHRoZSBzZWxlY3Rpb24gdG91Y2hlcy5cbiAgICogQSBzZWxlY3Rpb24gY2FuIHNwYW4gc2V2ZXJhbCB0YWJsZXM7IGRlZmVycmluZyB0byB0aGUgZmlyc3Qga2VlcHMgaW5zdGFuY2VzXG4gICAqIGZyb20gb3ZlcndyaXRpbmcgZWFjaCBvdGhlcidzIGNsaXBib2FyZCBkYXRhLlxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIG93bnNTZWxlY3Rpb24oXG4gICAgaG9zdDogRWxlbWVudCxcbiAgICBpc1NlbGVjdGVkOiBTZWxlY3Rpb25UZXN0LFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGhvc3QubG9jYWxOYW1lKSkuZmluZChlbGVtZW50ID0+XG4gICAgICAgIGlzU2VsZWN0ZWQoZWxlbWVudCksXG4gICAgICApID09PSBob3N0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIHRoZSBzZWxlY3RlZCByZWdpb24gb2YgYHRhYmxlc2AgKG9uZSBwZXIgcm93IGdyb3VwKSwgb3IgbnVsbCB3aGVuXG4gICAqIHRoZSBzZWxlY3Rpb24gY292ZXJzIGF0IG1vc3Qgb25lIGNlbGwg4oCUIHRob3NlIGFyZSBsZWZ0IHRvIHRoZSBicm93c2VyIHNvXG4gICAqIHRoYXQgY29weWluZyBwYXJ0IG9mIGEgY2VsbCdzIHRleHQga2VlcHMgd29ya2luZy5cbiAgICpcbiAgICogYGVuZHBvaW50c2AgYXJlIHdoZXJlIHRoZSBzZWxlY3Rpb24gc3RhcnRzIGFuZCBlbmRzLCB3aGljaCBuYXJyb3cgdGhlIGNvcGllZFxuICAgKiBjb2x1bW5zIHRvIHRoYXQgc3Bhbi4gQSBzZWxlY3Rpb24gaXMgYSBsaW5lYXIgcmFuZ2UgaW4gcmVhZGluZyBvcmRlciwgc29cbiAgICogZHJhZ2dpbmcgZG93biBvbmUgY29sdW1uIHRvdWNoZXMgZXZlcnkgY29sdW1uIGluIGJldHdlZW47IHRoZSBlbmRwb2ludHMgYXJlXG4gICAqIHdoYXQgZGlzdGluZ3Vpc2ggXCJ0aGlzIGNvbHVtblwiIGZyb20gXCJ0aGVzZSByb3dzXCIuXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gZXh0cmFjdChcbiAgICB0YWJsZXM6IHJlYWRvbmx5IEhUTUxUYWJsZUVsZW1lbnRbXSxcbiAgICBpc1NlbGVjdGVkOiBTZWxlY3Rpb25UZXN0LFxuICAgIGVuZHBvaW50czogcmVhZG9ubHkgKE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKVtdID0gW10sXG4gICk6IFBheWxvYWQgfCBudWxsIHtcbiAgICBjb25zdCBsYXlvdXRzID0gdGFibGVzLm1hcChsYXlvdXQpO1xuICAgIGNvbnN0IGNvbHVtbnMgPSBzZWxlY3RlZENvbHVtbnMobGF5b3V0cywgaXNTZWxlY3RlZCwgZW5kcG9pbnRzKTtcbiAgICBjb25zdCBoZWFkZXJzID0gbGF5b3V0cy5mbGF0TWFwKGwgPT4gbC5oZWFkZXIpO1xuICAgIGNvbnN0IHJvd3MgPSBsYXlvdXRzXG4gICAgICAuZmxhdE1hcChsID0+IGwuYm9keSlcbiAgICAgIC5maWx0ZXIocm93ID0+IHNlbGVjdGVkQ291bnQocm93LCBpc1NlbGVjdGVkKSA+IDApO1xuICAgIC8vIEhlYWRlciBjZWxscyBvd24gdGhlIHBvaW50ZXIgZm9yIGNvbHVtbiByZW9yZGVyaW5nLCBzbyBhIGRyYWcgY2Fubm90XG4gICAgLy8gcmVhY2ggdGhlbTsgdGhlIGhlYWRlciBjb21lcyBhbG9uZyB3aXRoIGFueSBjb3BpZWQgZGF0YSBpbnN0ZWFkLlxuICAgIGNvbnN0IGhlYWRlciA9XG4gICAgICBoZWFkZXJzLmZpbmQocm93ID0+IHNlbGVjdGVkQ291bnQocm93LCBpc1NlbGVjdGVkKSA+IDApID8/XG4gICAgICAocm93cy5sZW5ndGggPiAwID8gaGVhZGVyc1swXSA6IHVuZGVmaW5lZCk7XG5cbiAgICBpZiAoXG4gICAgICBjb2x1bW5zLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgc3VtQnkoWy4uLihoZWFkZXIgPyBbaGVhZGVyXSA6IFtdKSwgLi4ucm93c10sIHJvdyA9PlxuICAgICAgICBzZWxlY3RlZENvdW50KHJvdywgaXNTZWxlY3RlZCksXG4gICAgICApIDwgMlxuICAgIClcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHQ6IHRvVGV4dChoZWFkZXIsIHJvd3MsIGNvbHVtbnMpLFxuICAgICAgaHRtbDogdG9IdG1sKGhlYWRlciwgcm93cywgY29sdW1ucyksXG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRvVGV4dChcbiAgICBoZWFkZXI6IFJvdyB8IHVuZGVmaW5lZCxcbiAgICByb3dzOiByZWFkb25seSBSb3dbXSxcbiAgICBjb2x1bW5zOiByZWFkb25seSBudW1iZXJbXSxcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uKGhlYWRlciA/IFtjb2x1bW5zLm1hcChjb2x1bW4gPT4gaGVhZGVyVGV4dChoZWFkZXJbY29sdW1uXSkpXSA6IFtdKSxcbiAgICAgIC4uLnJvd3MubWFwKHJvdyA9PiBjb2x1bW5zLm1hcChjb2x1bW4gPT4gdGV4dChyb3dbY29sdW1uXSkpKSxcbiAgICBdXG4gICAgICAubWFwKGNlbGxzID0+IGNlbGxzLmpvaW4oJ1xcdCcpKVxuICAgICAgLmpvaW4oJ1xcbicpO1xuICB9XG5cbiAgZnVuY3Rpb24gdG9IdG1sKFxuICAgIGhlYWRlcjogUm93IHwgdW5kZWZpbmVkLFxuICAgIHJvd3M6IHJlYWRvbmx5IFJvd1tdLFxuICAgIGNvbHVtbnM6IHJlYWRvbmx5IG51bWJlcltdLFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNlbGxzID0gKHZhbHVlczogcmVhZG9ubHkgc3RyaW5nW10sIHRhZzogJ3RoJyB8ICd0ZCcpID0+XG4gICAgICB2YWx1ZXMubWFwKHZhbHVlID0+IGA8JHt0YWd9PiR7ZXNjYXBlSHRtbCh2YWx1ZSl9PC8ke3RhZ30+YCkuam9pbignJyk7XG4gICAgcmV0dXJuIFtcbiAgICAgICc8dGFibGU+JyxcbiAgICAgIGhlYWRlclxuICAgICAgICA/IGA8dGhlYWQ+PHRyPiR7Y2VsbHMoXG4gICAgICAgICAgICBjb2x1bW5zLm1hcChjb2x1bW4gPT4gaGVhZGVyVGV4dChoZWFkZXJbY29sdW1uXSkpLFxuICAgICAgICAgICAgJ3RoJyxcbiAgICAgICAgICApfTwvdHI+PC90aGVhZD5gXG4gICAgICAgIDogJycsXG4gICAgICBgPHRib2R5PiR7cm93c1xuICAgICAgICAubWFwKFxuICAgICAgICAgIHJvdyA9PlxuICAgICAgICAgICAgYDx0cj4ke2NlbGxzKFxuICAgICAgICAgICAgICBjb2x1bW5zLm1hcChjb2x1bW4gPT4gdGV4dChyb3dbY29sdW1uXSkpLFxuICAgICAgICAgICAgICAndGQnLFxuICAgICAgICAgICAgKX08L3RyPmAsXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJycpfTwvdGJvZHk+YCxcbiAgICAgICc8L3RhYmxlPicsXG4gICAgXS5qb2luKCcnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGxheW91dCh0YWJsZTogSFRNTFRhYmxlRWxlbWVudCk6IExheW91dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcjogZ3JpZChcbiAgICAgICAgQXJyYXkuZnJvbSh0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCc6c2NvcGUgPiB0aGVhZCA+IHRyJykpLmZpbHRlcihcbiAgICAgICAgICBpc0RhdGFSb3csXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgYm9keTogZ3JpZChcbiAgICAgICAgQXJyYXkuZnJvbShcbiAgICAgICAgICB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgJzpzY29wZSA+IHRib2R5ID4gdHIsIDpzY29wZSA+IHRib2R5ID4gYS5yb3ctbGluaycsXG4gICAgICAgICAgKSxcbiAgICAgICAgKS5maWx0ZXIoaXNEYXRhUm93KSxcbiAgICAgICksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIHJvd3Mgb250byBhIGNvbHVtbiBncmlkLiBDZWxscyBjb3ZlcmVkIGJ5IGEgcm93c3BhbiByZXBlYXQgdGhlIHNwYW5uaW5nXG4gICAqIGNlbGwgc28gdGhhdCBldmVyeSBsaW5lIGhhcyBvbmUgdmFsdWUgcGVyIGNvbHVtbiwgbWF0Y2hpbmcgaG93IENTViBleHBvcnRcbiAgICogZmxhdHRlbnMgc3BhbnMuXG4gICAqL1xuICBmdW5jdGlvbiBncmlkKHJvd3M6IHJlYWRvbmx5IEVsZW1lbnRbXSk6IFJvd1tdIHtcbiAgICBjb25zdCBjZWxsczogKEVsZW1lbnQgfCB1bmRlZmluZWQpW11bXSA9IHJvd3MubWFwKCgpID0+IFtdKTtcbiAgICByb3dzLmZvckVhY2goKHJvdywgcm93SW5kZXgpID0+IHtcbiAgICAgIGxldCBjb2x1bW4gPSAwO1xuICAgICAgZm9yIChjb25zdCBjZWxsIG9mIGRhdGFDZWxscyhyb3cpKSB7XG4gICAgICAgIHdoaWxlIChjZWxsc1tyb3dJbmRleF1bY29sdW1uXSAhPT0gdW5kZWZpbmVkKSBjb2x1bW4rKztcbiAgICAgICAgY29uc3Qgcm93U3BhbiA9IE1hdGgubWF4KDEsIGNlbGwucm93U3Bhbik7XG4gICAgICAgIGNvbnN0IGNvbFNwYW4gPSBNYXRoLm1heCgxLCBjZWxsLmNvbFNwYW4pO1xuICAgICAgICBmb3IgKFxuICAgICAgICAgIGxldCByID0gcm93SW5kZXg7XG4gICAgICAgICAgciA8PSBNYXRoLm1pbihyb3dzLmxlbmd0aCAtIDEsIHJvd0luZGV4ICsgcm93U3BhbiAtIDEpO1xuICAgICAgICAgIHIrK1xuICAgICAgICApXG4gICAgICAgICAgZm9yIChsZXQgYyA9IGNvbHVtbjsgYyA8IGNvbHVtbiArIGNvbFNwYW47IGMrKykgY2VsbHNbcl1bY10gPSBjZWxsO1xuICAgICAgICBjb2x1bW4gKz0gY29sU3BhbjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2VsbHM7XG4gIH1cblxuICBmdW5jdGlvbiBkYXRhQ2VsbHMocm93OiBFbGVtZW50KTogSFRNTFRhYmxlQ2VsbEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICByb3cucXVlcnlTZWxlY3RvckFsbDxIVE1MVGFibGVDZWxsRWxlbWVudD4oJzpzY29wZSA+IHRkLCA6c2NvcGUgPiB0aCcpLFxuICAgICkuZmlsdGVyKGNlbGwgPT4gIWNlbGwubWF0Y2hlcyhjb250cm9sQ2VsbFNlbGVjdG9yKSk7XG4gIH1cblxuICAvKiogRXhjbHVkZXMgdGhlIHplcm8tc3RhdGUgcm93LCB3aGljaCBzcGFucyBldmVyeSBjb2x1bW4uICovXG4gIGZ1bmN0aW9uIGlzRGF0YVJvdyhyb3c6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgcm93LnF1ZXJ5U2VsZWN0b3IoZmlsbGVyUm93U2VsZWN0b3IpID09PSBudWxsICYmXG4gICAgICBkYXRhQ2VsbHMocm93KS5ldmVyeShjZWxsID0+IGNlbGwuY29sU3BhbiA8PSAxKVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBzZWxlY3RlZENvbHVtbnMoXG4gICAgbGF5b3V0czogcmVhZG9ubHkgTGF5b3V0W10sXG4gICAgaXNTZWxlY3RlZDogU2VsZWN0aW9uVGVzdCxcbiAgICBlbmRwb2ludHM6IHJlYWRvbmx5IChOb2RlIHwgbnVsbCB8IHVuZGVmaW5lZClbXSxcbiAgKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSBuZXcgU2V0PG51bWJlcj4oKTtcbiAgICBmb3IgKGNvbnN0IHsgaGVhZGVyLCBib2R5IH0gb2YgbGF5b3V0cylcbiAgICAgIGZvciAoY29uc3Qgcm93IG9mIFsuLi5oZWFkZXIsIC4uLmJvZHldKVxuICAgICAgICByb3cuZm9yRWFjaCgoY2VsbCwgY29sdW1uKSA9PiB7XG4gICAgICAgICAgaWYgKGNlbGwgIT09IHVuZGVmaW5lZCAmJiBpc1NlbGVjdGVkKGNlbGwpKSBjb2x1bW5zLmFkZChjb2x1bW4pO1xuICAgICAgICB9KTtcbiAgICBjb25zdCB0b3VjaGVkID0gWy4uLmNvbHVtbnNdLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcblxuICAgIC8vIEJvdGggZW5kcyBoYXZlIHRvIGxhbmQgaW4gYSBjZWxsIHRvIGRlc2NyaWJlIGEgc3BhbjsgYW55dGhpbmcgZWxzZSAoYVxuICAgIC8vIHNlbGVjdC1hbGwsIGFuIGVuZHBvaW50IG9uIGEgcm93IHJhdGhlciB0aGFuIGEgY2VsbCkga2VlcHMgZXZlcnkgY29sdW1uLlxuICAgIGNvbnN0IHNwYW4gPSBlbmRwb2ludHNcbiAgICAgIC5tYXAobm9kZSA9PiAobm9kZSA/IGNvbHVtbk9mKGxheW91dHMsIG5vZGUpIDogdW5kZWZpbmVkKSlcbiAgICAgIC5maWx0ZXIoKGNvbHVtbik6IGNvbHVtbiBpcyBudW1iZXIgPT4gY29sdW1uICE9PSB1bmRlZmluZWQpO1xuICAgIHJldHVybiBzcGFuLmxlbmd0aCA9PT0gZW5kcG9pbnRzLmxlbmd0aCAmJiBzcGFuLmxlbmd0aCA+IDFcbiAgICAgID8gdG91Y2hlZC5maWx0ZXIoXG4gICAgICAgICAgY29sdW1uID0+IGNvbHVtbiA+PSBNYXRoLm1pbiguLi5zcGFuKSAmJiBjb2x1bW4gPD0gTWF0aC5tYXgoLi4uc3BhbiksXG4gICAgICAgIClcbiAgICAgIDogdG91Y2hlZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvbHVtbk9mKFxuICAgIGxheW91dHM6IHJlYWRvbmx5IExheW91dFtdLFxuICAgIG5vZGU6IE5vZGUsXG4gICk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgZm9yIChjb25zdCB7IGhlYWRlciwgYm9keSB9IG9mIGxheW91dHMpXG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiBbLi4uaGVhZGVyLCAuLi5ib2R5XSkge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSByb3cuZmluZEluZGV4KGNlbGwgPT4gY2VsbD8uY29udGFpbnMobm9kZSkgPT09IHRydWUpO1xuICAgICAgICBpZiAoY29sdW1uID49IDApIHJldHVybiBjb2x1bW47XG4gICAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNlbGVjdGVkQ291bnQocm93OiBSb3csIGlzU2VsZWN0ZWQ6IFNlbGVjdGlvblRlc3QpOiBudW1iZXIge1xuICAgIHJldHVybiByb3cuZmlsdGVyKGNlbGwgPT4gY2VsbCAhPT0gdW5kZWZpbmVkICYmIGlzU2VsZWN0ZWQoY2VsbCkpLmxlbmd0aDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhlYWRlclRleHQoY2VsbDogRWxlbWVudCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRleHQoY2VsbD8ucXVlcnlTZWxlY3RvcihoZWFkZXJMYWJlbFNlbGVjdG9yKSA/PyBjZWxsKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRleHQoY2VsbDogRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwpOiBzdHJpbmcge1xuICAgIHJldHVybiBjZWxsID8gdmlzaWJsZVRleHQoY2VsbCkucmVwbGFjZSgvXFxzKy9nLCAnICcpLnRyaW0oKSA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIGluZGVudGF0aW9uIGxhbmRzIGluIHRoZSBET00gYXMgbmV3bGluZXMgYW5kIHJ1bnMgb2Ygc3BhY2VzLCB3aGljaFxuICAgKiBzcGxpdCBhIHNpbmdsZSByb3cgYWNyb3NzIHNldmVyYWwgc3ByZWFkc2hlZXQgcm93cyB1bmxlc3MgY29sbGFwc2VkIGJ5IHRoZVxuICAgKiBjYWxsZXIuIENvbW1lbnQgYW5jaG9ycyBhbmQgc2NyZWVuLXJlYWRlci1vbmx5IGNvbnRlbnQgYXJlIGRyb3BwZWQsIGFuZFxuICAgKiBzaWJsaW5nIG5vZGVzIGFyZSBzZXBhcmF0ZWQgc28gdGhhdCBhZGphY2VudCBlbGVtZW50cyBkbyBub3QgcnVuIHRvZ2V0aGVyLlxuICAgKi9cbiAgZnVuY3Rpb24gdmlzaWJsZVRleHQobm9kZTogTm9kZSk6IHN0cmluZyB7XG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBUZXh0KSByZXR1cm4gbm9kZS5ub2RlVmFsdWUgPz8gJyc7XG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KVxuICAgICAgcmV0dXJuIG5vZGUubWF0Y2hlcyhhc3Npc3RpdmVUZXh0U2VsZWN0b3IpXG4gICAgICAgID8gJydcbiAgICAgICAgOiBBcnJheS5mcm9tKG5vZGUuY2hpbGROb2RlcykubWFwKHZpc2libGVUZXh0KS5qb2luKCcgJyk7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZnVuY3Rpb24gZXNjYXBlSHRtbCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgICAgIC5yZXBsYWNlKC8mL2csICcmYW1wOycpXG4gICAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXG4gICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xuICB9XG59XG4iXX0=