@sqlrooms/mosaic 0.29.0-rc.7 → 0.29.0-rc.9

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 (572) hide show
  1. package/LICENSE.md +2 -1
  2. package/README.md +179 -35
  3. package/dist/MosaicSlice.d.ts +1 -0
  4. package/dist/MosaicSlice.d.ts.map +1 -1
  5. package/dist/MosaicSlice.js.map +1 -1
  6. package/dist/VgPlotChart.d.ts.map +1 -1
  7. package/dist/VgPlotChart.js +9 -3
  8. package/dist/VgPlotChart.js.map +1 -1
  9. package/dist/ai/agentIntent.d.ts +5 -0
  10. package/dist/ai/agentIntent.d.ts.map +1 -0
  11. package/dist/ai/agentIntent.js +8 -0
  12. package/dist/ai/agentIntent.js.map +1 -0
  13. package/dist/ai/block-document/constants.d.ts +9 -0
  14. package/dist/ai/block-document/constants.d.ts.map +1 -0
  15. package/dist/ai/block-document/constants.js +9 -0
  16. package/dist/ai/block-document/constants.js.map +1 -0
  17. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts +48 -0
  18. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts.map +1 -0
  19. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js +59 -0
  20. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js.map +1 -0
  21. package/dist/ai/block-document/createBlockDocumentChartTools.d.ts +19 -0
  22. package/dist/ai/block-document/createBlockDocumentChartTools.d.ts.map +1 -0
  23. package/dist/ai/block-document/createBlockDocumentChartTools.js +37 -0
  24. package/dist/ai/block-document/createBlockDocumentChartTools.js.map +1 -0
  25. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts +32 -0
  26. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts.map +1 -0
  27. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js +37 -0
  28. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js.map +1 -0
  29. package/dist/ai/constants.d.ts +3 -0
  30. package/dist/ai/constants.d.ts.map +1 -0
  31. package/dist/ai/constants.js +3 -0
  32. package/dist/ai/constants.js.map +1 -0
  33. package/dist/ai/createDataTableExplorerTool.d.ts +69 -0
  34. package/dist/ai/createDataTableExplorerTool.d.ts.map +1 -0
  35. package/dist/ai/createDataTableExplorerTool.js +68 -0
  36. package/dist/ai/createDataTableExplorerTool.js.map +1 -0
  37. package/dist/ai/dashboard/constants.d.ts +6 -0
  38. package/dist/ai/dashboard/constants.d.ts.map +1 -0
  39. package/dist/ai/dashboard/constants.js +6 -0
  40. package/dist/ai/dashboard/constants.js.map +1 -0
  41. package/dist/ai/dashboard/createDashboardAgentTool.d.ts +17 -0
  42. package/dist/ai/dashboard/createDashboardAgentTool.d.ts.map +1 -0
  43. package/dist/ai/dashboard/createDashboardAgentTool.js +205 -0
  44. package/dist/ai/dashboard/createDashboardAgentTool.js.map +1 -0
  45. package/dist/ai/dashboard/createDashboardAiAdapter.d.ts +14 -0
  46. package/dist/ai/dashboard/createDashboardAiAdapter.d.ts.map +1 -0
  47. package/dist/ai/dashboard/createDashboardAiAdapter.js +75 -0
  48. package/dist/ai/dashboard/createDashboardAiAdapter.js.map +1 -0
  49. package/dist/ai/dashboard/createDashboardAiTools.d.ts +26 -0
  50. package/dist/ai/dashboard/createDashboardAiTools.d.ts.map +1 -0
  51. package/dist/ai/dashboard/createDashboardAiTools.js +40 -0
  52. package/dist/ai/dashboard/createDashboardAiTools.js.map +1 -0
  53. package/dist/ai/dashboard/createDashboardChartTools.d.ts +27 -0
  54. package/dist/ai/dashboard/createDashboardChartTools.d.ts.map +1 -0
  55. package/dist/ai/dashboard/createDashboardChartTools.js +55 -0
  56. package/dist/ai/dashboard/createDashboardChartTools.js.map +1 -0
  57. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts +23 -0
  58. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts.map +1 -0
  59. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js +29 -0
  60. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js.map +1 -0
  61. package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts +28 -0
  62. package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts.map +1 -0
  63. package/dist/ai/dashboard/createListDashboardPanelsTool.js +54 -0
  64. package/dist/ai/dashboard/createListDashboardPanelsTool.js.map +1 -0
  65. package/dist/ai/dashboard/dashboard-types.d.ts +59 -0
  66. package/dist/ai/dashboard/dashboard-types.d.ts.map +1 -0
  67. package/dist/ai/dashboard/dashboard-types.js +2 -0
  68. package/dist/ai/dashboard/dashboard-types.js.map +1 -0
  69. package/dist/ai/database-types.d.ts +12 -0
  70. package/dist/ai/database-types.d.ts.map +1 -0
  71. package/dist/ai/database-types.js +2 -0
  72. package/dist/ai/database-types.js.map +1 -0
  73. package/dist/ai/errors.d.ts +8 -0
  74. package/dist/ai/errors.d.ts.map +1 -0
  75. package/dist/ai/errors.js +11 -0
  76. package/dist/ai/errors.js.map +1 -0
  77. package/dist/ai/tool-helpers.d.ts +28 -29
  78. package/dist/ai/tool-helpers.d.ts.map +1 -1
  79. package/dist/ai/tool-helpers.js +38 -76
  80. package/dist/ai/tool-helpers.js.map +1 -1
  81. package/dist/ai/tool-schemas.d.ts +9 -4
  82. package/dist/ai/tool-schemas.d.ts.map +1 -1
  83. package/dist/ai/tool-schemas.js +12 -12
  84. package/dist/ai/tool-schemas.js.map +1 -1
  85. package/dist/ai/tool-types.d.ts +19 -1
  86. package/dist/ai/tool-types.d.ts.map +1 -1
  87. package/dist/ai/tool-types.js.map +1 -1
  88. package/dist/ai/types.d.ts +64 -0
  89. package/dist/ai/types.d.ts.map +1 -0
  90. package/dist/ai/types.js +2 -0
  91. package/dist/ai/types.js.map +1 -0
  92. package/dist/ai.d.ts +16 -2
  93. package/dist/ai.d.ts.map +1 -1
  94. package/dist/ai.js +14 -5
  95. package/dist/ai.js.map +1 -1
  96. package/dist/charts/MosaicChart.d.ts +3 -1
  97. package/dist/charts/MosaicChart.d.ts.map +1 -1
  98. package/dist/charts/MosaicChart.js +2 -2
  99. package/dist/charts/MosaicChart.js.map +1 -1
  100. package/dist/charts/MosaicChartError.d.ts +8 -2
  101. package/dist/charts/MosaicChartError.d.ts.map +1 -1
  102. package/dist/charts/MosaicChartError.js +29 -3
  103. package/dist/charts/MosaicChartError.js.map +1 -1
  104. package/dist/charts/MosaicChartSettingsButton.d.ts +15 -0
  105. package/dist/charts/MosaicChartSettingsButton.d.ts.map +1 -0
  106. package/dist/charts/MosaicChartSettingsButton.js +7 -0
  107. package/dist/charts/MosaicChartSettingsButton.js.map +1 -0
  108. package/dist/charts/MosaicChartView.d.ts +2 -0
  109. package/dist/charts/MosaicChartView.d.ts.map +1 -1
  110. package/dist/charts/MosaicChartView.js +19 -7
  111. package/dist/charts/MosaicChartView.js.map +1 -1
  112. package/dist/charts/chart-settings/MosaicChartSettings.d.ts.map +1 -1
  113. package/dist/charts/chart-settings/MosaicChartSettings.js +3 -3
  114. package/dist/charts/chart-settings/MosaicChartSettings.js.map +1 -1
  115. package/dist/charts/chart-settings/MosaicChartSettingsPanel.js +1 -1
  116. package/dist/charts/chart-settings/MosaicChartSettingsPanel.js.map +1 -1
  117. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.d.ts.map +1 -1
  118. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js +2 -1
  119. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js.map +1 -1
  120. package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts.map +1 -1
  121. package/dist/charts/chart-settings/MosaicChartTypeSelector.js +3 -3
  122. package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
  123. package/dist/charts/chart-types/base-types.d.ts +40 -25
  124. package/dist/charts/chart-types/base-types.d.ts.map +1 -1
  125. package/dist/charts/chart-types/base-types.js +5 -0
  126. package/dist/charts/chart-types/base-types.js.map +1 -1
  127. package/dist/charts/chart-types/box-plot/definition.d.ts.map +1 -1
  128. package/dist/charts/chart-types/box-plot/definition.js +1 -0
  129. package/dist/charts/chart-types/box-plot/definition.js.map +1 -1
  130. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts +37 -3
  131. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -1
  132. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +28 -13
  133. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -1
  134. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +2 -2
  135. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +1 -1
  136. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +12 -1
  137. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +1 -1
  138. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js +13 -3
  139. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js.map +1 -1
  140. package/dist/charts/chart-types/box-plot/tool.d.ts +20 -24
  141. package/dist/charts/chart-types/box-plot/tool.d.ts.map +1 -1
  142. package/dist/charts/chart-types/box-plot/tool.js +25 -33
  143. package/dist/charts/chart-types/box-plot/tool.js.map +1 -1
  144. package/dist/charts/chart-types/box-plot/validation.d.ts +9 -0
  145. package/dist/charts/chart-types/box-plot/validation.d.ts.map +1 -0
  146. package/dist/charts/chart-types/box-plot/validation.js +32 -0
  147. package/dist/charts/chart-types/box-plot/validation.js.map +1 -0
  148. package/dist/charts/chart-types/chart-config.d.ts +3 -1
  149. package/dist/charts/chart-types/chart-config.d.ts.map +1 -1
  150. package/dist/charts/chart-types/chart-config.js +2 -2
  151. package/dist/charts/chart-types/chart-config.js.map +1 -1
  152. package/dist/charts/chart-types/column-types.d.ts +8 -0
  153. package/dist/charts/chart-types/column-types.d.ts.map +1 -0
  154. package/dist/charts/chart-types/column-types.js +2 -0
  155. package/dist/charts/chart-types/column-types.js.map +1 -0
  156. package/dist/charts/chart-types/count-plot/definition.d.ts.map +1 -1
  157. package/dist/charts/chart-types/count-plot/definition.js +1 -0
  158. package/dist/charts/chart-types/count-plot/definition.js.map +1 -1
  159. package/dist/charts/chart-types/count-plot/spec.d.ts +2 -1
  160. package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -1
  161. package/dist/charts/chart-types/count-plot/spec.js +47 -34
  162. package/dist/charts/chart-types/count-plot/spec.js.map +1 -1
  163. package/dist/charts/chart-types/count-plot/tool.d.ts +19 -24
  164. package/dist/charts/chart-types/count-plot/tool.d.ts.map +1 -1
  165. package/dist/charts/chart-types/count-plot/tool.js +26 -33
  166. package/dist/charts/chart-types/count-plot/tool.js.map +1 -1
  167. package/dist/charts/chart-types/count-plot/validation.d.ts +8 -0
  168. package/dist/charts/chart-types/count-plot/validation.d.ts.map +1 -0
  169. package/dist/charts/chart-types/count-plot/validation.js +20 -0
  170. package/dist/charts/chart-types/count-plot/validation.js.map +1 -0
  171. package/dist/charts/chart-types/createChartInstructions.d.ts +3 -0
  172. package/dist/charts/chart-types/createChartInstructions.d.ts.map +1 -0
  173. package/dist/charts/chart-types/createChartInstructions.js +12 -0
  174. package/dist/charts/chart-types/createChartInstructions.js.map +1 -0
  175. package/dist/charts/chart-types/createChartTools.d.ts +15 -9
  176. package/dist/charts/chart-types/createChartTools.d.ts.map +1 -1
  177. package/dist/charts/chart-types/createChartTools.js +16 -10
  178. package/dist/charts/chart-types/createChartTools.js.map +1 -1
  179. package/dist/charts/chart-types/createDefaultChartTypes.js +2 -2
  180. package/dist/charts/chart-types/createDefaultChartTypes.js.map +1 -1
  181. package/dist/charts/chart-types/custom-spec/definition.d.ts.map +1 -1
  182. package/dist/charts/chart-types/custom-spec/definition.js +1 -0
  183. package/dist/charts/chart-types/custom-spec/definition.js.map +1 -1
  184. package/dist/charts/chart-types/custom-spec/spec.d.ts +2 -1
  185. package/dist/charts/chart-types/custom-spec/spec.d.ts.map +1 -1
  186. package/dist/charts/chart-types/custom-spec/spec.js +16 -12
  187. package/dist/charts/chart-types/custom-spec/spec.js.map +1 -1
  188. package/dist/charts/chart-types/errors.d.ts +35 -0
  189. package/dist/charts/chart-types/errors.d.ts.map +1 -1
  190. package/dist/charts/chart-types/errors.js +56 -0
  191. package/dist/charts/chart-types/errors.js.map +1 -1
  192. package/dist/charts/chart-types/heatmap/definition.d.ts.map +1 -1
  193. package/dist/charts/chart-types/heatmap/definition.js +1 -0
  194. package/dist/charts/chart-types/heatmap/definition.js.map +1 -1
  195. package/dist/charts/chart-types/heatmap/spec.d.ts +2 -1
  196. package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -1
  197. package/dist/charts/chart-types/heatmap/spec.js +21 -21
  198. package/dist/charts/chart-types/heatmap/spec.js.map +1 -1
  199. package/dist/charts/chart-types/heatmap/tool.d.ts +20 -24
  200. package/dist/charts/chart-types/heatmap/tool.d.ts.map +1 -1
  201. package/dist/charts/chart-types/heatmap/tool.js +27 -37
  202. package/dist/charts/chart-types/heatmap/tool.js.map +1 -1
  203. package/dist/charts/chart-types/heatmap/validation.d.ts +9 -0
  204. package/dist/charts/chart-types/heatmap/validation.d.ts.map +1 -0
  205. package/dist/charts/chart-types/heatmap/validation.js +34 -0
  206. package/dist/charts/chart-types/heatmap/validation.js.map +1 -0
  207. package/dist/charts/chart-types/histogram/HistogramSettings.d.ts.map +1 -1
  208. package/dist/charts/chart-types/histogram/HistogramSettings.js +3 -1
  209. package/dist/charts/chart-types/histogram/HistogramSettings.js.map +1 -1
  210. package/dist/charts/chart-types/histogram/definition.d.ts.map +1 -1
  211. package/dist/charts/chart-types/histogram/definition.js +1 -0
  212. package/dist/charts/chart-types/histogram/definition.js.map +1 -1
  213. package/dist/charts/chart-types/histogram/schema.d.ts +2 -0
  214. package/dist/charts/chart-types/histogram/schema.d.ts.map +1 -1
  215. package/dist/charts/chart-types/histogram/schema.js +1 -0
  216. package/dist/charts/chart-types/histogram/schema.js.map +1 -1
  217. package/dist/charts/chart-types/histogram/spec.d.ts +2 -1
  218. package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -1
  219. package/dist/charts/chart-types/histogram/spec.js +31 -28
  220. package/dist/charts/chart-types/histogram/spec.js.map +1 -1
  221. package/dist/charts/chart-types/histogram/tool.d.ts +39 -24
  222. package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
  223. package/dist/charts/chart-types/histogram/tool.js +39 -33
  224. package/dist/charts/chart-types/histogram/tool.js.map +1 -1
  225. package/dist/charts/chart-types/histogram/validation.d.ts +9 -0
  226. package/dist/charts/chart-types/histogram/validation.d.ts.map +1 -0
  227. package/dist/charts/chart-types/histogram/validation.js +22 -0
  228. package/dist/charts/chart-types/histogram/validation.js.map +1 -0
  229. package/dist/charts/chart-types/index.d.ts +5 -11
  230. package/dist/charts/chart-types/index.d.ts.map +1 -1
  231. package/dist/charts/chart-types/index.js +6 -12
  232. package/dist/charts/chart-types/index.js.map +1 -1
  233. package/dist/charts/chart-types/line-chart/LineChartSettings.d.ts.map +1 -1
  234. package/dist/charts/chart-types/line-chart/LineChartSettings.js +4 -13
  235. package/dist/charts/chart-types/line-chart/LineChartSettings.js.map +1 -1
  236. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts +7 -0
  237. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts.map +1 -0
  238. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js +22 -0
  239. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js.map +1 -0
  240. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts +7 -0
  241. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts.map +1 -0
  242. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js +42 -0
  243. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js.map +1 -0
  244. package/dist/charts/chart-types/line-chart/definition.d.ts.map +1 -1
  245. package/dist/charts/chart-types/line-chart/definition.js +1 -0
  246. package/dist/charts/chart-types/line-chart/definition.js.map +1 -1
  247. package/dist/charts/chart-types/line-chart/schema.d.ts +2 -0
  248. package/dist/charts/chart-types/line-chart/schema.d.ts.map +1 -1
  249. package/dist/charts/chart-types/line-chart/schema.js +5 -0
  250. package/dist/charts/chart-types/line-chart/schema.js.map +1 -1
  251. package/dist/charts/chart-types/line-chart/spec.d.ts +2 -1
  252. package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -1
  253. package/dist/charts/chart-types/line-chart/spec.js +56 -65
  254. package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
  255. package/dist/charts/chart-types/line-chart/tool.d.ts +28 -24
  256. package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
  257. package/dist/charts/chart-types/line-chart/tool.js +27 -39
  258. package/dist/charts/chart-types/line-chart/tool.js.map +1 -1
  259. package/dist/charts/chart-types/line-chart/utils.d.ts +7 -0
  260. package/dist/charts/chart-types/line-chart/utils.d.ts.map +1 -0
  261. package/dist/charts/chart-types/line-chart/utils.js +17 -0
  262. package/dist/charts/chart-types/line-chart/utils.js.map +1 -0
  263. package/dist/charts/chart-types/line-chart/validation.d.ts +16 -0
  264. package/dist/charts/chart-types/line-chart/validation.d.ts.map +1 -0
  265. package/dist/charts/chart-types/line-chart/validation.js +43 -0
  266. package/dist/charts/chart-types/line-chart/validation.js.map +1 -0
  267. package/dist/charts/chart-types/mosaicChartTypes.d.ts +4 -2
  268. package/dist/charts/chart-types/mosaicChartTypes.d.ts.map +1 -1
  269. package/dist/charts/chart-types/mosaicChartTypes.js +2 -2
  270. package/dist/charts/chart-types/mosaicChartTypes.js.map +1 -1
  271. package/dist/charts/chart-types/resolveChartTypes.d.ts +3 -0
  272. package/dist/charts/chart-types/resolveChartTypes.d.ts.map +1 -0
  273. package/dist/charts/chart-types/resolveChartTypes.js +8 -0
  274. package/dist/charts/chart-types/resolveChartTypes.js.map +1 -0
  275. package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.d.ts +3 -0
  276. package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.d.ts.map +1 -0
  277. package/dist/charts/chart-types/{bubble-chart/BubbleChartSettings.js → scatter-plot/ScatterPlotSettings.js} +4 -4
  278. package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.js.map +1 -0
  279. package/dist/charts/chart-types/scatter-plot/definition.d.ts +4 -0
  280. package/dist/charts/chart-types/scatter-plot/definition.d.ts.map +1 -0
  281. package/dist/charts/chart-types/scatter-plot/definition.js +25 -0
  282. package/dist/charts/chart-types/scatter-plot/definition.js.map +1 -0
  283. package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.d.ts +5 -5
  284. package/dist/charts/chart-types/scatter-plot/schema.d.ts.map +1 -0
  285. package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.js +5 -5
  286. package/dist/charts/chart-types/scatter-plot/schema.js.map +1 -0
  287. package/dist/charts/chart-types/scatter-plot/spec.d.ts +5 -0
  288. package/dist/charts/chart-types/scatter-plot/spec.d.ts.map +1 -0
  289. package/dist/charts/chart-types/scatter-plot/spec.js +37 -0
  290. package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -0
  291. package/dist/charts/chart-types/scatter-plot/tool.d.ts +39 -0
  292. package/dist/charts/chart-types/scatter-plot/tool.d.ts.map +1 -0
  293. package/dist/charts/chart-types/scatter-plot/tool.js +57 -0
  294. package/dist/charts/chart-types/scatter-plot/tool.js.map +1 -0
  295. package/dist/charts/chart-types/scatter-plot/validation.d.ts +13 -0
  296. package/dist/charts/chart-types/scatter-plot/validation.d.ts.map +1 -0
  297. package/dist/charts/chart-types/scatter-plot/validation.js +52 -0
  298. package/dist/charts/chart-types/scatter-plot/validation.js.map +1 -0
  299. package/dist/charts/chart-types/tool-types.d.ts +43 -0
  300. package/dist/charts/chart-types/tool-types.d.ts.map +1 -0
  301. package/dist/charts/chart-types/tool-types.js +2 -0
  302. package/dist/charts/chart-types/tool-types.js.map +1 -0
  303. package/dist/charts/chart-types/utils.d.ts +3 -0
  304. package/dist/charts/chart-types/utils.d.ts.map +1 -0
  305. package/dist/charts/chart-types/utils.js +4 -0
  306. package/dist/charts/chart-types/utils.js.map +1 -0
  307. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.d.ts.map +1 -1
  308. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js +12 -5
  309. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js.map +1 -1
  310. package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -1
  311. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +6 -4
  312. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -1
  313. package/dist/charts/useChartDataPolicy.d.ts.map +1 -1
  314. package/dist/charts/useChartDataPolicy.js +2 -1
  315. package/dist/charts/useChartDataPolicy.js.map +1 -1
  316. package/dist/charts/useChartPanelClients.d.ts +8 -0
  317. package/dist/charts/useChartPanelClients.d.ts.map +1 -0
  318. package/dist/charts/useChartPanelClients.js +22 -0
  319. package/dist/charts/useChartPanelClients.js.map +1 -0
  320. package/dist/charts/useMosaicChartRenderContext.d.ts +2 -3
  321. package/dist/charts/useMosaicChartRenderContext.d.ts.map +1 -1
  322. package/dist/charts/useMosaicChartRenderContext.js +15 -15
  323. package/dist/charts/useMosaicChartRenderContext.js.map +1 -1
  324. package/dist/charts/worksheet/ChartBlockHeader.d.ts.map +1 -1
  325. package/dist/charts/worksheet/ChartBlockHeader.js +4 -3
  326. package/dist/charts/worksheet/ChartBlockHeader.js.map +1 -1
  327. package/dist/charts/worksheet/ChartBlockRenderer.d.ts.map +1 -1
  328. package/dist/charts/worksheet/ChartBlockRenderer.js +3 -13
  329. package/dist/charts/worksheet/ChartBlockRenderer.js.map +1 -1
  330. package/dist/column-types-utils.d.ts.map +1 -1
  331. package/dist/column-types-utils.js +12 -4
  332. package/dist/column-types-utils.js.map +1 -1
  333. package/dist/components/AggregationSelector.d.ts.map +1 -1
  334. package/dist/components/AggregationSelector.js +9 -2
  335. package/dist/components/AggregationSelector.js.map +1 -1
  336. package/dist/components/BlockCaptionEditor.d.ts +20 -0
  337. package/dist/components/BlockCaptionEditor.d.ts.map +1 -0
  338. package/dist/components/BlockCaptionEditor.js +15 -0
  339. package/dist/components/BlockCaptionEditor.js.map +1 -0
  340. package/dist/components/ColorSelector.d.ts +12 -0
  341. package/dist/components/ColorSelector.d.ts.map +1 -0
  342. package/dist/components/ColorSelector.js +13 -0
  343. package/dist/components/ColorSelector.js.map +1 -0
  344. package/dist/components/ColumnSelector.d.ts +1 -0
  345. package/dist/components/ColumnSelector.d.ts.map +1 -1
  346. package/dist/components/ColumnSelector.js +2 -2
  347. package/dist/components/ColumnSelector.js.map +1 -1
  348. package/dist/components/FieldSelectorInput.d.ts +1 -0
  349. package/dist/components/FieldSelectorInput.d.ts.map +1 -1
  350. package/dist/components/FieldSelectorInput.js +4 -9
  351. package/dist/components/FieldSelectorInput.js.map +1 -1
  352. package/dist/components/MultiFieldSelector.d.ts +4 -1
  353. package/dist/components/MultiFieldSelector.d.ts.map +1 -1
  354. package/dist/components/MultiFieldSelector.js +4 -13
  355. package/dist/components/MultiFieldSelector.js.map +1 -1
  356. package/dist/components/TemporalGranularitySelector.d.ts.map +1 -1
  357. package/dist/components/TemporalGranularitySelector.js +13 -9
  358. package/dist/components/TemporalGranularitySelector.js.map +1 -1
  359. package/dist/constants/chart-colors.d.ts +3 -0
  360. package/dist/constants/chart-colors.d.ts.map +1 -0
  361. package/dist/constants/chart-colors.js +5 -0
  362. package/dist/constants/chart-colors.js.map +1 -0
  363. package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts +2 -1
  364. package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts.map +1 -1
  365. package/dist/dashboard/DefaultMosaicDashboardBlock.js +1 -1
  366. package/dist/dashboard/DefaultMosaicDashboardBlock.js.map +1 -1
  367. package/dist/dashboard/MosaicDashboardCommands.d.ts +19 -0
  368. package/dist/dashboard/MosaicDashboardCommands.d.ts.map +1 -0
  369. package/dist/dashboard/MosaicDashboardCommands.js +226 -0
  370. package/dist/dashboard/MosaicDashboardCommands.js.map +1 -0
  371. package/dist/dashboard/MosaicDashboardSlice.d.ts +22 -4
  372. package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
  373. package/dist/dashboard/MosaicDashboardSlice.js +55 -0
  374. package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
  375. package/dist/dashboard/components/ResetFiltersButton.d.ts +14 -0
  376. package/dist/dashboard/components/ResetFiltersButton.d.ts.map +1 -0
  377. package/dist/dashboard/components/ResetFiltersButton.js +15 -0
  378. package/dist/dashboard/components/ResetFiltersButton.js.map +1 -0
  379. package/dist/dashboard/dashboard-types.d.ts +9 -3
  380. package/dist/dashboard/dashboard-types.d.ts.map +1 -1
  381. package/dist/dashboard/dashboard-types.js.map +1 -1
  382. package/dist/dashboard/hooks/useDashboardResetFilters.d.ts +14 -0
  383. package/dist/dashboard/hooks/useDashboardResetFilters.d.ts.map +1 -0
  384. package/dist/dashboard/hooks/useDashboardResetFilters.js +39 -0
  385. package/dist/dashboard/hooks/useDashboardResetFilters.js.map +1 -0
  386. package/dist/dashboard/hooks/usePanelResetFilters.d.ts +16 -0
  387. package/dist/dashboard/hooks/usePanelResetFilters.d.ts.map +1 -0
  388. package/dist/dashboard/hooks/usePanelResetFilters.js +47 -0
  389. package/dist/dashboard/hooks/usePanelResetFilters.js.map +1 -0
  390. package/dist/dashboard/panel/MosaicDashboardPanel.d.ts.map +1 -1
  391. package/dist/dashboard/panel/MosaicDashboardPanel.js +1 -1
  392. package/dist/dashboard/panel/MosaicDashboardPanel.js.map +1 -1
  393. package/dist/dashboard/panel/MosaicDashboardPanelLayout.d.ts.map +1 -1
  394. package/dist/dashboard/panel/MosaicDashboardPanelLayout.js +3 -3
  395. package/dist/dashboard/panel/MosaicDashboardPanelLayout.js.map +1 -1
  396. package/dist/dashboard/panel/MosaicDashboardPanels.d.ts.map +1 -1
  397. package/dist/dashboard/panel/MosaicDashboardPanels.js +4 -2
  398. package/dist/dashboard/panel/MosaicDashboardPanels.js.map +1 -1
  399. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.d.ts.map +1 -1
  400. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js +3 -3
  401. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js.map +1 -1
  402. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts +7 -0
  403. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts.map +1 -0
  404. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js +18 -0
  405. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js.map +1 -0
  406. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.d.ts.map +1 -1
  407. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js +4 -32
  408. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js.map +1 -1
  409. package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts +2 -2
  410. package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -1
  411. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +14 -10
  412. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -1
  413. package/dist/dashboard/usePanelClientRegistration.d.ts +7 -0
  414. package/dist/dashboard/usePanelClientRegistration.d.ts.map +1 -0
  415. package/dist/dashboard/usePanelClientRegistration.js +30 -0
  416. package/dist/dashboard/usePanelClientRegistration.js.map +1 -0
  417. package/dist/dashboard/usePanelClients.d.ts +7 -0
  418. package/dist/dashboard/usePanelClients.d.ts.map +1 -0
  419. package/dist/dashboard/usePanelClients.js +13 -0
  420. package/dist/dashboard/usePanelClients.js.map +1 -0
  421. package/dist/dashboard/useSelectedOrFirstTable.d.ts +1 -1
  422. package/dist/dashboard/useSelectedOrFirstTable.d.ts.map +1 -1
  423. package/dist/dashboard/useSelectedOrFirstTable.js +10 -8
  424. package/dist/dashboard/useSelectedOrFirstTable.js.map +1 -1
  425. package/dist/data-table-explorer/DataTableExplorer.d.ts +4 -2
  426. package/dist/data-table-explorer/DataTableExplorer.d.ts.map +1 -1
  427. package/dist/data-table-explorer/DataTableExplorer.js +4 -4
  428. package/dist/data-table-explorer/DataTableExplorer.js.map +1 -1
  429. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts +3 -2
  430. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts.map +1 -1
  431. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +4 -3
  432. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js.map +1 -1
  433. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts +3 -1
  434. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts.map +1 -1
  435. package/dist/data-table-explorer/DataTableExplorerCountClient.js +3 -3
  436. package/dist/data-table-explorer/DataTableExplorerCountClient.js.map +1 -1
  437. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts +3 -2
  438. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts.map +1 -1
  439. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js +4 -4
  440. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js.map +1 -1
  441. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts +3 -1
  442. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts.map +1 -1
  443. package/dist/data-table-explorer/DataTableExplorerPageClient.js +3 -1
  444. package/dist/data-table-explorer/DataTableExplorerPageClient.js.map +1 -1
  445. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts +3 -2
  446. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts.map +1 -1
  447. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js +3 -3
  448. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js.map +1 -1
  449. package/dist/data-table-explorer/createDataTableExplorerStore.d.ts +3 -0
  450. package/dist/data-table-explorer/createDataTableExplorerStore.d.ts.map +1 -1
  451. package/dist/data-table-explorer/createDataTableExplorerStore.js +6 -0
  452. package/dist/data-table-explorer/createDataTableExplorerStore.js.map +1 -1
  453. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts +4 -0
  454. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts.map +1 -0
  455. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js +13 -0
  456. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js.map +1 -0
  457. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -1
  458. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +26 -8
  459. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -1
  460. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts +13 -0
  461. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts.map +1 -0
  462. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js +32 -0
  463. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js.map +1 -0
  464. package/dist/data-table-explorer/dataTableExplorerController.d.ts +63 -3
  465. package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
  466. package/dist/data-table-explorer/dataTableExplorerController.js +73 -10
  467. package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -1
  468. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts +12 -0
  469. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts.map +1 -0
  470. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js +19 -0
  471. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js.map +1 -0
  472. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts +52 -0
  473. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -0
  474. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +153 -0
  475. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -0
  476. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +42 -0
  477. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -0
  478. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +43 -0
  479. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js.map +1 -0
  480. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts +13 -0
  481. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts.map +1 -0
  482. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js +40 -0
  483. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js.map +1 -0
  484. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts +18 -0
  485. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts.map +1 -0
  486. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js +23 -0
  487. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js.map +1 -0
  488. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts +27 -0
  489. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts.map +1 -0
  490. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js +28 -0
  491. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js.map +1 -0
  492. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts +15 -0
  493. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts.map +1 -0
  494. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js +21 -0
  495. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js.map +1 -0
  496. package/dist/data-table-explorer/types.d.ts +16 -3
  497. package/dist/data-table-explorer/types.d.ts.map +1 -1
  498. package/dist/data-table-explorer/types.js.map +1 -1
  499. package/dist/data-table-explorer/useDataTableExplorer.d.ts.map +1 -1
  500. package/dist/data-table-explorer/useDataTableExplorer.js +20 -279
  501. package/dist/data-table-explorer/useDataTableExplorer.js.map +1 -1
  502. package/dist/data-table-explorer/utils.d.ts +64 -6
  503. package/dist/data-table-explorer/utils.d.ts.map +1 -1
  504. package/dist/data-table-explorer/utils.js +58 -0
  505. package/dist/data-table-explorer/utils.js.map +1 -1
  506. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts +1 -0
  507. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts.map +1 -1
  508. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js +4 -2
  509. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js.map +1 -1
  510. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -1
  511. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +4 -4
  512. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
  513. package/dist/index.d.ts +55 -31
  514. package/dist/index.d.ts.map +1 -1
  515. package/dist/index.js +86 -26
  516. package/dist/index.js.map +1 -1
  517. package/dist/mosaicTableReference.d.ts +59 -0
  518. package/dist/mosaicTableReference.d.ts.map +1 -0
  519. package/dist/mosaicTableReference.js +68 -0
  520. package/dist/mosaicTableReference.js.map +1 -0
  521. package/dist/useVgPlotChartRender.d.ts.map +1 -1
  522. package/dist/useVgPlotChartRender.js +151 -25
  523. package/dist/useVgPlotChartRender.js.map +1 -1
  524. package/dist/useVgPlotChartRetention.d.ts +11 -0
  525. package/dist/useVgPlotChartRetention.d.ts.map +1 -1
  526. package/dist/useVgPlotChartRetention.js.map +1 -1
  527. package/dist/utils/table-lookup.d.ts +7 -0
  528. package/dist/utils/table-lookup.d.ts.map +1 -0
  529. package/dist/utils/table-lookup.js +10 -0
  530. package/dist/utils/table-lookup.js.map +1 -0
  531. package/package.json +14 -14
  532. package/dist/ai/ai.d.ts +0 -103
  533. package/dist/ai/ai.d.ts.map +0 -1
  534. package/dist/ai/ai.js +0 -419
  535. package/dist/ai/ai.js.map +0 -1
  536. package/dist/ai/data-table-explorer-tool.d.ts +0 -40
  537. package/dist/ai/data-table-explorer-tool.d.ts.map +0 -1
  538. package/dist/ai/data-table-explorer-tool.js +0 -75
  539. package/dist/ai/data-table-explorer-tool.js.map +0 -1
  540. package/dist/ai/list-panels-tool.d.ts +0 -35
  541. package/dist/ai/list-panels-tool.d.ts.map +0 -1
  542. package/dist/ai/list-panels-tool.js +0 -66
  543. package/dist/ai/list-panels-tool.js.map +0 -1
  544. package/dist/ai/remove-panel-tool.d.ts +0 -31
  545. package/dist/ai/remove-panel-tool.d.ts.map +0 -1
  546. package/dist/ai/remove-panel-tool.js +0 -55
  547. package/dist/ai/remove-panel-tool.js.map +0 -1
  548. package/dist/ai/tool-validation.d.ts +0 -3
  549. package/dist/ai/tool-validation.d.ts.map +0 -1
  550. package/dist/ai/tool-validation.js +0 -11
  551. package/dist/ai/tool-validation.js.map +0 -1
  552. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts +0 -3
  553. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts.map +0 -1
  554. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.js.map +0 -1
  555. package/dist/charts/chart-types/bubble-chart/definition.d.ts +0 -4
  556. package/dist/charts/chart-types/bubble-chart/definition.d.ts.map +0 -1
  557. package/dist/charts/chart-types/bubble-chart/definition.js +0 -24
  558. package/dist/charts/chart-types/bubble-chart/definition.js.map +0 -1
  559. package/dist/charts/chart-types/bubble-chart/schema.d.ts.map +0 -1
  560. package/dist/charts/chart-types/bubble-chart/schema.js.map +0 -1
  561. package/dist/charts/chart-types/bubble-chart/spec.d.ts +0 -4
  562. package/dist/charts/chart-types/bubble-chart/spec.d.ts.map +0 -1
  563. package/dist/charts/chart-types/bubble-chart/spec.js +0 -31
  564. package/dist/charts/chart-types/bubble-chart/spec.js.map +0 -1
  565. package/dist/charts/chart-types/bubble-chart/tool.d.ts +0 -42
  566. package/dist/charts/chart-types/bubble-chart/tool.d.ts.map +0 -1
  567. package/dist/charts/chart-types/bubble-chart/tool.js +0 -66
  568. package/dist/charts/chart-types/bubble-chart/tool.js.map +0 -1
  569. package/dist/hooks/useDataTable.d.ts +0 -3
  570. package/dist/hooks/useDataTable.d.ts.map +0 -1
  571. package/dist/hooks/useDataTable.js +0 -28
  572. package/dist/hooks/useDataTable.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/charts/chart-types/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC9B,SAAmC,EACnC,cAAsB;IAEtB,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;AAC/D,CAAC","sourcesContent":["import {ChartTypeDefinition} from './base-types';\n\nexport function getChartToolName(\n chartType: ChartTypeDefinition<any>,\n toolNamePrefix: string,\n): string {\n return `${toolNamePrefix}${chartType.id.replace(/-/g, '_')}`;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicDashboardChartHeaderActions.d.ts","sourceRoot":"","sources":["../../../src/charts/dashboard/MosaicDashboardChartHeaderActions.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAE,EAAc,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,sCAAsC,CAAC;AAE9C,eAAO,MAAM,iCAAiC,EAAE,EAAE,CAAC,uBAAuB,CAmCzE,CAAC"}
1
+ {"version":3,"file":"MosaicDashboardChartHeaderActions.d.ts","sourceRoot":"","sources":["../../../src/charts/dashboard/MosaicDashboardChartHeaderActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAc,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,sCAAsC,CAAC;AAM9C,eAAO,MAAM,iCAAiC,EAAE,EAAE,CAAC,uBAAuB,CAmCzE,CAAC"}
@@ -1,16 +1,23 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Button, Tooltip, TooltipContent, TooltipTrigger } from '@sqlrooms/ui';
3
- import { SettingsIcon } from 'lucide-react';
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
4
2
  import { useCallback } from 'react';
5
3
  import { useStoreWithMosaicDashboard, } from '../../dashboard/MosaicDashboardSlice';
6
- export const MosaicDashboardChartHeaderActions = ({ dashboardId, panel, }) => {
4
+ import { usePanelClients } from '../../dashboard/usePanelClients';
5
+ import { usePanelResetFilters } from '../../dashboard/hooks/usePanelResetFilters';
6
+ import { ResetFiltersButton } from '../../dashboard/components/ResetFiltersButton';
7
+ import { MosaicChartSettingsButton } from '../MosaicChartSettingsButton';
8
+ export const MosaicDashboardChartHeaderActions = ({ dashboardId, panel, selectionName, }) => {
7
9
  const updatePanel = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.updatePanel);
10
+ const panelClients = usePanelClients(dashboardId, panel.id);
11
+ const { hasActiveFilters, reset } = usePanelResetFilters({
12
+ panelClients,
13
+ selectionName,
14
+ });
8
15
  const isSettingsOpen = Boolean(panel.config.settingsOpen);
9
16
  const handleToggleSettings = useCallback(() => {
10
17
  updatePanel(dashboardId, panel.id, {
11
18
  config: { ...panel.config, settingsOpen: !isSettingsOpen },
12
19
  });
13
20
  }, [dashboardId, isSettingsOpen, panel.config, panel.id, updatePanel]);
14
- return (_jsx(_Fragment, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: "data-[state=active]:bg-accent h-6 w-6", title: "Chart settings", onClick: handleToggleSettings, "data-state": isSettingsOpen ? 'active' : 'inactive', children: _jsx(SettingsIcon, { className: "h-3.5 w-3.5" }) }) }), _jsx(TooltipContent, { children: "Chart settings" })] }) }));
21
+ return (_jsxs(_Fragment, { children: [_jsx(ResetFiltersButton, { disabled: !hasActiveFilters, onClick: reset, tooltip: "Reset panel filters" }), _jsx(MosaicChartSettingsButton, { isSettingsOpen: isSettingsOpen, onToggleSettings: handleToggleSettings })] }));
15
22
  };
