@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/utils/transform-data.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 { Transform } from '../model';\n\n/*\n * Join: Regroup rows with equal cell value in a column.\n * If there are multiple line with same value, next row values override the current one\n *\n * Example: Join on 'mount' column\n * INPUT:\n * | timestamp | value #1 | value #3 | mount |\n * |------------|----------|----------|-----------|\n * | 1630000000 | 1 | | / |\n * | 1630000000 | 2 | | /boot/efi |\n * | 1630000000 | | 3 | / |\n * | 1630000000 | | 4 | /boot/efi |\n *\n * OUTPUT:\n * | timestamp | value #1 | value #3 | mount |\n * |------------|----------|----------|-----------|\n * | 1630000000 | 1 | 3 | / |\n * | 1630000000 | 2 | 4 | /boot/efi |\n */\nexport function applyJoinTransform(\n data: Array<Record<string, unknown>>,\n columns: string[]\n): Array<Record<string, unknown>> {\n // If column is undefined or empty, return data as is\n if (columns.length === 0) {\n return data;\n }\n\n const rowHashed: { [key: string]: Record<string, unknown> } = {};\n\n for (const row of data) {\n const rowHash = Object.keys(row)\n .filter((k) => columns.includes(k))\n .map((k) => row[k])\n .join('|');\n\n const rowHashedValue = rowHashed[rowHash];\n if (rowHashedValue) {\n rowHashed[rowHash] = { ...rowHashedValue, ...row };\n } else {\n rowHashed[rowHash] = { ...row };\n }\n }\n return Object.values(rowHashed);\n}\n\n/*\n * Merges selected columns into a single column.\n *\n * Example: Merge columns 'value #1' and 'value #2' into a single column 'MERGED'\n * INPUT:\n * +------------+----------+----------+-----------+-----------+\n * | timestamp | value #1 | value #2 | mount #1 | mount #2 |\n * +------------+----------+----------+-----------+-----------+\n * | 1630000000 | 1 | | / | |\n * | 1630000000 | 2 | | /boot/efi | |\n * | 1630000000 | | 3 | | / |\n * | 1630000000 | | 4 | | /boot/efi |\n * +------------+----------+----------+-----------+-----------+\n *\n * OUTPUT:\n * +------------+--------+-----------+-----------+\n * | timestamp | MERGED | mount #1 | mount #2 |\n * +------------+--------+-----------+-----------+\n * | 1630000000 | 1 | / | |\n * | 1630000000 | 2 | /boot/efi | |\n * | 1630000000 | 2 | | / |\n * | 1630000000 | 3 | | /boot/efi |\n * +------------+--------+-----------+-----------+\n */\nexport function applyMergeColumnsTransform(\n data: Array<Record<string, unknown>>,\n selectedColumns: string[],\n outputName: string\n): Array<Record<string, unknown>> {\n const result: Array<Record<string, unknown>> = [];\n\n for (const row of data) {\n const columns = Object.keys(row).filter((k) => selectedColumns.includes(k));\n\n const selectedColumnValues: Record<string, unknown> = {};\n\n for (const column of columns) {\n selectedColumnValues[column] = row[column];\n delete row[column];\n }\n\n for (const column of columns) {\n result.push({ ...row, [outputName]: selectedColumnValues[column] });\n }\n\n if (columns.length === 0) {\n result.push(row);\n }\n }\n\n return result;\n}\n\n/*\n * Merge Indexed Columns: All indexed columns are merged to one column\n *\n * Example: Join on 'value' column\n * INPUT:\n * | timestamp #1 | timestamp #2 | value #1 | value #2 | instance #1 | instance #2 |\n * |--------------|--------------|----------|----------|-------------|-------------|\n * | 1630000000 | | 55 | | toto | |\n * | 1630000000 | | 33 | | toto | |\n * | 1630000000 | | 45 | | toto | |\n * | | 1630000000 | | 112 | | titi |\n * | | 1630000000 | | 20 | | titi |\n * | | 1630000000 | | 10 | | titi |\n *\n * OUTPUT:\n * | timestamp #1 | timestamp #2 | value | instance #1 | instance #2 |\n * |--------------|--------------|-------|-------------|-------------|\n * | 1630000000 | | 55 | toto | |\n * | 1630000000 | | 33 | toto | |\n * | 1630000000 | | 45 | toto | |\n * | | 1630000000 | 112 | | titi |\n * | | 1630000000 | 20 | | titi |\n * | | 1630000000 | 10 | | titi |\n */\nexport function applyMergeIndexedColumnsTransform(\n data: Array<Record<string, unknown>>,\n column: string\n): Array<Record<string, unknown>> {\n const result: Array<Record<string, unknown>> = [];\n\n for (const entry of data) {\n const indexedColumns = Object.keys(entry).filter((k) =>\n new RegExp('^((' + column + ' #\\\\d+)|(' + column + '))$').test(k)\n );\n const indexedColumnValues: Record<string, unknown> = {};\n\n for (const indexedColumn of indexedColumns) {\n indexedColumnValues[indexedColumn] = entry[indexedColumn];\n delete entry[indexedColumn];\n }\n\n for (const indexedColumn of indexedColumns) {\n result.push({ ...entry, [column]: indexedColumnValues[indexedColumn] });\n }\n\n if (indexedColumns.length === 0) {\n result.push(entry);\n }\n }\n\n return result;\n}\n\n/*\n * Merge Indexed Columns: All indexed columns are merged to one column\n *\n * INPUT:\n * | timestamp | value #1 | value #2 | mount #1 | mount #2 | instance #1 | instance #2 | env #1 | env #2 |\n * |------------|----------|----------|-----------|-----------|-------------|-------------|--------|--------|\n * | 1630000000 | 1 | | / | | test:44 | | prd | |\n * | 1630000000 | 2 | | /boot/efi | | test:44 | | prd | |\n * | 1630000000 | | 5 | | / | | test:44 | | prd |\n * | 1630000000 | | 6 | | /boot/efi | | test:44 | | prd |\n *\n * OUTPUT:\n * | timestamp | value #1 | value #2 | mount | instance | env |\n * |------------|----------|----------|-----------|----------|-----|\n * | 1630000000 | 1 | 5 | / | test:44 | prd |\n * | 1630000000 | 2 | 6 | /boot/efi | test:44 | prd |\n */\nexport function applyMergeSeriesTransform(data: Array<Record<string, unknown>>): Array<Record<string, unknown>> {\n let result: Array<Record<string, unknown>> = [...data];\n\n const labelColumns = Array.from(\n new Set(\n data\n .flatMap(Object.keys)\n .map((label) => label.replace(/ #\\d+/, ''))\n .filter((label) => label !== 'value')\n )\n );\n\n for (const label of labelColumns) {\n result = applyMergeIndexedColumnsTransform(result, label);\n }\n\n result = applyJoinTransform(result, labelColumns);\n\n return result;\n}\n\n/*\n * Transforms query data with the given transforms\n */\nexport function transformData(\n data: Array<Record<string, unknown>>,\n transforms: Transform[]\n): Array<Record<string, unknown>> {\n let result: Array<Record<string, unknown>> = data;\n\n // Apply transforms by their orders\n for (const transform of transforms ?? []) {\n if (transform.spec.disabled) continue;\n\n switch (transform.kind) {\n case 'JoinByColumnValue': {\n if (transform.spec.columns && transform.spec.columns.length > 0) {\n result = applyJoinTransform(result, transform.spec.columns);\n }\n break;\n }\n case 'MergeIndexedColumns': {\n if (transform.spec.column) {\n result = applyMergeIndexedColumnsTransform(result, transform.spec.column);\n }\n break;\n }\n case 'MergeColumns': {\n if (transform.spec.columns && transform.spec.columns.length > 0 && transform.spec.name) {\n result = applyMergeColumnsTransform(result, transform.spec.columns, transform.spec.name);\n }\n break;\n }\n case 'MergeSeries': {\n result = applyMergeSeriesTransform(result);\n break;\n }\n }\n }\n\n // Ordering data column alphabetically\n result = result.map((row) => {\n return Object.keys(row)\n .sort()\n .reduce((obj: Record<string, unknown>, key: string) => {\n obj[key] = row[key];\n return obj;\n }, {});\n });\n return result;\n}\n"],"names":["applyJoinTransform","data","columns","length","rowHashed","row","rowHash","Object","keys","filter","k","includes","map","join","rowHashedValue","values","applyMergeColumnsTransform","selectedColumns","outputName","result","selectedColumnValues","column","push","applyMergeIndexedColumnsTransform","entry","indexedColumns","RegExp","test","indexedColumnValues","indexedColumn","applyMergeSeriesTransform","labelColumns","Array","from","Set","flatMap","label","replace","transformData","transforms","transform","spec","disabled","kind","name","sort","reduce","obj","key"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/transform-data.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 { Transform } from '../model';\n\n/*\n * Join: Regroup rows with equal cell value in a column.\n * If there are multiple line with same value, next row values override the current one\n *\n * Example: Join on 'mount' column\n * INPUT:\n * | timestamp | value #1 | value #3 | mount |\n * |------------|----------|----------|-----------|\n * | 1630000000 | 1 | | / |\n * | 1630000000 | 2 | | /boot/efi |\n * | 1630000000 | | 3 | / |\n * | 1630000000 | | 4 | /boot/efi |\n *\n * OUTPUT:\n * | timestamp | value #1 | value #3 | mount |\n * |------------|----------|----------|-----------|\n * | 1630000000 | 1 | 3 | / |\n * | 1630000000 | 2 | 4 | /boot/efi |\n */\nexport function applyJoinTransform(\n data: Array<Record<string, unknown>>,\n columns: string[],\n): Array<Record<string, unknown>> {\n // If column is undefined or empty, return data as is\n if (columns.length === 0) {\n return data;\n }\n\n const rowHashed: { [key: string]: Record<string, unknown> } = {};\n\n for (const row of data) {\n const rowHash = Object.keys(row)\n .filter((k) => columns.includes(k))\n .map((k) => row[k])\n .join('|');\n\n const rowHashedValue = rowHashed[rowHash];\n if (rowHashedValue) {\n rowHashed[rowHash] = { ...rowHashedValue, ...row };\n } else {\n rowHashed[rowHash] = { ...row };\n }\n }\n return Object.values(rowHashed);\n}\n\n/*\n * Merges selected columns into a single column.\n *\n * Example: Merge columns 'value #1' and 'value #2' into a single column 'MERGED'\n * INPUT:\n * +------------+----------+----------+-----------+-----------+\n * | timestamp | value #1 | value #2 | mount #1 | mount #2 |\n * +------------+----------+----------+-----------+-----------+\n * | 1630000000 | 1 | | / | |\n * | 1630000000 | 2 | | /boot/efi | |\n * | 1630000000 | | 3 | | / |\n * | 1630000000 | | 4 | | /boot/efi |\n * +------------+----------+----------+-----------+-----------+\n *\n * OUTPUT:\n * +------------+--------+-----------+-----------+\n * | timestamp | MERGED | mount #1 | mount #2 |\n * +------------+--------+-----------+-----------+\n * | 1630000000 | 1 | / | |\n * | 1630000000 | 2 | /boot/efi | |\n * | 1630000000 | 2 | | / |\n * | 1630000000 | 3 | | /boot/efi |\n * +------------+--------+-----------+-----------+\n */\nexport function applyMergeColumnsTransform(\n data: Array<Record<string, unknown>>,\n selectedColumns: string[],\n outputName: string,\n): Array<Record<string, unknown>> {\n const result: Array<Record<string, unknown>> = [];\n\n for (const row of data) {\n const columns = Object.keys(row).filter((k) => selectedColumns.includes(k));\n\n const selectedColumnValues: Record<string, unknown> = {};\n\n for (const column of columns) {\n selectedColumnValues[column] = row[column];\n delete row[column];\n }\n\n for (const column of columns) {\n result.push({ ...row, [outputName]: selectedColumnValues[column] });\n }\n\n if (columns.length === 0) {\n result.push(row);\n }\n }\n\n return result;\n}\n\n/*\n * Merge Indexed Columns: All indexed columns are merged to one column\n *\n * Example: Join on 'value' column\n * INPUT:\n * | timestamp #1 | timestamp #2 | value #1 | value #2 | instance #1 | instance #2 |\n * |--------------|--------------|----------|----------|-------------|-------------|\n * | 1630000000 | | 55 | | toto | |\n * | 1630000000 | | 33 | | toto | |\n * | 1630000000 | | 45 | | toto | |\n * | | 1630000000 | | 112 | | titi |\n * | | 1630000000 | | 20 | | titi |\n * | | 1630000000 | | 10 | | titi |\n *\n * OUTPUT:\n * | timestamp #1 | timestamp #2 | value | instance #1 | instance #2 |\n * |--------------|--------------|-------|-------------|-------------|\n * | 1630000000 | | 55 | toto | |\n * | 1630000000 | | 33 | toto | |\n * | 1630000000 | | 45 | toto | |\n * | | 1630000000 | 112 | | titi |\n * | | 1630000000 | 20 | | titi |\n * | | 1630000000 | 10 | | titi |\n */\nexport function applyMergeIndexedColumnsTransform(\n data: Array<Record<string, unknown>>,\n column: string,\n): Array<Record<string, unknown>> {\n const result: Array<Record<string, unknown>> = [];\n\n for (const entry of data) {\n const indexedColumns = Object.keys(entry).filter((k) =>\n new RegExp('^((' + column + ' #\\\\d+)|(' + column + '))$').test(k),\n );\n const indexedColumnValues: Record<string, unknown> = {};\n\n for (const indexedColumn of indexedColumns) {\n indexedColumnValues[indexedColumn] = entry[indexedColumn];\n delete entry[indexedColumn];\n }\n\n for (const indexedColumn of indexedColumns) {\n result.push({ ...entry, [column]: indexedColumnValues[indexedColumn] });\n }\n\n if (indexedColumns.length === 0) {\n result.push(entry);\n }\n }\n\n return result;\n}\n\n/*\n * Merge Indexed Columns: All indexed columns are merged to one column\n *\n * INPUT:\n * | timestamp | value #1 | value #2 | mount #1 | mount #2 | instance #1 | instance #2 | env #1 | env #2 |\n * |------------|----------|----------|-----------|-----------|-------------|-------------|--------|--------|\n * | 1630000000 | 1 | | / | | test:44 | | prd | |\n * | 1630000000 | 2 | | /boot/efi | | test:44 | | prd | |\n * | 1630000000 | | 5 | | / | | test:44 | | prd |\n * | 1630000000 | | 6 | | /boot/efi | | test:44 | | prd |\n *\n * OUTPUT:\n * | timestamp | value #1 | value #2 | mount | instance | env |\n * |------------|----------|----------|-----------|----------|-----|\n * | 1630000000 | 1 | 5 | / | test:44 | prd |\n * | 1630000000 | 2 | 6 | /boot/efi | test:44 | prd |\n */\nexport function applyMergeSeriesTransform(data: Array<Record<string, unknown>>): Array<Record<string, unknown>> {\n let result: Array<Record<string, unknown>> = [...data];\n\n const labelColumns = Array.from(\n new Set(\n data\n .flatMap(Object.keys)\n .map((label) => label.replace(/ #\\d+/, ''))\n .filter((label) => label !== 'value'),\n ),\n );\n\n for (const label of labelColumns) {\n result = applyMergeIndexedColumnsTransform(result, label);\n }\n\n result = applyJoinTransform(result, labelColumns);\n\n return result;\n}\n\n/*\n * Transforms query data with the given transforms\n */\nexport function transformData(\n data: Array<Record<string, unknown>>,\n transforms: Transform[],\n): Array<Record<string, unknown>> {\n let result: Array<Record<string, unknown>> = data;\n\n // Apply transforms by their orders\n for (const transform of transforms ?? []) {\n if (transform.spec.disabled) continue;\n\n switch (transform.kind) {\n case 'JoinByColumnValue': {\n if (transform.spec.columns && transform.spec.columns.length > 0) {\n result = applyJoinTransform(result, transform.spec.columns);\n }\n break;\n }\n case 'MergeIndexedColumns': {\n if (transform.spec.column) {\n result = applyMergeIndexedColumnsTransform(result, transform.spec.column);\n }\n break;\n }\n case 'MergeColumns': {\n if (transform.spec.columns && transform.spec.columns.length > 0 && transform.spec.name) {\n result = applyMergeColumnsTransform(result, transform.spec.columns, transform.spec.name);\n }\n break;\n }\n case 'MergeSeries': {\n result = applyMergeSeriesTransform(result);\n break;\n }\n }\n }\n\n // Ordering data column alphabetically\n result = result.map((row) => {\n return Object.keys(row)\n .sort()\n .reduce((obj: Record<string, unknown>, key: string) => {\n obj[key] = row[key];\n return obj;\n }, {});\n });\n return result;\n}\n"],"names":["applyJoinTransform","data","columns","length","rowHashed","row","rowHash","Object","keys","filter","k","includes","map","join","rowHashedValue","values","applyMergeColumnsTransform","selectedColumns","outputName","result","selectedColumnValues","column","push","applyMergeIndexedColumnsTransform","entry","indexedColumns","RegExp","test","indexedColumnValues","indexedColumn","applyMergeSeriesTransform","labelColumns","Array","from","Set","flatMap","label","replace","transformData","transforms","transform","spec","disabled","kind","name","sort","reduce","obj","key"],"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;AAIjC;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,SAASA,mBACdC,IAAoC,EACpCC,OAAiB;IAEjB,qDAAqD;IACrD,IAAIA,QAAQC,MAAM,KAAK,GAAG;QACxB,OAAOF;IACT;IAEA,MAAMG,YAAwD,CAAC;IAE/D,KAAK,MAAMC,OAAOJ,KAAM;QACtB,MAAMK,UAAUC,OAAOC,IAAI,CAACH,KACzBI,MAAM,CAAC,CAACC,IAAMR,QAAQS,QAAQ,CAACD,IAC/BE,GAAG,CAAC,CAACF,IAAML,GAAG,CAACK,EAAE,EACjBG,IAAI,CAAC;QAER,MAAMC,iBAAiBV,SAAS,CAACE,QAAQ;QACzC,IAAIQ,gBAAgB;YAClBV,SAAS,CAACE,QAAQ,GAAG;gBAAE,GAAGQ,cAAc;gBAAE,GAAGT,GAAG;YAAC;QACnD,OAAO;YACLD,SAAS,CAACE,QAAQ,GAAG;gBAAE,GAAGD,GAAG;YAAC;QAChC;IACF;IACA,OAAOE,OAAOQ,MAAM,CAACX;AACvB;AAEA;;;;;;;;;;;;;;;;;;;;;;;CAuBC,GACD,OAAO,SAASY,2BACdf,IAAoC,EACpCgB,eAAyB,EACzBC,UAAkB;IAElB,MAAMC,SAAyC,EAAE;IAEjD,KAAK,MAAMd,OAAOJ,KAAM;QACtB,MAAMC,UAAUK,OAAOC,IAAI,CAACH,KAAKI,MAAM,CAAC,CAACC,IAAMO,gBAAgBN,QAAQ,CAACD;QAExE,MAAMU,uBAAgD,CAAC;QAEvD,KAAK,MAAMC,UAAUnB,QAAS;YAC5BkB,oBAAoB,CAACC,OAAO,GAAGhB,GAAG,CAACgB,OAAO;YAC1C,OAAOhB,GAAG,CAACgB,OAAO;QACpB;QAEA,KAAK,MAAMA,UAAUnB,QAAS;YAC5BiB,OAAOG,IAAI,CAAC;gBAAE,GAAGjB,GAAG;gBAAE,CAACa,WAAW,EAAEE,oBAAoB,CAACC,OAAO;YAAC;QACnE;QAEA,IAAInB,QAAQC,MAAM,KAAK,GAAG;YACxBgB,OAAOG,IAAI,CAACjB;QACd;IACF;IAEA,OAAOc;AACT;AAEA;;;;;;;;;;;;;;;;;;;;;;;CAuBC,GACD,OAAO,SAASI,kCACdtB,IAAoC,EACpCoB,MAAc;IAEd,MAAMF,SAAyC,EAAE;IAEjD,KAAK,MAAMK,SAASvB,KAAM;QACxB,MAAMwB,iBAAiBlB,OAAOC,IAAI,CAACgB,OAAOf,MAAM,CAAC,CAACC,IAChD,IAAIgB,OAAO,QAAQL,SAAS,cAAcA,SAAS,OAAOM,IAAI,CAACjB;QAEjE,MAAMkB,sBAA+C,CAAC;QAEtD,KAAK,MAAMC,iBAAiBJ,eAAgB;YAC1CG,mBAAmB,CAACC,cAAc,GAAGL,KAAK,CAACK,cAAc;YACzD,OAAOL,KAAK,CAACK,cAAc;QAC7B;QAEA,KAAK,MAAMA,iBAAiBJ,eAAgB;YAC1CN,OAAOG,IAAI,CAAC;gBAAE,GAAGE,KAAK;gBAAE,CAACH,OAAO,EAAEO,mBAAmB,CAACC,cAAc;YAAC;QACvE;QAEA,IAAIJ,eAAetB,MAAM,KAAK,GAAG;YAC/BgB,OAAOG,IAAI,CAACE;QACd;IACF;IAEA,OAAOL;AACT;AAEA;;;;;;;;;;;;;;;;CAgBC,GACD,OAAO,SAASW,0BAA0B7B,IAAoC;IAC5E,IAAIkB,SAAyC;WAAIlB;KAAK;IAEtD,MAAM8B,eAAeC,MAAMC,IAAI,CAC7B,IAAIC,IACFjC,KACGkC,OAAO,CAAC5B,OAAOC,IAAI,EACnBI,GAAG,CAAC,CAACwB,QAAUA,MAAMC,OAAO,CAAC,SAAS,KACtC5B,MAAM,CAAC,CAAC2B,QAAUA,UAAU;IAInC,KAAK,MAAMA,SAASL,aAAc;QAChCZ,SAASI,kCAAkCJ,QAAQiB;IACrD;IAEAjB,SAASnB,mBAAmBmB,QAAQY;IAEpC,OAAOZ;AACT;AAEA;;CAEC,GACD,OAAO,SAASmB,cACdrC,IAAoC,EACpCsC,UAAuB;IAEvB,IAAIpB,SAAyClB;IAE7C,mCAAmC;IACnC,KAAK,MAAMuC,aAAaD,cAAc,EAAE,CAAE;QACxC,IAAIC,UAAUC,IAAI,CAACC,QAAQ,EAAE;QAE7B,OAAQF,UAAUG,IAAI;YACpB,KAAK;gBAAqB;oBACxB,IAAIH,UAAUC,IAAI,CAACvC,OAAO,IAAIsC,UAAUC,IAAI,CAACvC,OAAO,CAACC,MAAM,GAAG,GAAG;wBAC/DgB,SAASnB,mBAAmBmB,QAAQqB,UAAUC,IAAI,CAACvC,OAAO;oBAC5D;oBACA;gBACF;YACA,KAAK;gBAAuB;oBAC1B,IAAIsC,UAAUC,IAAI,CAACpB,MAAM,EAAE;wBACzBF,SAASI,kCAAkCJ,QAAQqB,UAAUC,IAAI,CAACpB,MAAM;oBAC1E;oBACA;gBACF;YACA,KAAK;gBAAgB;oBACnB,IAAImB,UAAUC,IAAI,CAACvC,OAAO,IAAIsC,UAAUC,IAAI,CAACvC,OAAO,CAACC,MAAM,GAAG,KAAKqC,UAAUC,IAAI,CAACG,IAAI,EAAE;wBACtFzB,SAASH,2BAA2BG,QAAQqB,UAAUC,IAAI,CAACvC,OAAO,EAAEsC,UAAUC,IAAI,CAACG,IAAI;oBACzF;oBACA;gBACF;YACA,KAAK;gBAAe;oBAClBzB,SAASW,0BAA0BX;oBACnC;gBACF;QACF;IACF;IAEA,sCAAsC;IACtCA,SAASA,OAAOP,GAAG,CAAC,CAACP;QACnB,OAAOE,OAAOC,IAAI,CAACH,KAChBwC,IAAI,GACJC,MAAM,CAAC,CAACC,KAA8BC;YACrCD,GAAG,CAACC,IAAI,GAAG3C,GAAG,CAAC2C,IAAI;YACnB,OAAOD;QACT,GAAG,CAAC;IACR;IACA,OAAO5B;AACT"}
@@ -1,3 +1,3 @@
1
- import { MappedValue, ValueMapping } from '../model';
1
+ import type { MappedValue, ValueMapping } from '../model';
2
2
  export declare function applyValueMapping(value: number | string, mappings?: ValueMapping[]): MappedValue;
3
3
  //# sourceMappingURL=value-mapping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"value-mapping.d.ts","sourceRoot":"","sources":["../../src/utils/value-mapping.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGrD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,GAAE,YAAY,EAAO,GAAG,WAAW,CAkEpG"}
1
+ {"version":3,"file":"value-mapping.d.ts","sourceRoot":"","sources":["../../src/utils/value-mapping.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG1D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,GAAE,YAAY,EAAO,GAAG,WAAW,CAkEpG"}
@@ -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 { createRegexFromString } from './regexp';
13
+ import { createRegexFromString } from "./regexp.js";
14
14
  export function applyValueMapping(value, mappings = []) {
15
15
  if (!mappings.length) {
16
16
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/value-mapping.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 { MappedValue, ValueMapping } from '../model';\nimport { createRegexFromString } from './regexp';\n\nexport function applyValueMapping(value: number | string, mappings: ValueMapping[] = []): MappedValue {\n if (!mappings.length) {\n return { value };\n }\n\n const mappedItem: MappedValue = { value };\n\n mappings.forEach((mapping) => {\n switch (mapping.kind) {\n case 'Value': {\n const valueOptions = mapping.spec;\n\n if (String(valueOptions.value) === String(value)) {\n mappedItem.value = valueOptions.result.value || mappedItem.value;\n mappedItem.color = valueOptions.result.color;\n }\n break;\n }\n case 'Range': {\n const rangeOptions = mapping.spec;\n const newValue = value as number;\n\n if (rangeOptions.from === undefined && rangeOptions.to === undefined) {\n break;\n }\n\n const from = rangeOptions.from !== undefined ? rangeOptions.from : -Infinity;\n const to = rangeOptions.to !== undefined ? rangeOptions.to : Infinity;\n if (newValue >= from && newValue <= to) {\n mappedItem.value = rangeOptions.result.value || mappedItem.value;\n mappedItem.color = rangeOptions.result.color;\n }\n break;\n }\n case 'Regex': {\n const regexOptions = mapping.spec;\n const stringValue = value.toString();\n\n if (!regexOptions.pattern) {\n break;\n }\n\n const regex = createRegexFromString(regexOptions.pattern);\n\n if (stringValue.match(regex)) {\n if (regexOptions.result.value !== null) {\n mappedItem.value =\n stringValue.replace(regex, regexOptions.result.value.toString() || '') || mappedItem.value;\n mappedItem.color = regexOptions.result.color;\n }\n }\n break;\n }\n case 'Misc': {\n const miscOptions = mapping.spec;\n if (isMiscValueMatch(miscOptions.value, value)) {\n mappedItem.value = miscOptions.result.value || mappedItem.value;\n mappedItem.color = miscOptions.result.color;\n }\n break;\n }\n default:\n break;\n }\n });\n return mappedItem;\n}\n\nfunction isMiscValueMatch(miscValue: string, value: number | string | boolean): boolean {\n switch (miscValue) {\n case 'empty':\n return value === '';\n case 'null':\n return value === null || value === undefined;\n case 'NaN':\n return Number.isNaN(value);\n case 'true':\n return value === true;\n case 'false':\n return value === false;\n default:\n return false;\n }\n}\n"],"names":["createRegexFromString","applyValueMapping","value","mappings","length","mappedItem","forEach","mapping","kind","valueOptions","spec","String","result","color","rangeOptions","newValue","from","undefined","to","Infinity","regexOptions","stringValue","toString","pattern","regex","match","replace","miscOptions","isMiscValueMatch","miscValue","Number","isNaN"],"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,qBAAqB,QAAQ,WAAW;AAEjD,OAAO,SAASC,kBAAkBC,KAAsB,EAAEC,WAA2B,EAAE;IACrF,IAAI,CAACA,SAASC,MAAM,EAAE;QACpB,OAAO;YAAEF;QAAM;IACjB;IAEA,MAAMG,aAA0B;QAAEH;IAAM;IAExCC,SAASG,OAAO,CAAC,CAACC;QAChB,OAAQA,QAAQC,IAAI;YAClB,KAAK;gBAAS;oBACZ,MAAMC,eAAeF,QAAQG,IAAI;oBAEjC,IAAIC,OAAOF,aAAaP,KAAK,MAAMS,OAAOT,QAAQ;wBAChDG,WAAWH,KAAK,GAAGO,aAAaG,MAAM,CAACV,KAAK,IAAIG,WAAWH,KAAK;wBAChEG,WAAWQ,KAAK,GAAGJ,aAAaG,MAAM,CAACC,KAAK;oBAC9C;oBACA;gBACF;YACA,KAAK;gBAAS;oBACZ,MAAMC,eAAeP,QAAQG,IAAI;oBACjC,MAAMK,WAAWb;oBAEjB,IAAIY,aAAaE,IAAI,KAAKC,aAAaH,aAAaI,EAAE,KAAKD,WAAW;wBACpE;oBACF;oBAEA,MAAMD,OAAOF,aAAaE,IAAI,KAAKC,YAAYH,aAAaE,IAAI,GAAG,CAACG;oBACpE,MAAMD,KAAKJ,aAAaI,EAAE,KAAKD,YAAYH,aAAaI,EAAE,GAAGC;oBAC7D,IAAIJ,YAAYC,QAAQD,YAAYG,IAAI;wBACtCb,WAAWH,KAAK,GAAGY,aAAaF,MAAM,CAACV,KAAK,IAAIG,WAAWH,KAAK;wBAChEG,WAAWQ,KAAK,GAAGC,aAAaF,MAAM,CAACC,KAAK;oBAC9C;oBACA;gBACF;YACA,KAAK;gBAAS;oBACZ,MAAMO,eAAeb,QAAQG,IAAI;oBACjC,MAAMW,cAAcnB,MAAMoB,QAAQ;oBAElC,IAAI,CAACF,aAAaG,OAAO,EAAE;wBACzB;oBACF;oBAEA,MAAMC,QAAQxB,sBAAsBoB,aAAaG,OAAO;oBAExD,IAAIF,YAAYI,KAAK,CAACD,QAAQ;wBAC5B,IAAIJ,aAAaR,MAAM,CAACV,KAAK,KAAK,MAAM;4BACtCG,WAAWH,KAAK,GACdmB,YAAYK,OAAO,CAACF,OAAOJ,aAAaR,MAAM,CAACV,KAAK,CAACoB,QAAQ,MAAM,OAAOjB,WAAWH,KAAK;4BAC5FG,WAAWQ,KAAK,GAAGO,aAAaR,MAAM,CAACC,KAAK;wBAC9C;oBACF;oBACA;gBACF;YACA,KAAK;gBAAQ;oBACX,MAAMc,cAAcpB,QAAQG,IAAI;oBAChC,IAAIkB,iBAAiBD,YAAYzB,KAAK,EAAEA,QAAQ;wBAC9CG,WAAWH,KAAK,GAAGyB,YAAYf,MAAM,CAACV,KAAK,IAAIG,WAAWH,KAAK;wBAC/DG,WAAWQ,KAAK,GAAGc,YAAYf,MAAM,CAACC,KAAK;oBAC7C;oBACA;gBACF;YACA;gBACE;QACJ;IACF;IACA,OAAOR;AACT;AAEA,SAASuB,iBAAiBC,SAAiB,EAAE3B,KAAgC;IAC3E,OAAQ2B;QACN,KAAK;YACH,OAAO3B,UAAU;QACnB,KAAK;YACH,OAAOA,UAAU,QAAQA,UAAUe;QACrC,KAAK;YACH,OAAOa,OAAOC,KAAK,CAAC7B;QACtB,KAAK;YACH,OAAOA,UAAU;QACnB,KAAK;YACH,OAAOA,UAAU;QACnB;YACE,OAAO;IACX;AACF"}
1
+ {"version":3,"sources":["../../src/utils/value-mapping.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 { MappedValue, ValueMapping } from '../model';\nimport { createRegexFromString } from './regexp';\n\nexport function applyValueMapping(value: number | string, mappings: ValueMapping[] = []): MappedValue {\n if (!mappings.length) {\n return { value };\n }\n\n const mappedItem: MappedValue = { value };\n\n mappings.forEach((mapping) => {\n switch (mapping.kind) {\n case 'Value': {\n const valueOptions = mapping.spec;\n\n if (String(valueOptions.value) === String(value)) {\n mappedItem.value = valueOptions.result.value || mappedItem.value;\n mappedItem.color = valueOptions.result.color;\n }\n break;\n }\n case 'Range': {\n const rangeOptions = mapping.spec;\n const newValue = value as number;\n\n if (rangeOptions.from === undefined && rangeOptions.to === undefined) {\n break;\n }\n\n const from = rangeOptions.from !== undefined ? rangeOptions.from : -Infinity;\n const to = rangeOptions.to !== undefined ? rangeOptions.to : Infinity;\n if (newValue >= from && newValue <= to) {\n mappedItem.value = rangeOptions.result.value || mappedItem.value;\n mappedItem.color = rangeOptions.result.color;\n }\n break;\n }\n case 'Regex': {\n const regexOptions = mapping.spec;\n const stringValue = value.toString();\n\n if (!regexOptions.pattern) {\n break;\n }\n\n const regex = createRegexFromString(regexOptions.pattern);\n\n if (stringValue.match(regex)) {\n if (regexOptions.result.value !== null) {\n mappedItem.value =\n stringValue.replace(regex, regexOptions.result.value.toString() || '') || mappedItem.value;\n mappedItem.color = regexOptions.result.color;\n }\n }\n break;\n }\n case 'Misc': {\n const miscOptions = mapping.spec;\n if (isMiscValueMatch(miscOptions.value, value)) {\n mappedItem.value = miscOptions.result.value || mappedItem.value;\n mappedItem.color = miscOptions.result.color;\n }\n break;\n }\n default:\n break;\n }\n });\n return mappedItem;\n}\n\nfunction isMiscValueMatch(miscValue: string, value: number | string | boolean): boolean {\n switch (miscValue) {\n case 'empty':\n return value === '';\n case 'null':\n return value === null || value === undefined;\n case 'NaN':\n return Number.isNaN(value);\n case 'true':\n return value === true;\n case 'false':\n return value === false;\n default:\n return false;\n }\n}\n"],"names":["createRegexFromString","applyValueMapping","value","mappings","length","mappedItem","forEach","mapping","kind","valueOptions","spec","String","result","color","rangeOptions","newValue","from","undefined","to","Infinity","regexOptions","stringValue","toString","pattern","regex","match","replace","miscOptions","isMiscValueMatch","miscValue","Number","isNaN"],"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,qBAAqB,QAAQ,cAAW;AAEjD,OAAO,SAASC,kBAAkBC,KAAsB,EAAEC,WAA2B,EAAE;IACrF,IAAI,CAACA,SAASC,MAAM,EAAE;QACpB,OAAO;YAAEF;QAAM;IACjB;IAEA,MAAMG,aAA0B;QAAEH;IAAM;IAExCC,SAASG,OAAO,CAAC,CAACC;QAChB,OAAQA,QAAQC,IAAI;YAClB,KAAK;gBAAS;oBACZ,MAAMC,eAAeF,QAAQG,IAAI;oBAEjC,IAAIC,OAAOF,aAAaP,KAAK,MAAMS,OAAOT,QAAQ;wBAChDG,WAAWH,KAAK,GAAGO,aAAaG,MAAM,CAACV,KAAK,IAAIG,WAAWH,KAAK;wBAChEG,WAAWQ,KAAK,GAAGJ,aAAaG,MAAM,CAACC,KAAK;oBAC9C;oBACA;gBACF;YACA,KAAK;gBAAS;oBACZ,MAAMC,eAAeP,QAAQG,IAAI;oBACjC,MAAMK,WAAWb;oBAEjB,IAAIY,aAAaE,IAAI,KAAKC,aAAaH,aAAaI,EAAE,KAAKD,WAAW;wBACpE;oBACF;oBAEA,MAAMD,OAAOF,aAAaE,IAAI,KAAKC,YAAYH,aAAaE,IAAI,GAAG,CAACG;oBACpE,MAAMD,KAAKJ,aAAaI,EAAE,KAAKD,YAAYH,aAAaI,EAAE,GAAGC;oBAC7D,IAAIJ,YAAYC,QAAQD,YAAYG,IAAI;wBACtCb,WAAWH,KAAK,GAAGY,aAAaF,MAAM,CAACV,KAAK,IAAIG,WAAWH,KAAK;wBAChEG,WAAWQ,KAAK,GAAGC,aAAaF,MAAM,CAACC,KAAK;oBAC9C;oBACA;gBACF;YACA,KAAK;gBAAS;oBACZ,MAAMO,eAAeb,QAAQG,IAAI;oBACjC,MAAMW,cAAcnB,MAAMoB,QAAQ;oBAElC,IAAI,CAACF,aAAaG,OAAO,EAAE;wBACzB;oBACF;oBAEA,MAAMC,QAAQxB,sBAAsBoB,aAAaG,OAAO;oBAExD,IAAIF,YAAYI,KAAK,CAACD,QAAQ;wBAC5B,IAAIJ,aAAaR,MAAM,CAACV,KAAK,KAAK,MAAM;4BACtCG,WAAWH,KAAK,GACdmB,YAAYK,OAAO,CAACF,OAAOJ,aAAaR,MAAM,CAACV,KAAK,CAACoB,QAAQ,MAAM,OAAOjB,WAAWH,KAAK;4BAC5FG,WAAWQ,KAAK,GAAGO,aAAaR,MAAM,CAACC,KAAK;wBAC9C;oBACF;oBACA;gBACF;YACA,KAAK;gBAAQ;oBACX,MAAMc,cAAcpB,QAAQG,IAAI;oBAChC,IAAIkB,iBAAiBD,YAAYzB,KAAK,EAAEA,QAAQ;wBAC9CG,WAAWH,KAAK,GAAGyB,YAAYf,MAAM,CAACV,KAAK,IAAIG,WAAWH,KAAK;wBAC/DG,WAAWQ,KAAK,GAAGc,YAAYf,MAAM,CAACC,KAAK;oBAC7C;oBACA;gBACF;YACA;gBACE;QACJ;IACF;IACA,OAAOR;AACT;AAEA,SAASuB,iBAAiBC,SAAiB,EAAE3B,KAAgC;IAC3E,OAAQ2B;QACN,KAAK;YACH,OAAO3B,UAAU;QACnB,KAAK;YACH,OAAOA,UAAU,QAAQA,UAAUe;QACrC,KAAK;YACH,OAAOa,OAAOC,KAAK,CAAC7B;QACtB,KAAK;YACH,OAAOA,UAAU;QACnB,KAAK;YACH,OAAOA,UAAU;QACnB;YACE,OAAO;IACX;AACF"}
@@ -1,4 +1,4 @@
1
- import { VariableValue } from '@perses-dev/spec';
1
+ import type { VariableValue } from '@perses-dev/spec';
2
2
  /**
3
3
  * Option for a variable with label and value
4
4
  */
@@ -11,6 +11,10 @@ export type VariableOption = {
11
11
  */
12
12
  export type VariableState = {
13
13
  value: VariableValue;
14
+ /**
15
+ * Optional compact value for human-readable text. Query interpolation continues to use `value`.
16
+ */
17
+ displayValue?: VariableValue;
14
18
  options?: VariableOption[];
15
19
  loading: boolean;
16
20
  error?: Error;
@@ -70,4 +74,8 @@ export declare function parseVariablesAndFormat(text: string): Map<string, Inter
70
74
  * Replace all variables in text with their values from the variable state map
71
75
  */
72
76
  export declare function replaceVariables(text: string, variableState: VariableStateMap): string;
77
+ /**
78
+ * Replace variables using their compact display values when available.
79
+ */
80
+ export declare function replaceVariablesForDisplay(text: string, variableState: VariableStateMap): string;
73
81
  //# sourceMappingURL=variable-interpolation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"variable-interpolation.d.ts","sourceRoot":"","sources":["../../src/utils/variable-interpolation.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE7D;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,aAAa,iBAAiB;CAC/B;AASD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAoD/F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,EAC5B,SAAS,CAAC,EAAE,mBAAmB,GAC9B,MAAM,CAaR;AAUD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBrD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,CAoBlG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAiBtF"}
1
+ {"version":3,"file":"variable-interpolation.d.ts","sourceRoot":"","sources":["../../src/utils/variable-interpolation.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE7D;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,aAAa,iBAAiB;CAC/B;AASD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAoD/F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,EAC5B,SAAS,CAAC,EAAE,mBAAmB,GAC9B,MAAM,CAaR;AAUD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBrD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,CAoBlG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAiBtF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAMhG"}
@@ -178,5 +178,17 @@ const VARIABLE_REGEX = /\$(\w+)|\${(\w+)(?:\.([^:^}]+))?(?::([^}]+))?}/gm;
178
178
  });
179
179
  return finalText;
180
180
  }
181
+ /**
182
+ * Replace variables using their compact display values when available.
183
+ */ export function replaceVariablesForDisplay(text, variableState) {
184
+ const displayState = {};
185
+ for (const [name, state] of Object.entries(variableState)){
186
+ displayState[name] = state.displayValue === undefined ? state : {
187
+ ...state,
188
+ value: state.displayValue
189
+ };
190
+ }
191
+ return replaceVariables(text, displayState);
192
+ }
181
193
 
182
194
  //# sourceMappingURL=variable-interpolation.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/variable-interpolation.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 { VariableValue } from '@perses-dev/spec';\n\n/**\n * Option for a variable with label and value\n */\nexport type VariableOption = { label: string; value: string };\n\n/**\n * State of a variable including its current value, options, and loading state\n */\nexport type VariableState = {\n value: VariableValue;\n options?: VariableOption[];\n loading: boolean;\n error?: Error;\n /**\n * If a local variable is overriding an external variable, local var will have the flag ``overriding=true``.\n */\n overriding?: boolean;\n /**\n * If a local variable is overriding an external variable, external var will have the flag ``overridden=true``.\n */\n overridden?: boolean;\n defaultValue?: VariableValue;\n customAllValue?: string;\n};\n\n/**\n * Map of variable names to their states\n */\nexport type VariableStateMap = Record<string, VariableState>;\n\n/**\n * Supported interpolation formats for variable values\n */\nexport enum InterpolationFormat {\n CSV = 'csv',\n DISTRIBUTED = 'distributed',\n DOUBLEQUOTE = 'doublequote',\n GLOB = 'glob',\n JSON = 'json',\n LUCENE = 'lucene',\n PERCENTENCODE = 'percentencode',\n PIPE = 'pipe',\n PROMETHEUS = 'prometheus',\n RAW = 'raw',\n REGEX = 'regex',\n SINGLEQUOTE = 'singlequote',\n SQLSTRING = 'sqlstring',\n TEXT = 'text',\n QUERYPARAM = 'queryparam',\n REGEX_LITERAL = 'regexliteral',\n}\n\nfunction stringToFormat(val: string | undefined): InterpolationFormat | undefined {\n if (!val) return undefined;\n\n const lowerVal = val.toLowerCase();\n return Object.values(InterpolationFormat).find((format) => format === lowerVal) || undefined;\n}\n\n/**\n * Interpolate an array of values with a specific format\n */\nexport function interpolate(values: string[], name: string, format: InterpolationFormat): string {\n switch (format) {\n case InterpolationFormat.CSV:\n case InterpolationFormat.RAW:\n return values.join(',');\n case InterpolationFormat.DISTRIBUTED: {\n const [first, ...rest] = values;\n return `${[first, ...rest.map((v) => `${name}=${v}`)].join(',')}`;\n }\n case InterpolationFormat.DOUBLEQUOTE:\n return values.map((v) => `\"${v}\"`).join(',');\n case InterpolationFormat.GLOB:\n return `{${values.join(',')}}`;\n case InterpolationFormat.JSON: {\n // values might contain stringified JSON objects so we need to parse them first\n // and then return a JSON stringified array to return valid JSON\n const parsedValues = values.map((v) => {\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n });\n\n return JSON.stringify(parsedValues);\n }\n case InterpolationFormat.LUCENE:\n return `(${values.map((v) => `\"${v}\"`).join(' OR ')})`;\n case InterpolationFormat.PERCENTENCODE:\n return encodeURIComponent(values.join(','));\n case InterpolationFormat.PIPE:\n return values.join('|');\n case InterpolationFormat.REGEX: {\n const escapedRegex = values.map((v) => v.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'));\n return `(${escapedRegex.join('|')})`;\n }\n case InterpolationFormat.REGEX_LITERAL: {\n const escapedRegex = values.map((v) => v.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\\\\\$&'));\n return `(${escapedRegex.join('|')})`;\n }\n case InterpolationFormat.SINGLEQUOTE:\n return values.map((v) => `'${v}'`).join(',');\n case InterpolationFormat.SQLSTRING:\n return values.map((v) => `'${v.replace(/'/g, \"''\")}'`).join(',');\n case InterpolationFormat.TEXT:\n return values.join(' + ');\n case InterpolationFormat.QUERYPARAM:\n return values.map((v) => `${name}=${encodeURIComponent(v)}`).join('&');\n case InterpolationFormat.PROMETHEUS:\n default:\n return `(${values.join('|')})`;\n }\n}\n\n/**\n * Replace a single variable in text with its value\n */\nexport function replaceVariable(\n text: string,\n varName: string,\n variableValue: VariableValue,\n varFormat?: InterpolationFormat\n): string {\n const variableSyntax = '$' + varName;\n const alternativeVariableSyntax = '${' + varName + (varFormat ? ':' + varFormat : '') + '}';\n\n let replaceString = '';\n if (Array.isArray(variableValue)) {\n replaceString = interpolate(variableValue, varName, varFormat || InterpolationFormat.PROMETHEUS);\n }\n if (typeof variableValue === 'string') {\n replaceString = interpolate([variableValue], varName, varFormat || InterpolationFormat.RAW);\n }\n text = text.replaceAll(variableSyntax, replaceString);\n return text.replaceAll(alternativeVariableSyntax, replaceString);\n}\n\n// This regular expression is designed to identify variable references in a string.\n// It supports two formats for referencing variables:\n// 1. $variableName - This is a simpler format, and the regular expression captures the variable name (\\w+ matches one or more word characters).\n// 2. ${variableName} - This is a more complex format and the regular expression captures the variable name (\\w+ matches one or more word characters) in the curly braces.\n// 3. ${variableName:format} - This is a more complex format that allows specifying a format interpolation.\n\nconst VARIABLE_REGEX = /\\$(\\w+)|\\${(\\w+)(?:\\.([^:^}]+))?(?::([^}]+))?}/gm;\n\n/**\n * Returns a list of variables\n */\nexport function parseVariables(text: string): string[] {\n const matches = new Set<string>();\n let match;\n\n while ((match = VARIABLE_REGEX.exec(text)) !== null) {\n if (match) {\n if (match[1]) {\n // \\$(\\w+)\\\n matches.add(match[1]);\n } else if (match[2]) {\n // \\${(\\w+)}\\\n matches.add(match[2]);\n }\n }\n }\n // return unique matches\n return Array.from(matches.values());\n}\n\n/**\n * Returns a map of variable names and its format. If no format is specified, it will be undefined.\n */\nexport function parseVariablesAndFormat(text: string): Map<string, InterpolationFormat | undefined> {\n const matches = new Map<string, InterpolationFormat | undefined>();\n let match;\n\n while ((match = VARIABLE_REGEX.exec(text)) !== null) {\n if (match) {\n let format = undefined;\n if (match[4]) {\n format = match[4];\n }\n if (match[1]) {\n // \\$(\\w+)\\\n matches.set(match[1], stringToFormat(format));\n } else if (match[2]) {\n // \\${(\\w+)}\\\n matches.set(match[2], stringToFormat(format));\n }\n }\n }\n return matches;\n}\n\n/**\n * Replace all variables in text with their values from the variable state map\n */\nexport function replaceVariables(text: string, variableState: VariableStateMap): string {\n const variablesMap = parseVariablesAndFormat(text);\n const variables = Array.from(variablesMap.keys());\n let finalText = text;\n variables\n // Sorting variables by their length.\n // In order to not have a variable name have contained in another variable name.\n // i.e.: $__range replacing $__range_ms => '3600_ms' instead of '3600000'\n .sort((a, b) => b.length - a.length)\n .forEach((v) => {\n const variable = variableState[v];\n if (variable && variable.value !== undefined) {\n finalText = replaceVariable(finalText, v, variable?.value, variablesMap.get(v));\n }\n });\n\n return finalText;\n}\n"],"names":["InterpolationFormat","stringToFormat","val","undefined","lowerVal","toLowerCase","Object","values","find","format","interpolate","name","join","first","rest","map","v","parsedValues","JSON","parse","stringify","encodeURIComponent","escapedRegex","replace","replaceVariable","text","varName","variableValue","varFormat","variableSyntax","alternativeVariableSyntax","replaceString","Array","isArray","replaceAll","VARIABLE_REGEX","parseVariables","matches","Set","match","exec","add","from","parseVariablesAndFormat","Map","set","replaceVariables","variableState","variablesMap","variables","keys","finalText","sort","a","b","length","forEach","variable","value","get"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/variable-interpolation.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 { VariableValue } from '@perses-dev/spec';\n\n/**\n * Option for a variable with label and value\n */\nexport type VariableOption = { label: string; value: string };\n\n/**\n * State of a variable including its current value, options, and loading state\n */\nexport type VariableState = {\n value: VariableValue;\n /**\n * Optional compact value for human-readable text. Query interpolation continues to use `value`.\n */\n displayValue?: VariableValue;\n options?: VariableOption[];\n loading: boolean;\n error?: Error;\n /**\n * If a local variable is overriding an external variable, local var will have the flag ``overriding=true``.\n */\n overriding?: boolean;\n /**\n * If a local variable is overriding an external variable, external var will have the flag ``overridden=true``.\n */\n overridden?: boolean;\n defaultValue?: VariableValue;\n customAllValue?: string;\n};\n\n/**\n * Map of variable names to their states\n */\nexport type VariableStateMap = Record<string, VariableState>;\n\n/**\n * Supported interpolation formats for variable values\n */\nexport enum InterpolationFormat {\n CSV = 'csv',\n DISTRIBUTED = 'distributed',\n DOUBLEQUOTE = 'doublequote',\n GLOB = 'glob',\n JSON = 'json',\n LUCENE = 'lucene',\n PERCENTENCODE = 'percentencode',\n PIPE = 'pipe',\n PROMETHEUS = 'prometheus',\n RAW = 'raw',\n REGEX = 'regex',\n SINGLEQUOTE = 'singlequote',\n SQLSTRING = 'sqlstring',\n TEXT = 'text',\n QUERYPARAM = 'queryparam',\n REGEX_LITERAL = 'regexliteral',\n}\n\nfunction stringToFormat(val: string | undefined): InterpolationFormat | undefined {\n if (!val) return undefined;\n\n const lowerVal = val.toLowerCase();\n return Object.values(InterpolationFormat).find((format) => format === lowerVal) || undefined;\n}\n\n/**\n * Interpolate an array of values with a specific format\n */\nexport function interpolate(values: string[], name: string, format: InterpolationFormat): string {\n switch (format) {\n case InterpolationFormat.CSV:\n case InterpolationFormat.RAW:\n return values.join(',');\n case InterpolationFormat.DISTRIBUTED: {\n const [first, ...rest] = values;\n return `${[first, ...rest.map((v) => `${name}=${v}`)].join(',')}`;\n }\n case InterpolationFormat.DOUBLEQUOTE:\n return values.map((v) => `\"${v}\"`).join(',');\n case InterpolationFormat.GLOB:\n return `{${values.join(',')}}`;\n case InterpolationFormat.JSON: {\n // values might contain stringified JSON objects so we need to parse them first\n // and then return a JSON stringified array to return valid JSON\n const parsedValues = values.map((v) => {\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n });\n\n return JSON.stringify(parsedValues);\n }\n case InterpolationFormat.LUCENE:\n return `(${values.map((v) => `\"${v}\"`).join(' OR ')})`;\n case InterpolationFormat.PERCENTENCODE:\n return encodeURIComponent(values.join(','));\n case InterpolationFormat.PIPE:\n return values.join('|');\n case InterpolationFormat.REGEX: {\n const escapedRegex = values.map((v) => v.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'));\n return `(${escapedRegex.join('|')})`;\n }\n case InterpolationFormat.REGEX_LITERAL: {\n const escapedRegex = values.map((v) => v.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\\\\\$&'));\n return `(${escapedRegex.join('|')})`;\n }\n case InterpolationFormat.SINGLEQUOTE:\n return values.map((v) => `'${v}'`).join(',');\n case InterpolationFormat.SQLSTRING:\n return values.map((v) => `'${v.replace(/'/g, \"''\")}'`).join(',');\n case InterpolationFormat.TEXT:\n return values.join(' + ');\n case InterpolationFormat.QUERYPARAM:\n return values.map((v) => `${name}=${encodeURIComponent(v)}`).join('&');\n case InterpolationFormat.PROMETHEUS:\n default:\n return `(${values.join('|')})`;\n }\n}\n\n/**\n * Replace a single variable in text with its value\n */\nexport function replaceVariable(\n text: string,\n varName: string,\n variableValue: VariableValue,\n varFormat?: InterpolationFormat,\n): string {\n const variableSyntax = '$' + varName;\n const alternativeVariableSyntax = '${' + varName + (varFormat ? ':' + varFormat : '') + '}';\n\n let replaceString = '';\n if (Array.isArray(variableValue)) {\n replaceString = interpolate(variableValue, varName, varFormat || InterpolationFormat.PROMETHEUS);\n }\n if (typeof variableValue === 'string') {\n replaceString = interpolate([variableValue], varName, varFormat || InterpolationFormat.RAW);\n }\n text = text.replaceAll(variableSyntax, replaceString);\n return text.replaceAll(alternativeVariableSyntax, replaceString);\n}\n\n// This regular expression is designed to identify variable references in a string.\n// It supports two formats for referencing variables:\n// 1. $variableName - This is a simpler format, and the regular expression captures the variable name (\\w+ matches one or more word characters).\n// 2. ${variableName} - This is a more complex format and the regular expression captures the variable name (\\w+ matches one or more word characters) in the curly braces.\n// 3. ${variableName:format} - This is a more complex format that allows specifying a format interpolation.\n\nconst VARIABLE_REGEX = /\\$(\\w+)|\\${(\\w+)(?:\\.([^:^}]+))?(?::([^}]+))?}/gm;\n\n/**\n * Returns a list of variables\n */\nexport function parseVariables(text: string): string[] {\n const matches = new Set<string>();\n let match;\n\n while ((match = VARIABLE_REGEX.exec(text)) !== null) {\n if (match) {\n if (match[1]) {\n // \\$(\\w+)\\\n matches.add(match[1]);\n } else if (match[2]) {\n // \\${(\\w+)}\\\n matches.add(match[2]);\n }\n }\n }\n // return unique matches\n return Array.from(matches.values());\n}\n\n/**\n * Returns a map of variable names and its format. If no format is specified, it will be undefined.\n */\nexport function parseVariablesAndFormat(text: string): Map<string, InterpolationFormat | undefined> {\n const matches = new Map<string, InterpolationFormat | undefined>();\n let match;\n\n while ((match = VARIABLE_REGEX.exec(text)) !== null) {\n if (match) {\n let format = undefined;\n if (match[4]) {\n format = match[4];\n }\n if (match[1]) {\n // \\$(\\w+)\\\n matches.set(match[1], stringToFormat(format));\n } else if (match[2]) {\n // \\${(\\w+)}\\\n matches.set(match[2], stringToFormat(format));\n }\n }\n }\n return matches;\n}\n\n/**\n * Replace all variables in text with their values from the variable state map\n */\nexport function replaceVariables(text: string, variableState: VariableStateMap): string {\n const variablesMap = parseVariablesAndFormat(text);\n const variables = Array.from(variablesMap.keys());\n let finalText = text;\n variables\n // Sorting variables by their length.\n // In order to not have a variable name have contained in another variable name.\n // i.e.: $__range replacing $__range_ms => '3600_ms' instead of '3600000'\n .sort((a, b) => b.length - a.length)\n .forEach((v) => {\n const variable = variableState[v];\n if (variable && variable.value !== undefined) {\n finalText = replaceVariable(finalText, v, variable?.value, variablesMap.get(v));\n }\n });\n\n return finalText;\n}\n\n/**\n * Replace variables using their compact display values when available.\n */\nexport function replaceVariablesForDisplay(text: string, variableState: VariableStateMap): string {\n const displayState: VariableStateMap = {};\n for (const [name, state] of Object.entries(variableState)) {\n displayState[name] = state.displayValue === undefined ? state : { ...state, value: state.displayValue };\n }\n return replaceVariables(text, displayState);\n}\n"],"names":["InterpolationFormat","stringToFormat","val","undefined","lowerVal","toLowerCase","Object","values","find","format","interpolate","name","join","first","rest","map","v","parsedValues","JSON","parse","stringify","encodeURIComponent","escapedRegex","replace","replaceVariable","text","varName","variableValue","varFormat","variableSyntax","alternativeVariableSyntax","replaceString","Array","isArray","replaceAll","VARIABLE_REGEX","parseVariables","matches","Set","match","exec","add","from","parseVariablesAndFormat","Map","set","replaceVariables","variableState","variablesMap","variables","keys","finalText","sort","a","b","length","forEach","variable","value","get","replaceVariablesForDisplay","displayState","state","entries","displayValue"],"mappings":"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"}
package/package.json CHANGED
@@ -1,31 +1,31 @@
1
1
  {
2
2
  "name": "@perses-dev/components",
3
- "version": "0.55.0-beta.2",
3
+ "version": "0.55.0-beta.6",
4
4
  "description": "Common UI components used across Perses features",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/perses/perses/blob/main/README.md",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/perses/perses.git"
9
+ "url": "git+https://github.com/perses/shared.git"
10
10
  },
11
11
  "bugs": {
12
12
  "url": "https://github.com/perses/perses/issues"
13
13
  },
14
+ "type": "module",
14
15
  "module": "dist/index.js",
15
- "main": "dist/cjs/index.js",
16
+ "main": "dist/index.js",
16
17
  "types": "dist/index.d.ts",
17
18
  "scripts": {
18
19
  "clean": "rimraf dist/",
19
20
  "build": "concurrently \"npm:build:*\"",
20
- "build:cjs": "swc ./src -d dist/cjs --strip-leading-paths --config-file ../.cjs.swcrc",
21
21
  "build:esm": "swc ./src -d dist --strip-leading-paths --config-file ../.swcrc",
22
22
  "build:types": "tsc --project tsconfig.build.json",
23
23
  "type-check": "tsc --noEmit",
24
24
  "start": "concurrently -P \"npm:build:* -- {*}\" -- --watch",
25
- "test": "cross-env TZ=UTC jest",
26
- "test:watch": "cross-env TZ=UTC jest --watch",
27
- "lint": "eslint src --ext .ts,.tsx",
28
- "lint:fix": "eslint --fix src --ext .ts,.tsx"
25
+ "test": "cross-env TZ=UTC vitest run",
26
+ "test:watch": "cross-env TZ=UTC vitest",
27
+ "lint": "oxlint src",
28
+ "lint:fix": "oxlint --fix src"
29
29
  },
30
30
  "dependencies": {
31
31
  "@atlaskit/pragmatic-drag-and-drop": "^1.4.0",
@@ -34,8 +34,8 @@
34
34
  "@date-fns/tz": "^1.4.1",
35
35
  "@fontsource/inter": "^5.0.0",
36
36
  "@mui/x-date-pickers": "^7.23.1",
37
- "@perses-dev/spec": "0.3.0-beta.2",
38
- "@perses-dev/client": "0.55.0-beta.2",
37
+ "@perses-dev/spec": "0.3.0-beta.5",
38
+ "@perses-dev/client": "0.55.0-beta.6",
39
39
  "numbro": "^2.3.6",
40
40
  "@tanstack/match-sorter-utils": "^8.19.4",
41
41
  "@tanstack/react-table": "^8.20.5",
@@ -1,50 +0,0 @@
1
- // Copyright The Perses Authors
2
- // Licensed under the Apache License | Version 2.0 (the "License");
3
- // you may not use this file except in compliance with the License.
4
- // You may obtain a copy of the License at
5
- //
6
- // http://www.apache.org/licenses/LICENSE-2.0
7
- //
8
- // Unless required by applicable law or agreed to in writing | software
9
- // distributed under the License is distributed on an "AS IS" BASIS |
10
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND | either express or implied.
11
- // See the License for the specific language governing permissions and
12
- // limitations under the License.
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
- Object.defineProperty(exports, "AlignSelector", {
18
- enumerable: true,
19
- get: function() {
20
- return AlignSelector;
21
- }
22
- });
23
- const _jsxruntime = require("react/jsx-runtime");
24
- const _material = require("@mui/material");
25
- function AlignSelector({ onChange, value = 'left', ...props }) {
26
- const handleSortChange = (option)=>{
27
- onChange(option);
28
- };
29
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.ButtonGroup, {
30
- "aria-label": "Alignement",
31
- ...props,
32
- children: [
33
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
34
- onClick: ()=>handleSortChange('left'),
35
- variant: value === 'left' ? 'contained' : 'outlined',
36
- children: "Left"
37
- }, "left"),
38
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
39
- onClick: ()=>handleSortChange('center'),
40
- variant: value === 'center' ? 'contained' : 'outlined',
41
- children: "Center"
42
- }, "center"),
43
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
44
- onClick: ()=>handleSortChange('right'),
45
- variant: value === 'right' ? 'contained' : 'outlined',
46
- children: "Right"
47
- }, "right")
48
- ]
49
- });
50
- }
@@ -1,30 +0,0 @@
1
- // Copyright The Perses Authors
2
- // Licensed under the Apache License, Version 2.0 (the "License");
3
- // you may not use this file except in compliance with the License.
4
- // You may obtain a copy of the License at
5
- //
6
- // http://www.apache.org/licenses/LICENSE-2.0
7
- //
8
- // Unless required by applicable law or agreed to in writing, software
9
- // distributed under the License is distributed on an "AS IS" BASIS,
10
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- // See the License for the specific language governing permissions and
12
- // limitations under the License.
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
- _export_star(require("./AlignSelector"), exports);
18
- function _export_star(from, to) {
19
- Object.keys(from).forEach(function(k) {
20
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
21
- Object.defineProperty(to, k, {
22
- enumerable: true,
23
- get: function() {
24
- return from[k];
25
- }
26
- });
27
- }
28
- });
29
- return from;
30
- }
@@ -1,106 +0,0 @@
1
- // Copyright The Perses Authors
2
- // Licensed under the Apache License, Version 2.0 (the "License");
3
- // you may not use this file except in compliance with the License.
4
- // You may obtain a copy of the License at
5
- //
6
- // http://www.apache.org/licenses/LICENSE-2.0
7
- //
8
- // Unless required by applicable law or agreed to in writing, software
9
- // distributed under the License is distributed on an "AS IS" BASIS,
10
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- // See the License for the specific language governing permissions and
12
- // limitations under the License.
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
- Object.defineProperty(exports, "ColorPicker", {
18
- enumerable: true,
19
- get: function() {
20
- return ColorPicker;
21
- }
22
- });
23
- const _jsxruntime = require("react/jsx-runtime");
24
- const _material = require("@mui/material");
25
- const _react = require("react");
26
- const _reactcolorful = require("react-colorful");
27
- const _Circle = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/Circle"));
28
- const _Delete = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/Delete"));
29
- function _interop_require_default(obj) {
30
- return obj && obj.__esModule ? obj : {
31
- default: obj
32
- };
33
- }
34
- const ColorPicker = ({ color, onChange, onClear, palette })=>{
35
- // value is the visible value for the controlled text input
36
- const [value, setValue] = (0, _react.useState)(color);
37
- const handleColorChange = (color)=>{
38
- setValue(color);
39
- onChange?.(color);
40
- };
41
- // we should update this if https://github.com/omgovich/react-colorful/issues/157 is resolved
42
- const handleInputChange = (e)=>{
43
- const inputValue = e.target.value.replace(/([^0-9A-F]+)/gi, '').substring(0, 8);
44
- setValue(`#${inputValue}`); // always prefix input value with # to indicate hex format
45
- // only set color if input value is a valid hex color
46
- if (isValidHex(e.target.value)) {
47
- onChange?.(e.target.value);
48
- }
49
- };
50
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
51
- spacing: 1,
52
- children: [
53
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactcolorful.HexColorPicker, {
54
- color: color,
55
- onChange: handleColorChange,
56
- style: {
57
- width: '100%'
58
- }
59
- }),
60
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
61
- direction: "row",
62
- flexWrap: "wrap",
63
- justifyContent: "space-evenly",
64
- width: "200px",
65
- children: palette && palette.map((color, i)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
66
- size: "small",
67
- "aria-label": `change color to ${color}`,
68
- sx: {
69
- color
70
- },
71
- onClick: ()=>handleColorChange(color),
72
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Circle.default, {})
73
- }, i))
74
- }),
75
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
76
- direction: "row",
77
- gap: 1,
78
- alignItems: "center",
79
- children: [
80
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
81
- inputProps: {
82
- 'aria-label': 'enter hex color'
83
- },
84
- fullWidth: true,
85
- value: value,
86
- onChange: handleInputChange
87
- }),
88
- onClear && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
89
- onClick: onClear,
90
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Delete.default, {})
91
- })
92
- ]
93
- })
94
- ]
95
- });
96
- };
97
- const isValidHex = (value, alpha)=>{
98
- const matcher = /^#?([0-9A-F]{3,8})$/i;
99
- const match = matcher.exec(value);
100
- const length = match && match[1] ? match[1].length : 0;
101
- return length === 3 || // '#rgb' format
102
- length === 6 || // '#rrggbb' format
103
- !!alpha && length === 4 || // '#rgba' format
104
- !!alpha && length === 8 // '#rrggbbaa' format
105
- ;
106
- };
@@ -1,92 +0,0 @@
1
- // Copyright The Perses Authors
2
- // Licensed under the Apache License, Version 2.0 (the "License");
3
- // you may not use this file except in compliance with the License.
4
- // You may obtain a copy of the License at
5
- //
6
- // http://www.apache.org/licenses/LICENSE-2.0
7
- //
8
- // Unless required by applicable law or agreed to in writing, software
9
- // distributed under the License is distributed on an "AS IS" BASIS,
10
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- // See the License for the specific language governing permissions and
12
- // limitations under the License.
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
- Object.defineProperty(exports, "OptionsColorPicker", {
18
- enumerable: true,
19
- get: function() {
20
- return OptionsColorPicker;
21
- }
22
- });
23
- const _jsxruntime = require("react/jsx-runtime");
24
- const _react = require("react");
25
- const _material = require("@mui/material");
26
- const _Circle = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/Circle"));
27
- const _context = require("../context");
28
- const _ColorPicker = require("./ColorPicker");
29
- function _interop_require_default(obj) {
30
- return obj && obj.__esModule ? obj : {
31
- default: obj
32
- };
33
- }
34
- function OptionsColorPicker({ label, color, size = 'small', onColorChange, onClear }) {
35
- const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
36
- const isOpen = Boolean(anchorEl);
37
- const openColorPicker = (event)=>{
38
- setAnchorEl(event.currentTarget);
39
- };
40
- const closeColorPicker = ()=>{
41
- setAnchorEl(null);
42
- };
43
- const { thresholds: { defaultColor, palette } } = (0, _context.useChartsTheme)();
44
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
45
- children: [
46
- /*#__PURE__*/ (0, _jsxruntime.jsx)(ColorIconButton, {
47
- size: size,
48
- "aria-label": `change ${label} color`,
49
- isSelected: isOpen,
50
- iconColor: color,
51
- onClick: openColorPicker,
52
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Circle.default, {})
53
- }),
54
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Popover, {
55
- "data-testid": "options color picker",
56
- open: isOpen,
57
- anchorEl: anchorEl,
58
- onClose: closeColorPicker,
59
- slotProps: {
60
- paper: {
61
- sx: {
62
- padding: (theme)=>theme.spacing(2)
63
- }
64
- }
65
- },
66
- anchorOrigin: {
67
- vertical: 'top',
68
- horizontal: 'left'
69
- },
70
- transformOrigin: {
71
- vertical: 'top',
72
- horizontal: 'right'
73
- },
74
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_ColorPicker.ColorPicker, {
75
- color: color,
76
- palette: [
77
- defaultColor,
78
- ...palette
79
- ],
80
- onChange: onColorChange,
81
- onClear: onClear
82
- })
83
- })
84
- ]
85
- });
86
- }
87
- const ColorIconButton = (0, _material.styled)(_material.IconButton, {
88
- shouldForwardProp: (props)=>props !== 'isSelected' && props !== 'iconColor'
89
- })(({ iconColor, isSelected })=>({
90
- backgroundColor: isSelected && iconColor ? `${iconColor}3F` : 'undefined',
91
- color: iconColor
92
- }));
@@ -1,31 +0,0 @@
1
- // Copyright The Perses Authors
2
- // Licensed under the Apache License, Version 2.0 (the "License");
3
- // you may not use this file except in compliance with the License.
4
- // You may obtain a copy of the License at
5
- //
6
- // http://www.apache.org/licenses/LICENSE-2.0
7
- //
8
- // Unless required by applicable law or agreed to in writing, software
9
- // distributed under the License is distributed on an "AS IS" BASIS,
10
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- // See the License for the specific language governing permissions and
12
- // limitations under the License.
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
- _export_star(require("./ColorPicker"), exports);
18
- _export_star(require("./OptionsColorPicker"), exports);
19
- function _export_star(from, to) {
20
- Object.keys(from).forEach(function(k) {
21
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
22
- Object.defineProperty(to, k, {
23
- enumerable: true,
24
- get: function() {
25
- return from[k];
26
- }
27
- });
28
- }
29
- });
30
- return from;
31
- }