@perses-dev/components 0.55.0-beta.2 → 0.55.0-beta.6

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 (806) hide show
  1. package/dist/AlignSelector/AlignSelector.d.ts +2 -2
  2. package/dist/AlignSelector/AlignSelector.d.ts.map +1 -1
  3. package/dist/AlignSelector/AlignSelector.js +2 -2
  4. package/dist/AlignSelector/AlignSelector.js.map +1 -1
  5. package/dist/AlignSelector/index.js +1 -1
  6. package/dist/AlignSelector/index.js.map +1 -1
  7. package/dist/ColorPicker/ColorPicker.d.ts +1 -1
  8. package/dist/ColorPicker/ColorPicker.d.ts.map +1 -1
  9. package/dist/ColorPicker/ColorPicker.js +5 -5
  10. package/dist/ColorPicker/ColorPicker.js.map +1 -1
  11. package/dist/ColorPicker/OptionsColorPicker.d.ts +1 -1
  12. package/dist/ColorPicker/OptionsColorPicker.d.ts.map +1 -1
  13. package/dist/ColorPicker/OptionsColorPicker.js +5 -5
  14. package/dist/ColorPicker/OptionsColorPicker.js.map +1 -1
  15. package/dist/ColorPicker/index.js +2 -2
  16. package/dist/ColorPicker/index.js.map +1 -1
  17. package/dist/ContentWithLegend/ContentWithLegend.d.ts +2 -2
  18. package/dist/ContentWithLegend/ContentWithLegend.d.ts.map +1 -1
  19. package/dist/ContentWithLegend/ContentWithLegend.js +5 -5
  20. package/dist/ContentWithLegend/ContentWithLegend.js.map +1 -1
  21. package/dist/ContentWithLegend/index.js +1 -1
  22. package/dist/ContentWithLegend/index.js.map +1 -1
  23. package/dist/ContentWithLegend/model/content-with-legend-model.d.ts +3 -4
  24. package/dist/ContentWithLegend/model/content-with-legend-model.d.ts.map +1 -1
  25. package/dist/ContentWithLegend/model/content-with-legend-model.js +2 -2
  26. package/dist/ContentWithLegend/model/content-with-legend-model.js.map +1 -1
  27. package/dist/DensitySelector/DensitySelector.d.ts +1 -1
  28. package/dist/DensitySelector/DensitySelector.d.ts.map +1 -1
  29. package/dist/DensitySelector/DensitySelector.js +2 -2
  30. package/dist/DensitySelector/DensitySelector.js.map +1 -1
  31. package/dist/DensitySelector/index.js +1 -1
  32. package/dist/DensitySelector/index.js.map +1 -1
  33. package/dist/Dialog/Dialog.d.ts +4 -3
  34. package/dist/Dialog/Dialog.d.ts.map +1 -1
  35. package/dist/Dialog/Dialog.js +3 -3
  36. package/dist/Dialog/Dialog.js.map +1 -1
  37. package/dist/Dialog/DiscardChangesConfirmationDialog.d.ts +1 -1
  38. package/dist/Dialog/DiscardChangesConfirmationDialog.d.ts.map +1 -1
  39. package/dist/Dialog/DiscardChangesConfirmationDialog.js +2 -2
  40. package/dist/Dialog/DiscardChangesConfirmationDialog.js.map +1 -1
  41. package/dist/Dialog/index.js +2 -2
  42. package/dist/Dialog/index.js.map +1 -1
  43. package/dist/DragAndDrop/DragAndDropList.d.ts +1 -1
  44. package/dist/DragAndDrop/DragAndDropList.d.ts.map +1 -1
  45. package/dist/DragAndDrop/DragAndDropList.js +8 -8
  46. package/dist/DragAndDrop/DragAndDropList.js.map +1 -1
  47. package/dist/DragAndDrop/DragButton.d.ts +1 -2
  48. package/dist/DragAndDrop/DragButton.d.ts.map +1 -1
  49. package/dist/DragAndDrop/DragButton.js +4 -4
  50. package/dist/DragAndDrop/DragButton.js.map +1 -1
  51. package/dist/DragAndDrop/DropIndicator.d.ts +1 -1
  52. package/dist/DragAndDrop/DropIndicator.d.ts.map +1 -1
  53. package/dist/DragAndDrop/DropIndicator.js +1 -1
  54. package/dist/DragAndDrop/DropIndicator.js.map +1 -1
  55. package/dist/DragAndDrop/index.js +3 -3
  56. package/dist/DragAndDrop/index.js.map +1 -1
  57. package/dist/DragAndDrop/model.d.ts +1 -1
  58. package/dist/DragAndDrop/model.d.ts.map +1 -1
  59. package/dist/DragAndDrop/model.js.map +1 -1
  60. package/dist/Drawer/Drawer.d.ts +2 -2
  61. package/dist/Drawer/Drawer.d.ts.map +1 -1
  62. package/dist/Drawer/Drawer.js +3 -3
  63. package/dist/Drawer/Drawer.js.map +1 -1
  64. package/dist/Drawer/index.js +1 -1
  65. package/dist/Drawer/index.js.map +1 -1
  66. package/dist/EChart/EChart.d.ts +4 -4
  67. package/dist/EChart/EChart.d.ts.map +1 -1
  68. package/dist/EChart/EChart.js +10 -10
  69. package/dist/EChart/EChart.js.map +1 -1
  70. package/dist/EChart/index.js +2 -2
  71. package/dist/EChart/index.js.map +1 -1
  72. package/dist/EChart/timezone-formatter.d.ts.map +1 -1
  73. package/dist/EChart/timezone-formatter.js +1 -1
  74. package/dist/ErrorAlert.d.ts +1 -1
  75. package/dist/ErrorAlert.d.ts.map +1 -1
  76. package/dist/ErrorAlert.js +1 -1
  77. package/dist/ErrorAlert.js.map +1 -1
  78. package/dist/ErrorBoundary.js +1 -1
  79. package/dist/FontSizeSelector/FontSizeSelector.d.ts +1 -1
  80. package/dist/FontSizeSelector/FontSizeSelector.d.ts.map +1 -1
  81. package/dist/FontSizeSelector/FontSizeSelector.js +2 -2
  82. package/dist/FontSizeSelector/FontSizeSelector.js.map +1 -1
  83. package/dist/FontSizeSelector/index.js +1 -1
  84. package/dist/FontSizeSelector/index.js.map +1 -1
  85. package/dist/FormEditor/FormActions.d.ts +3 -3
  86. package/dist/FormEditor/FormActions.d.ts.map +1 -1
  87. package/dist/FormEditor/FormActions.js +2 -2
  88. package/dist/FormEditor/FormActions.js.map +1 -1
  89. package/dist/FormEditor/index.js +1 -1
  90. package/dist/FormEditor/index.js.map +1 -1
  91. package/dist/FormatControls/FormatControls.d.ts +2 -2
  92. package/dist/FormatControls/FormatControls.d.ts.map +1 -1
  93. package/dist/FormatControls/FormatControls.js +6 -6
  94. package/dist/FormatControls/FormatControls.js.map +1 -1
  95. package/dist/FormatControls/UnitSelector.d.ts +2 -2
  96. package/dist/FormatControls/UnitSelector.d.ts.map +1 -1
  97. package/dist/FormatControls/UnitSelector.js +35 -6
  98. package/dist/FormatControls/UnitSelector.js.map +1 -1
  99. package/dist/FormatControls/index.js +2 -2
  100. package/dist/FormatControls/index.js.map +1 -1
  101. package/dist/InfoTooltip/InfoTooltip.d.ts +1 -1
  102. package/dist/InfoTooltip/InfoTooltip.d.ts.map +1 -1
  103. package/dist/InfoTooltip/InfoTooltip.js +1 -1
  104. package/dist/InfoTooltip/InfoTooltip.js.map +1 -1
  105. package/dist/InfoTooltip/index.js +1 -1
  106. package/dist/InfoTooltip/index.js.map +1 -1
  107. package/dist/JSONEditor.d.ts +2 -2
  108. package/dist/JSONEditor.d.ts.map +1 -1
  109. package/dist/JSONEditor.js +5 -5
  110. package/dist/JSONEditor.js.map +1 -1
  111. package/dist/Legend/CompactLegend.d.ts +3 -3
  112. package/dist/Legend/CompactLegend.d.ts.map +1 -1
  113. package/dist/Legend/CompactLegend.js +3 -3
  114. package/dist/Legend/CompactLegend.js.map +1 -1
  115. package/dist/Legend/Legend.d.ts +4 -4
  116. package/dist/Legend/Legend.d.ts.map +1 -1
  117. package/dist/Legend/Legend.js +6 -6
  118. package/dist/Legend/Legend.js.map +1 -1
  119. package/dist/Legend/LegendColorBadge.d.ts +1 -2
  120. package/dist/Legend/LegendColorBadge.d.ts.map +1 -1
  121. package/dist/Legend/LegendColorBadge.js +4 -4
  122. package/dist/Legend/LegendColorBadge.js.map +1 -1
  123. package/dist/Legend/ListLegend.d.ts +3 -3
  124. package/dist/Legend/ListLegend.d.ts.map +1 -1
  125. package/dist/Legend/ListLegend.js +7 -6
  126. package/dist/Legend/ListLegend.js.map +1 -1
  127. package/dist/Legend/ListLegendItem.d.ts +3 -3
  128. package/dist/Legend/ListLegendItem.d.ts.map +1 -1
  129. package/dist/Legend/ListLegendItem.js +8 -7
  130. package/dist/Legend/ListLegendItem.js.map +1 -1
  131. package/dist/Legend/TableLegend.d.ts +3 -3
  132. package/dist/Legend/TableLegend.d.ts.map +1 -1
  133. package/dist/Legend/TableLegend.js +3 -3
  134. package/dist/Legend/TableLegend.js.map +1 -1
  135. package/dist/Legend/index.js +2 -2
  136. package/dist/Legend/index.js.map +1 -1
  137. package/dist/Legend/legend-model.d.ts +2 -2
  138. package/dist/Legend/legend-model.d.ts.map +1 -1
  139. package/dist/Legend/legend-model.js.map +1 -1
  140. package/dist/LinksEditor/LinkEditorForm.d.ts +1 -1
  141. package/dist/LinksEditor/LinkEditorForm.d.ts.map +1 -1
  142. package/dist/LinksEditor/LinkEditorForm.js +2 -2
  143. package/dist/LinksEditor/LinkEditorForm.js.map +1 -1
  144. package/dist/LinksEditor/index.js +1 -1
  145. package/dist/LinksEditor/index.js.map +1 -1
  146. package/dist/ModeSelector/ModeSelector.d.ts +1 -1
  147. package/dist/ModeSelector/ModeSelector.d.ts.map +1 -1
  148. package/dist/ModeSelector/ModeSelector.js +2 -2
  149. package/dist/ModeSelector/ModeSelector.js.map +1 -1
  150. package/dist/ModeSelector/index.js +1 -1
  151. package/dist/ModeSelector/index.js.map +1 -1
  152. package/dist/OptionsEditorLayout/OptionsEditorColumn.d.ts +1 -1
  153. package/dist/OptionsEditorLayout/OptionsEditorColumn.d.ts.map +1 -1
  154. package/dist/OptionsEditorLayout/OptionsEditorColumn.js +1 -1
  155. package/dist/OptionsEditorLayout/OptionsEditorColumn.js.map +1 -1
  156. package/dist/OptionsEditorLayout/OptionsEditorControl.d.ts +2 -2
  157. package/dist/OptionsEditorLayout/OptionsEditorControl.d.ts.map +1 -1
  158. package/dist/OptionsEditorLayout/OptionsEditorControl.js +6 -6
  159. package/dist/OptionsEditorLayout/OptionsEditorControl.js.map +1 -1
  160. package/dist/OptionsEditorLayout/OptionsEditorGrid.d.ts +1 -1
  161. package/dist/OptionsEditorLayout/OptionsEditorGrid.d.ts.map +1 -1
  162. package/dist/OptionsEditorLayout/OptionsEditorGrid.js +1 -1
  163. package/dist/OptionsEditorLayout/OptionsEditorGrid.js.map +1 -1
  164. package/dist/OptionsEditorLayout/OptionsEditorGroup.d.ts +2 -1
  165. package/dist/OptionsEditorLayout/OptionsEditorGroup.d.ts.map +1 -1
  166. package/dist/OptionsEditorLayout/OptionsEditorGroup.js +2 -2
  167. package/dist/OptionsEditorLayout/OptionsEditorGroup.js.map +1 -1
  168. package/dist/OptionsEditorLayout/index.js +4 -4
  169. package/dist/OptionsEditorLayout/index.js.map +1 -1
  170. package/dist/Overlay/Overlay.d.ts +2 -2
  171. package/dist/Overlay/Overlay.d.ts.map +1 -1
  172. package/dist/Overlay/Overlay.js +2 -2
  173. package/dist/Overlay/Overlay.js.map +1 -1
  174. package/dist/Overlay/index.js +1 -1
  175. package/dist/Overlay/index.js.map +1 -1
  176. package/dist/RefreshIntervalPicker/RefreshIntervalPicker.d.ts +3 -3
  177. package/dist/RefreshIntervalPicker/RefreshIntervalPicker.d.ts.map +1 -1
  178. package/dist/RefreshIntervalPicker/RefreshIntervalPicker.js +2 -2
  179. package/dist/RefreshIntervalPicker/RefreshIntervalPicker.js.map +1 -1
  180. package/dist/RefreshIntervalPicker/index.js +1 -1
  181. package/dist/RefreshIntervalPicker/index.js.map +1 -1
  182. package/dist/RepeatGrid/RepeatGrid.d.ts +15 -0
  183. package/dist/RepeatGrid/RepeatGrid.d.ts.map +1 -0
  184. package/dist/RepeatGrid/RepeatGrid.js +68 -0
  185. package/dist/RepeatGrid/RepeatGrid.js.map +1 -0
  186. package/dist/RepeatGrid/index.d.ts +2 -0
  187. package/dist/RepeatGrid/index.d.ts.map +1 -0
  188. package/dist/{cjs/model/types.js → RepeatGrid/index.js} +3 -4
  189. package/dist/RepeatGrid/index.js.map +1 -0
  190. package/dist/SettingsAutocomplete/SettingsAutocomplete.d.ts +2 -2
  191. package/dist/SettingsAutocomplete/SettingsAutocomplete.d.ts.map +1 -1
  192. package/dist/SettingsAutocomplete/SettingsAutocomplete.js +2 -2
  193. package/dist/SettingsAutocomplete/SettingsAutocomplete.js.map +1 -1
  194. package/dist/SettingsAutocomplete/index.js +1 -1
  195. package/dist/SettingsAutocomplete/index.js.map +1 -1
  196. package/dist/SortSelector/SortSelector.d.ts +1 -1
  197. package/dist/SortSelector/SortSelector.d.ts.map +1 -1
  198. package/dist/SortSelector/SortSelector.js +2 -2
  199. package/dist/SortSelector/SortSelector.js.map +1 -1
  200. package/dist/SortSelector/SortSelectorButtons.d.ts +3 -3
  201. package/dist/SortSelector/SortSelectorButtons.d.ts.map +1 -1
  202. package/dist/SortSelector/SortSelectorButtons.js +2 -2
  203. package/dist/SortSelector/SortSelectorButtons.js.map +1 -1
  204. package/dist/SortSelector/index.js +2 -2
  205. package/dist/SortSelector/index.js.map +1 -1
  206. package/dist/Table/InnerTable.d.ts +2 -3
  207. package/dist/Table/InnerTable.d.ts.map +1 -1
  208. package/dist/Table/InnerTable.js +3 -3
  209. package/dist/Table/InnerTable.js.map +1 -1
  210. package/dist/Table/Table.d.ts +2 -2
  211. package/dist/Table/Table.d.ts.map +1 -1
  212. package/dist/Table/Table.js +7 -7
  213. package/dist/Table/Table.js.map +1 -1
  214. package/dist/Table/TableBody.d.ts +1 -2
  215. package/dist/Table/TableBody.d.ts.map +1 -1
  216. package/dist/Table/TableBody.js +3 -3
  217. package/dist/Table/TableBody.js.map +1 -1
  218. package/dist/Table/TableCell.d.ts +3 -3
  219. package/dist/Table/TableCell.d.ts.map +1 -1
  220. package/dist/Table/TableCell.js +5 -5
  221. package/dist/Table/TableCell.js.map +1 -1
  222. package/dist/Table/TableCheckbox.d.ts +3 -3
  223. package/dist/Table/TableCheckbox.d.ts.map +1 -1
  224. package/dist/Table/TableCheckbox.js +2 -2
  225. package/dist/Table/TableCheckbox.js.map +1 -1
  226. package/dist/Table/TableFoot.d.ts +1 -2
  227. package/dist/Table/TableFoot.d.ts.map +1 -1
  228. package/dist/Table/TableFoot.js +3 -3
  229. package/dist/Table/TableFoot.js.map +1 -1
  230. package/dist/Table/TableHead.d.ts +1 -2
  231. package/dist/Table/TableHead.d.ts.map +1 -1
  232. package/dist/Table/TableHead.js +3 -3
  233. package/dist/Table/TableHead.js.map +1 -1
  234. package/dist/Table/TableHeaderCell.d.ts +3 -3
  235. package/dist/Table/TableHeaderCell.d.ts.map +1 -1
  236. package/dist/Table/TableHeaderCell.js +2 -2
  237. package/dist/Table/TableHeaderCell.js.map +1 -1
  238. package/dist/Table/TableRow.d.ts +2 -3
  239. package/dist/Table/TableRow.d.ts.map +1 -1
  240. package/dist/Table/TableRow.js +3 -3
  241. package/dist/Table/TableRow.js.map +1 -1
  242. package/dist/Table/TableToolbar.d.ts +2 -2
  243. package/dist/Table/TableToolbar.d.ts.map +1 -1
  244. package/dist/Table/TableToolbar.js +8 -8
  245. package/dist/Table/TableToolbar.js.map +1 -1
  246. package/dist/Table/VirtualizedTable.d.ts +4 -4
  247. package/dist/Table/VirtualizedTable.d.ts.map +1 -1
  248. package/dist/Table/VirtualizedTable.js +14 -14
  249. package/dist/Table/VirtualizedTable.js.map +1 -1
  250. package/dist/Table/VirtualizedTableContainer.d.ts +1 -2
  251. package/dist/Table/VirtualizedTableContainer.d.ts.map +1 -1
  252. package/dist/Table/VirtualizedTableContainer.js +4 -4
  253. package/dist/Table/VirtualizedTableContainer.js.map +1 -1
  254. package/dist/Table/hooks/useFuzzySearch.d.ts +3 -3
  255. package/dist/Table/hooks/useFuzzySearch.d.ts.map +1 -1
  256. package/dist/Table/hooks/useFuzzySearch.js +3 -3
  257. package/dist/Table/hooks/useFuzzySearch.js.map +1 -1
  258. package/dist/Table/hooks/useTableKeyboardNav.d.ts +1 -1
  259. package/dist/Table/hooks/useTableKeyboardNav.d.ts.map +1 -1
  260. package/dist/Table/hooks/useTableKeyboardNav.js +1 -1
  261. package/dist/Table/hooks/useTableKeyboardNav.js.map +1 -1
  262. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.d.ts +3 -3
  263. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.d.ts.map +1 -1
  264. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.js +1 -1
  265. package/dist/Table/hooks/useVirtualizedTableKeyboardNav.js.map +1 -1
  266. package/dist/Table/index.js +2 -2
  267. package/dist/Table/index.js.map +1 -1
  268. package/dist/Table/model/table-model.d.ts +5 -5
  269. package/dist/Table/model/table-model.d.ts.map +1 -1
  270. package/dist/Table/model/table-model.js.map +1 -1
  271. package/dist/ThresholdsEditor/ThresholdInput.d.ts +2 -2
  272. package/dist/ThresholdsEditor/ThresholdInput.d.ts.map +1 -1
  273. package/dist/ThresholdsEditor/ThresholdInput.js +4 -4
  274. package/dist/ThresholdsEditor/ThresholdInput.js.map +1 -1
  275. package/dist/ThresholdsEditor/ThresholdsEditor.d.ts +2 -2
  276. package/dist/ThresholdsEditor/ThresholdsEditor.d.ts.map +1 -1
  277. package/dist/ThresholdsEditor/ThresholdsEditor.js +10 -10
  278. package/dist/ThresholdsEditor/ThresholdsEditor.js.map +1 -1
  279. package/dist/ThresholdsEditor/index.js +1 -1
  280. package/dist/ThresholdsEditor/index.js.map +1 -1
  281. package/dist/TimeRangeSelector/DateTimeRangePicker.d.ts +2 -2
  282. package/dist/TimeRangeSelector/DateTimeRangePicker.d.ts.map +1 -1
  283. package/dist/TimeRangeSelector/DateTimeRangePicker.js +8 -8
  284. package/dist/TimeRangeSelector/DateTimeRangePicker.js.map +1 -1
  285. package/dist/TimeRangeSelector/TimeRangeSelector.d.ts +4 -4
  286. package/dist/TimeRangeSelector/TimeRangeSelector.d.ts.map +1 -1
  287. package/dist/TimeRangeSelector/TimeRangeSelector.js +11 -11
  288. package/dist/TimeRangeSelector/TimeRangeSelector.js.map +1 -1
  289. package/dist/TimeRangeSelector/index.js +2 -2
  290. package/dist/TimeRangeSelector/index.js.map +1 -1
  291. package/dist/TimeRangeSelector/utils.d.ts +1 -1
  292. package/dist/TimeRangeSelector/utils.d.ts.map +1 -1
  293. package/dist/TimeRangeSelector/utils.js +3 -3
  294. package/dist/TimeRangeSelector/utils.js.map +1 -1
  295. package/dist/TimeSeriesTooltip/SeriesInfo.d.ts +1 -1
  296. package/dist/TimeSeriesTooltip/SeriesInfo.d.ts.map +1 -1
  297. package/dist/TimeSeriesTooltip/SeriesInfo.js +4 -4
  298. package/dist/TimeSeriesTooltip/SeriesInfo.js.map +1 -1
  299. package/dist/TimeSeriesTooltip/SeriesLabelsStack.d.ts +1 -1
  300. package/dist/TimeSeriesTooltip/SeriesLabelsStack.d.ts.map +1 -1
  301. package/dist/TimeSeriesTooltip/SeriesLabelsStack.js +2 -2
  302. package/dist/TimeSeriesTooltip/SeriesLabelsStack.js.map +1 -1
  303. package/dist/TimeSeriesTooltip/SeriesMarker.d.ts +2 -2
  304. package/dist/TimeSeriesTooltip/SeriesMarker.d.ts.map +1 -1
  305. package/dist/TimeSeriesTooltip/SeriesMarker.js +3 -3
  306. package/dist/TimeSeriesTooltip/SeriesMarker.js.map +1 -1
  307. package/dist/TimeSeriesTooltip/TimeChartTooltip.d.ts +5 -5
  308. package/dist/TimeSeriesTooltip/TimeChartTooltip.d.ts.map +1 -1
  309. package/dist/TimeSeriesTooltip/TimeChartTooltip.js +8 -8
  310. package/dist/TimeSeriesTooltip/TimeChartTooltip.js.map +1 -1
  311. package/dist/TimeSeriesTooltip/TooltipContent.d.ts +2 -2
  312. package/dist/TimeSeriesTooltip/TooltipContent.d.ts.map +1 -1
  313. package/dist/TimeSeriesTooltip/TooltipContent.js +3 -3
  314. package/dist/TimeSeriesTooltip/TooltipContent.js.map +1 -1
  315. package/dist/TimeSeriesTooltip/TooltipHeader.d.ts +1 -2
  316. package/dist/TimeSeriesTooltip/TooltipHeader.d.ts.map +1 -1
  317. package/dist/TimeSeriesTooltip/TooltipHeader.js +6 -6
  318. package/dist/TimeSeriesTooltip/TooltipHeader.js.map +1 -1
  319. package/dist/TimeSeriesTooltip/index.js +10 -10
  320. package/dist/TimeSeriesTooltip/index.js.map +1 -1
  321. package/dist/TimeSeriesTooltip/nearby-series.d.ts +5 -5
  322. package/dist/TimeSeriesTooltip/nearby-series.d.ts.map +1 -1
  323. package/dist/TimeSeriesTooltip/nearby-series.js +4 -4
  324. package/dist/TimeSeriesTooltip/nearby-series.js.map +1 -1
  325. package/dist/TimeSeriesTooltip/tooltip-model.d.ts +2 -2
  326. package/dist/TimeSeriesTooltip/tooltip-model.d.ts.map +1 -1
  327. package/dist/TimeSeriesTooltip/tooltip-model.js +1 -1
  328. package/dist/TimeSeriesTooltip/tooltip-model.js.map +1 -1
  329. package/dist/TimeSeriesTooltip/utils.d.ts +4 -4
  330. package/dist/TimeSeriesTooltip/utils.d.ts.map +1 -1
  331. package/dist/TimeSeriesTooltip/utils.js +1 -1
  332. package/dist/TimeSeriesTooltip/utils.js.map +1 -1
  333. package/dist/TimeZoneSelector.d.ts +3 -3
  334. package/dist/TimeZoneSelector.d.ts.map +1 -1
  335. package/dist/TimeZoneSelector.js +8 -5
  336. package/dist/TimeZoneSelector.js.map +1 -1
  337. package/dist/ToolbarIconButton/ToolbarIconButton.d.ts +1 -2
  338. package/dist/ToolbarIconButton/ToolbarIconButton.d.ts.map +1 -1
  339. package/dist/ToolbarIconButton/ToolbarIconButton.js +3 -3
  340. package/dist/ToolbarIconButton/ToolbarIconButton.js.map +1 -1
  341. package/dist/ToolbarIconButton/index.js +1 -1
  342. package/dist/ToolbarIconButton/index.js.map +1 -1
  343. package/dist/TransformsEditor/TransformEditor.d.ts +3 -3
  344. package/dist/TransformsEditor/TransformEditor.d.ts.map +1 -1
  345. package/dist/TransformsEditor/TransformEditor.js +3 -3
  346. package/dist/TransformsEditor/TransformEditor.js.map +1 -1
  347. package/dist/TransformsEditor/TransformEditorContainer.d.ts +2 -2
  348. package/dist/TransformsEditor/TransformEditorContainer.d.ts.map +1 -1
  349. package/dist/TransformsEditor/TransformEditorContainer.js +8 -8
  350. package/dist/TransformsEditor/TransformEditorContainer.js.map +1 -1
  351. package/dist/TransformsEditor/TransformsEditor.d.ts +3 -3
  352. package/dist/TransformsEditor/TransformsEditor.d.ts.map +1 -1
  353. package/dist/TransformsEditor/TransformsEditor.js +5 -5
  354. package/dist/TransformsEditor/TransformsEditor.js.map +1 -1
  355. package/dist/TransformsEditor/index.js +1 -1
  356. package/dist/TransformsEditor/index.js.map +1 -1
  357. package/dist/ValueMappingEditor/ValueMappingEditor.d.ts +3 -3
  358. package/dist/ValueMappingEditor/ValueMappingEditor.d.ts.map +1 -1
  359. package/dist/ValueMappingEditor/ValueMappingEditor.js +5 -5
  360. package/dist/ValueMappingEditor/ValueMappingEditor.js.map +1 -1
  361. package/dist/ValueMappingEditor/ValueMappingsEditor.d.ts +2 -2
  362. package/dist/ValueMappingEditor/ValueMappingsEditor.d.ts.map +1 -1
  363. package/dist/ValueMappingEditor/ValueMappingsEditor.js +4 -4
  364. package/dist/ValueMappingEditor/ValueMappingsEditor.js.map +1 -1
  365. package/dist/ValueMappingEditor/index.js +1 -1
  366. package/dist/ValueMappingEditor/index.js.map +1 -1
  367. package/dist/YAxisLabel.d.ts +1 -1
  368. package/dist/YAxisLabel.d.ts.map +1 -1
  369. package/dist/YAxisLabel.js +1 -1
  370. package/dist/YAxisLabel.js.map +1 -1
  371. package/dist/context/ChartsProvider.d.ts +4 -3
  372. package/dist/context/ChartsProvider.d.ts.map +1 -1
  373. package/dist/context/ChartsProvider.js +2 -2
  374. package/dist/context/ChartsProvider.js.map +1 -1
  375. package/dist/context/ItemActionsProvider.d.ts +1 -1
  376. package/dist/context/ItemActionsProvider.d.ts.map +1 -1
  377. package/dist/context/ItemActionsProvider.js +2 -2
  378. package/dist/context/ItemActionsProvider.js.map +1 -1
  379. package/dist/context/SelectionProvider.d.ts +1 -1
  380. package/dist/context/SelectionProvider.d.ts.map +1 -1
  381. package/dist/context/SelectionProvider.js +2 -2
  382. package/dist/context/SelectionProvider.js.map +1 -1
  383. package/dist/context/SnackbarProvider.d.ts +2 -1
  384. package/dist/context/SnackbarProvider.d.ts.map +1 -1
  385. package/dist/context/SnackbarProvider.js +3 -3
  386. package/dist/context/SnackbarProvider.js.map +1 -1
  387. package/dist/context/TimeZoneProvider.d.ts +2 -1
  388. package/dist/context/TimeZoneProvider.d.ts.map +1 -1
  389. package/dist/context/TimeZoneProvider.js +3 -3
  390. package/dist/context/TimeZoneProvider.js.map +1 -1
  391. package/dist/context/index.js +5 -5
  392. package/dist/context/index.js.map +1 -1
  393. package/dist/controls/TextField.d.ts +1 -2
  394. package/dist/controls/TextField.d.ts.map +1 -1
  395. package/dist/controls/TextField.js +4 -4
  396. package/dist/controls/TextField.js.map +1 -1
  397. package/dist/controls/index.js +1 -1
  398. package/dist/controls/index.js.map +1 -1
  399. package/dist/index.d.ts +1 -0
  400. package/dist/index.d.ts.map +1 -1
  401. package/dist/index.js +39 -38
  402. package/dist/index.js.map +1 -1
  403. package/dist/model/action.d.ts +1 -1
  404. package/dist/model/action.d.ts.map +1 -1
  405. package/dist/model/action.js.map +1 -1
  406. package/dist/model/bits.d.ts +1 -1
  407. package/dist/model/bits.d.ts.map +1 -1
  408. package/dist/model/bits.js +4 -4
  409. package/dist/model/bits.js.map +1 -1
  410. package/dist/model/bytes.d.ts +1 -1
  411. package/dist/model/bytes.d.ts.map +1 -1
  412. package/dist/model/bytes.js +4 -4
  413. package/dist/model/bytes.js.map +1 -1
  414. package/dist/model/currency.d.ts +1 -1
  415. package/dist/model/currency.d.ts.map +1 -1
  416. package/dist/model/currency.js +4 -4
  417. package/dist/model/currency.js.map +1 -1
  418. package/dist/model/date.d.ts +1 -1
  419. package/dist/model/date.d.ts.map +1 -1
  420. package/dist/model/date.js.map +1 -1
  421. package/dist/model/decimal.d.ts +1 -1
  422. package/dist/model/decimal.d.ts.map +1 -1
  423. package/dist/model/decimal.js +3 -3
  424. package/dist/model/decimal.js.map +1 -1
  425. package/dist/model/formatterCache.js.map +1 -1
  426. package/dist/model/graph.d.ts +3 -3
  427. package/dist/model/graph.d.ts.map +1 -1
  428. package/dist/model/graph.js.map +1 -1
  429. package/dist/model/index.js +21 -21
  430. package/dist/model/index.js.map +1 -1
  431. package/dist/model/percent.d.ts +1 -1
  432. package/dist/model/percent.d.ts.map +1 -1
  433. package/dist/model/percent.js +3 -3
  434. package/dist/model/percent.js.map +1 -1
  435. package/dist/model/temperature.d.ts +1 -1
  436. package/dist/model/temperature.d.ts.map +1 -1
  437. package/dist/model/temperature.js +3 -3
  438. package/dist/model/temperature.js.map +1 -1
  439. package/dist/model/theme.d.ts +1 -1
  440. package/dist/model/theme.d.ts.map +1 -1
  441. package/dist/model/theme.js.map +1 -1
  442. package/dist/model/throughput.d.ts +1 -1
  443. package/dist/model/throughput.d.ts.map +1 -1
  444. package/dist/model/throughput.js +5 -5
  445. package/dist/model/throughput.js.map +1 -1
  446. package/dist/model/time.d.ts +1 -1
  447. package/dist/model/time.d.ts.map +1 -1
  448. package/dist/model/time.js +3 -3
  449. package/dist/model/time.js.map +1 -1
  450. package/dist/model/timeOption.d.ts +1 -1
  451. package/dist/model/timeOption.d.ts.map +1 -1
  452. package/dist/model/timeOption.js +2 -2
  453. package/dist/model/timeOption.js.map +1 -1
  454. package/dist/model/types.d.ts +3 -3
  455. package/dist/model/types.d.ts.map +1 -1
  456. package/dist/model/types.js.map +1 -1
  457. package/dist/model/units.d.ts +10 -10
  458. package/dist/model/units.d.ts.map +1 -1
  459. package/dist/model/units.js +9 -9
  460. package/dist/model/units.js.map +1 -1
  461. package/dist/test/index.js +1 -1
  462. package/dist/test/index.js.map +1 -1
  463. package/dist/test/render.d.ts +2 -2
  464. package/dist/test/render.d.ts.map +1 -1
  465. package/dist/test/render.js +2 -2
  466. package/dist/test/render.js.map +1 -1
  467. package/dist/test/setup-tests.d.ts +1 -1
  468. package/dist/test/setup-tests.d.ts.map +1 -1
  469. package/dist/test/setup-tests.js +3 -2
  470. package/dist/test/setup-tests.js.map +1 -1
  471. package/dist/test-utils/index.js +1 -1
  472. package/dist/test-utils/index.js.map +1 -1
  473. package/dist/test-utils/theme.d.ts +2 -2
  474. package/dist/test-utils/theme.d.ts.map +1 -1
  475. package/dist/test-utils/theme.js +2 -2
  476. package/dist/test-utils/theme.js.map +1 -1
  477. package/dist/theme/component-overrides/alert.d.ts +1 -1
  478. package/dist/theme/component-overrides/alert.d.ts.map +1 -1
  479. package/dist/theme/component-overrides/alert.js +1 -1
  480. package/dist/theme/component-overrides/alert.js.map +1 -1
  481. package/dist/theme/component-overrides/paper.d.ts +1 -1
  482. package/dist/theme/component-overrides/paper.d.ts.map +1 -1
  483. package/dist/theme/component-overrides/paper.js.map +1 -1
  484. package/dist/theme/index.d.ts +1 -1
  485. package/dist/theme/index.d.ts.map +1 -1
  486. package/dist/theme/index.js +2 -2
  487. package/dist/theme/index.js.map +1 -1
  488. package/dist/theme/palette/background.d.ts +2 -2
  489. package/dist/theme/palette/background.d.ts.map +1 -1
  490. package/dist/theme/palette/background.js +1 -1
  491. package/dist/theme/palette/background.js.map +1 -1
  492. package/dist/theme/palette/colors/blue.d.ts +1 -1
  493. package/dist/theme/palette/colors/blue.d.ts.map +1 -1
  494. package/dist/theme/palette/colors/blue.js.map +1 -1
  495. package/dist/theme/palette/colors/green.d.ts +1 -1
  496. package/dist/theme/palette/colors/green.d.ts.map +1 -1
  497. package/dist/theme/palette/colors/green.js.map +1 -1
  498. package/dist/theme/palette/colors/grey.d.ts +1 -1
  499. package/dist/theme/palette/colors/grey.d.ts.map +1 -1
  500. package/dist/theme/palette/colors/grey.js.map +1 -1
  501. package/dist/theme/palette/colors/index.js +8 -8
  502. package/dist/theme/palette/colors/index.js.map +1 -1
  503. package/dist/theme/palette/colors/orange.d.ts +1 -1
  504. package/dist/theme/palette/colors/orange.d.ts.map +1 -1
  505. package/dist/theme/palette/colors/orange.js.map +1 -1
  506. package/dist/theme/palette/colors/purple.d.ts +1 -1
  507. package/dist/theme/palette/colors/purple.d.ts.map +1 -1
  508. package/dist/theme/palette/colors/purple.js.map +1 -1
  509. package/dist/theme/palette/colors/red.d.ts +1 -1
  510. package/dist/theme/palette/colors/red.d.ts.map +1 -1
  511. package/dist/theme/palette/colors/red.js.map +1 -1
  512. package/dist/theme/palette/error.d.ts +1 -1
  513. package/dist/theme/palette/error.d.ts.map +1 -1
  514. package/dist/theme/palette/error.js +1 -1
  515. package/dist/theme/palette/error.js.map +1 -1
  516. package/dist/theme/palette/grey.d.ts +2 -2
  517. package/dist/theme/palette/grey.d.ts.map +1 -1
  518. package/dist/theme/palette/grey.js +1 -1
  519. package/dist/theme/palette/grey.js.map +1 -1
  520. package/dist/theme/palette/index.js +1 -1
  521. package/dist/theme/palette/index.js.map +1 -1
  522. package/dist/theme/palette/palette-options.d.ts +1 -1
  523. package/dist/theme/palette/palette-options.d.ts.map +1 -1
  524. package/dist/theme/palette/palette-options.js +10 -10
  525. package/dist/theme/palette/palette-options.js.map +1 -1
  526. package/dist/theme/palette/primary.d.ts +1 -1
  527. package/dist/theme/palette/primary.d.ts.map +1 -1
  528. package/dist/theme/palette/primary.js +1 -1
  529. package/dist/theme/palette/primary.js.map +1 -1
  530. package/dist/theme/palette/secondary.d.ts +1 -1
  531. package/dist/theme/palette/secondary.d.ts.map +1 -1
  532. package/dist/theme/palette/secondary.js +1 -1
  533. package/dist/theme/palette/secondary.js.map +1 -1
  534. package/dist/theme/palette/success.d.ts +1 -1
  535. package/dist/theme/palette/success.d.ts.map +1 -1
  536. package/dist/theme/palette/success.js +1 -1
  537. package/dist/theme/palette/success.js.map +1 -1
  538. package/dist/theme/palette/text.d.ts +2 -2
  539. package/dist/theme/palette/text.d.ts.map +1 -1
  540. package/dist/theme/palette/text.js +1 -1
  541. package/dist/theme/palette/text.js.map +1 -1
  542. package/dist/theme/palette/warning.d.ts +1 -1
  543. package/dist/theme/palette/warning.d.ts.map +1 -1
  544. package/dist/theme/palette/warning.js +1 -1
  545. package/dist/theme/palette/warning.js.map +1 -1
  546. package/dist/theme/theme.d.ts +2 -1
  547. package/dist/theme/theme.d.ts.map +1 -1
  548. package/dist/theme/theme.js +5 -5
  549. package/dist/theme/theme.js.map +1 -1
  550. package/dist/theme/types/ThemeExtension.d.js +2 -1
  551. package/dist/theme/types/ThemeExtension.d.js.map +1 -1
  552. package/dist/theme/typography.d.ts +1 -1
  553. package/dist/theme/typography.d.ts.map +1 -1
  554. package/dist/theme/typography.js +6 -6
  555. package/dist/theme/typography.js.map +1 -1
  556. package/dist/utils/axis.d.ts +1 -1
  557. package/dist/utils/axis.d.ts.map +1 -1
  558. package/dist/utils/axis.js +2 -2
  559. package/dist/utils/axis.js.map +1 -1
  560. package/dist/utils/browser-storage.js +1 -1
  561. package/dist/utils/browser-storage.js.map +1 -1
  562. package/dist/utils/chart-actions.d.ts +3 -3
  563. package/dist/utils/chart-actions.d.ts.map +1 -1
  564. package/dist/utils/chart-actions.js +1 -1
  565. package/dist/utils/chart-actions.js.map +1 -1
  566. package/dist/utils/combine-sx.d.ts +1 -1
  567. package/dist/utils/combine-sx.d.ts.map +1 -1
  568. package/dist/utils/combine-sx.js.map +1 -1
  569. package/dist/utils/component-ids.js +1 -1
  570. package/dist/utils/data-field-interpolation.js +1 -1
  571. package/dist/utils/data-field-interpolation.js.map +1 -1
  572. package/dist/utils/format.d.ts.map +1 -1
  573. package/dist/utils/format.js +8 -3
  574. package/dist/utils/format.js.map +1 -1
  575. package/dist/utils/index.js +19 -19
  576. package/dist/utils/index.js.map +1 -1
  577. package/dist/utils/mathjs.d.ts +1 -1
  578. package/dist/utils/mathjs.js +1 -1
  579. package/dist/utils/memo.d.ts +1 -1
  580. package/dist/utils/memo.d.ts.map +1 -1
  581. package/dist/utils/memo.js +2 -2
  582. package/dist/utils/memo.js.map +1 -1
  583. package/dist/utils/request-interpolation.d.ts +2 -2
  584. package/dist/utils/request-interpolation.d.ts.map +1 -1
  585. package/dist/utils/request-interpolation.js +2 -2
  586. package/dist/utils/request-interpolation.js.map +1 -1
  587. package/dist/utils/selection-interpolation.d.ts +2 -2
  588. package/dist/utils/selection-interpolation.d.ts.map +1 -1
  589. package/dist/utils/selection-interpolation.js +2 -2
  590. package/dist/utils/selection-interpolation.js.map +1 -1
  591. package/dist/utils/text.d.ts +1 -1
  592. package/dist/utils/text.d.ts.map +1 -1
  593. package/dist/utils/text.js.map +1 -1
  594. package/dist/utils/theme-gen.d.ts +2 -2
  595. package/dist/utils/theme-gen.d.ts.map +1 -1
  596. package/dist/utils/theme-gen.js +1 -1
  597. package/dist/utils/theme-gen.js.map +1 -1
  598. package/dist/utils/time-series-data.d.ts +1 -1
  599. package/dist/utils/time-series-data.d.ts.map +1 -1
  600. package/dist/utils/time-series-data.js +1 -1
  601. package/dist/utils/time-series-data.js.map +1 -1
  602. package/dist/utils/trace-data.d.ts +2 -2
  603. package/dist/utils/trace-data.d.ts.map +1 -1
  604. package/dist/utils/trace-data.js.map +1 -1
  605. package/dist/utils/transform-data.d.ts +1 -1
  606. package/dist/utils/transform-data.d.ts.map +1 -1
  607. package/dist/utils/transform-data.js.map +1 -1
  608. package/dist/utils/value-mapping.d.ts +1 -1
  609. package/dist/utils/value-mapping.d.ts.map +1 -1
  610. package/dist/utils/value-mapping.js +1 -1
  611. package/dist/utils/value-mapping.js.map +1 -1
  612. package/dist/utils/variable-interpolation.d.ts +9 -1
  613. package/dist/utils/variable-interpolation.d.ts.map +1 -1
  614. package/dist/utils/variable-interpolation.js +12 -0
  615. package/dist/utils/variable-interpolation.js.map +1 -1
  616. package/package.json +10 -10
  617. package/dist/cjs/AlignSelector/AlignSelector.js +0 -50
  618. package/dist/cjs/AlignSelector/index.js +0 -30
  619. package/dist/cjs/ColorPicker/ColorPicker.js +0 -106
  620. package/dist/cjs/ColorPicker/OptionsColorPicker.js +0 -92
  621. package/dist/cjs/ColorPicker/index.js +0 -31
  622. package/dist/cjs/ContentWithLegend/ContentWithLegend.js +0 -71
  623. package/dist/cjs/ContentWithLegend/index.js +0 -30
  624. package/dist/cjs/ContentWithLegend/model/content-with-legend-model.js +0 -122
  625. package/dist/cjs/DensitySelector/DensitySelector.js +0 -54
  626. package/dist/cjs/DensitySelector/index.js +0 -30
  627. package/dist/cjs/Dialog/Dialog.js +0 -102
  628. package/dist/cjs/Dialog/DiscardChangesConfirmationDialog.js +0 -55
  629. package/dist/cjs/Dialog/index.js +0 -31
  630. package/dist/cjs/DragAndDrop/DragAndDropList.js +0 -159
  631. package/dist/cjs/DragAndDrop/DragButton.js +0 -123
  632. package/dist/cjs/DragAndDrop/DropIndicator.js +0 -52
  633. package/dist/cjs/DragAndDrop/index.js +0 -32
  634. package/dist/cjs/DragAndDrop/model.js +0 -25
  635. package/dist/cjs/Drawer/Drawer.js +0 -44
  636. package/dist/cjs/Drawer/index.js +0 -30
  637. package/dist/cjs/EChart/EChart.js +0 -203
  638. package/dist/cjs/EChart/index.js +0 -31
  639. package/dist/cjs/EChart/timezone-formatter.js +0 -49
  640. package/dist/cjs/ErrorAlert.js +0 -31
  641. package/dist/cjs/ErrorBoundary.js +0 -24
  642. package/dist/cjs/FontSizeSelector/FontSizeSelector.js +0 -132
  643. package/dist/cjs/FontSizeSelector/index.js +0 -30
  644. package/dist/cjs/FormEditor/FormActions.js +0 -83
  645. package/dist/cjs/FormEditor/index.js +0 -30
  646. package/dist/cjs/FormatControls/FormatControls.js +0 -119
  647. package/dist/cjs/FormatControls/UnitSelector.js +0 -55
  648. package/dist/cjs/FormatControls/index.js +0 -31
  649. package/dist/cjs/InfoTooltip/InfoTooltip.js +0 -86
  650. package/dist/cjs/InfoTooltip/index.js +0 -30
  651. package/dist/cjs/JSONEditor.js +0 -69
  652. package/dist/cjs/Legend/CompactLegend.js +0 -56
  653. package/dist/cjs/Legend/Legend.js +0 -131
  654. package/dist/cjs/Legend/LegendColorBadge.js +0 -39
  655. package/dist/cjs/Legend/ListLegend.js +0 -54
  656. package/dist/cjs/Legend/ListLegendItem.js +0 -84
  657. package/dist/cjs/Legend/TableLegend.js +0 -98
  658. package/dist/cjs/Legend/index.js +0 -31
  659. package/dist/cjs/Legend/legend-model.js +0 -27
  660. package/dist/cjs/LinksEditor/LinkEditorForm.js +0 -95
  661. package/dist/cjs/LinksEditor/index.js +0 -30
  662. package/dist/cjs/ModeSelector/ModeSelector.js +0 -51
  663. package/dist/cjs/ModeSelector/index.js +0 -30
  664. package/dist/cjs/OptionsEditorLayout/OptionsEditorColumn.js +0 -34
  665. package/dist/cjs/OptionsEditorLayout/OptionsEditorControl.js +0 -95
  666. package/dist/cjs/OptionsEditorLayout/OptionsEditorGrid.js +0 -31
  667. package/dist/cjs/OptionsEditorLayout/OptionsEditorGroup.js +0 -59
  668. package/dist/cjs/OptionsEditorLayout/index.js +0 -33
  669. package/dist/cjs/Overlay/Overlay.js +0 -71
  670. package/dist/cjs/Overlay/index.js +0 -30
  671. package/dist/cjs/RefreshIntervalPicker/RefreshIntervalPicker.js +0 -68
  672. package/dist/cjs/RefreshIntervalPicker/index.js +0 -30
  673. package/dist/cjs/SettingsAutocomplete/SettingsAutocomplete.js +0 -82
  674. package/dist/cjs/SettingsAutocomplete/index.js +0 -30
  675. package/dist/cjs/SortSelector/SortSelector.js +0 -50
  676. package/dist/cjs/SortSelector/SortSelectorButtons.js +0 -50
  677. package/dist/cjs/SortSelector/index.js +0 -31
  678. package/dist/cjs/Table/InnerTable.js +0 -47
  679. package/dist/cjs/Table/Table.js +0 -222
  680. package/dist/cjs/Table/TableBody.js +0 -31
  681. package/dist/cjs/Table/TableCell.js +0 -153
  682. package/dist/cjs/Table/TableCheckbox.js +0 -57
  683. package/dist/cjs/Table/TableFoot.js +0 -31
  684. package/dist/cjs/Table/TableHead.js +0 -31
  685. package/dist/cjs/Table/TableHeaderCell.js +0 -93
  686. package/dist/cjs/Table/TableRow.js +0 -37
  687. package/dist/cjs/Table/TableToolbar.js +0 -151
  688. package/dist/cjs/Table/VirtualizedTable.js +0 -284
  689. package/dist/cjs/Table/VirtualizedTableContainer.js +0 -36
  690. package/dist/cjs/Table/hooks/useFuzzySearch.js +0 -67
  691. package/dist/cjs/Table/hooks/useTableKeyboardNav.js +0 -108
  692. package/dist/cjs/Table/hooks/useVirtualizedTableKeyboardNav.js +0 -89
  693. package/dist/cjs/Table/index.js +0 -31
  694. package/dist/cjs/Table/model/table-model.js +0 -138
  695. package/dist/cjs/ThresholdsEditor/ThresholdInput.js +0 -80
  696. package/dist/cjs/ThresholdsEditor/ThresholdsEditor.js +0 -282
  697. package/dist/cjs/ThresholdsEditor/index.js +0 -30
  698. package/dist/cjs/TimeRangeSelector/DateTimeRangePicker.js +0 -204
  699. package/dist/cjs/TimeRangeSelector/TimeRangeSelector.js +0 -271
  700. package/dist/cjs/TimeRangeSelector/index.js +0 -31
  701. package/dist/cjs/TimeRangeSelector/utils.js +0 -72
  702. package/dist/cjs/TimeSeriesTooltip/SeriesInfo.js +0 -98
  703. package/dist/cjs/TimeSeriesTooltip/SeriesLabelsStack.js +0 -107
  704. package/dist/cjs/TimeSeriesTooltip/SeriesMarker.js +0 -41
  705. package/dist/cjs/TimeSeriesTooltip/TimeChartTooltip.js +0 -113
  706. package/dist/cjs/TimeSeriesTooltip/TooltipContent.js +0 -58
  707. package/dist/cjs/TimeSeriesTooltip/TooltipHeader.js +0 -168
  708. package/dist/cjs/TimeSeriesTooltip/index.js +0 -39
  709. package/dist/cjs/TimeSeriesTooltip/nearby-series.js +0 -454
  710. package/dist/cjs/TimeSeriesTooltip/tooltip-model.js +0 -148
  711. package/dist/cjs/TimeSeriesTooltip/types.js +0 -16
  712. package/dist/cjs/TimeSeriesTooltip/utils.js +0 -199
  713. package/dist/cjs/TimeZoneSelector.js +0 -63
  714. package/dist/cjs/ToolbarIconButton/ToolbarIconButton.js +0 -40
  715. package/dist/cjs/ToolbarIconButton/index.js +0 -30
  716. package/dist/cjs/TransformsEditor/TransformEditor.js +0 -297
  717. package/dist/cjs/TransformsEditor/TransformEditorContainer.js +0 -131
  718. package/dist/cjs/TransformsEditor/TransformsEditor.js +0 -103
  719. package/dist/cjs/TransformsEditor/index.js +0 -30
  720. package/dist/cjs/ValueMappingEditor/ValueMappingEditor.js +0 -387
  721. package/dist/cjs/ValueMappingEditor/ValueMappingsEditor.js +0 -131
  722. package/dist/cjs/ValueMappingEditor/index.js +0 -30
  723. package/dist/cjs/YAxisLabel.js +0 -50
  724. package/dist/cjs/context/ChartsProvider.js +0 -114
  725. package/dist/cjs/context/ItemActionsProvider.js +0 -111
  726. package/dist/cjs/context/SelectionProvider.js +0 -128
  727. package/dist/cjs/context/SnackbarProvider.js +0 -126
  728. package/dist/cjs/context/TimeZoneProvider.js +0 -98
  729. package/dist/cjs/context/index.js +0 -34
  730. package/dist/cjs/controls/TextField.js +0 -54
  731. package/dist/cjs/controls/index.js +0 -30
  732. package/dist/cjs/index.js +0 -67
  733. package/dist/cjs/model/action.js +0 -43
  734. package/dist/cjs/model/bits.js +0 -113
  735. package/dist/cjs/model/bytes.js +0 -115
  736. package/dist/cjs/model/constants.js +0 -23
  737. package/dist/cjs/model/currency.js +0 -126
  738. package/dist/cjs/model/date.js +0 -297
  739. package/dist/cjs/model/decimal.js +0 -72
  740. package/dist/cjs/model/formatterCache.js +0 -120
  741. package/dist/cjs/model/graph.js +0 -59
  742. package/dist/cjs/model/index.js +0 -50
  743. package/dist/cjs/model/legend.js +0 -101
  744. package/dist/cjs/model/percent.js +0 -82
  745. package/dist/cjs/model/temperature.js +0 -72
  746. package/dist/cjs/model/theme.js +0 -16
  747. package/dist/cjs/model/thresholds.js +0 -16
  748. package/dist/cjs/model/throughput.js +0 -161
  749. package/dist/cjs/model/time.js +0 -178
  750. package/dist/cjs/model/timeOption.js +0 -34
  751. package/dist/cjs/model/timeZoneOption.js +0 -34
  752. package/dist/cjs/model/transforms.js +0 -29
  753. package/dist/cjs/model/units.js +0 -186
  754. package/dist/cjs/model/utils.js +0 -48
  755. package/dist/cjs/model/value-mapping.js +0 -16
  756. package/dist/cjs/test/index.js +0 -30
  757. package/dist/cjs/test/render.js +0 -38
  758. package/dist/cjs/test/setup-tests.js +0 -20
  759. package/dist/cjs/test-utils/index.js +0 -30
  760. package/dist/cjs/test-utils/theme.js +0 -61
  761. package/dist/cjs/theme/component-overrides/alert.js +0 -104
  762. package/dist/cjs/theme/component-overrides/paper.js +0 -29
  763. package/dist/cjs/theme/index.js +0 -31
  764. package/dist/cjs/theme/palette/background.js +0 -46
  765. package/dist/cjs/theme/palette/colors/blue.js +0 -37
  766. package/dist/cjs/theme/palette/colors/common.js +0 -32
  767. package/dist/cjs/theme/palette/colors/green.js +0 -37
  768. package/dist/cjs/theme/palette/colors/grey.js +0 -37
  769. package/dist/cjs/theme/palette/colors/index.js +0 -37
  770. package/dist/cjs/theme/palette/colors/orange.js +0 -37
  771. package/dist/cjs/theme/palette/colors/purple.js +0 -37
  772. package/dist/cjs/theme/palette/colors/red.js +0 -37
  773. package/dist/cjs/theme/palette/colors/types.js +0 -16
  774. package/dist/cjs/theme/palette/error.js +0 -34
  775. package/dist/cjs/theme/palette/grey.js +0 -50
  776. package/dist/cjs/theme/palette/index.js +0 -30
  777. package/dist/cjs/theme/palette/palette-options.js +0 -61
  778. package/dist/cjs/theme/palette/primary.js +0 -34
  779. package/dist/cjs/theme/palette/secondary.js +0 -34
  780. package/dist/cjs/theme/palette/success.js +0 -34
  781. package/dist/cjs/theme/palette/text.js +0 -44
  782. package/dist/cjs/theme/palette/warning.js +0 -34
  783. package/dist/cjs/theme/theme.js +0 -90
  784. package/dist/cjs/theme/types/ThemeExtension.d.js +0 -17
  785. package/dist/cjs/theme/typography.js +0 -99
  786. package/dist/cjs/utils/axis.js +0 -122
  787. package/dist/cjs/utils/browser-storage.js +0 -62
  788. package/dist/cjs/utils/chart-actions.js +0 -180
  789. package/dist/cjs/utils/combine-sx.js +0 -31
  790. package/dist/cjs/utils/component-ids.js +0 -33
  791. package/dist/cjs/utils/data-field-interpolation.js +0 -230
  792. package/dist/cjs/utils/format.js +0 -127
  793. package/dist/cjs/utils/index.js +0 -48
  794. package/dist/cjs/utils/mathjs.js +0 -38
  795. package/dist/cjs/utils/memo.js +0 -64
  796. package/dist/cjs/utils/regexp.js +0 -54
  797. package/dist/cjs/utils/request-interpolation.js +0 -99
  798. package/dist/cjs/utils/selection-interpolation.js +0 -69
  799. package/dist/cjs/utils/text.js +0 -52
  800. package/dist/cjs/utils/theme-gen.js +0 -274
  801. package/dist/cjs/utils/time-series-data.js +0 -141
  802. package/dist/cjs/utils/trace-data.js +0 -25
  803. package/dist/cjs/utils/transform-data.js +0 -157
  804. package/dist/cjs/utils/types.js +0 -16
  805. package/dist/cjs/utils/value-mapping.js +0 -105
  806. package/dist/cjs/utils/variable-interpolation.js +0 -198
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Table/TableHeaderCell.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TableSortLabel, Typography, tableSortLabelClasses, Box, Divider } from '@mui/material';\nimport { ReactElement } from 'react';\nimport { TableCell, TableCellProps } from './TableCell';\nimport { SortDirection } from './model/table-model';\n\nexport interface TableHeaderCellProps extends TableCellProps {\n /**\n * Handler called when a sort event is triggered.\n * When specified, the header will include sorting interactions and indicators.\n */\n onSort?: ((event: unknown) => void) | undefined;\n\n /**\n * The current direction the header is sorted.\n */\n sortDirection?: SortDirection;\n\n /**\n * The next direction the header will be sorted when another sort action\n * is triggered via click/keyboard. This impacts some UI interactions (e.g.\n * the direction of the sort arrow on hover f the column is currently\n * unsorted.)\n */\n nextSortDirection?: SortDirection;\n\n /**\n * Configuration for column resizing interactions.\n * When included, the header will include a resize handle (divider).\n */\n resizeConfig?: ResizeConfig;\n}\n\nexport interface ResizeConfig {\n /**\n * Handler called when a column resize event is triggered.\n */\n resizeHandler: (event: unknown) => void;\n /**\n * Handler called when a column reset size event is triggered (double-click on the resize handle).\n */\n resetSizeHandler: () => void;\n\n /**\n * Indicates whether the column is currently being resized.\n */\n isResizing: boolean;\n}\n\nexport function TableHeaderCell({\n onSort,\n sortDirection,\n nextSortDirection,\n children,\n resizeConfig,\n ...cellProps\n}: TableHeaderCellProps): ReactElement {\n const showSortLabel = !!onSort;\n\n const headerText = (\n <Typography noWrap variant=\"inherit\" component=\"div\" color=\"inherit\">\n {children}\n </Typography>\n );\n\n const isActive = !!sortDirection;\n const direction = isActive ? sortDirection : nextSortDirection;\n\n return (\n <TableCell {...cellProps}>\n {showSortLabel ? (\n <TableSortLabel\n onClick={onSort}\n direction={direction}\n active={isActive}\n sx={{\n // Overrides a default vertical alignment in the CSS that changes\n // the header vertical rhythm in a way that's inconsistent with\n // non-sorting headers.\n verticalAlign: 'unset',\n\n // Makes it possible to ellipsize the text if it's too long.\n maxWidth: '100%',\n\n // Make the arrow visible when focused using the keyboard to assist\n // with a11y.\n '&:focus-visible': {\n [`& .${tableSortLabelClasses.icon}`]: {\n opacity: isActive ? 1 : 0.5,\n },\n },\n }}\n >\n {headerText}\n </TableSortLabel>\n ) : (\n headerText\n )}\n {resizeConfig && (\n <Box\n onMouseDown={(e) => {\n if (e.detail === 2) {\n resizeConfig.resetSizeHandler();\n return;\n }\n resizeConfig.resizeHandler(e);\n }}\n onTouchStart={resizeConfig.resizeHandler}\n sx={{\n position: 'absolute',\n height: '100%',\n top: 0,\n right: '4px',\n cursor: 'col-resize',\n }}\n >\n <Divider\n flexItem\n orientation=\"vertical\"\n sx={(theme) => ({\n backgroundColor: resizeConfig.isResizing ? theme.palette.action.active : theme.palette.divider,\n borderRadius: '2px',\n borderWidth: '2px',\n height: '100%',\n touchAction: 'none',\n transform: 'translateX(4px)',\n userSelect: 'none',\n })}\n />\n </Box>\n )}\n </TableCell>\n );\n}\n"],"names":["TableSortLabel","Typography","tableSortLabelClasses","Box","Divider","TableCell","TableHeaderCell","onSort","sortDirection","nextSortDirection","children","resizeConfig","cellProps","showSortLabel","headerText","noWrap","variant","component","color","isActive","direction","onClick","active","sx","verticalAlign","maxWidth","icon","opacity","onMouseDown","e","detail","resetSizeHandler","resizeHandler","onTouchStart","position","height","top","right","cursor","flexItem","orientation","theme","backgroundColor","isResizing","palette","action","divider","borderRadius","borderWidth","touchAction","transform","userSelect"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,cAAc,EAAEC,UAAU,EAAEC,qBAAqB,EAAEC,GAAG,EAAEC,OAAO,QAAQ,gBAAgB;AAEhG,SAASC,SAAS,QAAwB,cAAc;AA8CxD,OAAO,SAASC,gBAAgB,EAC9BC,MAAM,EACNC,aAAa,EACbC,iBAAiB,EACjBC,QAAQ,EACRC,YAAY,EACZ,GAAGC,WACkB;IACrB,MAAMC,gBAAgB,CAAC,CAACN;IAExB,MAAMO,2BACJ,KAACb;QAAWc,MAAM;QAACC,SAAQ;QAAUC,WAAU;QAAMC,OAAM;kBACxDR;;IAIL,MAAMS,WAAW,CAAC,CAACX;IACnB,MAAMY,YAAYD,WAAWX,gBAAgBC;IAE7C,qBACE,MAACJ;QAAW,GAAGO,SAAS;;YACrBC,8BACC,KAACb;gBACCqB,SAASd;gBACTa,WAAWA;gBACXE,QAAQH;gBACRI,IAAI;oBACF,iEAAiE;oBACjE,+DAA+D;oBAC/D,uBAAuB;oBACvBC,eAAe;oBAEf,4DAA4D;oBAC5DC,UAAU;oBAEV,mEAAmE;oBACnE,aAAa;oBACb,mBAAmB;wBACjB,CAAC,CAAC,GAAG,EAAEvB,sBAAsBwB,IAAI,EAAE,CAAC,EAAE;4BACpCC,SAASR,WAAW,IAAI;wBAC1B;oBACF;gBACF;0BAECL;iBAGHA;YAEDH,8BACC,KAACR;gBACCyB,aAAa,CAACC;oBACZ,IAAIA,EAAEC,MAAM,KAAK,GAAG;wBAClBnB,aAAaoB,gBAAgB;wBAC7B;oBACF;oBACApB,aAAaqB,aAAa,CAACH;gBAC7B;gBACAI,cAActB,aAAaqB,aAAa;gBACxCT,IAAI;oBACFW,UAAU;oBACVC,QAAQ;oBACRC,KAAK;oBACLC,OAAO;oBACPC,QAAQ;gBACV;0BAEA,cAAA,KAAClC;oBACCmC,QAAQ;oBACRC,aAAY;oBACZjB,IAAI,CAACkB,QAAW,CAAA;4BACdC,iBAAiB/B,aAAagC,UAAU,GAAGF,MAAMG,OAAO,CAACC,MAAM,CAACvB,MAAM,GAAGmB,MAAMG,OAAO,CAACE,OAAO;4BAC9FC,cAAc;4BACdC,aAAa;4BACbb,QAAQ;4BACRc,aAAa;4BACbC,WAAW;4BACXC,YAAY;wBACd,CAAA;;;;;AAMZ"}
1
+ {"version":3,"sources":["../../src/Table/TableHeaderCell.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TableSortLabel, Typography, tableSortLabelClasses, Box, Divider } from '@mui/material';\nimport type { ReactElement } from 'react';\n\nimport type { SortDirection } from './model/table-model';\nimport type { TableCellProps } from './TableCell';\nimport { TableCell } from './TableCell';\n\nexport interface TableHeaderCellProps extends TableCellProps {\n /**\n * Handler called when a sort event is triggered.\n * When specified, the header will include sorting interactions and indicators.\n */\n onSort?: ((event: unknown) => void) | undefined;\n\n /**\n * The current direction the header is sorted.\n */\n sortDirection?: SortDirection;\n\n /**\n * The next direction the header will be sorted when another sort action\n * is triggered via click/keyboard. This impacts some UI interactions (e.g.\n * the direction of the sort arrow on hover f the column is currently\n * unsorted.)\n */\n nextSortDirection?: SortDirection;\n\n /**\n * Configuration for column resizing interactions.\n * When included, the header will include a resize handle (divider).\n */\n resizeConfig?: ResizeConfig;\n}\n\nexport interface ResizeConfig {\n /**\n * Handler called when a column resize event is triggered.\n */\n resizeHandler: (event: unknown) => void;\n /**\n * Handler called when a column reset size event is triggered (double-click on the resize handle).\n */\n resetSizeHandler: () => void;\n\n /**\n * Indicates whether the column is currently being resized.\n */\n isResizing: boolean;\n}\n\nexport function TableHeaderCell({\n onSort,\n sortDirection,\n nextSortDirection,\n children,\n resizeConfig,\n ...cellProps\n}: TableHeaderCellProps): ReactElement {\n const showSortLabel = !!onSort;\n\n const headerText = (\n <Typography noWrap variant=\"inherit\" component=\"div\" color=\"inherit\">\n {children}\n </Typography>\n );\n\n const isActive = !!sortDirection;\n const direction = isActive ? sortDirection : nextSortDirection;\n\n return (\n <TableCell {...cellProps}>\n {showSortLabel ? (\n <TableSortLabel\n onClick={onSort}\n direction={direction}\n active={isActive}\n sx={{\n // Overrides a default vertical alignment in the CSS that changes\n // the header vertical rhythm in a way that's inconsistent with\n // non-sorting headers.\n verticalAlign: 'unset',\n\n // Makes it possible to ellipsize the text if it's too long.\n maxWidth: '100%',\n\n // Make the arrow visible when focused using the keyboard to assist\n // with a11y.\n '&:focus-visible': {\n [`& .${tableSortLabelClasses.icon}`]: {\n opacity: isActive ? 1 : 0.5,\n },\n },\n }}\n >\n {headerText}\n </TableSortLabel>\n ) : (\n headerText\n )}\n {resizeConfig && (\n <Box\n onMouseDown={(e) => {\n if (e.detail === 2) {\n resizeConfig.resetSizeHandler();\n return;\n }\n resizeConfig.resizeHandler(e);\n }}\n onTouchStart={resizeConfig.resizeHandler}\n sx={{\n position: 'absolute',\n height: '100%',\n top: 0,\n right: '4px',\n cursor: 'col-resize',\n }}\n >\n <Divider\n flexItem\n orientation=\"vertical\"\n sx={(theme) => ({\n backgroundColor: resizeConfig.isResizing ? theme.palette.action.active : theme.palette.divider,\n borderRadius: '2px',\n borderWidth: '2px',\n height: '100%',\n touchAction: 'none',\n transform: 'translateX(4px)',\n userSelect: 'none',\n })}\n />\n </Box>\n )}\n </TableCell>\n );\n}\n"],"names":["TableSortLabel","Typography","tableSortLabelClasses","Box","Divider","TableCell","TableHeaderCell","onSort","sortDirection","nextSortDirection","children","resizeConfig","cellProps","showSortLabel","headerText","noWrap","variant","component","color","isActive","direction","onClick","active","sx","verticalAlign","maxWidth","icon","opacity","onMouseDown","e","detail","resetSizeHandler","resizeHandler","onTouchStart","position","height","top","right","cursor","flexItem","orientation","theme","backgroundColor","isResizing","palette","action","divider","borderRadius","borderWidth","touchAction","transform","userSelect"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,cAAc,EAAEC,UAAU,EAAEC,qBAAqB,EAAEC,GAAG,EAAEC,OAAO,QAAQ,gBAAgB;AAKhG,SAASC,SAAS,QAAQ,iBAAc;AA6CxC,OAAO,SAASC,gBAAgB,EAC9BC,MAAM,EACNC,aAAa,EACbC,iBAAiB,EACjBC,QAAQ,EACRC,YAAY,EACZ,GAAGC,WACkB;IACrB,MAAMC,gBAAgB,CAAC,CAACN;IAExB,MAAMO,2BACJ,KAACb;QAAWc,MAAM;QAACC,SAAQ;QAAUC,WAAU;QAAMC,OAAM;kBACxDR;;IAIL,MAAMS,WAAW,CAAC,CAACX;IACnB,MAAMY,YAAYD,WAAWX,gBAAgBC;IAE7C,qBACE,MAACJ;QAAW,GAAGO,SAAS;;YACrBC,8BACC,KAACb;gBACCqB,SAASd;gBACTa,WAAWA;gBACXE,QAAQH;gBACRI,IAAI;oBACF,iEAAiE;oBACjE,+DAA+D;oBAC/D,uBAAuB;oBACvBC,eAAe;oBAEf,4DAA4D;oBAC5DC,UAAU;oBAEV,mEAAmE;oBACnE,aAAa;oBACb,mBAAmB;wBACjB,CAAC,CAAC,GAAG,EAAEvB,sBAAsBwB,IAAI,EAAE,CAAC,EAAE;4BACpCC,SAASR,WAAW,IAAI;wBAC1B;oBACF;gBACF;0BAECL;iBAGHA;YAEDH,8BACC,KAACR;gBACCyB,aAAa,CAACC;oBACZ,IAAIA,EAAEC,MAAM,KAAK,GAAG;wBAClBnB,aAAaoB,gBAAgB;wBAC7B;oBACF;oBACApB,aAAaqB,aAAa,CAACH;gBAC7B;gBACAI,cAActB,aAAaqB,aAAa;gBACxCT,IAAI;oBACFW,UAAU;oBACVC,QAAQ;oBACRC,KAAK;oBACLC,OAAO;oBACPC,QAAQ;gBACV;0BAEA,cAAA,KAAClC;oBACCmC,QAAQ;oBACRC,aAAY;oBACZjB,IAAI,CAACkB,QAAW,CAAA;4BACdC,iBAAiB/B,aAAagC,UAAU,GAAGF,MAAMG,OAAO,CAACC,MAAM,CAACvB,MAAM,GAAGmB,MAAMG,OAAO,CAACE,OAAO;4BAC9FC,cAAc;4BACdC,aAAa;4BACbb,QAAQ;4BACRc,aAAa;4BACbC,WAAW;4BACXC,YAAY;wBACd,CAAA;;;;;AAMZ"}
@@ -1,6 +1,5 @@
1
- /// <reference types="react" />
2
- import { TableRowProps as MuiTableRowProps } from '@mui/material';
3
- import { TableDensity } from './model/table-model';
1
+ import type { TableRowProps as MuiTableRowProps } from '@mui/material';
2
+ import type { TableDensity } from './model/table-model';
4
3
  interface TableRowProps extends MuiTableRowProps<'div'> {
5
4
  density: TableDensity;
6
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../src/Table/TableRow.tsx"],"names":[],"mappings":";AAaA,OAAO,EAA2B,aAAa,IAAI,gBAAgB,EAAS,MAAM,eAAe,CAAC;AAElG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,UAAU,aAAc,SAAQ,gBAAgB,CAAC,KAAK,CAAC;IACrD,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,eAAO,MAAM,QAAQ,4HAanB,CAAC"}
1
+ {"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../src/Table/TableRow.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,UAAU,aAAc,SAAQ,gBAAgB,CAAC,KAAK,CAAC;IACrD,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,eAAO,MAAM,QAAQ,4HAanB,CAAC"}
@@ -1,4 +1,3 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  // Copyright The Perses Authors
3
2
  // Licensed under the Apache License, Version 2.0 (the "License");
4
3
  // you may not use this file except in compliance with the License.
@@ -11,8 +10,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
11
  // See the License for the specific language governing permissions and
13
12
  // limitations under the License.
14
- import { TableRow as MuiTableRow, alpha } from '@mui/material';
15
- import { forwardRef } from 'react';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { TableRow as MuiTableRow, alpha } from "@mui/material";
15
+ import { forwardRef } from "react";
16
16
  export const TableRow = /*#__PURE__*/ forwardRef(function TableRow(props, ref) {
17
17
  return /*#__PURE__*/ _jsx(MuiTableRow, {
18
18
  ...props,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Table/TableRow.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TableRow as MuiTableRow, TableRowProps as MuiTableRowProps, alpha } from '@mui/material';\nimport { forwardRef } from 'react';\nimport { TableDensity } from './model/table-model';\n\ninterface TableRowProps extends MuiTableRowProps<'div'> {\n density: TableDensity;\n}\n\nexport const TableRow = forwardRef<HTMLTableRowElement, TableRowProps>(function TableRow(props, ref) {\n return (\n <MuiTableRow\n {...props}\n ref={ref}\n sx={{\n backgroundColor: (theme) => theme.palette.background.default,\n '&:hover': {\n backgroundColor: (theme) => alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n },\n }}\n />\n );\n});\n"],"names":["TableRow","MuiTableRow","alpha","forwardRef","props","ref","sx","backgroundColor","theme","palette","background","default","primary","main","action","hoverOpacity"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,YAAYC,WAAW,EAAqCC,KAAK,QAAQ,gBAAgB;AAClG,SAASC,UAAU,QAAQ,QAAQ;AAOnC,OAAO,MAAMH,yBAAWG,WAA+C,SAASH,SAASI,KAAK,EAAEC,GAAG;IACjG,qBACE,KAACJ;QACE,GAAGG,KAAK;QACTC,KAAKA;QACLC,IAAI;YACFC,iBAAiB,CAACC,QAAUA,MAAMC,OAAO,CAACC,UAAU,CAACC,OAAO;YAC5D,WAAW;gBACTJ,iBAAiB,CAACC,QAAUN,MAAMM,MAAMC,OAAO,CAACG,OAAO,CAACC,IAAI,EAAEL,MAAMC,OAAO,CAACK,MAAM,CAACC,YAAY;YACjG;QACF;;AAGN,GAAG"}
1
+ {"version":3,"sources":["../../src/Table/TableRow.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport type { TableRowProps as MuiTableRowProps } from '@mui/material';\nimport { TableRow as MuiTableRow, alpha } from '@mui/material';\nimport { forwardRef } from 'react';\n\nimport type { TableDensity } from './model/table-model';\n\ninterface TableRowProps extends MuiTableRowProps<'div'> {\n density: TableDensity;\n}\n\nexport const TableRow = forwardRef<HTMLTableRowElement, TableRowProps>(function TableRow(props, ref) {\n return (\n <MuiTableRow\n {...props}\n ref={ref}\n sx={{\n backgroundColor: (theme) => theme.palette.background.default,\n '&:hover': {\n backgroundColor: (theme) => alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n },\n }}\n />\n );\n});\n"],"names":["TableRow","MuiTableRow","alpha","forwardRef","props","ref","sx","backgroundColor","theme","palette","background","default","primary","main","action","hoverOpacity"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAGjC,SAASA,YAAYC,WAAW,EAAEC,KAAK,QAAQ,gBAAgB;AAC/D,SAASC,UAAU,QAAQ,QAAQ;AAQnC,OAAO,MAAMH,yBAAWG,WAA+C,SAASH,SAASI,KAAK,EAAEC,GAAG;IACjG,qBACE,KAACJ;QACE,GAAGG,KAAK;QACTC,KAAKA;QACLC,IAAI;YACFC,iBAAiB,CAACC,QAAUA,MAAMC,OAAO,CAACC,UAAU,CAACC,OAAO;YAC5D,WAAW;gBACTJ,iBAAiB,CAACC,QAAUN,MAAMM,MAAMC,OAAO,CAACG,OAAO,CAACC,IAAI,EAAEL,MAAMC,OAAO,CAACK,MAAM,CAACC,YAAY;YACjG;QACF;;AAGN,GAAG"}
@@ -1,5 +1,5 @@
1
- import { Column } from '@tanstack/react-table';
2
- import { ReactElement } from 'react';
1
+ import type { Column } from '@tanstack/react-table';
2
+ import type { ReactElement } from 'react';
3
3
  export interface TableToolbarProps<TableData> {
4
4
  /**
5
5
  * When `true`, a search input is rendered.
@@ -1 +1 @@
1
- {"version":3,"file":"TableToolbar.d.ts","sourceRoot":"","sources":["../../src/Table/TableToolbar.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAyB,MAAM,OAAO,CAAC;AAQ5D,MAAM,WAAW,iBAAiB,CAAC,SAAS;IAC1C;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5C;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,EACtC,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,EACP,KAAK,EACL,yBAA+B,EAC/B,kBAAkB,EAClB,aAAa,EACb,iBAAiB,GAClB,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,IAAI,CAyGpD"}
1
+ {"version":3,"file":"TableToolbar.d.ts","sourceRoot":"","sources":["../../src/Table/TableToolbar.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAMpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,MAAM,WAAW,iBAAiB,CAAC,SAAS;IAC1C;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5C;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,EACtC,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,EACP,KAAK,EACL,yBAA+B,EAC/B,kBAAkB,EAClB,aAAa,EACb,iBAAiB,GAClB,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,IAAI,CAyGpD"}
@@ -11,14 +11,14 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { Checkbox, IconButton, InputAdornment, ListItemText, Menu, MenuItem, Stack, Tooltip } from '@mui/material';
15
- import { useCallback, useState } from 'react';
16
- import Magnify from 'mdi-material-ui/Magnify';
17
- import Close from 'mdi-material-ui/Close';
18
- import ViewColumn from 'mdi-material-ui/ViewColumn';
19
- import UnfoldMore from 'mdi-material-ui/UnfoldMoreHorizontal';
20
- import UnfoldLess from 'mdi-material-ui/UnfoldLessHorizontal';
21
- import { TextField } from '../controls';
14
+ import { Checkbox, IconButton, InputAdornment, ListItemText, Menu, MenuItem, Stack, Tooltip } from "@mui/material";
15
+ import Close from "mdi-material-ui/Close";
16
+ import Magnify from "mdi-material-ui/Magnify";
17
+ import UnfoldLess from "mdi-material-ui/UnfoldLessHorizontal";
18
+ import UnfoldMore from "mdi-material-ui/UnfoldMoreHorizontal";
19
+ import ViewColumn from "mdi-material-ui/ViewColumn";
20
+ import { useCallback, useState } from "react";
21
+ import { TextField } from "../controls/index.js";
22
22
  export function TableToolbar({ isSearchEnabled, globalFilter, onGlobalFilterChange, isColumnFilterEnabled, columns, width, columnFilterMenuMaxHeight = 400, isExpandAllEnabled, isAllExpanded, onExpandAllChange }) {
23
23
  const [colMenuAnchor, setColMenuAnchor] = useState(null);
24
24
  const colMenuOpen = Boolean(colMenuAnchor);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Table/TableToolbar.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Checkbox, IconButton, InputAdornment, ListItemText, Menu, MenuItem, Stack, Tooltip } from '@mui/material';\nimport { Column } from '@tanstack/react-table';\nimport { ReactElement, useCallback, useState } from 'react';\nimport Magnify from 'mdi-material-ui/Magnify';\nimport Close from 'mdi-material-ui/Close';\nimport ViewColumn from 'mdi-material-ui/ViewColumn';\nimport UnfoldMore from 'mdi-material-ui/UnfoldMoreHorizontal';\nimport UnfoldLess from 'mdi-material-ui/UnfoldLessHorizontal';\nimport { TextField } from '../controls';\n\nexport interface TableToolbarProps<TableData> {\n /**\n * When `true`, a search input is rendered.\n */\n isSearchEnabled?: boolean;\n\n /**\n * Current value of the global filter / search query.\n */\n globalFilter: string;\n\n /**\n * Callback fired when the search query changes.\n */\n onGlobalFilterChange: (value: string) => void;\n\n /**\n * When `true`, a \"Columns\" button is rendered that opens a column visibility dropdown.\n */\n isColumnFilterEnabled?: boolean;\n\n /**\n * All columns from the table instance, used to build the visibility menu.\n */\n columns: Array<Column<TableData>>;\n /**\n * The width of the toolbar, used to determine when to switch to a more compact layout.\n */\n width: number | string;\n\n /**\n * Max height for the column filter menu.\n */\n columnFilterMenuMaxHeight?: number | string;\n\n /**\n * When `true`, an \"Expand All\" / \"Collapse All\" toggle button is rendered.\n */\n isExpandAllEnabled?: boolean;\n\n /**\n * Whether all rows are currently expanded.\n */\n isAllExpanded?: boolean;\n\n /**\n * Callback to toggle expand/collapse all rows.\n */\n onExpandAllChange?: (event: unknown) => void;\n}\n\nexport function TableToolbar<TableData>({\n isSearchEnabled,\n globalFilter,\n onGlobalFilterChange,\n isColumnFilterEnabled,\n columns,\n width,\n columnFilterMenuMaxHeight = 400,\n isExpandAllEnabled,\n isAllExpanded,\n onExpandAllChange,\n}: TableToolbarProps<TableData>): ReactElement | null {\n const [colMenuAnchor, setColMenuAnchor] = useState<null | HTMLElement>(null);\n const colMenuOpen = Boolean(colMenuAnchor);\n const [searchResetKey, setSearchResetKey] = useState(0);\n\n const handleSearchClear = useCallback(() => {\n onGlobalFilterChange('');\n setSearchResetKey((prev) => prev + 1);\n }, [onGlobalFilterChange]);\n\n if (!isSearchEnabled && !isColumnFilterEnabled && !isExpandAllEnabled) {\n return null;\n }\n\n return (\n <Stack\n direction=\"row\"\n gap={1}\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n width={width}\n padding=\"0.5rem\"\n sx={{ backgroundColor: (theme) => theme.palette.background.default }}\n >\n {isSearchEnabled && (\n <TextField\n key={searchResetKey}\n placeholder=\"Search...\"\n value={globalFilter}\n onChange={onGlobalFilterChange}\n variant=\"standard\"\n slotProps={{\n htmlInput: { 'aria-label': 'search table' },\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <Magnify fontSize=\"small\" />\n </InputAdornment>\n ),\n endAdornment: globalFilter !== '' && (\n <InputAdornment position=\"end\">\n <IconButton onClick={handleSearchClear}>\n <Close fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ),\n },\n }}\n sx={{ flexGrow: 1 }}\n />\n )}\n {isExpandAllEnabled && (\n <Tooltip title={isAllExpanded ? 'Collapse all' : 'Expand all'}>\n <IconButton\n onClick={onExpandAllChange}\n color=\"info\"\n aria-label={isAllExpanded ? 'collapse all rows' : 'expand all rows'}\n >\n {isAllExpanded ? <UnfoldLess /> : <UnfoldMore />}\n </IconButton>\n </Tooltip>\n )}\n {isColumnFilterEnabled && (\n <>\n <IconButton\n onClick={(e) => setColMenuAnchor(e.currentTarget)}\n aria-haspopup=\"listbox\"\n aria-expanded={colMenuOpen}\n color=\"info\"\n >\n <ViewColumn />\n </IconButton>\n <Menu\n anchorEl={colMenuAnchor}\n open={colMenuOpen}\n onClose={() => setColMenuAnchor(null)}\n slotProps={{ list: { dense: true } }}\n sx={{ maxHeight: columnFilterMenuMaxHeight }}\n >\n {columns.map((column) => {\n const header = column.columnDef.header;\n const label = typeof header === 'string' ? header : column.id;\n return (\n <MenuItem\n key={column.id}\n disabled={!column.getCanHide()}\n onClick={column.getCanHide() ? column.getToggleVisibilityHandler() : undefined}\n dense\n >\n <Checkbox\n checked={column.getIsVisible()}\n disabled={!column.getCanHide()}\n size=\"small\"\n disableRipple\n sx={{ p: 0, mr: 1 }}\n />\n <ListItemText primary={label} />\n </MenuItem>\n );\n })}\n </Menu>\n </>\n )}\n </Stack>\n );\n}\n"],"names":["Checkbox","IconButton","InputAdornment","ListItemText","Menu","MenuItem","Stack","Tooltip","useCallback","useState","Magnify","Close","ViewColumn","UnfoldMore","UnfoldLess","TextField","TableToolbar","isSearchEnabled","globalFilter","onGlobalFilterChange","isColumnFilterEnabled","columns","width","columnFilterMenuMaxHeight","isExpandAllEnabled","isAllExpanded","onExpandAllChange","colMenuAnchor","setColMenuAnchor","colMenuOpen","Boolean","searchResetKey","setSearchResetKey","handleSearchClear","prev","direction","gap","alignItems","justifyContent","padding","sx","backgroundColor","theme","palette","background","default","placeholder","value","onChange","variant","slotProps","htmlInput","input","startAdornment","position","fontSize","endAdornment","onClick","flexGrow","title","color","aria-label","e","currentTarget","aria-haspopup","aria-expanded","anchorEl","open","onClose","list","dense","maxHeight","map","column","header","columnDef","label","id","disabled","getCanHide","getToggleVisibilityHandler","undefined","checked","getIsVisible","size","disableRipple","p","mr","primary"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/Table/TableToolbar.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Checkbox, IconButton, InputAdornment, ListItemText, Menu, MenuItem, Stack, Tooltip } from '@mui/material';\nimport type { Column } from '@tanstack/react-table';\nimport Close from 'mdi-material-ui/Close';\nimport Magnify from 'mdi-material-ui/Magnify';\nimport UnfoldLess from 'mdi-material-ui/UnfoldLessHorizontal';\nimport UnfoldMore from 'mdi-material-ui/UnfoldMoreHorizontal';\nimport ViewColumn from 'mdi-material-ui/ViewColumn';\nimport type { ReactElement } from 'react';\nimport { useCallback, useState } from 'react';\n\nimport { TextField } from '../controls';\n\nexport interface TableToolbarProps<TableData> {\n /**\n * When `true`, a search input is rendered.\n */\n isSearchEnabled?: boolean;\n\n /**\n * Current value of the global filter / search query.\n */\n globalFilter: string;\n\n /**\n * Callback fired when the search query changes.\n */\n onGlobalFilterChange: (value: string) => void;\n\n /**\n * When `true`, a \"Columns\" button is rendered that opens a column visibility dropdown.\n */\n isColumnFilterEnabled?: boolean;\n\n /**\n * All columns from the table instance, used to build the visibility menu.\n */\n columns: Array<Column<TableData>>;\n /**\n * The width of the toolbar, used to determine when to switch to a more compact layout.\n */\n width: number | string;\n\n /**\n * Max height for the column filter menu.\n */\n columnFilterMenuMaxHeight?: number | string;\n\n /**\n * When `true`, an \"Expand All\" / \"Collapse All\" toggle button is rendered.\n */\n isExpandAllEnabled?: boolean;\n\n /**\n * Whether all rows are currently expanded.\n */\n isAllExpanded?: boolean;\n\n /**\n * Callback to toggle expand/collapse all rows.\n */\n onExpandAllChange?: (event: unknown) => void;\n}\n\nexport function TableToolbar<TableData>({\n isSearchEnabled,\n globalFilter,\n onGlobalFilterChange,\n isColumnFilterEnabled,\n columns,\n width,\n columnFilterMenuMaxHeight = 400,\n isExpandAllEnabled,\n isAllExpanded,\n onExpandAllChange,\n}: TableToolbarProps<TableData>): ReactElement | null {\n const [colMenuAnchor, setColMenuAnchor] = useState<null | HTMLElement>(null);\n const colMenuOpen = Boolean(colMenuAnchor);\n const [searchResetKey, setSearchResetKey] = useState(0);\n\n const handleSearchClear = useCallback(() => {\n onGlobalFilterChange('');\n setSearchResetKey((prev) => prev + 1);\n }, [onGlobalFilterChange]);\n\n if (!isSearchEnabled && !isColumnFilterEnabled && !isExpandAllEnabled) {\n return null;\n }\n\n return (\n <Stack\n direction=\"row\"\n gap={1}\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n width={width}\n padding=\"0.5rem\"\n sx={{ backgroundColor: (theme) => theme.palette.background.default }}\n >\n {isSearchEnabled && (\n <TextField\n key={searchResetKey}\n placeholder=\"Search...\"\n value={globalFilter}\n onChange={onGlobalFilterChange}\n variant=\"standard\"\n slotProps={{\n htmlInput: { 'aria-label': 'search table' },\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <Magnify fontSize=\"small\" />\n </InputAdornment>\n ),\n endAdornment: globalFilter !== '' && (\n <InputAdornment position=\"end\">\n <IconButton onClick={handleSearchClear}>\n <Close fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ),\n },\n }}\n sx={{ flexGrow: 1 }}\n />\n )}\n {isExpandAllEnabled && (\n <Tooltip title={isAllExpanded ? 'Collapse all' : 'Expand all'}>\n <IconButton\n onClick={onExpandAllChange}\n color=\"info\"\n aria-label={isAllExpanded ? 'collapse all rows' : 'expand all rows'}\n >\n {isAllExpanded ? <UnfoldLess /> : <UnfoldMore />}\n </IconButton>\n </Tooltip>\n )}\n {isColumnFilterEnabled && (\n <>\n <IconButton\n onClick={(e) => setColMenuAnchor(e.currentTarget)}\n aria-haspopup=\"listbox\"\n aria-expanded={colMenuOpen}\n color=\"info\"\n >\n <ViewColumn />\n </IconButton>\n <Menu\n anchorEl={colMenuAnchor}\n open={colMenuOpen}\n onClose={() => setColMenuAnchor(null)}\n slotProps={{ list: { dense: true } }}\n sx={{ maxHeight: columnFilterMenuMaxHeight }}\n >\n {columns.map((column) => {\n const header = column.columnDef.header;\n const label = typeof header === 'string' ? header : column.id;\n return (\n <MenuItem\n key={column.id}\n disabled={!column.getCanHide()}\n onClick={column.getCanHide() ? column.getToggleVisibilityHandler() : undefined}\n dense\n >\n <Checkbox\n checked={column.getIsVisible()}\n disabled={!column.getCanHide()}\n size=\"small\"\n disableRipple\n sx={{ p: 0, mr: 1 }}\n />\n <ListItemText primary={label} />\n </MenuItem>\n );\n })}\n </Menu>\n </>\n )}\n </Stack>\n );\n}\n"],"names":["Checkbox","IconButton","InputAdornment","ListItemText","Menu","MenuItem","Stack","Tooltip","Close","Magnify","UnfoldLess","UnfoldMore","ViewColumn","useCallback","useState","TextField","TableToolbar","isSearchEnabled","globalFilter","onGlobalFilterChange","isColumnFilterEnabled","columns","width","columnFilterMenuMaxHeight","isExpandAllEnabled","isAllExpanded","onExpandAllChange","colMenuAnchor","setColMenuAnchor","colMenuOpen","Boolean","searchResetKey","setSearchResetKey","handleSearchClear","prev","direction","gap","alignItems","justifyContent","padding","sx","backgroundColor","theme","palette","background","default","placeholder","value","onChange","variant","slotProps","htmlInput","input","startAdornment","position","fontSize","endAdornment","onClick","flexGrow","title","color","aria-label","e","currentTarget","aria-haspopup","aria-expanded","anchorEl","open","onClose","list","dense","maxHeight","map","column","header","columnDef","label","id","disabled","getCanHide","getToggleVisibilityHandler","undefined","checked","getIsVisible","size","disableRipple","p","mr","primary"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { Column, ColumnSizingInfoState, ColumnSizingState, HeaderGroup, Row } from '@tanstack/react-table';
2
- import { ReactElement } from 'react';
3
- import { TableToolbarProps } from './TableToolbar';
4
- import { TableCellConfigs, TableProps } from './model/table-model';
1
+ import type { Column, ColumnSizingInfoState, ColumnSizingState, HeaderGroup, Row } from '@tanstack/react-table';
2
+ import type { ReactElement } from 'react';
3
+ import type { TableCellConfigs, TableProps } from './model/table-model';
4
+ import type { TableToolbarProps } from './TableToolbar';
5
5
  export type VirtualizedTableProps<TableData> = Required<Pick<TableProps<TableData>, 'height' | 'width' | 'density' | 'defaultColumnHeight' | 'defaultColumnWidth'>> & Pick<TableProps<TableData>, 'onRowMouseOver' | 'onRowMouseOut' | 'pagination' | 'onPaginationChange'> & {
6
6
  onRowClick: (e: React.MouseEvent<HTMLDivElement, MouseEvent>, id: string) => void;
7
7
  rows: Array<Row<TableData>>;
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedTable.d.ts","sourceRoot":"","sources":["../../src/Table/VirtualizedTable.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,iBAAiB,EAAc,WAAW,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAGvH,OAAO,EAAE,YAAY,EAAmB,MAAM,OAAO,CAAC;AACtD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAQjE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAqB,MAAM,qBAAqB,CAAC;AAStF,MAAM,MAAM,qBAAqB,CAAC,SAAS,IAAI,QAAQ,CACrD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,qBAAqB,GAAG,oBAAoB,CAAC,CAC3G,GACC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,eAAe,GAAG,YAAY,GAAG,oBAAoB,CAAC,GAAG;IACtG,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClF,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IACvC,YAAY,EAAE,iBAAiB,CAAC;IAChC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,IAAI,CACjB,iBAAiB,CAAC,SAAS,CAAC,EAC1B,iBAAiB,GACjB,cAAc,GACd,sBAAsB,GACtB,uBAAuB,GACvB,SAAS,GACT,2BAA2B,GAC3B,oBAAoB,GACpB,eAAe,GACf,mBAAmB,CACtB,CAAC;CACH,CAAC;AAKJ,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,EAC1C,KAAK,EACL,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,aAAa,EACb,IAAI,EACJ,OAAO,EACP,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,aAAa,GACd,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,YAAY,CA6RjD"}
1
+ {"version":3,"file":"VirtualizedTable.d.ts","sourceRoot":"","sources":["../../src/Table/VirtualizedTable.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEhH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAO1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAqB,MAAM,qBAAqB,CAAC;AAQ3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AASxD,MAAM,MAAM,qBAAqB,CAAC,SAAS,IAAI,QAAQ,CACrD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,qBAAqB,GAAG,oBAAoB,CAAC,CAC3G,GACC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,eAAe,GAAG,YAAY,GAAG,oBAAoB,CAAC,GAAG;IACtG,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClF,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IACvC,YAAY,EAAE,iBAAiB,CAAC;IAChC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,IAAI,CACjB,iBAAiB,CAAC,SAAS,CAAC,EAC1B,iBAAiB,GACjB,cAAc,GACd,sBAAsB,GACtB,uBAAuB,GACvB,SAAS,GACT,2BAA2B,GAC3B,oBAAoB,GACpB,eAAe,GACf,mBAAmB,CACtB,CAAC;CACH,CAAC;AAKJ,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,EAC1C,KAAK,EACL,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,aAAa,EACb,IAAI,EACJ,OAAO,EACP,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,aAAa,GACd,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,YAAY,CA6RjD"}
@@ -11,20 +11,20 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { flexRender } from '@tanstack/react-table';
15
- import { Box, TablePagination, TableRow as MuiTableRow } from '@mui/material';
16
- import { TableVirtuoso } from 'react-virtuoso';
17
- import { useMemo, useRef } from 'react';
18
- import { TableToolbar } from './TableToolbar';
19
- import { TableRow } from './TableRow';
20
- import { TableBody } from './TableBody';
21
- import { InnerTable } from './InnerTable';
22
- import { TableHead } from './TableHead';
23
- import { TableHeaderCell } from './TableHeaderCell';
24
- import { TableCell } from './TableCell';
25
- import { VirtualizedTableContainer } from './VirtualizedTableContainer';
26
- import { useVirtualizedTableKeyboardNav } from './hooks/useVirtualizedTableKeyboardNav';
27
- import { TableFoot } from './TableFoot';
14
+ import { Box, TablePagination, TableRow as MuiTableRow } from "@mui/material";
15
+ import { flexRender } from "@tanstack/react-table";
16
+ import { useMemo, useRef } from "react";
17
+ import { TableVirtuoso } from "react-virtuoso";
18
+ import { useVirtualizedTableKeyboardNav } from "./hooks/useVirtualizedTableKeyboardNav.js";
19
+ import { InnerTable } from "./InnerTable.js";
20
+ import { TableBody } from "./TableBody.js";
21
+ import { TableCell } from "./TableCell.js";
22
+ import { TableFoot } from "./TableFoot.js";
23
+ import { TableHead } from "./TableHead.js";
24
+ import { TableHeaderCell } from "./TableHeaderCell.js";
25
+ import { TableRow } from "./TableRow.js";
26
+ import { TableToolbar } from "./TableToolbar.js";
27
+ import { VirtualizedTableContainer } from "./VirtualizedTableContainer.js";
28
28
  // Separating out the virtualized table because we may want a paginated table
29
29
  // in the future that does not need virtualization, and we'd likely lay them
30
30
  // out differently.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Table/VirtualizedTable.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Column, ColumnSizingInfoState, ColumnSizingState, flexRender, HeaderGroup, Row } from '@tanstack/react-table';\nimport { Box, TablePagination, TableRow as MuiTableRow } from '@mui/material';\nimport { TableComponents, TableVirtuoso, TableVirtuosoHandle, TableVirtuosoProps } from 'react-virtuoso';\nimport { ReactElement, useMemo, useRef } from 'react';\nimport { TableToolbar, TableToolbarProps } from './TableToolbar';\nimport { TableRow } from './TableRow';\nimport { TableBody } from './TableBody';\nimport { InnerTable } from './InnerTable';\nimport { TableHead } from './TableHead';\nimport { TableHeaderCell } from './TableHeaderCell';\nimport { TableCell, TableCellProps } from './TableCell';\nimport { VirtualizedTableContainer } from './VirtualizedTableContainer';\nimport { TableCellConfigs, TableProps, TableRowEventOpts } from './model/table-model';\nimport { useVirtualizedTableKeyboardNav } from './hooks/useVirtualizedTableKeyboardNav';\nimport { TableFoot } from './TableFoot';\n\ntype TableCellPosition = {\n row: number;\n column: number;\n};\n\nexport type VirtualizedTableProps<TableData> = Required<\n Pick<TableProps<TableData>, 'height' | 'width' | 'density' | 'defaultColumnHeight' | 'defaultColumnWidth'>\n> &\n Pick<TableProps<TableData>, 'onRowMouseOver' | 'onRowMouseOut' | 'pagination' | 'onPaginationChange'> & {\n onRowClick: (e: React.MouseEvent<HTMLDivElement, MouseEvent>, id: string) => void;\n rows: Array<Row<TableData>>;\n columns: Array<Column<TableData, unknown>>;\n headers: Array<HeaderGroup<TableData>>;\n columnSizing: ColumnSizingState;\n columnSizingInfo: ColumnSizingInfoState;\n cellConfigs?: TableCellConfigs;\n rowCount: number;\n toolbarConfig: Pick<\n TableToolbarProps<TableData>,\n | 'isSearchEnabled'\n | 'globalFilter'\n | 'onGlobalFilterChange'\n | 'isColumnFilterEnabled'\n | 'columns'\n | 'columnFilterMenuMaxHeight'\n | 'isExpandAllEnabled'\n | 'isAllExpanded'\n | 'onExpandAllChange'\n >;\n };\n\n// Separating out the virtualized table because we may want a paginated table\n// in the future that does not need virtualization, and we'd likely lay them\n// out differently.\nexport function VirtualizedTable<TableData>({\n width,\n height,\n density,\n defaultColumnWidth,\n defaultColumnHeight,\n onRowClick,\n onRowMouseOver,\n onRowMouseOut,\n rows,\n columns,\n headers,\n columnSizing,\n columnSizingInfo,\n cellConfigs,\n pagination,\n onPaginationChange,\n rowCount,\n toolbarConfig,\n}: VirtualizedTableProps<TableData>): ReactElement {\n const virtuosoRef = useRef<TableVirtuosoHandle>(null);\n // Use a ref for these values because they are only needed for keyboard\n // focus interactions and setting them on state will lead to a significant\n // amount of unnecessary re-renders.\n const visibleRange = useRef({\n startIndex: 0,\n endIndex: 0,\n });\n\n const setVisibleRange: TableVirtuosoProps<TableData, unknown>['rangeChanged'] = (newVisibleRange) => {\n visibleRange.current = newVisibleRange;\n };\n\n const keyboardNav = useVirtualizedTableKeyboardNav({\n visibleRange: visibleRange,\n virtualTable: virtuosoRef,\n\n // We add 1 here for the header.\n maxRows: rows.length + 1,\n maxColumns: columns.length,\n });\n\n const getFocusState = (cellPosition: TableCellPosition): TableCellProps['focusState'] => {\n if (cellPosition.row === keyboardNav.activeCell.row && cellPosition.column === keyboardNav.activeCell.column) {\n return keyboardNav.isActive ? 'trigger-focus' : 'focus-next';\n }\n\n return 'none';\n };\n\n const VirtuosoTableComponents: TableComponents<TableData> = useMemo(() => {\n return {\n Scroller: VirtualizedTableContainer,\n Table: (props): ReactElement => {\n return (\n <InnerTable\n {...props}\n width={width}\n density={density}\n onKeyDown={keyboardNav.onTableKeyDown}\n onBlur={keyboardNav.onTableBlur}\n />\n );\n },\n TableHead,\n TableFoot,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TableRow: ({ item, ...props }): ReactElement | null => {\n const index = props['data-index'];\n const row = rows[index];\n if (!row) {\n return null;\n }\n\n const rowEventOpts: TableRowEventOpts = { id: row.id, index: row.index };\n\n return (\n <TableRow\n {...props}\n onClick={(e) => onRowClick(e, row.id)}\n density={density}\n onMouseOver={(e) => {\n onRowMouseOver?.(e, rowEventOpts);\n }}\n onMouseOut={(e) => {\n onRowMouseOut?.(e, rowEventOpts);\n }}\n />\n );\n },\n TableBody,\n };\n }, [\n density,\n keyboardNav.onTableKeyDown,\n keyboardNav.onTableBlur,\n onRowClick,\n onRowMouseOut,\n onRowMouseOver,\n rows,\n width,\n ]);\n\n const handleChangePage = (_event: React.MouseEvent<HTMLButtonElement> | null, newPage: number): void => {\n if (!pagination || !onPaginationChange) return;\n onPaginationChange({ ...pagination, pageIndex: newPage });\n };\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>): void => {\n if (!pagination || !onPaginationChange) return;\n onPaginationChange({ pageIndex: 0, pageSize: parseInt(event.target.value, 10) });\n };\n\n /**\n * Instead of calling `column.getSize()` on every render for every header\n * and especially every data cell (very expensive),\n * we will calculate all column sizes at once at the root table level in a useMemo\n * and pass the column sizes down as CSS variables to the <table> element.\n */\n const columnSizeVars = useMemo(() => {\n const colSizes: { [key: string]: number } = {};\n headers.forEach((headerGroup) => {\n headerGroup.headers\n .filter((header) => header.column.getCanResize())\n .forEach((header) => {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n });\n });\n return colSizes;\n // We want to recalculate column sizes whenever column sizes or column resizing info changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [columnSizingInfo, columnSizing, headers]);\n\n return (\n <Box style={{ width, height, ...columnSizeVars }}>\n <TableToolbar {...toolbarConfig} width={width} />\n <TableVirtuoso\n ref={virtuosoRef}\n totalCount={rows.length}\n components={VirtuosoTableComponents}\n // Note: this value is impacted by overscan. See this issue if overscan\n // is added.\n // https://github.com/petyosi/react-virtuoso/issues/118#issuecomment-642156138\n rangeChanged={setVisibleRange}\n fixedHeaderContent={() => {\n return (\n <>\n {headers.map((headerGroup) => {\n return (\n <TableRow key={headerGroup.id} density={density}>\n {headerGroup.headers.map((header, i, headers) => {\n const column = header.column;\n const position: TableCellPosition = {\n row: 0,\n column: i,\n };\n\n const isSorted = column.getIsSorted();\n const nextSorting = column.getNextSortingOrder();\n\n return (\n <TableHeaderCell\n key={header.id}\n onSort={column.getCanSort() ? column.getToggleSortingHandler() : undefined}\n sortDirection={typeof isSorted === 'string' ? isSorted : undefined}\n nextSortDirection={typeof nextSorting === 'string' ? nextSorting : undefined}\n width={\n header.column.getCanResize()\n ? `calc(var(--header-${header?.id}-size) * 1px)`\n : column.getSize() || defaultColumnWidth\n }\n defaultColumnHeight={defaultColumnHeight}\n align={column.columnDef.meta?.align}\n variant=\"head\"\n density={density}\n description={column.columnDef.meta?.headerDescription}\n focusState={getFocusState(position)}\n onFocusTrigger={() => keyboardNav.onCellFocus(position)}\n isFirstColumn={i === 0}\n isLastColumn={i === headers.length - 1}\n resizeConfig={\n header.column.getCanResize()\n ? {\n resizeHandler: header.getResizeHandler(),\n resetSizeHandler: header.column.resetSize,\n isResizing: header.column.getIsResizing(),\n }\n : undefined\n }\n >\n {flexRender(column.columnDef.header, header.getContext())}\n </TableHeaderCell>\n );\n })}\n </TableRow>\n );\n })}\n </>\n );\n }}\n fixedFooterContent={\n pagination\n ? (): ReactElement => (\n <MuiTableRow sx={{ backgroundColor: (theme) => theme.palette.background.default }}>\n <TablePagination\n colSpan={columns.length}\n count={rowCount}\n page={pagination.pageIndex}\n rowsPerPage={pagination.pageSize}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n />\n </MuiTableRow>\n )\n : undefined\n }\n itemContent={(index) => {\n const row = rows[index];\n if (!row) {\n return null;\n }\n\n return (\n <>\n {row.getVisibleCells().map((cell, i, cells) => {\n const position: TableCellPosition = {\n row: index + 1,\n column: i,\n };\n\n const cellContext = cell.getContext();\n const cellConfig = cellConfigs?.[cellContext.cell.id];\n\n const cellRenderFn = cell.column.columnDef.cell;\n const cellContent = typeof cellRenderFn === 'function' ? cellRenderFn(cellContext) : null;\n\n /*\n IMPORTANT:\n If Variables exist in the link, they should have been translated by the plugin already. (Being developed at the moment)\n Components have no access to any context (Which is intentional and correct)\n We may want to add parameters to a link from neighboring cells in the future as well.\n If this is the case, the value of the neighboring cells should be read from here and be replaced. (Bing discussed at the moment, not decided yet)\n */\n\n const cellDescriptionDef = cell.column.columnDef.meta?.cellDescription;\n let description: string | undefined = undefined;\n if (typeof cellDescriptionDef === 'function') {\n // If the cell description is a function, set the value using\n // the function.\n description = cellDescriptionDef(cellContext);\n } else if (cellDescriptionDef && typeof cellContent === 'string') {\n // If the cell description is `true` AND the cell content is\n // a string (and thus viable as a `title` attribute), use the\n // cell content.\n description = cellContent;\n }\n\n /* this has been specifically added for the data link,\n therefore, non string and numeric values should be excluded\n */\n const adjacentCellsValuesMap = Object.entries(row.original as Record<string, unknown>)\n ?.filter(([_, value]) => ['string', 'number'].includes(typeof value))\n .reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: String(value),\n }),\n {}\n );\n\n return (\n <TableCell\n key={cell.id}\n data-testid={cell.id}\n title={description || cellConfig?.text || cellContent}\n width={\n cell.column.getCanResize()\n ? `calc(var(--col-${cell.column.id}-size) * 1px)`\n : cell.column.getSize() || defaultColumnWidth\n }\n defaultColumnHeight={defaultColumnHeight}\n align={cell.column.columnDef.meta?.align}\n density={density}\n focusState={getFocusState(position)}\n onFocusTrigger={() => keyboardNav.onCellFocus(position)}\n isFirstColumn={i === 0}\n isLastColumn={i === cells.length - 1}\n description={description}\n color={cellConfig?.textColor ?? undefined}\n backgroundColor={cellConfig?.backgroundColor ?? undefined}\n dataLink={cell.column.columnDef.meta?.dataLink}\n adjacentCellsValuesMap={adjacentCellsValuesMap}\n >\n {cellConfig?.text || cellContent}\n </TableCell>\n );\n })}\n </>\n );\n }}\n />\n </Box>\n );\n}\n"],"names":["flexRender","Box","TablePagination","TableRow","MuiTableRow","TableVirtuoso","useMemo","useRef","TableToolbar","TableBody","InnerTable","TableHead","TableHeaderCell","TableCell","VirtualizedTableContainer","useVirtualizedTableKeyboardNav","TableFoot","VirtualizedTable","width","height","density","defaultColumnWidth","defaultColumnHeight","onRowClick","onRowMouseOver","onRowMouseOut","rows","columns","headers","columnSizing","columnSizingInfo","cellConfigs","pagination","onPaginationChange","rowCount","toolbarConfig","virtuosoRef","visibleRange","startIndex","endIndex","setVisibleRange","newVisibleRange","current","keyboardNav","virtualTable","maxRows","length","maxColumns","getFocusState","cellPosition","row","activeCell","column","isActive","VirtuosoTableComponents","Scroller","Table","props","onKeyDown","onTableKeyDown","onBlur","onTableBlur","item","index","rowEventOpts","id","onClick","e","onMouseOver","onMouseOut","handleChangePage","_event","newPage","pageIndex","handleChangeRowsPerPage","event","pageSize","parseInt","target","value","columnSizeVars","colSizes","forEach","headerGroup","filter","header","getCanResize","getSize","style","ref","totalCount","components","rangeChanged","fixedHeaderContent","map","i","position","isSorted","getIsSorted","nextSorting","getNextSortingOrder","onSort","getCanSort","getToggleSortingHandler","undefined","sortDirection","nextSortDirection","align","columnDef","meta","variant","description","headerDescription","focusState","onFocusTrigger","onCellFocus","isFirstColumn","isLastColumn","resizeConfig","resizeHandler","getResizeHandler","resetSizeHandler","resetSize","isResizing","getIsResizing","getContext","fixedFooterContent","sx","backgroundColor","theme","palette","background","default","colSpan","count","page","rowsPerPage","onPageChange","onRowsPerPageChange","itemContent","getVisibleCells","cell","cells","cellContext","cellConfig","cellRenderFn","cellContent","cellDescriptionDef","cellDescription","adjacentCellsValuesMap","Object","entries","original","_","includes","reduce","acc","key","String","data-testid","title","text","color","textColor","dataLink"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/Table/VirtualizedTable.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box, TablePagination, TableRow as MuiTableRow } from '@mui/material';\nimport type { Column, ColumnSizingInfoState, ColumnSizingState, HeaderGroup, Row } from '@tanstack/react-table';\nimport { flexRender } from '@tanstack/react-table';\nimport type { ReactElement } from 'react';\nimport { useMemo, useRef } from 'react';\nimport type { TableComponents, TableVirtuosoHandle, TableVirtuosoProps } from 'react-virtuoso';\nimport { TableVirtuoso } from 'react-virtuoso';\n\nimport { useVirtualizedTableKeyboardNav } from './hooks/useVirtualizedTableKeyboardNav';\nimport { InnerTable } from './InnerTable';\nimport type { TableCellConfigs, TableProps, TableRowEventOpts } from './model/table-model';\nimport { TableBody } from './TableBody';\nimport type { TableCellProps } from './TableCell';\nimport { TableCell } from './TableCell';\nimport { TableFoot } from './TableFoot';\nimport { TableHead } from './TableHead';\nimport { TableHeaderCell } from './TableHeaderCell';\nimport { TableRow } from './TableRow';\nimport type { TableToolbarProps } from './TableToolbar';\nimport { TableToolbar } from './TableToolbar';\nimport { VirtualizedTableContainer } from './VirtualizedTableContainer';\n\ntype TableCellPosition = {\n row: number;\n column: number;\n};\n\nexport type VirtualizedTableProps<TableData> = Required<\n Pick<TableProps<TableData>, 'height' | 'width' | 'density' | 'defaultColumnHeight' | 'defaultColumnWidth'>\n> &\n Pick<TableProps<TableData>, 'onRowMouseOver' | 'onRowMouseOut' | 'pagination' | 'onPaginationChange'> & {\n onRowClick: (e: React.MouseEvent<HTMLDivElement, MouseEvent>, id: string) => void;\n rows: Array<Row<TableData>>;\n columns: Array<Column<TableData, unknown>>;\n headers: Array<HeaderGroup<TableData>>;\n columnSizing: ColumnSizingState;\n columnSizingInfo: ColumnSizingInfoState;\n cellConfigs?: TableCellConfigs;\n rowCount: number;\n toolbarConfig: Pick<\n TableToolbarProps<TableData>,\n | 'isSearchEnabled'\n | 'globalFilter'\n | 'onGlobalFilterChange'\n | 'isColumnFilterEnabled'\n | 'columns'\n | 'columnFilterMenuMaxHeight'\n | 'isExpandAllEnabled'\n | 'isAllExpanded'\n | 'onExpandAllChange'\n >;\n };\n\n// Separating out the virtualized table because we may want a paginated table\n// in the future that does not need virtualization, and we'd likely lay them\n// out differently.\nexport function VirtualizedTable<TableData>({\n width,\n height,\n density,\n defaultColumnWidth,\n defaultColumnHeight,\n onRowClick,\n onRowMouseOver,\n onRowMouseOut,\n rows,\n columns,\n headers,\n columnSizing,\n columnSizingInfo,\n cellConfigs,\n pagination,\n onPaginationChange,\n rowCount,\n toolbarConfig,\n}: VirtualizedTableProps<TableData>): ReactElement {\n const virtuosoRef = useRef<TableVirtuosoHandle>(null);\n // Use a ref for these values because they are only needed for keyboard\n // focus interactions and setting them on state will lead to a significant\n // amount of unnecessary re-renders.\n const visibleRange = useRef({\n startIndex: 0,\n endIndex: 0,\n });\n\n const setVisibleRange: TableVirtuosoProps<TableData, unknown>['rangeChanged'] = (newVisibleRange) => {\n visibleRange.current = newVisibleRange;\n };\n\n const keyboardNav = useVirtualizedTableKeyboardNav({\n visibleRange: visibleRange,\n virtualTable: virtuosoRef,\n\n // We add 1 here for the header.\n maxRows: rows.length + 1,\n maxColumns: columns.length,\n });\n\n const getFocusState = (cellPosition: TableCellPosition): TableCellProps['focusState'] => {\n if (cellPosition.row === keyboardNav.activeCell.row && cellPosition.column === keyboardNav.activeCell.column) {\n return keyboardNav.isActive ? 'trigger-focus' : 'focus-next';\n }\n\n return 'none';\n };\n\n const VirtuosoTableComponents: TableComponents<TableData> = useMemo(() => {\n return {\n Scroller: VirtualizedTableContainer,\n Table: (props): ReactElement => {\n return (\n <InnerTable\n {...props}\n width={width}\n density={density}\n onKeyDown={keyboardNav.onTableKeyDown}\n onBlur={keyboardNav.onTableBlur}\n />\n );\n },\n TableHead,\n TableFoot,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TableRow: ({ item, ...props }): ReactElement | null => {\n const index = props['data-index'];\n const row = rows[index];\n if (!row) {\n return null;\n }\n\n const rowEventOpts: TableRowEventOpts = { id: row.id, index: row.index };\n\n return (\n <TableRow\n {...props}\n onClick={(e) => onRowClick(e, row.id)}\n density={density}\n onMouseOver={(e) => {\n onRowMouseOver?.(e, rowEventOpts);\n }}\n onMouseOut={(e) => {\n onRowMouseOut?.(e, rowEventOpts);\n }}\n />\n );\n },\n TableBody,\n };\n }, [\n density,\n keyboardNav.onTableKeyDown,\n keyboardNav.onTableBlur,\n onRowClick,\n onRowMouseOut,\n onRowMouseOver,\n rows,\n width,\n ]);\n\n const handleChangePage = (_event: React.MouseEvent<HTMLButtonElement> | null, newPage: number): void => {\n if (!pagination || !onPaginationChange) return;\n onPaginationChange({ ...pagination, pageIndex: newPage });\n };\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>): void => {\n if (!pagination || !onPaginationChange) return;\n onPaginationChange({ pageIndex: 0, pageSize: parseInt(event.target.value, 10) });\n };\n\n /**\n * Instead of calling `column.getSize()` on every render for every header\n * and especially every data cell (very expensive),\n * we will calculate all column sizes at once at the root table level in a useMemo\n * and pass the column sizes down as CSS variables to the <table> element.\n */\n const columnSizeVars = useMemo(() => {\n const colSizes: { [key: string]: number } = {};\n headers.forEach((headerGroup) => {\n headerGroup.headers\n .filter((header) => header.column.getCanResize())\n .forEach((header) => {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n });\n });\n return colSizes;\n // We want to recalculate column sizes whenever column sizes or column resizing info changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [columnSizingInfo, columnSizing, headers]);\n\n return (\n <Box style={{ width, height, ...columnSizeVars }}>\n <TableToolbar {...toolbarConfig} width={width} />\n <TableVirtuoso\n ref={virtuosoRef}\n totalCount={rows.length}\n components={VirtuosoTableComponents}\n // Note: this value is impacted by overscan. See this issue if overscan\n // is added.\n // https://github.com/petyosi/react-virtuoso/issues/118#issuecomment-642156138\n rangeChanged={setVisibleRange}\n fixedHeaderContent={() => {\n return (\n <>\n {headers.map((headerGroup) => {\n return (\n <TableRow key={headerGroup.id} density={density}>\n {headerGroup.headers.map((header, i, headers) => {\n const column = header.column;\n const position: TableCellPosition = {\n row: 0,\n column: i,\n };\n\n const isSorted = column.getIsSorted();\n const nextSorting = column.getNextSortingOrder();\n\n return (\n <TableHeaderCell\n key={header.id}\n onSort={column.getCanSort() ? column.getToggleSortingHandler() : undefined}\n sortDirection={typeof isSorted === 'string' ? isSorted : undefined}\n nextSortDirection={typeof nextSorting === 'string' ? nextSorting : undefined}\n width={\n header.column.getCanResize()\n ? `calc(var(--header-${header?.id}-size) * 1px)`\n : column.getSize() || defaultColumnWidth\n }\n defaultColumnHeight={defaultColumnHeight}\n align={column.columnDef.meta?.align}\n variant=\"head\"\n density={density}\n description={column.columnDef.meta?.headerDescription}\n focusState={getFocusState(position)}\n onFocusTrigger={() => keyboardNav.onCellFocus(position)}\n isFirstColumn={i === 0}\n isLastColumn={i === headers.length - 1}\n resizeConfig={\n header.column.getCanResize()\n ? {\n resizeHandler: header.getResizeHandler(),\n resetSizeHandler: header.column.resetSize,\n isResizing: header.column.getIsResizing(),\n }\n : undefined\n }\n >\n {flexRender(column.columnDef.header, header.getContext())}\n </TableHeaderCell>\n );\n })}\n </TableRow>\n );\n })}\n </>\n );\n }}\n fixedFooterContent={\n pagination\n ? (): ReactElement => (\n <MuiTableRow sx={{ backgroundColor: (theme) => theme.palette.background.default }}>\n <TablePagination\n colSpan={columns.length}\n count={rowCount}\n page={pagination.pageIndex}\n rowsPerPage={pagination.pageSize}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n />\n </MuiTableRow>\n )\n : undefined\n }\n itemContent={(index) => {\n const row = rows[index];\n if (!row) {\n return null;\n }\n\n return (\n <>\n {row.getVisibleCells().map((cell, i, cells) => {\n const position: TableCellPosition = {\n row: index + 1,\n column: i,\n };\n\n const cellContext = cell.getContext();\n const cellConfig = cellConfigs?.[cellContext.cell.id];\n\n const cellRenderFn = cell.column.columnDef.cell;\n const cellContent = typeof cellRenderFn === 'function' ? cellRenderFn(cellContext) : null;\n\n /*\n IMPORTANT:\n If Variables exist in the link, they should have been translated by the plugin already. (Being developed at the moment)\n Components have no access to any context (Which is intentional and correct)\n We may want to add parameters to a link from neighboring cells in the future as well.\n If this is the case, the value of the neighboring cells should be read from here and be replaced. (Bing discussed at the moment, not decided yet)\n */\n\n const cellDescriptionDef = cell.column.columnDef.meta?.cellDescription;\n let description: string | undefined = undefined;\n if (typeof cellDescriptionDef === 'function') {\n // If the cell description is a function, set the value using\n // the function.\n description = cellDescriptionDef(cellContext);\n } else if (cellDescriptionDef && typeof cellContent === 'string') {\n // If the cell description is `true` AND the cell content is\n // a string (and thus viable as a `title` attribute), use the\n // cell content.\n description = cellContent;\n }\n\n /* this has been specifically added for the data link,\n therefore, non string and numeric values should be excluded\n */\n const adjacentCellsValuesMap = Object.entries(row.original as Record<string, unknown>)\n ?.filter(([_, value]) => ['string', 'number'].includes(typeof value))\n .reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: String(value),\n }),\n {},\n );\n\n return (\n <TableCell\n key={cell.id}\n data-testid={cell.id}\n title={description || cellConfig?.text || cellContent}\n width={\n cell.column.getCanResize()\n ? `calc(var(--col-${cell.column.id}-size) * 1px)`\n : cell.column.getSize() || defaultColumnWidth\n }\n defaultColumnHeight={defaultColumnHeight}\n align={cell.column.columnDef.meta?.align}\n density={density}\n focusState={getFocusState(position)}\n onFocusTrigger={() => keyboardNav.onCellFocus(position)}\n isFirstColumn={i === 0}\n isLastColumn={i === cells.length - 1}\n description={description}\n color={cellConfig?.textColor ?? undefined}\n backgroundColor={cellConfig?.backgroundColor ?? undefined}\n dataLink={cell.column.columnDef.meta?.dataLink}\n adjacentCellsValuesMap={adjacentCellsValuesMap}\n >\n {cellConfig?.text || cellContent}\n </TableCell>\n );\n })}\n </>\n );\n }}\n />\n </Box>\n );\n}\n"],"names":["Box","TablePagination","TableRow","MuiTableRow","flexRender","useMemo","useRef","TableVirtuoso","useVirtualizedTableKeyboardNav","InnerTable","TableBody","TableCell","TableFoot","TableHead","TableHeaderCell","TableToolbar","VirtualizedTableContainer","VirtualizedTable","width","height","density","defaultColumnWidth","defaultColumnHeight","onRowClick","onRowMouseOver","onRowMouseOut","rows","columns","headers","columnSizing","columnSizingInfo","cellConfigs","pagination","onPaginationChange","rowCount","toolbarConfig","virtuosoRef","visibleRange","startIndex","endIndex","setVisibleRange","newVisibleRange","current","keyboardNav","virtualTable","maxRows","length","maxColumns","getFocusState","cellPosition","row","activeCell","column","isActive","VirtuosoTableComponents","Scroller","Table","props","onKeyDown","onTableKeyDown","onBlur","onTableBlur","item","index","rowEventOpts","id","onClick","e","onMouseOver","onMouseOut","handleChangePage","_event","newPage","pageIndex","handleChangeRowsPerPage","event","pageSize","parseInt","target","value","columnSizeVars","colSizes","forEach","headerGroup","filter","header","getCanResize","getSize","style","ref","totalCount","components","rangeChanged","fixedHeaderContent","map","i","position","isSorted","getIsSorted","nextSorting","getNextSortingOrder","onSort","getCanSort","getToggleSortingHandler","undefined","sortDirection","nextSortDirection","align","columnDef","meta","variant","description","headerDescription","focusState","onFocusTrigger","onCellFocus","isFirstColumn","isLastColumn","resizeConfig","resizeHandler","getResizeHandler","resetSizeHandler","resetSize","isResizing","getIsResizing","getContext","fixedFooterContent","sx","backgroundColor","theme","palette","background","default","colSpan","count","page","rowsPerPage","onPageChange","onRowsPerPageChange","itemContent","getVisibleCells","cell","cells","cellContext","cellConfig","cellRenderFn","cellContent","cellDescriptionDef","cellDescription","adjacentCellsValuesMap","Object","entries","original","_","includes","reduce","acc","key","String","data-testid","title","text","color","textColor","dataLink"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
- import { TableContainerProps as MuiTableContainerProps } from '@mui/material';
1
+ import type { TableContainerProps as MuiTableContainerProps } from '@mui/material';
3
2
  type VirtualizedTableContainerProps = MuiTableContainerProps;
4
3
  export declare const VirtualizedTableContainer: import("react").ForwardRefExoticComponent<Omit<VirtualizedTableContainerProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
5
4
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedTableContainer.d.ts","sourceRoot":"","sources":["../../src/Table/VirtualizedTableContainer.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAuC,mBAAmB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAInH,KAAK,8BAA8B,GAAG,sBAAsB,CAAC;AAE7D,eAAO,MAAM,yBAAyB,wIAIrC,CAAC"}
1
+ {"version":3,"file":"VirtualizedTableContainer.d.ts","sourceRoot":"","sources":["../../src/Table/VirtualizedTableContainer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAMnF,KAAK,8BAA8B,GAAG,sBAAsB,CAAC;AAE7D,eAAO,MAAM,yBAAyB,wIAIrC,CAAC"}
@@ -1,4 +1,3 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  // Copyright The Perses Authors
3
2
  // Licensed under the Apache License, Version 2.0 (the "License");
4
3
  // you may not use this file except in compliance with the License.
@@ -11,9 +10,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
11
  // See the License for the specific language governing permissions and
13
12
  // limitations under the License.
14
- import { TableContainer as MuiTableContainer } from '@mui/material';
15
- import { forwardRef } from 'react';
16
- import { combineSx } from '../utils/combine-sx';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { TableContainer as MuiTableContainer } from "@mui/material";
15
+ import { forwardRef } from "react";
16
+ import { combineSx } from "../utils/combine-sx.js";
17
17
  export const VirtualizedTableContainer = /*#__PURE__*/ forwardRef(function VirtualizedTableContainer(props, ref) {
18
18
  return /*#__PURE__*/ _jsx(MuiTableContainer, {
19
19
  ...props,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Table/VirtualizedTableContainer.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TableContainer as MuiTableContainer, TableContainerProps as MuiTableContainerProps } from '@mui/material';\nimport { forwardRef } from 'react';\nimport { combineSx } from '../utils/combine-sx';\n\ntype VirtualizedTableContainerProps = MuiTableContainerProps;\n\nexport const VirtualizedTableContainer = forwardRef<HTMLDivElement, VirtualizedTableContainerProps>(\n function VirtualizedTableContainer(props, ref) {\n return <MuiTableContainer {...props} tabIndex={-1} ref={ref} sx={combineSx({ flexGrow: 1 }, props.sx)} />;\n }\n);\n"],"names":["TableContainer","MuiTableContainer","forwardRef","combineSx","VirtualizedTableContainer","props","ref","tabIndex","sx","flexGrow"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,kBAAkBC,iBAAiB,QAAuD,gBAAgB;AACnH,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAASC,SAAS,QAAQ,sBAAsB;AAIhD,OAAO,MAAMC,0CAA4BF,WACvC,SAASE,0BAA0BC,KAAK,EAAEC,GAAG;IAC3C,qBAAO,KAACL;QAAmB,GAAGI,KAAK;QAAEE,UAAU,CAAC;QAAGD,KAAKA;QAAKE,IAAIL,UAAU;YAAEM,UAAU;QAAE,GAAGJ,MAAMG,EAAE;;AACtG,GACA"}
1
+ {"version":3,"sources":["../../src/Table/VirtualizedTableContainer.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport type { TableContainerProps as MuiTableContainerProps } from '@mui/material';\nimport { TableContainer as MuiTableContainer } from '@mui/material';\nimport { forwardRef } from 'react';\n\nimport { combineSx } from '../utils/combine-sx';\n\ntype VirtualizedTableContainerProps = MuiTableContainerProps;\n\nexport const VirtualizedTableContainer = forwardRef<HTMLDivElement, VirtualizedTableContainerProps>(\n function VirtualizedTableContainer(props, ref) {\n return <MuiTableContainer {...props} tabIndex={-1} ref={ref} sx={combineSx({ flexGrow: 1 }, props.sx)} />;\n },\n);\n"],"names":["TableContainer","MuiTableContainer","forwardRef","combineSx","VirtualizedTableContainer","props","ref","tabIndex","sx","flexGrow"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAGjC,SAASA,kBAAkBC,iBAAiB,QAAQ,gBAAgB;AACpE,SAASC,UAAU,QAAQ,QAAQ;AAEnC,SAASC,SAAS,QAAQ,yBAAsB;AAIhD,OAAO,MAAMC,0CAA4BF,WACvC,SAASE,0BAA0BC,KAAK,EAAEC,GAAG;IAC3C,qBAAO,KAACL;QAAmB,GAAGI,KAAK;QAAEE,UAAU,CAAC;QAAGD,KAAKA;QAAKE,IAAIL,UAAU;YAAEM,UAAU;QAAE,GAAGJ,MAAMG,EAAE;;AACtG,GACA"}
@@ -1,6 +1,6 @@
1
- import { ExpandedState, TableOptions } from '@tanstack/react-table';
2
- import { SetStateAction } from 'react';
3
- import { FuzzyMatchThreshold } from '@perses-dev/components';
1
+ import type { FuzzyMatchThreshold } from '@perses-dev/components';
2
+ import type { ExpandedState, TableOptions } from '@tanstack/react-table';
3
+ import type { SetStateAction } from 'react';
4
4
  export interface UseFuzzySearchResult<TableData> {
5
5
  globalFilter: string;
6
6
  setGlobalFilter: (value: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useFuzzySearch.d.ts","sourceRoot":"","sources":["../../../src/Table/hooks/useFuzzySearch.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAiC,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEnG,OAAO,EAAE,cAAc,EAAyB,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAU7D,MAAM,WAAW,oBAAoB,CAAC,SAAS;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,kBAAkB,EAAE,IAAI,CACtB,YAAY,CAAC,SAAS,CAAC,EACvB,WAAW,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,sBAAsB,CACvG,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EACtC,eAAe,EAAE,OAAO,GAAG,SAAS,EACpC,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,GAC1D,oBAAoB,CAAC,SAAS,CAAC,CA8BjC"}
1
+ {"version":3,"file":"useFuzzySearch.d.ts","sourceRoot":"","sources":["../../../src/Table/hooks/useFuzzySearch.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAY,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAW5C,MAAM,WAAW,oBAAoB,CAAC,SAAS;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,kBAAkB,EAAE,IAAI,CACtB,YAAY,CAAC,SAAS,CAAC,EACvB,WAAW,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,sBAAsB,CACvG,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EACtC,eAAe,EAAE,OAAO,GAAG,SAAS,EACpC,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,GAC1D,oBAAoB,CAAC,SAAS,CAAC,CA8BjC"}
@@ -10,9 +10,9 @@
10
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
- import { getFilteredRowModel } from '@tanstack/react-table';
14
- import { rankings, rankItem } from '@tanstack/match-sorter-utils';
15
- import { useCallback, useState } from 'react';
13
+ import { rankings, rankItem } from "@tanstack/match-sorter-utils";
14
+ import { getFilteredRowModel } from "@tanstack/react-table";
15
+ import { useCallback, useState } from "react";
16
16
  const getFuzzyFilterFunction = (threshold)=>(row, columnId, value, addMeta)=>{
17
17
  const itemRank = rankItem(row.getValue(columnId), value, {
18
18
  threshold: rankings[threshold]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Table/hooks/useFuzzySearch.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { ExpandedState, FilterFn, getFilteredRowModel, TableOptions } from '@tanstack/react-table';\nimport { rankings, rankItem } from '@tanstack/match-sorter-utils';\nimport { SetStateAction, useCallback, useState } from 'react';\nimport { FuzzyMatchThreshold } from '@perses-dev/components';\n\nconst getFuzzyFilterFunction =\n (threshold: FuzzyMatchThreshold): FilterFn<unknown> =>\n (row, columnId, value, addMeta) => {\n const itemRank = rankItem(row.getValue(columnId), value, { threshold: rankings[threshold] });\n addMeta({ itemRank });\n return itemRank.passed;\n };\n\nexport interface UseFuzzySearchResult<TableData> {\n globalFilter: string;\n setGlobalFilter: (value: string) => void;\n fuzzySearchOptions: Pick<\n TableOptions<TableData>,\n 'filterFns' | 'globalFilterFn' | 'getFilteredRowModel' | 'filterFromLeafRows' | 'onGlobalFilterChange'\n >;\n}\n\n/**\n * Returns fuzzy search state and the corresponding `useReactTable` options.\n * Filter options are disabled when `showSearch` is falsy.\n */\nexport function useFuzzySearch<TableData>(\n isSearchEnabled: boolean | undefined,\n threshold: FuzzyMatchThreshold,\n expanded: ExpandedState,\n setExpanded: (value: SetStateAction<ExpandedState>) => void\n): UseFuzzySearchResult<TableData> {\n const [globalFilter, setGlobalFilter] = useState('');\n const [prevExpandedState, setPrevExpandedState] = useState<ExpandedState>(expanded);\n\n // expand all rows when a search query is entered, and restore previous expansion state when the query is cleared\n const handleGlobalFilterChange = useCallback(\n (value: string): void => {\n setGlobalFilter((prev) => {\n if (!prev) {\n setPrevExpandedState(expanded);\n setExpanded(true);\n } else if (prev && !value) {\n setExpanded(prevExpandedState);\n }\n return value;\n });\n },\n [expanded, prevExpandedState, setExpanded]\n );\n return {\n globalFilter,\n setGlobalFilter: handleGlobalFilterChange,\n fuzzySearchOptions: {\n filterFns: { fuzzy: getFuzzyFilterFunction(threshold) },\n globalFilterFn: isSearchEnabled ? 'fuzzy' : undefined,\n getFilteredRowModel: isSearchEnabled ? getFilteredRowModel() : undefined,\n filterFromLeafRows: isSearchEnabled,\n onGlobalFilterChange: handleGlobalFilterChange,\n },\n };\n}\n"],"names":["getFilteredRowModel","rankings","rankItem","useCallback","useState","getFuzzyFilterFunction","threshold","row","columnId","value","addMeta","itemRank","getValue","passed","useFuzzySearch","isSearchEnabled","expanded","setExpanded","globalFilter","setGlobalFilter","prevExpandedState","setPrevExpandedState","handleGlobalFilterChange","prev","fuzzySearchOptions","filterFns","fuzzy","globalFilterFn","undefined","filterFromLeafRows","onGlobalFilterChange"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAAkCA,mBAAmB,QAAsB,wBAAwB;AACnG,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,+BAA+B;AAClE,SAAyBC,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AAG9D,MAAMC,yBACJ,CAACC,YACD,CAACC,KAAKC,UAAUC,OAAOC;QACrB,MAAMC,WAAWT,SAASK,IAAIK,QAAQ,CAACJ,WAAWC,OAAO;YAAEH,WAAWL,QAAQ,CAACK,UAAU;QAAC;QAC1FI,QAAQ;YAAEC;QAAS;QACnB,OAAOA,SAASE,MAAM;IACxB;AAWF;;;CAGC,GACD,OAAO,SAASC,eACdC,eAAoC,EACpCT,SAA8B,EAC9BU,QAAuB,EACvBC,WAA2D;IAE3D,MAAM,CAACC,cAAcC,gBAAgB,GAAGf,SAAS;IACjD,MAAM,CAACgB,mBAAmBC,qBAAqB,GAAGjB,SAAwBY;IAE1E,iHAAiH;IACjH,MAAMM,2BAA2BnB,YAC/B,CAACM;QACCU,gBAAgB,CAACI;YACf,IAAI,CAACA,MAAM;gBACTF,qBAAqBL;gBACrBC,YAAY;YACd,OAAO,IAAIM,QAAQ,CAACd,OAAO;gBACzBQ,YAAYG;YACd;YACA,OAAOX;QACT;IACF,GACA;QAACO;QAAUI;QAAmBH;KAAY;IAE5C,OAAO;QACLC;QACAC,iBAAiBG;QACjBE,oBAAoB;YAClBC,WAAW;gBAAEC,OAAOrB,uBAAuBC;YAAW;YACtDqB,gBAAgBZ,kBAAkB,UAAUa;YAC5C5B,qBAAqBe,kBAAkBf,wBAAwB4B;YAC/DC,oBAAoBd;YACpBe,sBAAsBR;QACxB;IACF;AACF"}
1
+ {"version":3,"sources":["../../../src/Table/hooks/useFuzzySearch.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport type { FuzzyMatchThreshold } from '@perses-dev/components';\nimport { rankings, rankItem } from '@tanstack/match-sorter-utils';\nimport type { ExpandedState, FilterFn, TableOptions } from '@tanstack/react-table';\nimport { getFilteredRowModel } from '@tanstack/react-table';\nimport type { SetStateAction } from 'react';\nimport { useCallback, useState } from 'react';\n\nconst getFuzzyFilterFunction =\n (threshold: FuzzyMatchThreshold): FilterFn<unknown> =>\n (row, columnId, value, addMeta) => {\n const itemRank = rankItem(row.getValue(columnId), value, { threshold: rankings[threshold] });\n addMeta({ itemRank });\n return itemRank.passed;\n };\n\nexport interface UseFuzzySearchResult<TableData> {\n globalFilter: string;\n setGlobalFilter: (value: string) => void;\n fuzzySearchOptions: Pick<\n TableOptions<TableData>,\n 'filterFns' | 'globalFilterFn' | 'getFilteredRowModel' | 'filterFromLeafRows' | 'onGlobalFilterChange'\n >;\n}\n\n/**\n * Returns fuzzy search state and the corresponding `useReactTable` options.\n * Filter options are disabled when `showSearch` is falsy.\n */\nexport function useFuzzySearch<TableData>(\n isSearchEnabled: boolean | undefined,\n threshold: FuzzyMatchThreshold,\n expanded: ExpandedState,\n setExpanded: (value: SetStateAction<ExpandedState>) => void,\n): UseFuzzySearchResult<TableData> {\n const [globalFilter, setGlobalFilter] = useState('');\n const [prevExpandedState, setPrevExpandedState] = useState<ExpandedState>(expanded);\n\n // expand all rows when a search query is entered, and restore previous expansion state when the query is cleared\n const handleGlobalFilterChange = useCallback(\n (value: string): void => {\n setGlobalFilter((prev) => {\n if (!prev) {\n setPrevExpandedState(expanded);\n setExpanded(true);\n } else if (prev && !value) {\n setExpanded(prevExpandedState);\n }\n return value;\n });\n },\n [expanded, prevExpandedState, setExpanded],\n );\n return {\n globalFilter,\n setGlobalFilter: handleGlobalFilterChange,\n fuzzySearchOptions: {\n filterFns: { fuzzy: getFuzzyFilterFunction(threshold) },\n globalFilterFn: isSearchEnabled ? 'fuzzy' : undefined,\n getFilteredRowModel: isSearchEnabled ? getFilteredRowModel() : undefined,\n filterFromLeafRows: isSearchEnabled,\n onGlobalFilterChange: handleGlobalFilterChange,\n },\n };\n}\n"],"names":["rankings","rankItem","getFilteredRowModel","useCallback","useState","getFuzzyFilterFunction","threshold","row","columnId","value","addMeta","itemRank","getValue","passed","useFuzzySearch","isSearchEnabled","expanded","setExpanded","globalFilter","setGlobalFilter","prevExpandedState","setPrevExpandedState","handleGlobalFilterChange","prev","fuzzySearchOptions","filterFns","fuzzy","globalFilterFn","undefined","filterFromLeafRows","onGlobalFilterChange"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,SAASA,QAAQ,EAAEC,QAAQ,QAAQ,+BAA+B;AAElE,SAASC,mBAAmB,QAAQ,wBAAwB;AAE5D,SAASC,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AAE9C,MAAMC,yBACJ,CAACC,YACD,CAACC,KAAKC,UAAUC,OAAOC;QACrB,MAAMC,WAAWV,SAASM,IAAIK,QAAQ,CAACJ,WAAWC,OAAO;YAAEH,WAAWN,QAAQ,CAACM,UAAU;QAAC;QAC1FI,QAAQ;YAAEC;QAAS;QACnB,OAAOA,SAASE,MAAM;IACxB;AAWF;;;CAGC,GACD,OAAO,SAASC,eACdC,eAAoC,EACpCT,SAA8B,EAC9BU,QAAuB,EACvBC,WAA2D;IAE3D,MAAM,CAACC,cAAcC,gBAAgB,GAAGf,SAAS;IACjD,MAAM,CAACgB,mBAAmBC,qBAAqB,GAAGjB,SAAwBY;IAE1E,iHAAiH;IACjH,MAAMM,2BAA2BnB,YAC/B,CAACM;QACCU,gBAAgB,CAACI;YACf,IAAI,CAACA,MAAM;gBACTF,qBAAqBL;gBACrBC,YAAY;YACd,OAAO,IAAIM,QAAQ,CAACd,OAAO;gBACzBQ,YAAYG;YACd;YACA,OAAOX;QACT;IACF,GACA;QAACO;QAAUI;QAAmBH;KAAY;IAE5C,OAAO;QACLC;QACAC,iBAAiBG;QACjBE,oBAAoB;YAClBC,WAAW;gBAAEC,OAAOrB,uBAAuBC;YAAW;YACtDqB,gBAAgBZ,kBAAkB,UAAUa;YAC5C1B,qBAAqBa,kBAAkBb,wBAAwB0B;YAC/DC,oBAAoBd;YACpBe,sBAAsBR;QACxB;IACF;AACF"}
@@ -1,4 +1,4 @@
1
- import { FocusEventHandler, KeyboardEventHandler } from 'react';
1
+ import type { FocusEventHandler, KeyboardEventHandler } from 'react';
2
2
  export interface UseTableKeyboardNavProps {
3
3
  maxRows: number;
4
4
  maxColumns: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useTableKeyboardNav.d.ts","sourceRoot":"","sources":["../../../src/Table/hooks/useTableKeyboardNav.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAyB,MAAM,OAAO,CAAC;AAEvF,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,CACnB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,EACxC,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,iBAAiB,GAAG,SAAS,KACjD,iBAAiB,GAAG,SAAS,CAAC;CACpC;AAED,KAAK,iBAAiB,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAaF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,wBAAwB,GAAG;IAC1G,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACvD,WAAW,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;CAClD,CA6EA"}
1
+ {"version":3,"file":"useTableKeyboardNav.d.ts","sourceRoot":"","sources":["../../../src/Table/hooks/useTableKeyboardNav.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGrE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,CACnB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,EACxC,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,iBAAiB,GAAG,SAAS,KACjD,iBAAiB,GAAG,SAAS,CAAC;CACpC;AAED,KAAK,iBAAiB,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAaF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,wBAAwB,GAAG;IAC1G,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACvD,WAAW,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;CAClD,CA6EA"}
@@ -10,7 +10,7 @@
10
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
- import { useCallback, useState } from 'react';
13
+ import { useCallback, useState } from "react";
14
14
  const DEFAULT_ACTIVE_CELL = {
15
15
  row: 0,
16
16
  column: 0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Table/hooks/useTableKeyboardNav.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { FocusEventHandler, KeyboardEventHandler, useCallback, useState } from 'react';\n\nexport interface UseTableKeyboardNavProps {\n maxRows: number;\n maxColumns: number;\n\n /**\n * Function used to modify the active table cell based on the keyboard event,\n * the current position, and the default recommended next position (this value\n * will be `undefined` in cases where there is no default handler like `PageUp`\n * and `PageDown`). This can be used to modify the next position that will be\n * used and/or to handle side effects related to the new position (e.g.\n * pagination, scrolling the active cell into view).\n */\n onActiveCellChange?: (\n e: React.KeyboardEvent<HTMLTableElement>,\n currentActiveCell: TableCellPosition,\n defaultNextActiveCell: TableCellPosition | undefined\n ) => TableCellPosition | undefined;\n}\n\ntype TableCellPosition = {\n row: number;\n column: number;\n};\n\nconst DEFAULT_ACTIVE_CELL: TableCellPosition = {\n row: 0,\n column: 0,\n};\n\nconst ARROW_KEYS = ['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'];\n\nfunction isArrowKey(key: string): boolean {\n return ARROW_KEYS.includes(key);\n}\n\n/**\n * Hook for managing keyboard navigation for table components. It is intended\n * to be wrapped by implementation-specific tables to account for differences\n * like pagination, infinite scroll, and virtualization. See `useVirtualizedKeyboardNav`\n * for an example.\n */\nexport function useTableKeyboardNav({ maxRows, maxColumns, onActiveCellChange }: UseTableKeyboardNavProps): {\n activeCell: TableCellPosition;\n isActive: boolean;\n onTableKeyDown: KeyboardEventHandler<HTMLTableElement>;\n onCellFocus: (cellPosition: TableCellPosition) => void;\n onTableBlur: FocusEventHandler<HTMLTableElement>;\n} {\n const [activeCell, setActiveCell] = useState<TableCellPosition>(DEFAULT_ACTIVE_CELL);\n const [isActive, setIsActive] = useState(false);\n\n const handleCellFocus = (cellPosition: TableCellPosition): void => {\n if (cellPosition.column === activeCell.column && cellPosition.row === activeCell.row && isActive) {\n return;\n }\n setIsActive(true);\n setActiveCell(cellPosition);\n };\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLTableElement> = useCallback(\n (e) => {\n // Including some of the basic a11y keyboard interaction patterns from:\n // https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n // TODO: add other keyboard combos.\n const key = e.key;\n\n if (isArrowKey(key) || key === 'Home' || key === 'End' || key === 'PageDown' || key === 'PageUp') {\n setActiveCell((curActiveCell) => {\n let nextRow: number = curActiveCell.row;\n let nextColumn: number = curActiveCell.column;\n\n if (key === 'ArrowRight' && nextColumn < maxColumns - 1) {\n e.preventDefault();\n nextColumn += 1;\n } else if (key === 'ArrowLeft' && nextColumn > 0) {\n e.preventDefault();\n nextColumn -= 1;\n } else if (key === 'ArrowDown' && nextRow < maxRows - 1) {\n e.preventDefault();\n nextRow += 1;\n } else if (key === 'ArrowUp' && nextRow > 0) {\n e.preventDefault();\n nextRow -= 1;\n } else if (key === 'Home') {\n e.preventDefault();\n nextRow = 0;\n nextColumn = 0;\n } else if (key === 'End') {\n e.preventDefault();\n nextRow = maxRows - 1;\n nextColumn = maxColumns - 1;\n }\n\n const defaultNewPosition = { column: nextColumn, row: nextRow };\n\n const newPosition = onActiveCellChange?.(e, curActiveCell, defaultNewPosition) || defaultNewPosition;\n\n if (newPosition.row === curActiveCell.row && newPosition.column === curActiveCell.column) {\n // Return original to avoid creating a new object if nothing\n // changed.\n return curActiveCell;\n }\n\n return newPosition;\n });\n }\n },\n [maxColumns, maxRows, onActiveCellChange]\n );\n\n const handleTableBlur: FocusEventHandler<HTMLTableElement> = useCallback((e) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node)) {\n setIsActive(false);\n setActiveCell(DEFAULT_ACTIVE_CELL);\n }\n }, []);\n\n return {\n activeCell,\n isActive,\n onTableKeyDown: handleKeyDown,\n onCellFocus: handleCellFocus,\n onTableBlur: handleTableBlur,\n };\n}\n"],"names":["useCallback","useState","DEFAULT_ACTIVE_CELL","row","column","ARROW_KEYS","isArrowKey","key","includes","useTableKeyboardNav","maxRows","maxColumns","onActiveCellChange","activeCell","setActiveCell","isActive","setIsActive","handleCellFocus","cellPosition","handleKeyDown","e","curActiveCell","nextRow","nextColumn","preventDefault","defaultNewPosition","newPosition","handleTableBlur","currentTarget","contains","relatedTarget","onTableKeyDown","onCellFocus","onTableBlur"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAAkDA,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AA0BvF,MAAMC,sBAAyC;IAC7CC,KAAK;IACLC,QAAQ;AACV;AAEA,MAAMC,aAAa;IAAC;IAAc;IAAa;IAAW;CAAY;AAEtE,SAASC,WAAWC,GAAW;IAC7B,OAAOF,WAAWG,QAAQ,CAACD;AAC7B;AAEA;;;;;CAKC,GACD,OAAO,SAASE,oBAAoB,EAAEC,OAAO,EAAEC,UAAU,EAAEC,kBAAkB,EAA4B;IAOvG,MAAM,CAACC,YAAYC,cAAc,GAAGb,SAA4BC;IAChE,MAAM,CAACa,UAAUC,YAAY,GAAGf,SAAS;IAEzC,MAAMgB,kBAAkB,CAACC;QACvB,IAAIA,aAAad,MAAM,KAAKS,WAAWT,MAAM,IAAIc,aAAaf,GAAG,KAAKU,WAAWV,GAAG,IAAIY,UAAU;YAChG;QACF;QACAC,YAAY;QACZF,cAAcI;IAChB;IAEA,MAAMC,gBAA8DnB,YAClE,CAACoB;QACC,uEAAuE;QACvE,iDAAiD;QACjD,mCAAmC;QACnC,MAAMb,MAAMa,EAAEb,GAAG;QAEjB,IAAID,WAAWC,QAAQA,QAAQ,UAAUA,QAAQ,SAASA,QAAQ,cAAcA,QAAQ,UAAU;YAChGO,cAAc,CAACO;gBACb,IAAIC,UAAkBD,cAAclB,GAAG;gBACvC,IAAIoB,aAAqBF,cAAcjB,MAAM;gBAE7C,IAAIG,QAAQ,gBAAgBgB,aAAaZ,aAAa,GAAG;oBACvDS,EAAEI,cAAc;oBAChBD,cAAc;gBAChB,OAAO,IAAIhB,QAAQ,eAAegB,aAAa,GAAG;oBAChDH,EAAEI,cAAc;oBAChBD,cAAc;gBAChB,OAAO,IAAIhB,QAAQ,eAAee,UAAUZ,UAAU,GAAG;oBACvDU,EAAEI,cAAc;oBAChBF,WAAW;gBACb,OAAO,IAAIf,QAAQ,aAAae,UAAU,GAAG;oBAC3CF,EAAEI,cAAc;oBAChBF,WAAW;gBACb,OAAO,IAAIf,QAAQ,QAAQ;oBACzBa,EAAEI,cAAc;oBAChBF,UAAU;oBACVC,aAAa;gBACf,OAAO,IAAIhB,QAAQ,OAAO;oBACxBa,EAAEI,cAAc;oBAChBF,UAAUZ,UAAU;oBACpBa,aAAaZ,aAAa;gBAC5B;gBAEA,MAAMc,qBAAqB;oBAAErB,QAAQmB;oBAAYpB,KAAKmB;gBAAQ;gBAE9D,MAAMI,cAAcd,qBAAqBQ,GAAGC,eAAeI,uBAAuBA;gBAElF,IAAIC,YAAYvB,GAAG,KAAKkB,cAAclB,GAAG,IAAIuB,YAAYtB,MAAM,KAAKiB,cAAcjB,MAAM,EAAE;oBACxF,4DAA4D;oBAC5D,WAAW;oBACX,OAAOiB;gBACT;gBAEA,OAAOK;YACT;QACF;IACF,GACA;QAACf;QAAYD;QAASE;KAAmB;IAG3C,MAAMe,kBAAuD3B,YAAY,CAACoB;QACxE,IAAI,CAACA,EAAEQ,aAAa,CAACC,QAAQ,CAACT,EAAEU,aAAa,GAAW;YACtDd,YAAY;YACZF,cAAcZ;QAChB;IACF,GAAG,EAAE;IAEL,OAAO;QACLW;QACAE;QACAgB,gBAAgBZ;QAChBa,aAAaf;QACbgB,aAAaN;IACf;AACF"}
1
+ {"version":3,"sources":["../../../src/Table/hooks/useTableKeyboardNav.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport type { FocusEventHandler, KeyboardEventHandler } from 'react';\nimport { useCallback, useState } from 'react';\n\nexport interface UseTableKeyboardNavProps {\n maxRows: number;\n maxColumns: number;\n\n /**\n * Function used to modify the active table cell based on the keyboard event,\n * the current position, and the default recommended next position (this value\n * will be `undefined` in cases where there is no default handler like `PageUp`\n * and `PageDown`). This can be used to modify the next position that will be\n * used and/or to handle side effects related to the new position (e.g.\n * pagination, scrolling the active cell into view).\n */\n onActiveCellChange?: (\n e: React.KeyboardEvent<HTMLTableElement>,\n currentActiveCell: TableCellPosition,\n defaultNextActiveCell: TableCellPosition | undefined,\n ) => TableCellPosition | undefined;\n}\n\ntype TableCellPosition = {\n row: number;\n column: number;\n};\n\nconst DEFAULT_ACTIVE_CELL: TableCellPosition = {\n row: 0,\n column: 0,\n};\n\nconst ARROW_KEYS = ['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'];\n\nfunction isArrowKey(key: string): boolean {\n return ARROW_KEYS.includes(key);\n}\n\n/**\n * Hook for managing keyboard navigation for table components. It is intended\n * to be wrapped by implementation-specific tables to account for differences\n * like pagination, infinite scroll, and virtualization. See `useVirtualizedKeyboardNav`\n * for an example.\n */\nexport function useTableKeyboardNav({ maxRows, maxColumns, onActiveCellChange }: UseTableKeyboardNavProps): {\n activeCell: TableCellPosition;\n isActive: boolean;\n onTableKeyDown: KeyboardEventHandler<HTMLTableElement>;\n onCellFocus: (cellPosition: TableCellPosition) => void;\n onTableBlur: FocusEventHandler<HTMLTableElement>;\n} {\n const [activeCell, setActiveCell] = useState<TableCellPosition>(DEFAULT_ACTIVE_CELL);\n const [isActive, setIsActive] = useState(false);\n\n const handleCellFocus = (cellPosition: TableCellPosition): void => {\n if (cellPosition.column === activeCell.column && cellPosition.row === activeCell.row && isActive) {\n return;\n }\n setIsActive(true);\n setActiveCell(cellPosition);\n };\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLTableElement> = useCallback(\n (e) => {\n // Including some of the basic a11y keyboard interaction patterns from:\n // https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n // TODO: add other keyboard combos.\n const key = e.key;\n\n if (isArrowKey(key) || key === 'Home' || key === 'End' || key === 'PageDown' || key === 'PageUp') {\n setActiveCell((curActiveCell) => {\n let nextRow: number = curActiveCell.row;\n let nextColumn: number = curActiveCell.column;\n\n if (key === 'ArrowRight' && nextColumn < maxColumns - 1) {\n e.preventDefault();\n nextColumn += 1;\n } else if (key === 'ArrowLeft' && nextColumn > 0) {\n e.preventDefault();\n nextColumn -= 1;\n } else if (key === 'ArrowDown' && nextRow < maxRows - 1) {\n e.preventDefault();\n nextRow += 1;\n } else if (key === 'ArrowUp' && nextRow > 0) {\n e.preventDefault();\n nextRow -= 1;\n } else if (key === 'Home') {\n e.preventDefault();\n nextRow = 0;\n nextColumn = 0;\n } else if (key === 'End') {\n e.preventDefault();\n nextRow = maxRows - 1;\n nextColumn = maxColumns - 1;\n }\n\n const defaultNewPosition = { column: nextColumn, row: nextRow };\n\n const newPosition = onActiveCellChange?.(e, curActiveCell, defaultNewPosition) || defaultNewPosition;\n\n if (newPosition.row === curActiveCell.row && newPosition.column === curActiveCell.column) {\n // Return original to avoid creating a new object if nothing\n // changed.\n return curActiveCell;\n }\n\n return newPosition;\n });\n }\n },\n [maxColumns, maxRows, onActiveCellChange],\n );\n\n const handleTableBlur: FocusEventHandler<HTMLTableElement> = useCallback((e) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node)) {\n setIsActive(false);\n setActiveCell(DEFAULT_ACTIVE_CELL);\n }\n }, []);\n\n return {\n activeCell,\n isActive,\n onTableKeyDown: handleKeyDown,\n onCellFocus: handleCellFocus,\n onTableBlur: handleTableBlur,\n };\n}\n"],"names":["useCallback","useState","DEFAULT_ACTIVE_CELL","row","column","ARROW_KEYS","isArrowKey","key","includes","useTableKeyboardNav","maxRows","maxColumns","onActiveCellChange","activeCell","setActiveCell","isActive","setIsActive","handleCellFocus","cellPosition","handleKeyDown","e","curActiveCell","nextRow","nextColumn","preventDefault","defaultNewPosition","newPosition","handleTableBlur","currentTarget","contains","relatedTarget","onTableKeyDown","onCellFocus","onTableBlur"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,SAASA,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AA0B9C,MAAMC,sBAAyC;IAC7CC,KAAK;IACLC,QAAQ;AACV;AAEA,MAAMC,aAAa;IAAC;IAAc;IAAa;IAAW;CAAY;AAEtE,SAASC,WAAWC,GAAW;IAC7B,OAAOF,WAAWG,QAAQ,CAACD;AAC7B;AAEA;;;;;CAKC,GACD,OAAO,SAASE,oBAAoB,EAAEC,OAAO,EAAEC,UAAU,EAAEC,kBAAkB,EAA4B;IAOvG,MAAM,CAACC,YAAYC,cAAc,GAAGb,SAA4BC;IAChE,MAAM,CAACa,UAAUC,YAAY,GAAGf,SAAS;IAEzC,MAAMgB,kBAAkB,CAACC;QACvB,IAAIA,aAAad,MAAM,KAAKS,WAAWT,MAAM,IAAIc,aAAaf,GAAG,KAAKU,WAAWV,GAAG,IAAIY,UAAU;YAChG;QACF;QACAC,YAAY;QACZF,cAAcI;IAChB;IAEA,MAAMC,gBAA8DnB,YAClE,CAACoB;QACC,uEAAuE;QACvE,iDAAiD;QACjD,mCAAmC;QACnC,MAAMb,MAAMa,EAAEb,GAAG;QAEjB,IAAID,WAAWC,QAAQA,QAAQ,UAAUA,QAAQ,SAASA,QAAQ,cAAcA,QAAQ,UAAU;YAChGO,cAAc,CAACO;gBACb,IAAIC,UAAkBD,cAAclB,GAAG;gBACvC,IAAIoB,aAAqBF,cAAcjB,MAAM;gBAE7C,IAAIG,QAAQ,gBAAgBgB,aAAaZ,aAAa,GAAG;oBACvDS,EAAEI,cAAc;oBAChBD,cAAc;gBAChB,OAAO,IAAIhB,QAAQ,eAAegB,aAAa,GAAG;oBAChDH,EAAEI,cAAc;oBAChBD,cAAc;gBAChB,OAAO,IAAIhB,QAAQ,eAAee,UAAUZ,UAAU,GAAG;oBACvDU,EAAEI,cAAc;oBAChBF,WAAW;gBACb,OAAO,IAAIf,QAAQ,aAAae,UAAU,GAAG;oBAC3CF,EAAEI,cAAc;oBAChBF,WAAW;gBACb,OAAO,IAAIf,QAAQ,QAAQ;oBACzBa,EAAEI,cAAc;oBAChBF,UAAU;oBACVC,aAAa;gBACf,OAAO,IAAIhB,QAAQ,OAAO;oBACxBa,EAAEI,cAAc;oBAChBF,UAAUZ,UAAU;oBACpBa,aAAaZ,aAAa;gBAC5B;gBAEA,MAAMc,qBAAqB;oBAAErB,QAAQmB;oBAAYpB,KAAKmB;gBAAQ;gBAE9D,MAAMI,cAAcd,qBAAqBQ,GAAGC,eAAeI,uBAAuBA;gBAElF,IAAIC,YAAYvB,GAAG,KAAKkB,cAAclB,GAAG,IAAIuB,YAAYtB,MAAM,KAAKiB,cAAcjB,MAAM,EAAE;oBACxF,4DAA4D;oBAC5D,WAAW;oBACX,OAAOiB;gBACT;gBAEA,OAAOK;YACT;QACF;IACF,GACA;QAACf;QAAYD;QAASE;KAAmB;IAG3C,MAAMe,kBAAuD3B,YAAY,CAACoB;QACxE,IAAI,CAACA,EAAEQ,aAAa,CAACC,QAAQ,CAACT,EAAEU,aAAa,GAAW;YACtDd,YAAY;YACZF,cAAcZ;QAChB;IACF,GAAG,EAAE;IAEL,OAAO;QACLW;QACAE;QACAgB,gBAAgBZ;QAChBa,aAAaf;QACbgB,aAAaN;IACf;AACF"}
@@ -1,6 +1,6 @@
1
- import { TableVirtuosoHandle } from 'react-virtuoso';
2
- import { FocusEventHandler, KeyboardEventHandler, MutableRefObject, RefObject } from 'react';
3
- import { UseTableKeyboardNavProps } from './useTableKeyboardNav';
1
+ import type { FocusEventHandler, KeyboardEventHandler, MutableRefObject, RefObject } from 'react';
2
+ import type { TableVirtuosoHandle } from 'react-virtuoso';
3
+ import type { UseTableKeyboardNavProps } from './useTableKeyboardNav';
4
4
  interface UseVirtualizedTableKeyboardNavProps extends Omit<UseTableKeyboardNavProps, 'onActiveCellChange'> {
5
5
  visibleRange: MutableRefObject<{
6
6
  startIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useVirtualizedTableKeyboardNav.d.ts","sourceRoot":"","sources":["../../../src/Table/hooks/useVirtualizedTableKeyboardNav.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7F,OAAO,EAAuB,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,UAAU,mCAAoC,SAAQ,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;IACxG,YAAY,EAAE,gBAAgB,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,YAAY,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,iBAAiB,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,EAC7C,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,GACX,EAAE,mCAAmC,GAAG;IACvC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACvD,WAAW,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;CAClD,CA4EA"}
1
+ {"version":3,"file":"useVirtualizedTableKeyboardNav.d.ts","sourceRoot":"","sources":["../../../src/Table/hooks/useVirtualizedTableKeyboardNav.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,UAAU,mCAAoC,SAAQ,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;IACxG,YAAY,EAAE,gBAAgB,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,YAAY,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,iBAAiB,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,EAC7C,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,GACX,EAAE,mCAAmC,GAAG;IACvC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACvD,WAAW,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;CAClD,CA4EA"}