16
23
  //# sourceMappingURL=MosaicDashboardChartHeaderActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicDashboardChartHeaderActions.js","sourceRoot":"","sources":["../../../src/charts/dashboard/MosaicDashboardChartHeaderActions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAU,WAAW,EAAC,MAAM,OAAO,CAAC;AAC3C,OAAO,EAEL,2BAA2B,GAC5B,MAAM,sCAAsC,CAAC;AAE9C,MAAM,CAAC,MAAM,iCAAiC,GAAgC,CAAC,EAC7E,WAAW,EACX,KAAK,GACN,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,2BAA2B,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAC7C,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE1D,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE;YACjC,MAAM,EAAE,EAAC,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,cAAc,EAAC;SACzD,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvE,OAAO,CACL,4BACE,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,uCAAuC,EACjD,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,oBAAoB,gBACjB,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,YAElD,KAAC,YAAY,IAAC,SAAS,EAAC,aAAa,GAAG,GACjC,GACM,EACjB,KAAC,cAAc,iCAAgC,IACvC,GACT,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {Button, Tooltip, TooltipContent, TooltipTrigger} from '@sqlrooms/ui';\nimport {SettingsIcon} from 'lucide-react';\nimport {type FC, useCallback} from 'react';\nimport {\n type ChartPanelRendererProps,\n useStoreWithMosaicDashboard,\n} from '../../dashboard/MosaicDashboardSlice';\n\nexport const MosaicDashboardChartHeaderActions: FC<ChartPanelRendererProps> = ({\n dashboardId,\n panel,\n}) => {\n const updatePanel = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.updatePanel,\n );\n\n const isSettingsOpen = Boolean(panel.config.settingsOpen);\n\n const handleToggleSettings = useCallback(() => {\n updatePanel(dashboardId, panel.id, {\n config: {...panel.config, settingsOpen: !isSettingsOpen},\n });\n }, [dashboardId, isSettingsOpen, panel.config, panel.id, updatePanel]);\n\n return (\n <>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"data-[state=active]:bg-accent h-6 w-6\"\n title=\"Chart settings\"\n onClick={handleToggleSettings}\n data-state={isSettingsOpen ? 'active' : 'inactive'}\n >\n <SettingsIcon className=\"h-3.5 w-3.5\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Chart settings</TooltipContent>\n </Tooltip>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"MosaicDashboardChartHeaderActions.js","sourceRoot":"","sources":["../../../src/charts/dashboard/MosaicDashboardChartHeaderActions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,WAAW,EAAC,MAAM,OAAO,CAAC;AAC3C,OAAO,EAEL,2BAA2B,GAC5B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAC,oBAAoB,EAAC,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAC,kBAAkB,EAAC,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAC,yBAAyB,EAAC,MAAM,8BAA8B,CAAC;AAEvE,MAAM,CAAC,MAAM,iCAAiC,GAAgC,CAAC,EAC7E,WAAW,EACX,KAAK,EACL,aAAa,GACd,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,2BAA2B,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAC7C,CAAC;IACF,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,EAAC,gBAAgB,EAAE,KAAK,EAAC,GAAG,oBAAoB,CAAC;QACrD,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE1D,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE;YACjC,MAAM,EAAE,EAAC,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,cAAc,EAAC;SACzD,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvE,OAAO,CACL,8BACE,KAAC,kBAAkB,IACjB,QAAQ,EAAE,CAAC,gBAAgB,EAC3B,OAAO,EAAE,KAAK,EACd,OAAO,EAAC,qBAAqB,GAC7B,EACF,KAAC,yBAAyB,IACxB,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,oBAAoB,GACtC,IACD,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC, useCallback} from 'react';\nimport {\n type ChartPanelRendererProps,\n useStoreWithMosaicDashboard,\n} from '../../dashboard/MosaicDashboardSlice';\nimport {usePanelClients} from '../../dashboard/usePanelClients';\nimport {usePanelResetFilters} from '../../dashboard/hooks/usePanelResetFilters';\nimport {ResetFiltersButton} from '../../dashboard/components/ResetFiltersButton';\nimport {MosaicChartSettingsButton} from '../MosaicChartSettingsButton';\n\nexport const MosaicDashboardChartHeaderActions: FC<ChartPanelRendererProps> = ({\n dashboardId,\n panel,\n selectionName,\n}) => {\n const updatePanel = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.updatePanel,\n );\n const panelClients = usePanelClients(dashboardId, panel.id);\n const {hasActiveFilters, reset} = usePanelResetFilters({\n panelClients,\n selectionName,\n });\n\n const isSettingsOpen = Boolean(panel.config.settingsOpen);\n\n const handleToggleSettings = useCallback(() => {\n updatePanel(dashboardId, panel.id, {\n config: {...panel.config, settingsOpen: !isSettingsOpen},\n });\n }, [dashboardId, isSettingsOpen, panel.config, panel.id, updatePanel]);\n\n return (\n <>\n <ResetFiltersButton\n disabled={!hasActiveFilters}\n onClick={reset}\n tooltip=\"Reset panel filters\"\n />\n <MosaicChartSettingsButton\n isSettingsOpen={isSettingsOpen}\n onToggleSettings={handleToggleSettings}\n />\n </>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicDashboardChartRenderer.d.ts","sourceRoot":"","sources":["../../../src/charts/dashboard/MosaicDashboardChartRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACtE,OAAO,EACL,KAAK,4BAA4B,EAIlC,MAAM,sCAAsC,CAAC;AAsC9C,eAAO,MAAM,4BAA4B,EAAE,4BAA4B,CAAC,gBAAgB,CAKrF,CAAC"}
1
+ {"version":3,"file":"MosaicDashboardChartRenderer.d.ts","sourceRoot":"","sources":["../../../src/charts/dashboard/MosaicDashboardChartRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACtE,OAAO,EACL,KAAK,4BAA4B,EAIlC,MAAM,sCAAsC,CAAC;AA6C9C,eAAO,MAAM,4BAA4B,EAAE,4BAA4B,CAAC,gBAAgB,CAKrF,CAAC"}
@@ -1,19 +1,21 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { BarChart3Icon } from 'lucide-react';
3
- import { useCallback } from 'react';
3
+ import { useCallback, useMemo } from 'react';
4
4
  import { MosaicDashboardChartHeaderActions } from './MosaicDashboardChartHeaderActions';
5
5
  import { useStoreWithMosaicDashboard, getMosaicDashboardPanelId, } from '../../dashboard/MosaicDashboardSlice';
6
6
  import { MosaicChart } from '../MosaicChart';
7
- import { useDataTable } from '../../hooks/useDataTable';
7
+ import { useTablesWithColumns } from '../../hooks/useTablesWithColumns';
8
+ import { resolveMosaicTableReference } from '../../mosaicTableReference';
8
9
  const MosaicDashboardChartRenderer = ({ panel, dashboardId, dashboard, selectionName, }) => {
9
10
  const tableName = dashboard.selectedTable;
10
- const dataTable = useDataTable(tableName);
11
+ const tables = useTablesWithColumns();
12
+ const dataTable = useMemo(() => resolveMosaicTableReference(tables, tableName).table, [tableName, tables]);
11
13
  const updatePanel = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.updatePanel);
12
14
  const runtimeKey = getMosaicDashboardPanelId(dashboardId, panel.id);
13
15
  const handleConfigChange = useCallback((config) => {
14
16
  updatePanel(dashboardId, panel.id, { config });
15
17
  }, [dashboardId, panel.id, updatePanel]);
16
- return (_jsx(MosaicChart, { dataTable: dataTable, selectionName: selectionName, config: panel.config, runtimeKey: runtimeKey, onConfigChange: handleConfigChange }));
18
+ return (_jsx(MosaicChart, { dataTable: dataTable, selectionName: selectionName, config: panel.config, runtimeKey: runtimeKey, onConfigChange: handleConfigChange, dashboardId: dashboardId, panelId: panel.id }));
17
19
  };
18
20
  export const mosaicDashboardChartRenderer = {
19
21
  component: MosaicDashboardChartRenderer,
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicDashboardChartRenderer.js","sourceRoot":"","sources":["../../../src/charts/dashboard/MosaicDashboardChartRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAU,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAC,iCAAiC,EAAC,MAAM,qCAAqC,CAAC;AAEtF,OAAO,EAGL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEtD,MAAM,4BAA4B,GAAgC,CAAC,EACjE,KAAK,EACL,WAAW,EACX,SAAS,EACT,aAAa,GACd,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC;IAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG,2BAA2B,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAC7C,CAAC;IAEF,MAAM,UAAU,GAAG,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAEpE,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,MAAmB,EAAE,EAAE;QACtB,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;IAC/C,CAAC,EACD,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CACrC,CAAC;IAEF,OAAO,CACL,KAAC,WAAW,IACV,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,kBAAkB,GAClC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GACvC;IACE,SAAS,EAAE,4BAA4B;IACvC,aAAa,EAAE,iCAAiC;IAChD,IAAI,EAAE,aAAa;CACpB,CAAC","sourcesContent":["import {BarChart3Icon} from 'lucide-react';\nimport {useCallback, type FC} from 'react';\nimport {MosaicDashboardChartHeaderActions} from './MosaicDashboardChartHeaderActions';\nimport type {ChartPanelConfig} from '../../dashboard/dashboard-types';\nimport {\n type MosaicDashboardPanelRenderer,\n type ChartPanelRendererProps,\n useStoreWithMosaicDashboard,\n getMosaicDashboardPanelId,\n} from '../../dashboard/MosaicDashboardSlice';\nimport {ChartConfig} from '../chart-types/chart-config';\nimport {MosaicChart} from '../MosaicChart';\nimport {useDataTable} from '../../hooks/useDataTable';\n\nconst MosaicDashboardChartRenderer: FC<ChartPanelRendererProps> = ({\n panel,\n dashboardId,\n dashboard,\n selectionName,\n}) => {\n const tableName = dashboard.selectedTable;\n const dataTable = useDataTable(tableName);\n\n const updatePanel = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.updatePanel,\n );\n\n const runtimeKey = getMosaicDashboardPanelId(dashboardId, panel.id);\n\n const handleConfigChange = useCallback(\n (config: ChartConfig) => {\n updatePanel(dashboardId, panel.id, {config});\n },\n [dashboardId, panel.id, updatePanel],\n );\n\n return (\n <MosaicChart\n dataTable={dataTable}\n selectionName={selectionName}\n config={panel.config}\n runtimeKey={runtimeKey}\n onConfigChange={handleConfigChange}\n />\n );\n};\n\nexport const mosaicDashboardChartRenderer: MosaicDashboardPanelRenderer<ChartPanelConfig> =\n {\n component: MosaicDashboardChartRenderer,\n headerActions: MosaicDashboardChartHeaderActions,\n icon: BarChart3Icon,\n };\n"]}
1
+ {"version":3,"file":"MosaicDashboardChartRenderer.js","sourceRoot":"","sources":["../../../src/charts/dashboard/MosaicDashboardChartRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAE,OAAO,EAAU,MAAM,OAAO,CAAC;AACpD,OAAO,EAAC,iCAAiC,EAAC,MAAM,qCAAqC,CAAC;AAEtF,OAAO,EAGL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAC,2BAA2B,EAAC,MAAM,4BAA4B,CAAC;AAEvE,MAAM,4BAA4B,GAAgC,CAAC,EACjE,KAAK,EACL,WAAW,EACX,SAAS,EACT,aAAa,GACd,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC;IAC1C,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,2BAA2B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,KAAK,EAC1D,CAAC,SAAS,EAAE,MAAM,CAAC,CACpB,CAAC;IAEF,MAAM,WAAW,GAAG,2BAA2B,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAC7C,CAAC;IAEF,MAAM,UAAU,GAAG,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAEpE,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,MAAmB,EAAE,EAAE;QACtB,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;IAC/C,CAAC,EACD,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CACrC,CAAC;IAEF,OAAO,CACL,KAAC,WAAW,IACV,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,kBAAkB,EAClC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,KAAK,CAAC,EAAE,GACjB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GACvC;IACE,SAAS,EAAE,4BAA4B;IACvC,aAAa,EAAE,iCAAiC;IAChD,IAAI,EAAE,aAAa;CACpB,CAAC","sourcesContent":["import {BarChart3Icon} from 'lucide-react';\nimport {useCallback, useMemo, type FC} from 'react';\nimport {MosaicDashboardChartHeaderActions} from './MosaicDashboardChartHeaderActions';\nimport type {ChartPanelConfig} from '../../dashboard/dashboard-types';\nimport {\n type MosaicDashboardPanelRenderer,\n type ChartPanelRendererProps,\n useStoreWithMosaicDashboard,\n getMosaicDashboardPanelId,\n} from '../../dashboard/MosaicDashboardSlice';\nimport {ChartConfig} from '../chart-types/chart-config';\nimport {MosaicChart} from '../MosaicChart';\nimport {useTablesWithColumns} from '../../hooks/useTablesWithColumns';\nimport {resolveMosaicTableReference} from '../../mosaicTableReference';\n\nconst MosaicDashboardChartRenderer: FC<ChartPanelRendererProps> = ({\n panel,\n dashboardId,\n dashboard,\n selectionName,\n}) => {\n const tableName = dashboard.selectedTable;\n const tables = useTablesWithColumns();\n const dataTable = useMemo(\n () => resolveMosaicTableReference(tables, tableName).table,\n [tableName, tables],\n );\n\n const updatePanel = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.updatePanel,\n );\n\n const runtimeKey = getMosaicDashboardPanelId(dashboardId, panel.id);\n\n const handleConfigChange = useCallback(\n (config: ChartConfig) => {\n updatePanel(dashboardId, panel.id, {config});\n },\n [dashboardId, panel.id, updatePanel],\n );\n\n return (\n <MosaicChart\n dataTable={dataTable}\n selectionName={selectionName}\n config={panel.config}\n runtimeKey={runtimeKey}\n onConfigChange={handleConfigChange}\n dashboardId={dashboardId}\n panelId={panel.id}\n />\n );\n};\n\nexport const mosaicDashboardChartRenderer: MosaicDashboardPanelRenderer<ChartPanelConfig> =\n {\n component: MosaicDashboardChartRenderer,\n headerActions: MosaicDashboardChartHeaderActions,\n icon: BarChart3Icon,\n };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useChartDataPolicy.d.ts","sourceRoot":"","sources":["../../src/charts/useChartDataPolicy.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,MAAM,EAAE,WAAW,GAClB,eAAe,GAAG,IAAI,CAgBxB"}
1
+ {"version":3,"file":"useChartDataPolicy.d.ts","sourceRoot":"","sources":["../../src/charts/useChartDataPolicy.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,MAAM,EAAE,WAAW,GAClB,eAAe,GAAG,IAAI,CAgBxB"}
@@ -1,5 +1,6 @@
1
1
  import { useMemo } from 'react';
2
2
  import { resolveChartDataPolicy } from '../chart-runtime';
3
+ import { getChartTableReferenceString } from './chart-types/base-types';
3
4
  import { useChartTypeDefinition } from './useChartTypeDefinition';
4
5
  export function useChartDataPolicy(dataTable, config) {
5
6
  const chartTypeDefinition = useChartTypeDefinition(config.chartType);
@@ -8,7 +9,7 @@ export function useChartDataPolicy(dataTable, config) {
8
9
  return null;
9
10
  }
10
11
  const defaultPolicy = chartTypeDefinition.getDataPolicy({
11
- tableName: dataTable.table.table,
12
+ tableName: getChartTableReferenceString(dataTable),
12
13
  config,
13
14
  }) ?? null;
14
15
  return resolveChartDataPolicy(defaultPolicy, config.dataPolicy);
@@ -1 +1 @@
1
- {"version":3,"file":"useChartDataPolicy.js","sourceRoot":"","sources":["../../src/charts/useChartDataPolicy.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAGhE,MAAM,UAAU,kBAAkB,CAChC,SAAgC,EAChC,MAAmB;IAEnB,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAErE,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,mBAAmB,EAAE,aAAa,IAAI,CAAC,SAAS,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GACjB,mBAAmB,CAAC,aAAa,CAAC;YAChC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK;YAChC,MAAM;SACP,CAAC,IAAI,IAAI,CAAC;QAEb,OAAO,sBAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["import {useMemo} from 'react';\nimport type {ChartDataPolicy} from '../chart-runtime';\nimport {resolveChartDataPolicy} from '../chart-runtime';\nimport type {ChartConfig} from './chart-types/chart-config';\nimport {useChartTypeDefinition} from './useChartTypeDefinition';\nimport {DataTable} from '@sqlrooms/db';\n\nexport function useChartDataPolicy(\n dataTable: DataTable | undefined,\n config: ChartConfig,\n): ChartDataPolicy | null {\n const chartTypeDefinition = useChartTypeDefinition(config.chartType);\n\n return useMemo(() => {\n if (!chartTypeDefinition?.getDataPolicy || !dataTable) {\n return null;\n }\n\n const defaultPolicy =\n chartTypeDefinition.getDataPolicy({\n tableName: dataTable.table.table,\n config,\n }) ?? null;\n\n return resolveChartDataPolicy(defaultPolicy, config.dataPolicy);\n }, [config, chartTypeDefinition, dataTable]);\n}\n"]}
1
+ {"version":3,"file":"useChartDataPolicy.js","sourceRoot":"","sources":["../../src/charts/useChartDataPolicy.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAC,4BAA4B,EAAC,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAGhE,MAAM,UAAU,kBAAkB,CAChC,SAAgC,EAChC,MAAmB;IAEnB,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAErE,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,mBAAmB,EAAE,aAAa,IAAI,CAAC,SAAS,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GACjB,mBAAmB,CAAC,aAAa,CAAC;YAChC,SAAS,EAAE,4BAA4B,CAAC,SAAS,CAAC;YAClD,MAAM;SACP,CAAC,IAAI,IAAI,CAAC;QAEb,OAAO,sBAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["import {useMemo} from 'react';\nimport type {ChartDataPolicy} from '../chart-runtime';\nimport {resolveChartDataPolicy} from '../chart-runtime';\nimport type {ChartConfig} from './chart-types/chart-config';\nimport {getChartTableReferenceString} from './chart-types/base-types';\nimport {useChartTypeDefinition} from './useChartTypeDefinition';\nimport {DataTable} from '@sqlrooms/db';\n\nexport function useChartDataPolicy(\n dataTable: DataTable | undefined,\n config: ChartConfig,\n): ChartDataPolicy | null {\n const chartTypeDefinition = useChartTypeDefinition(config.chartType);\n\n return useMemo(() => {\n if (!chartTypeDefinition?.getDataPolicy || !dataTable) {\n return null;\n }\n\n const defaultPolicy =\n chartTypeDefinition.getDataPolicy({\n tableName: getChartTableReferenceString(dataTable),\n config,\n }) ?? null;\n\n return resolveChartDataPolicy(defaultPolicy, config.dataPolicy);\n }, [config, chartTypeDefinition, dataTable]);\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { type MosaicClient } from '@uwdata/mosaic-core';
2
+ import type { VgPlotChartRetention } from '../VgPlotChart';
3
+ /**
4
+ * Extracts chart interactors from a retained chart instance for panel client registration.
5
+ * Chart interactors create filter clauses when users interact with the chart (e.g., brushing).
6
+ */
7
+ export declare function useChartPanelClients(retention: VgPlotChartRetention | null | undefined): MosaicClient[];
8
+ //# sourceMappingURL=useChartPanelClients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChartPanelClients.d.ts","sourceRoot":"","sources":["../../src/charts/useChartPanelClients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACjD,YAAY,EAAE,CAoBhB"}
@@ -0,0 +1,22 @@
1
+ import { useMemo } from 'react';
2
+ /**
3
+ * Extracts chart interactors from a retained chart instance for panel client registration.
4
+ * Chart interactors create filter clauses when users interact with the chart (e.g., brushing).
5
+ */
6
+ export function useChartPanelClients(retention) {
7
+ return useMemo(() => {
8
+ if (!retention?.chart) {
9
+ return [];
10
+ }
11
+ // VgPlotChart element structure: element.value is the vgplot instance
12
+ const element = retention.chart.element;
13
+ const plotInstance = element?.value;
14
+ if (!plotInstance) {
15
+ return [];
16
+ }
17
+ // Interactors create clauses, so we need to register them as "clients" for filtering
18
+ const interactors = plotInstance.interactors;
19
+ return interactors ?? [];
20
+ }, [retention?.chart]);
21
+ }
22
+ //# sourceMappingURL=useChartPanelClients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChartPanelClients.js","sourceRoot":"","sources":["../../src/charts/useChartPanelClients.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAG9B;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAkD;IAElD,OAAO,OAAO,CAAiB,GAAG,EAAE;QAClC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,sEAAsE;QACtE,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;QACxC,MAAM,YAAY,GAAI,OAAe,EAAE,KAAK,CAAC;QAE7C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,qFAAqF;QACrF,MAAM,WAAW,GAAG,YAAY,CAAC,WAEpB,CAAC;QACd,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACzB,CAAC","sourcesContent":["import {type MosaicClient} from '@uwdata/mosaic-core';\nimport {useMemo} from 'react';\nimport type {VgPlotChartRetention} from '../VgPlotChart';\n\n/**\n * Extracts chart interactors from a retained chart instance for panel client registration.\n * Chart interactors create filter clauses when users interact with the chart (e.g., brushing).\n */\nexport function useChartPanelClients(\n retention: VgPlotChartRetention | null | undefined,\n): MosaicClient[] {\n return useMemo<MosaicClient[]>(() => {\n if (!retention?.chart) {\n return [];\n }\n\n // VgPlotChart element structure: element.value is the vgplot instance\n const element = retention.chart.element;\n const plotInstance = (element as any)?.value;\n\n if (!plotInstance) {\n return [];\n }\n\n // Interactors create clauses, so we need to register them as \"clients\" for filtering\n const interactors = plotInstance.interactors as\n | Array<MosaicClient>\n | undefined;\n return interactors ?? [];\n }, [retention?.chart]);\n}\n"]}
@@ -13,9 +13,8 @@ export type MosaicSpecChartRenderContext = {
13
13
  };
14
14
  export type MosaicChartRenderErrorContext = {
15
15
  type: 'error';
16
- title: string;
17
- message: string;
16
+ error: Error;
18
17
  };
19
18
  export type MosaicChartRenderContext = MosaicComponentChartRenderContext | MosaicSpecChartRenderContext | MosaicChartRenderErrorContext;
20
- export declare function useMosaicChartRenderContext(dataTable: DataTable | undefined, config: ChartConfig): MosaicChartRenderContext;
19
+ export declare function useMosaicChartRenderContext(dataTable: DataTable | undefined, config: ChartConfig, selectionName?: string): MosaicChartRenderContext;
21
20
  //# sourceMappingURL=useMosaicChartRenderContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMosaicChartRenderContext.d.ts","sourceRoot":"","sources":["../../src/charts/useMosaicChartRenderContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,EAAC,WAAW,EAAgB,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EACL,4BAA4B,EAI7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,4BAA4B,CAAC,UAAU,CAAC,CAAC;IACnD,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,iCAAiC,GACjC,4BAA4B,GAC5B,6BAA6B,CAAC;AAElC,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,MAAM,EAAE,WAAW,GAClB,wBAAwB,CA0C1B"}
1
+ {"version":3,"file":"useMosaicChartRenderContext.d.ts","sourceRoot":"","sources":["../../src/charts/useMosaicChartRenderContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,EAAC,WAAW,EAAgB,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EACL,4BAA4B,EAI7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,4BAA4B,CAAC,UAAU,CAAC,CAAC;IACnD,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,iCAAiC,GACjC,4BAA4B,GAC5B,6BAA6B,CAAC;AAElC,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,MAAM,EAAE,WAAW,EACnB,aAAa,CAAC,EAAE,MAAM,GACrB,wBAAwB,CAwC1B"}
@@ -2,25 +2,23 @@ import { useMemo } from 'react';
2
2
  import { ChartSpecError } from './chart-types/errors';
3
3
  import { isComponentChartType, isSpecChartType, } from './chart-types/base-types';
4
4
  import { useChartTypeDefinition } from './useChartTypeDefinition';
5
- export function useMosaicChartRenderContext(dataTable, config) {
5
+ export function useMosaicChartRenderContext(dataTable, config, selectionName) {
6
6
  const chartTypeDefinition = useChartTypeDefinition(config.chartType);
7
7
  return useMemo(() => {
8
8
  if (!chartTypeDefinition) {
9
9
  return {
10
10
  type: 'error',
11
- title: 'Ooops! Something went wrong',
12
- message: 'Invalid chart type definition',
11
+ error: new Error(`Invalid chart type definition`),
13
12
  };
14
13
  }
15
14
  if (!dataTable) {
16
15
  return {
17
16
  type: 'error',
18
- title: 'Ooops! Something went wrong',
19
- message: 'Please select a data table first',
17
+ error: new Error('Data table is required to render the chart'),
20
18
  };
21
19
  }
22
20
  if (isSpecChartType(chartTypeDefinition)) {
23
- return createMosaicSpecChartRenderContext(chartTypeDefinition, dataTable, config.settings);
21
+ return createMosaicSpecChartRenderContext(chartTypeDefinition, dataTable, config.settings, selectionName);
24
22
  }
25
23
  if (isComponentChartType(chartTypeDefinition)) {
26
24
  return {
@@ -31,14 +29,17 @@ export function useMosaicChartRenderContext(dataTable, config) {
31
29
  }
32
30
  return {
33
31
  type: 'error',
34
- title: 'Ooops! Something went wrong',
35
- message: 'Unsupported chart type definition',
32
+ error: new Error('Unsupported chart type definition'),
36
33
  };
37
- }, [chartTypeDefinition, dataTable, config]);
34
+ }, [chartTypeDefinition, dataTable, config, selectionName]);
38
35
  }
39
- function createMosaicSpecChartRenderContext(chartTypeDefinition, dataTable, settings) {
36
+ function createMosaicSpecChartRenderContext(chartTypeDefinition, dataTable, settings, selectionName) {
40
37
  try {
41
- const spec = chartTypeDefinition.createSpec(dataTable.table.table, settings);
38
+ const spec = chartTypeDefinition.createSpec({
39
+ dataTable,
40
+ settings,
41
+ selectionName,
42
+ });
42
43
  return {
43
44
  type: 'spec',
44
45
  spec,
@@ -49,14 +50,13 @@ function createMosaicSpecChartRenderContext(chartTypeDefinition, dataTable, sett
49
50
  // ChartSpecError is expected as part of validation logic, don't log
50
51
  return {
51
52
  type: 'error',
52
- title: 'Configure chart to display visualization',
53
- message: error.message,
53
+ error,
54
54
  };
55
55
  }
56
+ console.error('Unexpected error creating chart spec:', error);
56
57
  return {
57
58
  type: 'error',
58
- title: 'Ooops! Something went wrong',
59
- message: 'An unexpected error occurred',
59
+ error: new Error('An unexpected error occurred while creating the chart spec'),
60
60
  };
61
61
  }
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useMosaicChartRenderContext.js","sourceRoot":"","sources":["../../src/charts/useMosaicChartRenderContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAEL,oBAAoB,EACpB,eAAe,GAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAyBhE,MAAM,UAAU,2BAA2B,CACzC,SAAgC,EAChC,MAAmB;IAEnB,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAErE,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,6BAA6B;gBACpC,OAAO,EAAE,+BAA+B;aACzC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,6BAA6B;gBACpC,OAAO,EAAE,kCAAkC;aAC5C,CAAC;QACJ,CAAC;QAED,IAAI,eAAe,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzC,OAAO,kCAAkC,CACvC,mBAAmB,EACnB,SAAS,EACT,MAAM,CAAC,QAAQ,CAChB,CAAC;QACJ,CAAC;QAED,IAAI,oBAAoB,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;gBACtC,SAAS;aACV,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,6BAA6B;YACpC,OAAO,EAAE,mCAAmC;SAC7C,CAAC;IACJ,CAAC,EAAE,CAAC,mBAAmB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kCAAkC,CACzC,mBAAqD,EACrD,SAAoB,EACpB,QAAuB;IAEvB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,CACzC,SAAS,CAAC,KAAK,CAAC,KAAK,EACrB,QAAQ,CACT,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI;SACL,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,oEAAoE;YACpE,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,0CAA0C;gBACjD,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,6BAA6B;YACpC,OAAO,EAAE,8BAA8B;SACxC,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import {useMemo} from 'react';\nimport type {Spec} from '@uwdata/mosaic-spec';\nimport {ChartSpecError} from './chart-types/errors';\nimport type {ChartConfig, ChartSettings} from './chart-types/chart-config';\nimport {\n ComponentChartTypeDefinition,\n isComponentChartType,\n isSpecChartType,\n SpecChartTypeDefinition,\n} from './chart-types/base-types';\nimport {useChartTypeDefinition} from './useChartTypeDefinition';\nimport {DataTable} from '@sqlrooms/db';\n\nexport type MosaicComponentChartRenderContext = {\n type: 'component';\n renderer: ComponentChartTypeDefinition['renderer'];\n dataTable: DataTable;\n};\n\nexport type MosaicSpecChartRenderContext = {\n type: 'spec';\n spec: Spec;\n};\n\nexport type MosaicChartRenderErrorContext = {\n type: 'error';\n title: string;\n message: string;\n};\n\nexport type MosaicChartRenderContext =\n | MosaicComponentChartRenderContext\n | MosaicSpecChartRenderContext\n | MosaicChartRenderErrorContext;\n\nexport function useMosaicChartRenderContext(\n dataTable: DataTable | undefined,\n config: ChartConfig,\n): MosaicChartRenderContext {\n const chartTypeDefinition = useChartTypeDefinition(config.chartType);\n\n return useMemo(() => {\n if (!chartTypeDefinition) {\n return {\n type: 'error',\n title: 'Ooops! Something went wrong',\n message: 'Invalid chart type definition',\n };\n }\n\n if (!dataTable) {\n return {\n type: 'error',\n title: 'Ooops! Something went wrong',\n message: 'Please select a data table first',\n };\n }\n\n if (isSpecChartType(chartTypeDefinition)) {\n return createMosaicSpecChartRenderContext(\n chartTypeDefinition,\n dataTable,\n config.settings,\n );\n }\n\n if (isComponentChartType(chartTypeDefinition)) {\n return {\n type: 'component',\n renderer: chartTypeDefinition.renderer,\n dataTable,\n };\n }\n\n return {\n type: 'error',\n title: 'Ooops! Something went wrong',\n message: 'Unsupported chart type definition',\n };\n }, [chartTypeDefinition, dataTable, config]);\n}\n\nfunction createMosaicSpecChartRenderContext<TConfig extends ChartConfig>(\n chartTypeDefinition: SpecChartTypeDefinition<TConfig>,\n dataTable: DataTable,\n settings: ChartSettings,\n): MosaicSpecChartRenderContext | MosaicChartRenderErrorContext {\n try {\n const spec = chartTypeDefinition.createSpec(\n dataTable.table.table,\n settings,\n );\n\n return {\n type: 'spec',\n spec,\n };\n } catch (error) {\n if (error instanceof ChartSpecError) {\n // ChartSpecError is expected as part of validation logic, don't log\n return {\n type: 'error',\n title: 'Configure chart to display visualization',\n message: error.message,\n };\n }\n\n return {\n type: 'error',\n title: 'Ooops! Something went wrong',\n message: 'An unexpected error occurred',\n };\n }\n}\n"]}
1
+ {"version":3,"file":"useMosaicChartRenderContext.js","sourceRoot":"","sources":["../../src/charts/useMosaicChartRenderContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAEL,oBAAoB,EACpB,eAAe,GAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAwBhE,MAAM,UAAU,2BAA2B,CACzC,SAAgC,EAChC,MAAmB,EACnB,aAAsB;IAEtB,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAErE,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,IAAI,KAAK,CAAC,+BAA+B,CAAC;aAClD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,IAAI,KAAK,CAAC,4CAA4C,CAAC;aAC/D,CAAC;QACJ,CAAC;QAED,IAAI,eAAe,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzC,OAAO,kCAAkC,CACvC,mBAAmB,EACnB,SAAS,EACT,MAAM,CAAC,QAAQ,EACf,aAAa,CACd,CAAC;QACJ,CAAC;QAED,IAAI,oBAAoB,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;gBACtC,SAAS;aACV,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,IAAI,KAAK,CAAC,mCAAmC,CAAC;SACtD,CAAC;IACJ,CAAC,EAAE,CAAC,mBAAmB,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,kCAAkC,CACzC,mBAAqD,EACrD,SAAoB,EACpB,QAAuB,EACvB,aAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC;YAC1C,SAAS;YACT,QAAQ;YACR,aAAa;SACd,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI;SACL,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,oEAAoE;YACpE,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK;aACN,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAE9D,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,IAAI,KAAK,CACd,4DAA4D,CAC7D;SACF,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import {useMemo} from 'react';\nimport type {Spec} from '@uwdata/mosaic-spec';\nimport {ChartSpecError} from './chart-types/errors';\nimport type {ChartConfig, ChartSettings} from './chart-types/chart-config';\nimport {\n ComponentChartTypeDefinition,\n isComponentChartType,\n isSpecChartType,\n SpecChartTypeDefinition,\n} from './chart-types/base-types';\nimport {useChartTypeDefinition} from './useChartTypeDefinition';\nimport {DataTable} from '@sqlrooms/db';\n\nexport type MosaicComponentChartRenderContext = {\n type: 'component';\n renderer: ComponentChartTypeDefinition['renderer'];\n dataTable: DataTable;\n};\n\nexport type MosaicSpecChartRenderContext = {\n type: 'spec';\n spec: Spec;\n};\n\nexport type MosaicChartRenderErrorContext = {\n type: 'error';\n error: Error;\n};\n\nexport type MosaicChartRenderContext =\n | MosaicComponentChartRenderContext\n | MosaicSpecChartRenderContext\n | MosaicChartRenderErrorContext;\n\nexport function useMosaicChartRenderContext(\n dataTable: DataTable | undefined,\n config: ChartConfig,\n selectionName?: string,\n): MosaicChartRenderContext {\n const chartTypeDefinition = useChartTypeDefinition(config.chartType);\n\n return useMemo(() => {\n if (!chartTypeDefinition) {\n return {\n type: 'error',\n error: new Error(`Invalid chart type definition`),\n };\n }\n\n if (!dataTable) {\n return {\n type: 'error',\n error: new Error('Data table is required to render the chart'),\n };\n }\n\n if (isSpecChartType(chartTypeDefinition)) {\n return createMosaicSpecChartRenderContext(\n chartTypeDefinition,\n dataTable,\n config.settings,\n selectionName,\n );\n }\n\n if (isComponentChartType(chartTypeDefinition)) {\n return {\n type: 'component',\n renderer: chartTypeDefinition.renderer,\n dataTable,\n };\n }\n\n return {\n type: 'error',\n error: new Error('Unsupported chart type definition'),\n };\n }, [chartTypeDefinition, dataTable, config, selectionName]);\n}\n\nfunction createMosaicSpecChartRenderContext<TConfig extends ChartConfig>(\n chartTypeDefinition: SpecChartTypeDefinition<TConfig>,\n dataTable: DataTable,\n settings: ChartSettings,\n selectionName?: string,\n): MosaicSpecChartRenderContext | MosaicChartRenderErrorContext {\n try {\n const spec = chartTypeDefinition.createSpec({\n dataTable,\n settings,\n selectionName,\n });\n\n return {\n type: 'spec',\n spec,\n };\n } catch (error) {\n if (error instanceof ChartSpecError) {\n // ChartSpecError is expected as part of validation logic, don't log\n return {\n type: 'error',\n error,\n };\n }\n\n console.error('Unexpected error creating chart spec:', error);\n\n return {\n type: 'error',\n error: new Error(\n 'An unexpected error occurred while creating the chart spec',\n ),\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBlockHeader.d.ts","sourceRoot":"","sources":["../../../src/charts/worksheet/ChartBlockHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAGzB,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACxD,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAoDtD,CAAC"}
1
+ {"version":3,"file":"ChartBlockHeader.d.ts","sourceRoot":"","sources":["../../../src/charts/worksheet/ChartBlockHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAKzB,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACxD,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAmCtD,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, cn } from '@sqlrooms/ui';
3
- import { Settings2Icon } from 'lucide-react';
2
+ import { cn } from '@sqlrooms/ui';
4
3
  import { DataTableSelector } from '../../components/DataTableSelector';
4
+ import { MosaicChartSettingsButton } from '../MosaicChartSettingsButton';
5
+ import { BlockCaptionEditor } from '../../components/BlockCaptionEditor';
5
6
  export const ChartBlockHeader = ({ caption, chartConfig, onCaptionChange, onSettingsOpenChange, onTableChange, readOnly, selectedTable, tables, }) => {
6
7
  const tableName = selectedTable.table.table;
7
- return (_jsxs("div", { className: "border-border flex min-h-10 items-center gap-2 border-b px-3 py-2", children: [readOnly ? (_jsx("div", { className: "min-w-0 flex-1 truncate text-sm font-medium", children: caption || tableName || 'Chart' })) : (_jsx("input", { className: "placeholder:text-muted-foreground min-w-0 flex-1 bg-transparent text-sm font-medium outline-none", value: caption ?? '', placeholder: tableName || 'Chart caption', "aria-label": "Chart caption", onChange: (event) => onCaptionChange?.(event.target.value || undefined) })), _jsx(DataTableSelector, { className: "w-48", disabled: readOnly || !onTableChange, onChange: onTableChange, tables: tables, value: selectedTable }), _jsx(Button, { type: "button", size: "icon", variant: chartConfig.settingsOpen ? 'secondary' : 'ghost', className: cn('h-7 w-7', readOnly && 'hidden'), "aria-label": "Chart settings", title: "Chart settings", "aria-pressed": chartConfig.settingsOpen, onClick: () => onSettingsOpenChange(!chartConfig.settingsOpen), children: _jsx(Settings2Icon, { className: "h-4 w-4" }) })] }));
8
+ return (_jsxs("div", { className: "border-border flex min-h-10 items-center gap-2 border-b px-3 py-2", children: [_jsx(BlockCaptionEditor, { value: caption ?? '', placeholder: tableName || 'Chart caption', isReadOnly: readOnly, onChange: (value) => onCaptionChange?.(value || undefined) }), _jsx(DataTableSelector, { disabled: readOnly || !onTableChange, onChange: onTableChange, tables: tables, value: selectedTable }), _jsx(MosaicChartSettingsButton, { className: cn('h-8 w-8', { hidden: readOnly }), isSettingsOpen: chartConfig.settingsOpen, onToggleSettings: () => onSettingsOpenChange(!chartConfig.settingsOpen) })] }));
8
9
  };
9
10
  //# sourceMappingURL=ChartBlockHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBlockHeader.js","sourceRoot":"","sources":["../../../src/charts/worksheet/ChartBlockHeader.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,MAAM,EAAE,EAAE,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AAarE,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EAC1D,OAAO,EACP,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACR,aAAa,EACb,MAAM,GACP,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;IAE5C,OAAO,CACL,eAAK,SAAS,EAAC,mEAAmE,aAC/E,QAAQ,CAAC,CAAC,CAAC,CACV,cAAK,SAAS,EAAC,6CAA6C,YACzD,OAAO,IAAI,SAAS,IAAI,OAAO,GAC5B,CACP,CAAC,CAAC,CAAC,CACF,gBACE,SAAS,EAAC,kGAAkG,EAC5G,KAAK,EAAE,OAAO,IAAI,EAAE,EACpB,WAAW,EAAE,SAAS,IAAI,eAAe,gBAC9B,eAAe,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,eAAe,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,GAEpD,CACH,EAED,KAAC,iBAAiB,IAChB,SAAS,EAAC,MAAM,EAChB,QAAQ,EAAE,QAAQ,IAAI,CAAC,aAAa,EACpC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GACpB,EAEF,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EACzD,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,IAAI,QAAQ,CAAC,gBACnC,gBAAgB,EAC3B,KAAK,EAAC,gBAAgB,kBACR,WAAW,CAAC,YAAY,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,YAE9D,KAAC,aAAa,IAAC,SAAS,EAAC,SAAS,GAAG,GAC9B,IACL,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type {DataTable} from '@sqlrooms/db';\nimport type {ChartConfig} from '../chart-types/chart-config';\nimport {Button, cn} from '@sqlrooms/ui';\nimport {Settings2Icon} from 'lucide-react';\nimport {FC} from 'react';\nimport {DataTableSelector} from '../../components/DataTableSelector';\n\nexport type ChartBlockHeaderProps = {\n caption?: string;\n chartConfig: ChartConfig;\n onCaptionChange?: (caption: string | undefined) => void;\n onSettingsOpenChange: (open: boolean) => void;\n onTableChange?: (table: DataTable) => void;\n readOnly?: boolean;\n tables: DataTable[];\n selectedTable: DataTable;\n};\n\nexport const ChartBlockHeader: FC<ChartBlockHeaderProps> = ({\n caption,\n chartConfig,\n onCaptionChange,\n onSettingsOpenChange,\n onTableChange,\n readOnly,\n selectedTable,\n tables,\n}) => {\n const tableName = selectedTable.table.table;\n\n return (\n <div className=\"border-border flex min-h-10 items-center gap-2 border-b px-3 py-2\">\n {readOnly ? (\n <div className=\"min-w-0 flex-1 truncate text-sm font-medium\">\n {caption || tableName || 'Chart'}\n </div>\n ) : (\n <input\n className=\"placeholder:text-muted-foreground min-w-0 flex-1 bg-transparent text-sm font-medium outline-none\"\n value={caption ?? ''}\n placeholder={tableName || 'Chart caption'}\n aria-label=\"Chart caption\"\n onChange={(event) =>\n onCaptionChange?.(event.target.value || undefined)\n }\n />\n )}\n\n <DataTableSelector\n className=\"w-48\"\n disabled={readOnly || !onTableChange}\n onChange={onTableChange}\n tables={tables}\n value={selectedTable}\n />\n\n <Button\n type=\"button\"\n size=\"icon\"\n variant={chartConfig.settingsOpen ? 'secondary' : 'ghost'}\n className={cn('h-7 w-7', readOnly && 'hidden')}\n aria-label=\"Chart settings\"\n title=\"Chart settings\"\n aria-pressed={chartConfig.settingsOpen}\n onClick={() => onSettingsOpenChange(!chartConfig.settingsOpen)}\n >\n <Settings2Icon className=\"h-4 w-4\" />\n </Button>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"ChartBlockHeader.js","sourceRoot":"","sources":["../../../src/charts/worksheet/ChartBlockHeader.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,EAAE,EAAC,MAAM,cAAc,CAAC;AAEhC,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAC,yBAAyB,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAavE,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EAC1D,OAAO,EACP,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACR,aAAa,EACb,MAAM,GACP,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;IAE5C,OAAO,CACL,eAAK,SAAS,EAAC,mEAAmE,aAChF,KAAC,kBAAkB,IACjB,KAAK,EAAE,OAAO,IAAI,EAAE,EACpB,WAAW,EAAE,SAAS,IAAI,eAAe,EACzC,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,KAAK,IAAI,SAAS,CAAC,GAC1D,EAEF,KAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,IAAI,CAAC,aAAa,EACpC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GACpB,EAEF,KAAC,yBAAyB,IACxB,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,EAC5C,cAAc,EAAE,WAAW,CAAC,YAAY,EACxC,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,GACvE,IACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type {DataTable} from '@sqlrooms/db';\nimport type {ChartConfig} from '../chart-types/chart-config';\nimport {cn} from '@sqlrooms/ui';\nimport {FC} from 'react';\nimport {DataTableSelector} from '../../components/DataTableSelector';\nimport {MosaicChartSettingsButton} from '../MosaicChartSettingsButton';\nimport {BlockCaptionEditor} from '../../components/BlockCaptionEditor';\n\nexport type ChartBlockHeaderProps = {\n caption?: string;\n chartConfig: ChartConfig;\n onCaptionChange?: (caption: string | undefined) => void;\n onSettingsOpenChange: (open: boolean) => void;\n onTableChange?: (table: DataTable) => void;\n readOnly?: boolean;\n tables: DataTable[];\n selectedTable: DataTable;\n};\n\nexport const ChartBlockHeader: FC<ChartBlockHeaderProps> = ({\n caption,\n chartConfig,\n onCaptionChange,\n onSettingsOpenChange,\n onTableChange,\n readOnly,\n selectedTable,\n tables,\n}) => {\n const tableName = selectedTable.table.table;\n\n return (\n <div className=\"border-border flex min-h-10 items-center gap-2 border-b px-3 py-2\">\n <BlockCaptionEditor\n value={caption ?? ''}\n placeholder={tableName || 'Chart caption'}\n isReadOnly={readOnly}\n onChange={(value) => onCaptionChange?.(value || undefined)}\n />\n\n <DataTableSelector\n disabled={readOnly || !onTableChange}\n onChange={onTableChange}\n tables={tables}\n value={selectedTable}\n />\n\n <MosaicChartSettingsButton\n className={cn('h-8 w-8', {hidden: readOnly})}\n isSettingsOpen={chartConfig.settingsOpen}\n onToggleSettings={() => onSettingsOpenChange(!chartConfig.settingsOpen)}\n />\n </div>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBlockRenderer.d.ts","sourceRoot":"","sources":["../../../src/charts/worksheet/ChartBlockRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,+BAA+B,EAAC,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAC,EAAE,EAAc,MAAM,OAAO,CAAC;AA6BtC,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,+BAA+B,CA2FlE,CAAC"}
1
+ {"version":3,"file":"ChartBlockRenderer.d.ts","sourceRoot":"","sources":["../../../src/charts/worksheet/ChartBlockRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,+BAA+B,EAAC,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAC,EAAE,EAAc,MAAM,OAAO,CAAC;AAgBtC,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,+BAA+B,CAmFlE,CAAC"}
@@ -2,27 +2,17 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback } from 'react';
3
3
  import { MosaicChart } from '../MosaicChart';
4
4
  import { useParseChartConfig } from '../useParseChartConfig';
5
- import { useDataTable } from '../../hooks/useDataTable';
5
+ import { useDataTable } from '@sqlrooms/db';
6
6
  import { useTablesWithColumns } from '../../hooks/useTablesWithColumns';
7
7
  import { ChartBlockHeader } from './ChartBlockHeader';
8
8
  import { ChartSelectorEmptyState } from './ChartSelectorEmptyState';
9
- function getBlockDocumentChartSelectionName({ documentId, blockId, selectionGroupId, }) {
10
- return selectionGroupId
11
- ? `worksheet:${documentId}:chart-group:${selectionGroupId}:brush`
12
- : `worksheet:${documentId}:chart-block:${blockId}:brush`;
13
- }
14
9
  function getBlockDocumentChartRuntimeKey({ documentId, blockId, }) {
15
10
  return `worksheet:${documentId}:chart-block:${blockId}`;
16
11
  }
17
- export const ChartBlockRenderer = ({ documentId, blockId, tableName, config, selectionGroupId, caption, readOnly, onTableNameChange, onConfigChange, onCaptionChange, }) => {
12
+ export const ChartBlockRenderer = ({ documentId, blockId, tableName, config, caption, readOnly, onTableNameChange, onConfigChange, onCaptionChange, }) => {
18
13
  const tables = useTablesWithColumns();
19
14
  const selectedTable = useDataTable(tableName);
20
15
  const parseChartConfigResult = useParseChartConfig(config);
21
- const selectionName = getBlockDocumentChartSelectionName({
22
- documentId,
23
- blockId,
24
- selectionGroupId,
25
- });
26
16
  const runtimeKey = getBlockDocumentChartRuntimeKey({ documentId, blockId });
27
17
  const handleSettingsOpenChange = useCallback((settingsOpen) => {
28
18
  if (parseChartConfigResult.success) {
@@ -42,6 +32,6 @@ export const ChartBlockRenderer = ({ documentId, blockId, tableName, config, sel
42
32
  return (_jsxs("div", { className: "text-muted-foreground flex h-full items-center justify-center text-sm", children: ["Invalid chart configuration: ", parseChartConfigResult.error] }));
43
33
  }
44
34
  const chartConfig = parseChartConfigResult.config;
45
- return (_jsxs("div", { className: "flex h-105 min-h-80 flex-col", children: [_jsx(ChartBlockHeader, { caption: caption, chartConfig: chartConfig, selectedTable: selectedTable, onCaptionChange: onCaptionChange, onSettingsOpenChange: handleSettingsOpenChange, onTableChange: handleTableChange, readOnly: readOnly, tables: tables }), _jsx("div", { className: "min-h-0 flex-1", children: _jsx(MosaicChart, { dataTable: selectedTable, selectionName: selectionName, config: chartConfig, runtimeKey: runtimeKey, onConfigChange: handleConfigChange }) })] }));
35
+ return (_jsxs("div", { className: "flex h-105 min-h-80 flex-col", children: [_jsx(ChartBlockHeader, { caption: caption, chartConfig: chartConfig, selectedTable: selectedTable, onCaptionChange: onCaptionChange, onSettingsOpenChange: handleSettingsOpenChange, onTableChange: handleTableChange, readOnly: readOnly, tables: tables }), _jsx("div", { className: "min-h-0 flex-1", children: _jsx(MosaicChart, { dataTable: selectedTable, config: chartConfig, runtimeKey: runtimeKey, onConfigChange: handleConfigChange }) })] }));
46
36
  };
47
37
  //# sourceMappingURL=ChartBlockRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBlockRenderer.js","sourceRoot":"","sources":["../../../src/charts/worksheet/ChartBlockRenderer.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAK,WAAW,EAAC,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAElE,SAAS,kCAAkC,CAAC,EAC1C,UAAU,EACV,OAAO,EACP,gBAAgB,GAIjB;IACC,OAAO,gBAAgB;QACrB,CAAC,CAAC,aAAa,UAAU,gBAAgB,gBAAgB,QAAQ;QACjE,CAAC,CAAC,aAAa,UAAU,gBAAgB,OAAO,QAAQ,CAAC;AAC7D,CAAC;AAED,SAAS,+BAA+B,CAAC,EACvC,UAAU,EACV,OAAO,GACyD;IAChE,OAAO,aAAa,UAAU,gBAAgB,OAAO,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAwC,CAAC,EACtE,UAAU,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAE9C,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,kCAAkC,CAAC;QACvD,UAAU;QACV,OAAO;QACP,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,+BAA+B,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,CAAC,CAAC;IAE1E,MAAM,wBAAwB,GAAG,WAAW,CAC1C,CAAC,YAAqB,EAAE,EAAE;QACxB,IAAI,sBAAsB,CAAC,OAAO,EAAE,CAAC;YACnC,cAAc,EAAE,CAAC,EAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,EACD,CAAC,sBAAsB,EAAE,cAAc,CAAC,CACzC,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,UAAuB,EAAE,EAAE;QAC1B,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAgB,EAAE,EAAE;QACnB,iBAAiB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CACL,KAAC,uBAAuB,IACtB,QAAQ,EAAE,QAAQ,IAAI,CAAC,iBAAiB,EACxC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,GACd,CACH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO,CACL,eAAK,SAAS,EAAC,uEAAuE,8CACtD,sBAAsB,CAAC,KAAK,IACtD,CACP,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAElD,OAAO,CACL,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,gBAAgB,IACf,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,oBAAoB,EAAE,wBAAwB,EAC9C,aAAa,EAAE,iBAAiB,EAChC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACd,EACF,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,WAAW,IACV,SAAS,EAAE,aAAa,EACxB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,kBAAkB,GAClC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type {DataTable} from '@sqlrooms/db';\nimport type {BlockDocumentChartRendererProps} from '@sqlrooms/documents';\nimport {FC, useCallback} from 'react';\nimport type {ChartConfig} from '../chart-types/chart-config';\nimport {MosaicChart} from '../MosaicChart';\nimport {useParseChartConfig} from '../useParseChartConfig';\nimport {useDataTable} from '../../hooks/useDataTable';\nimport {useTablesWithColumns} from '../../hooks/useTablesWithColumns';\nimport {ChartBlockHeader} from './ChartBlockHeader';\nimport {ChartSelectorEmptyState} from './ChartSelectorEmptyState';\n\nfunction getBlockDocumentChartSelectionName({\n documentId,\n blockId,\n selectionGroupId,\n}: Pick<\n BlockDocumentChartRendererProps,\n 'documentId' | 'blockId' | 'selectionGroupId'\n>) {\n return selectionGroupId\n ? `worksheet:${documentId}:chart-group:${selectionGroupId}:brush`\n : `worksheet:${documentId}:chart-block:${blockId}:brush`;\n}\n\nfunction getBlockDocumentChartRuntimeKey({\n documentId,\n blockId,\n}: Pick<BlockDocumentChartRendererProps, 'documentId' | 'blockId'>) {\n return `worksheet:${documentId}:chart-block:${blockId}`;\n}\n\nexport const ChartBlockRenderer: FC<BlockDocumentChartRendererProps> = ({\n documentId,\n blockId,\n tableName,\n config,\n selectionGroupId,\n caption,\n readOnly,\n onTableNameChange,\n onConfigChange,\n onCaptionChange,\n}) => {\n const tables = useTablesWithColumns();\n const selectedTable = useDataTable(tableName);\n\n const parseChartConfigResult = useParseChartConfig(config);\n\n const selectionName = getBlockDocumentChartSelectionName({\n documentId,\n blockId,\n selectionGroupId,\n });\n\n const runtimeKey = getBlockDocumentChartRuntimeKey({documentId, blockId});\n\n const handleSettingsOpenChange = useCallback(\n (settingsOpen: boolean) => {\n if (parseChartConfigResult.success) {\n onConfigChange?.({...parseChartConfigResult.config, settingsOpen});\n }\n },\n [parseChartConfigResult, onConfigChange],\n );\n\n const handleConfigChange = useCallback(\n (nextConfig: ChartConfig) => {\n onConfigChange?.(nextConfig);\n },\n [onConfigChange],\n );\n\n const handleTableChange = useCallback(\n (table: DataTable) => {\n onTableNameChange?.(table.table.toString());\n },\n [onTableNameChange],\n );\n\n if (!selectedTable) {\n return (\n <ChartSelectorEmptyState\n disabled={readOnly || !onTableNameChange}\n onChange={handleTableChange}\n tables={tables}\n />\n );\n }\n\n if (!parseChartConfigResult.success) {\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center text-sm\">\n Invalid chart configuration: {parseChartConfigResult.error}\n </div>\n );\n }\n\n const chartConfig = parseChartConfigResult.config;\n\n return (\n <div className=\"flex h-105 min-h-80 flex-col\">\n <ChartBlockHeader\n caption={caption}\n chartConfig={chartConfig}\n selectedTable={selectedTable}\n onCaptionChange={onCaptionChange}\n onSettingsOpenChange={handleSettingsOpenChange}\n onTableChange={handleTableChange}\n readOnly={readOnly}\n tables={tables}\n />\n <div className=\"min-h-0 flex-1\">\n <MosaicChart\n dataTable={selectedTable}\n selectionName={selectionName}\n config={chartConfig}\n runtimeKey={runtimeKey}\n onConfigChange={handleConfigChange}\n />\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"ChartBlockRenderer.js","sourceRoot":"","sources":["../../../src/charts/worksheet/ChartBlockRenderer.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAK,WAAW,EAAC,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAElE,SAAS,+BAA+B,CAAC,EACvC,UAAU,EACV,OAAO,GACyD;IAChE,OAAO,aAAa,UAAU,gBAAgB,OAAO,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAwC,CAAC,EACtE,UAAU,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAE9C,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,+BAA+B,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,CAAC,CAAC;IAE1E,MAAM,wBAAwB,GAAG,WAAW,CAC1C,CAAC,YAAqB,EAAE,EAAE;QACxB,IAAI,sBAAsB,CAAC,OAAO,EAAE,CAAC;YACnC,cAAc,EAAE,CAAC,EAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,EACD,CAAC,sBAAsB,EAAE,cAAc,CAAC,CACzC,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,UAAuB,EAAE,EAAE;QAC1B,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAgB,EAAE,EAAE;QACnB,iBAAiB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CACL,KAAC,uBAAuB,IACtB,QAAQ,EAAE,QAAQ,IAAI,CAAC,iBAAiB,EACxC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,GACd,CACH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO,CACL,eAAK,SAAS,EAAC,uEAAuE,8CACtD,sBAAsB,CAAC,KAAK,IACtD,CACP,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAElD,OAAO,CACL,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,gBAAgB,IACf,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,oBAAoB,EAAE,wBAAwB,EAC9C,aAAa,EAAE,iBAAiB,EAChC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACd,EACF,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,WAAW,IACV,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,kBAAkB,GAClC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type {DataTable} from '@sqlrooms/db';\nimport type {BlockDocumentChartRendererProps} from '@sqlrooms/documents';\nimport {FC, useCallback} from 'react';\nimport type {ChartConfig} from '../chart-types/chart-config';\nimport {MosaicChart} from '../MosaicChart';\nimport {useParseChartConfig} from '../useParseChartConfig';\nimport {useDataTable} from '@sqlrooms/db';\nimport {useTablesWithColumns} from '../../hooks/useTablesWithColumns';\nimport {ChartBlockHeader} from './ChartBlockHeader';\nimport {ChartSelectorEmptyState} from './ChartSelectorEmptyState';\n\nfunction getBlockDocumentChartRuntimeKey({\n documentId,\n blockId,\n}: Pick<BlockDocumentChartRendererProps, 'documentId' | 'blockId'>) {\n return `worksheet:${documentId}:chart-block:${blockId}`;\n}\n\nexport const ChartBlockRenderer: FC<BlockDocumentChartRendererProps> = ({\n documentId,\n blockId,\n tableName,\n config,\n caption,\n readOnly,\n onTableNameChange,\n onConfigChange,\n onCaptionChange,\n}) => {\n const tables = useTablesWithColumns();\n const selectedTable = useDataTable(tableName);\n\n const parseChartConfigResult = useParseChartConfig(config);\n\n const runtimeKey = getBlockDocumentChartRuntimeKey({documentId, blockId});\n\n const handleSettingsOpenChange = useCallback(\n (settingsOpen: boolean) => {\n if (parseChartConfigResult.success) {\n onConfigChange?.({...parseChartConfigResult.config, settingsOpen});\n }\n },\n [parseChartConfigResult, onConfigChange],\n );\n\n const handleConfigChange = useCallback(\n (nextConfig: ChartConfig) => {\n onConfigChange?.(nextConfig);\n },\n [onConfigChange],\n );\n\n const handleTableChange = useCallback(\n (table: DataTable) => {\n onTableNameChange?.(table.table.toString());\n },\n [onTableNameChange],\n );\n\n if (!selectedTable) {\n return (\n <ChartSelectorEmptyState\n disabled={readOnly || !onTableNameChange}\n onChange={handleTableChange}\n tables={tables}\n />\n );\n }\n\n if (!parseChartConfigResult.success) {\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center text-sm\">\n Invalid chart configuration: {parseChartConfigResult.error}\n </div>\n );\n }\n\n const chartConfig = parseChartConfigResult.config;\n\n return (\n <div className=\"flex h-105 min-h-80 flex-col\">\n <ChartBlockHeader\n caption={caption}\n chartConfig={chartConfig}\n selectedTable={selectedTable}\n onCaptionChange={onCaptionChange}\n onSettingsOpenChange={handleSettingsOpenChange}\n onTableChange={handleTableChange}\n readOnly={readOnly}\n tables={tables}\n />\n <div className=\"min-h-0 flex-1\">\n <MosaicChart\n dataTable={selectedTable}\n config={chartConfig}\n runtimeKey={runtimeKey}\n onConfigChange={handleConfigChange}\n />\n </div>\n </div>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"column-types-utils.d.ts","sourceRoot":"","sources":["../src/column-types-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,oBAAoB,UAgBhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAQjC,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAGrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAAsC,CAAC;AAE5E,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE7D"}
1
+ {"version":3,"file":"column-types-utils.d.ts","sourceRoot":"","sources":["../src/column-types-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,eAAO,MAAM,oBAAoB,UAgBhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAQjC,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAGrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAAsC,CAAC;AAE5E,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE7D"}
@@ -1,6 +1,14 @@
1
1
  /**
2
2
  * Column type constants for chart field type filtering
3
3
  */
4
+ /**
5
+ * Normalizes DuckDB column types by removing parameter lists.
6
+ * E.g., "DECIMAL(10,2)" → "DECIMAL", "VARCHAR(255)" → "VARCHAR"
7
+ */
8
+ function normalizeColumnType(columnType) {
9
+ const parenIndex = columnType.indexOf('(');
10
+ return parenIndex === -1 ? columnType : columnType.substring(0, parenIndex);
11
+ }
4
12
  export const NUMERIC_COLUMN_TYPES = [
5
13
  'BIGINT',
6
14
  'BIT',
@@ -33,15 +41,15 @@ export const QUANTITATIVE_COLUMN_TYPES = [
33
41
  ];
34
42
  export const CATEGORICAL_COLUMN_TYPES = ['VARCHAR', 'TEXT', 'BLOB', 'ENUM'];
35
43
  export function isTemporalType(columnType) {
36
- return TEMPORAL_COLUMN_TYPES.includes(columnType);
44
+ return TEMPORAL_COLUMN_TYPES.includes(normalizeColumnType(columnType));
37
45
  }
38
46
  export function isQuantitativeType(columnType) {
39
- return QUANTITATIVE_COLUMN_TYPES.includes(columnType);
47
+ return QUANTITATIVE_COLUMN_TYPES.includes(normalizeColumnType(columnType));
40
48
  }
41
49
  export function isNumericType(columnType) {
42
- return NUMERIC_COLUMN_TYPES.includes(columnType);
50
+ return NUMERIC_COLUMN_TYPES.includes(normalizeColumnType(columnType));
43
51
  }
44
52
  export function isCategoricalType(columnType) {
45
- return CATEGORICAL_COLUMN_TYPES.includes(columnType);
53
+ return CATEGORICAL_COLUMN_TYPES.includes(normalizeColumnType(columnType));
46
54
  }
47
55
  //# sourceMappingURL=column-types-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"column-types-utils.js","sourceRoot":"","sources":["../src/column-types-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ;IACR,KAAK;IACL,SAAS;IACT,QAAQ;IACR,OAAO;IACP,SAAS;IACT,SAAS;IACT,MAAM;IACN,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM;IACN,MAAM;IACN,WAAW;IACX,cAAc;IACd,cAAc;IACd,aAAa;IACb,aAAa;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,GAAG,oBAAoB;IACvB,GAAG,qBAAqB;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5E,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,OAAO,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,OAAO,wBAAwB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACvD,CAAC","sourcesContent":["/**\n * Column type constants for chart field type filtering\n */\n\nexport const NUMERIC_COLUMN_TYPES = [\n 'BIGINT',\n 'BIT',\n 'DECIMAL',\n 'DOUBLE',\n 'FLOAT',\n 'HUGEINT',\n 'INTEGER',\n 'REAL',\n 'SMALLINT',\n 'TINYINT',\n 'UBIGINT',\n 'UHUGEINT',\n 'UINTEGER',\n 'USMALLINT',\n 'UTINYINT',\n];\n\nexport const TEMPORAL_COLUMN_TYPES = [\n 'DATE',\n 'TIME',\n 'TIMESTAMP',\n 'TIMESTAMP_MS',\n 'TIMESTAMP_NS',\n 'TIMESTAMP_S',\n 'TIMESTAMPTZ',\n];\n\nexport const QUANTITATIVE_COLUMN_TYPES = [\n ...NUMERIC_COLUMN_TYPES,\n ...TEMPORAL_COLUMN_TYPES,\n];\n\nexport const CATEGORICAL_COLUMN_TYPES = ['VARCHAR', 'TEXT', 'BLOB', 'ENUM'];\n\nexport function isTemporalType(columnType: string): boolean {\n return TEMPORAL_COLUMN_TYPES.includes(columnType);\n}\n\nexport function isQuantitativeType(columnType: string): boolean {\n return QUANTITATIVE_COLUMN_TYPES.includes(columnType);\n}\n\nexport function isNumericType(columnType: string): boolean {\n return NUMERIC_COLUMN_TYPES.includes(columnType);\n}\n\nexport function isCategoricalType(columnType: string): boolean {\n return CATEGORICAL_COLUMN_TYPES.includes(columnType);\n}\n"]}
1
+ {"version":3,"file":"column-types-utils.js","sourceRoot":"","sources":["../src/column-types-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ;IACR,KAAK;IACL,SAAS;IACT,QAAQ;IACR,OAAO;IACP,SAAS;IACT,SAAS;IACT,MAAM;IACN,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM;IACN,MAAM;IACN,WAAW;IACX,cAAc;IACd,cAAc;IACd,aAAa;IACb,aAAa;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,GAAG,oBAAoB;IACvB,GAAG,qBAAqB;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5E,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,qBAAqB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,OAAO,yBAAyB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,OAAO,wBAAwB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;AAC5E,CAAC","sourcesContent":["/**\n * Column type constants for chart field type filtering\n */\n\n/**\n * Normalizes DuckDB column types by removing parameter lists.\n * E.g., \"DECIMAL(10,2)\" → \"DECIMAL\", \"VARCHAR(255)\" → \"VARCHAR\"\n */\nfunction normalizeColumnType(columnType: string): string {\n const parenIndex = columnType.indexOf('(');\n return parenIndex === -1 ? columnType : columnType.substring(0, parenIndex);\n}\n\nexport const NUMERIC_COLUMN_TYPES = [\n 'BIGINT',\n 'BIT',\n 'DECIMAL',\n 'DOUBLE',\n 'FLOAT',\n 'HUGEINT',\n 'INTEGER',\n 'REAL',\n 'SMALLINT',\n 'TINYINT',\n 'UBIGINT',\n 'UHUGEINT',\n 'UINTEGER',\n 'USMALLINT',\n 'UTINYINT',\n];\n\nexport const TEMPORAL_COLUMN_TYPES = [\n 'DATE',\n 'TIME',\n 'TIMESTAMP',\n 'TIMESTAMP_MS',\n 'TIMESTAMP_NS',\n 'TIMESTAMP_S',\n 'TIMESTAMPTZ',\n];\n\nexport const QUANTITATIVE_COLUMN_TYPES = [\n ...NUMERIC_COLUMN_TYPES,\n ...TEMPORAL_COLUMN_TYPES,\n];\n\nexport const CATEGORICAL_COLUMN_TYPES = ['VARCHAR', 'TEXT', 'BLOB', 'ENUM'];\n\nexport function isTemporalType(columnType: string): boolean {\n return TEMPORAL_COLUMN_TYPES.includes(normalizeColumnType(columnType));\n}\n\nexport function isQuantitativeType(columnType: string): boolean {\n return QUANTITATIVE_COLUMN_TYPES.includes(normalizeColumnType(columnType));\n}\n\nexport function isNumericType(columnType: string): boolean {\n return NUMERIC_COLUMN_TYPES.includes(normalizeColumnType(columnType));\n}\n\nexport function isCategoricalType(columnType: string): boolean {\n return CATEGORICAL_COLUMN_TYPES.includes(normalizeColumnType(columnType));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AggregationSelector.d.ts","sourceRoot":"","sources":["../../src/components/AggregationSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAQ9B,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAyB5D,CAAC"}
1
+ {"version":3,"file":"AggregationSelector.d.ts","sourceRoot":"","sources":["../../src/components/AggregationSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAE9B,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C;AASD;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAoB5D,CAAC"}
@@ -1,9 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@sqlrooms/ui';
2
+ import { Combobox } from '@sqlrooms/ui';
3
+ const AGGREGATION_OPTIONS = [
4
+ { value: 'sum', label: 'SUM' },
5
+ { value: 'avg', label: 'AVG' },
6
+ { value: 'min', label: 'MIN' },
7
+ { value: 'max', label: 'MAX' },
8
+ ];
3
9
  /**
4
10
  * Dropdown for selecting an aggregation function (SUM, AVG, MIN, MAX).
5
11
  */
6
12
  export const AggregationSelector = ({ value, onChange, }) => {
7
- return (_jsxs(Select, { value: value, onValueChange: onChange, children: [_jsx(SelectTrigger, { className: "h-8 w-[100px] text-xs shadow-none", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "sum", className: "text-xs", children: "SUM" }), _jsx(SelectItem, { value: "avg", className: "text-xs", children: "AVG" }), _jsx(SelectItem, { value: "min", className: "text-xs", children: "MIN" }), _jsx(SelectItem, { value: "max", className: "text-xs", children: "MAX" })] })] }));
13
+ const selectedOption = AGGREGATION_OPTIONS.find((opt) => opt.value === value);
14
+ return (_jsxs(Combobox, { value: value, onChange: onChange, children: [_jsx(Combobox.Trigger, { className: "w-[100px] shadow-none", children: _jsx("span", { children: selectedOption?.label ?? value.toUpperCase() }) }), _jsx(Combobox.Content, { children: AGGREGATION_OPTIONS.map((option) => (_jsx(Combobox.Item, { value: option.value, children: _jsx("span", { className: "text-xs", children: option.label }) }, option.value))) })] }));
8
15
  };
9
16
  //# sourceMappingURL=AggregationSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AggregationSelector.js","sourceRoot":"","sources":["../../src/components/AggregationSelector.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,cAAc,CAAC;AAQtB;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAiC,CAAC,EAChE,KAAK,EACL,QAAQ,GACT,EAAE,EAAE;IACH,OAAO,CACL,MAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,aAC3C,KAAC,aAAa,IAAC,SAAS,EAAC,mCAAmC,YAC1D,KAAC,WAAW,KAAG,GACD,EAChB,MAAC,aAAa,eACZ,KAAC,UAAU,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,SAAS,oBAE9B,EACb,KAAC,UAAU,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,SAAS,oBAE9B,EACb,KAAC,UAAU,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,SAAS,oBAE9B,EACb,KAAC,UAAU,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,SAAS,oBAE9B,IACC,IACT,CACV,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type {FC} from 'react';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@sqlrooms/ui';\nimport type {AggregateFunction} from '../schemas';\n\nexport interface AggregationSelectorProps {\n value: AggregateFunction;\n onChange: (value: AggregateFunction) => void;\n}\n\n/**\n * Dropdown for selecting an aggregation function (SUM, AVG, MIN, MAX).\n */\nexport const AggregationSelector: FC<AggregationSelectorProps> = ({\n value,\n onChange,\n}) => {\n return (\n <Select value={value} onValueChange={onChange}>\n <SelectTrigger className=\"h-8 w-[100px] text-xs shadow-none\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"sum\" className=\"text-xs\">\n SUM\n </SelectItem>\n <SelectItem value=\"avg\" className=\"text-xs\">\n AVG\n </SelectItem>\n <SelectItem value=\"min\" className=\"text-xs\">\n MIN\n </SelectItem>\n <SelectItem value=\"max\" className=\"text-xs\">\n MAX\n </SelectItem>\n </SelectContent>\n </Select>\n );\n};\n"]}
1
+ {"version":3,"file":"AggregationSelector.js","sourceRoot":"","sources":["../../src/components/AggregationSelector.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAQtC,MAAM,mBAAmB,GAAG;IAC1B,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC;IAC5B,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC;IAC5B,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC;IAC5B,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC;CACpB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAiC,CAAC,EAChE,KAAK,EACL,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAE9E,OAAO,CACL,MAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,aACxC,KAAC,QAAQ,CAAC,OAAO,IAAC,SAAS,EAAC,uBAAuB,YACjD,yBAAO,cAAc,EAAE,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,GAAQ,GAC1C,EACnB,KAAC,QAAQ,CAAC,OAAO,cACd,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACnC,KAAC,QAAQ,CAAC,IAAI,IAAoB,KAAK,EAAE,MAAM,CAAC,KAAK,YACnD,eAAM,SAAS,EAAC,SAAS,YAAE,MAAM,CAAC,KAAK,GAAQ,IAD7B,MAAM,CAAC,KAAK,CAEhB,CACjB,CAAC,GACe,IACV,CACZ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type {FC} from 'react';\nimport {Combobox} from '@sqlrooms/ui';\nimport type {AggregateFunction} from '../schemas';\n\nexport interface AggregationSelectorProps {\n value: AggregateFunction;\n onChange: (value: AggregateFunction) => void;\n}\n\nconst AGGREGATION_OPTIONS = [\n {value: 'sum', label: 'SUM'},\n {value: 'avg', label: 'AVG'},\n {value: 'min', label: 'MIN'},\n {value: 'max', label: 'MAX'},\n] as const;\n\n/**\n * Dropdown for selecting an aggregation function (SUM, AVG, MIN, MAX).\n */\nexport const AggregationSelector: FC<AggregationSelectorProps> = ({\n value,\n onChange,\n}) => {\n const selectedOption = AGGREGATION_OPTIONS.find((opt) => opt.value === value);\n\n return (\n <Combobox value={value} onChange={onChange}>\n <Combobox.Trigger className=\"w-[100px] shadow-none\">\n <span>{selectedOption?.label ?? value.toUpperCase()}</span>\n </Combobox.Trigger>\n <Combobox.Content>\n {AGGREGATION_OPTIONS.map((option) => (\n <Combobox.Item key={option.value} value={option.value}>\n <span className=\"text-xs\">{option.label}</span>\n </Combobox.Item>\n ))}\n </Combobox.Content>\n </Combobox>\n );\n};\n"]}
@@ -0,0 +1,20 @@
1
+ import { FC } from 'react';
2
+ type BlockCaptionEditorProps = {
3
+ className?: string;
4
+ value?: string;
5
+ placeholder?: string;
6
+ isReadOnly?: boolean;
7
+ onChange: (value: string) => void;
8
+ };
9
+ /**
10
+ * Editable caption field for blocks (charts, queries, etc.).
11
+ *
12
+ * @param value - Current caption text
13
+ * @param className - Optional CSS class name
14
+ * @param placeholder - Placeholder text when empty
15
+ * @param isReadOnly - Whether the caption is editable
16
+ * @param onChange - Callback when caption changes
17
+ */
18
+ export declare const BlockCaptionEditor: FC<BlockCaptionEditorProps>;
19
+ export {};
20
+ //# sourceMappingURL=BlockCaptionEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockCaptionEditor.d.ts","sourceRoot":"","sources":["../../src/components/BlockCaptionEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAGzB,KAAK,uBAAuB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAgB1D,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn, EditableText } from '@sqlrooms/ui';
3
+ /**
4
+ * Editable caption field for blocks (charts, queries, etc.).
5
+ *
6
+ * @param value - Current caption text
7
+ * @param className - Optional CSS class name
8
+ * @param placeholder - Placeholder text when empty
9
+ * @param isReadOnly - Whether the caption is editable
10
+ * @param onChange - Callback when caption changes
11
+ */
12
+ export const BlockCaptionEditor = ({ value, className, placeholder, isReadOnly, onChange, }) => {
13
+ return (_jsx(EditableText, { className: cn('h-8 min-w-0 flex-1 text-sm font-medium', className), value: value ?? '', placeholder: placeholder, isReadOnly: isReadOnly, onChange: onChange }));
14
+ };
15
+ //# sourceMappingURL=BlockCaptionEditor.js.map