@finos/legend-cube-builder 0.0.4 → 0.0.5

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 (609) hide show
  1. package/README.md +9 -3
  2. package/docs/adding-an-operation.md +22 -12
  3. package/docs/demo/DEMO-FAST-NOTES.md +67 -0
  4. package/docs/demo/README.md +102 -0
  5. package/docs/demo/specs/duckdb-sales-pivot.cube.json +110 -0
  6. package/docs/demo/specs/trades-desks-1-joined.cube.json +123 -0
  7. package/docs/demo/specs/trades-desks-2-grouped.cube.json +140 -0
  8. package/docs/demo/specs/trades-desks-3-ranked.cube.json +158 -0
  9. package/docs/demo/specs/trades-desks-4-extended.cube.json +208 -0
  10. package/docs/demo/specs/trades-desks-5-final.cube.json +248 -0
  11. package/docs/hosting.md +50 -3
  12. package/docs/testing.md +32 -0
  13. package/lib/__lib__/LegendCubeCommand.d.ts +2 -0
  14. package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
  15. package/lib/__lib__/LegendCubeCommand.js +7 -0
  16. package/lib/__lib__/LegendCubeCommand.js.map +1 -1
  17. package/lib/__lib__/LegendCubeFunctionLabels.d.ts +29 -0
  18. package/lib/__lib__/LegendCubeFunctionLabels.d.ts.map +1 -0
  19. package/lib/__lib__/LegendCubeFunctionLabels.js +31 -0
  20. package/lib/__lib__/LegendCubeFunctionLabels.js.map +1 -0
  21. package/lib/__lib__/LegendCubeHelpText.d.ts +5 -1
  22. package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
  23. package/lib/__lib__/LegendCubeHelpText.js +14 -2
  24. package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
  25. package/lib/__lib__/LegendCubeLabels.d.ts +100 -8
  26. package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
  27. package/lib/__lib__/LegendCubeLabels.js +129 -14
  28. package/lib/__lib__/LegendCubeLabels.js.map +1 -1
  29. package/lib/__lib__/LegendCubeProjectSourceLabels.d.ts +26 -0
  30. package/lib/__lib__/LegendCubeProjectSourceLabels.d.ts.map +1 -0
  31. package/lib/__lib__/LegendCubeProjectSourceLabels.js +26 -0
  32. package/lib/__lib__/LegendCubeProjectSourceLabels.js.map +1 -0
  33. package/lib/__lib__/LegendCubeServiceLabels.d.ts +27 -0
  34. package/lib/__lib__/LegendCubeServiceLabels.d.ts.map +1 -0
  35. package/lib/__lib__/LegendCubeServiceLabels.js +32 -0
  36. package/lib/__lib__/LegendCubeServiceLabels.js.map +1 -0
  37. package/lib/__lib__/LegendCubeTesting.d.ts +7 -0
  38. package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
  39. package/lib/__lib__/LegendCubeTesting.js +7 -0
  40. package/lib/__lib__/LegendCubeTesting.js.map +1 -1
  41. package/lib/__test-utils__/CubeEngineTestSupport.d.ts +1 -1
  42. package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
  43. package/lib/__test-utils__/CubeEngineTestSupport.js +2 -2
  44. package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
  45. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +8 -1
  46. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -1
  47. package/lib/__test-utils__/CubeExpressionTestUtils.js +20 -3
  48. package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -1
  49. package/lib/__test-utils__/CubeFunctionTestOutline.d.ts +26 -0
  50. package/lib/__test-utils__/CubeFunctionTestOutline.d.ts.map +1 -0
  51. package/lib/__test-utils__/CubeFunctionTestOutline.js +56 -0
  52. package/lib/__test-utils__/CubeFunctionTestOutline.js.map +1 -0
  53. package/lib/__test-utils__/CubeLambdaCorpus.d.ts +36 -0
  54. package/lib/__test-utils__/CubeLambdaCorpus.d.ts.map +1 -0
  55. package/lib/__test-utils__/CubeLambdaCorpus.js +83 -0
  56. package/lib/__test-utils__/CubeLambdaCorpus.js.map +1 -0
  57. package/lib/__test-utils__/CubePageTestUtils.d.ts +6 -0
  58. package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
  59. package/lib/__test-utils__/CubePageTestUtils.js +21 -0
  60. package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
  61. package/lib/__test-utils__/CubeTestApplication.d.ts +9 -0
  62. package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
  63. package/lib/__test-utils__/CubeTestApplication.js +16 -0
  64. package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
  65. package/lib/__test-utils__/FakeCubeEngine.d.ts +5 -0
  66. package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
  67. package/lib/__test-utils__/FakeCubeEngine.js +17 -0
  68. package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
  69. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +7 -1
  70. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -1
  71. package/lib/__test-utils__/FakeCubeIngestCatalog.js +16 -0
  72. package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -1
  73. package/lib/__test-utils__/FakeCubeServiceCatalog.d.ts +26 -0
  74. package/lib/__test-utils__/FakeCubeServiceCatalog.d.ts.map +1 -0
  75. package/lib/__test-utils__/FakeCubeServiceCatalog.js +40 -0
  76. package/lib/__test-utils__/FakeCubeServiceCatalog.js.map +1 -0
  77. package/lib/components/CubeAddItems.d.ts.map +1 -1
  78. package/lib/components/CubeAddItems.js +9 -6
  79. package/lib/components/CubeAddItems.js.map +1 -1
  80. package/lib/components/CubeDialogTheme.d.ts +25 -0
  81. package/lib/components/CubeDialogTheme.d.ts.map +1 -0
  82. package/lib/components/CubeDialogTheme.js +25 -0
  83. package/lib/components/CubeDialogTheme.js.map +1 -0
  84. package/lib/components/CubeEditor.d.ts +12 -1
  85. package/lib/components/CubeEditor.d.ts.map +1 -1
  86. package/lib/components/CubeEditor.js +16 -14
  87. package/lib/components/CubeEditor.js.map +1 -1
  88. package/lib/components/CubeFileMenu.d.ts +28 -0
  89. package/lib/components/CubeFileMenu.d.ts.map +1 -0
  90. package/lib/components/CubeFileMenu.js +77 -0
  91. package/lib/components/CubeFileMenu.js.map +1 -0
  92. package/lib/components/CubeLambdaImportBanner.d.ts +26 -0
  93. package/lib/components/CubeLambdaImportBanner.d.ts.map +1 -0
  94. package/lib/components/CubeLambdaImportBanner.js +47 -0
  95. package/lib/components/CubeLambdaImportBanner.js.map +1 -0
  96. package/lib/components/CubeNodeIcon.d.ts.map +1 -1
  97. package/lib/components/CubeNodeIcon.js +5 -1
  98. package/lib/components/CubeNodeIcon.js.map +1 -1
  99. package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -1
  100. package/lib/components/CubeSchemaColumnsTable.js +2 -2
  101. package/lib/components/CubeSchemaColumnsTable.js.map +1 -1
  102. package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
  103. package/lib/components/canvas/CubeCanvas.js +38 -5
  104. package/lib/components/canvas/CubeCanvas.js.map +1 -1
  105. package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
  106. package/lib/components/canvas/CubeCanvasContextMenu.js +2 -1
  107. package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
  108. package/lib/components/canvas/CubeCanvasElements.d.ts +18 -1
  109. package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
  110. package/lib/components/canvas/CubeCanvasElements.js +58 -3
  111. package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
  112. package/lib/components/canvas/CubeCanvasLayout.js +1 -1
  113. package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
  114. package/lib/components/canvas/CubeCanvasNode.js +8 -4
  115. package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
  116. package/lib/components/dev-settings/CubeDevSettings.d.ts +35 -0
  117. package/lib/components/dev-settings/CubeDevSettings.d.ts.map +1 -0
  118. package/lib/components/dev-settings/CubeDevSettings.js +50 -0
  119. package/lib/components/dev-settings/CubeDevSettings.js.map +1 -0
  120. package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -1
  121. package/lib/components/editors/CubeColumnChecklist.js +2 -2
  122. package/lib/components/editors/CubeColumnChecklist.js.map +1 -1
  123. package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
  124. package/lib/components/editors/CubeColumnPicker.js +3 -3
  125. package/lib/components/editors/CubeColumnPicker.js.map +1 -1
  126. package/lib/components/editors/CubeConcatEditor.js +2 -2
  127. package/lib/components/editors/CubeConcatEditor.js.map +1 -1
  128. package/lib/components/editors/CubeExpressionFilterEditor.d.ts +25 -0
  129. package/lib/components/editors/CubeExpressionFilterEditor.d.ts.map +1 -0
  130. package/lib/components/editors/CubeExpressionFilterEditor.js +83 -0
  131. package/lib/components/editors/CubeExpressionFilterEditor.js.map +1 -0
  132. package/lib/components/editors/CubeExtendEditor.d.ts +2 -0
  133. package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -1
  134. package/lib/components/editors/CubeExtendEditor.js +3 -3
  135. package/lib/components/editors/CubeExtendEditor.js.map +1 -1
  136. package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
  137. package/lib/components/editors/CubeFilterEditor.js +13 -2
  138. package/lib/components/editors/CubeFilterEditor.js.map +1 -1
  139. package/lib/components/editors/CubeFunctionSourceEditor.d.ts +25 -0
  140. package/lib/components/editors/CubeFunctionSourceEditor.d.ts.map +1 -0
  141. package/lib/components/editors/CubeFunctionSourceEditor.js +55 -0
  142. package/lib/components/editors/CubeFunctionSourceEditor.js.map +1 -0
  143. package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
  144. package/lib/components/editors/CubeJoinEditor.js +16 -4
  145. package/lib/components/editors/CubeJoinEditor.js.map +1 -1
  146. package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
  147. package/lib/components/editors/CubeNodeEditorPanel.js +18 -8
  148. package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
  149. package/lib/components/editors/CubeNodeEditorPopper.d.ts +5 -1
  150. package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -1
  151. package/lib/components/editors/CubeNodeEditorPopper.js +10 -2
  152. package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -1
  153. package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
  154. package/lib/components/editors/CubeNodeEditorRegistry.js +9 -1
  155. package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
  156. package/lib/components/editors/CubePivotEditor.d.ts +26 -0
  157. package/lib/components/editors/CubePivotEditor.d.ts.map +1 -0
  158. package/lib/components/editors/CubePivotEditor.js +93 -0
  159. package/lib/components/editors/CubePivotEditor.js.map +1 -0
  160. package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -1
  161. package/lib/components/editors/CubeRestrictEditor.js +2 -2
  162. package/lib/components/editors/CubeRestrictEditor.js.map +1 -1
  163. package/lib/components/editors/CubeServiceSourceEditor.d.ts +25 -0
  164. package/lib/components/editors/CubeServiceSourceEditor.d.ts.map +1 -0
  165. package/lib/components/editors/CubeServiceSourceEditor.js +41 -0
  166. package/lib/components/editors/CubeServiceSourceEditor.js.map +1 -0
  167. package/lib/components/grid/CubeColumnFormatDialog.d.ts +28 -0
  168. package/lib/components/grid/CubeColumnFormatDialog.d.ts.map +1 -0
  169. package/lib/components/grid/CubeColumnFormatDialog.js +94 -0
  170. package/lib/components/grid/CubeColumnFormatDialog.js.map +1 -0
  171. package/lib/components/grid/CubeDrilldownBar.d.ts +37 -0
  172. package/lib/components/grid/CubeDrilldownBar.d.ts.map +1 -0
  173. package/lib/components/grid/CubeDrilldownBar.js +77 -0
  174. package/lib/components/grid/CubeDrilldownBar.js.map +1 -0
  175. package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
  176. package/lib/components/grid/CubeGridRegion.js +40 -26
  177. package/lib/components/grid/CubeGridRegion.js.map +1 -1
  178. package/lib/components/grid/CubeGridValues.d.ts +31 -1
  179. package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
  180. package/lib/components/grid/CubeGridValues.js +108 -1
  181. package/lib/components/grid/CubeGridValues.js.map +1 -1
  182. package/lib/components/grid/CubeResultGrid.d.ts +68 -5
  183. package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
  184. package/lib/components/grid/CubeResultGrid.js +308 -35
  185. package/lib/components/grid/CubeResultGrid.js.map +1 -1
  186. package/lib/components/grid/CubeRunStatsPanel.d.ts +28 -0
  187. package/lib/components/grid/CubeRunStatsPanel.d.ts.map +1 -0
  188. package/lib/components/grid/CubeRunStatsPanel.js +61 -0
  189. package/lib/components/grid/CubeRunStatsPanel.js.map +1 -0
  190. package/lib/components/grid/CubeServerSideGrid.d.ts +36 -0
  191. package/lib/components/grid/CubeServerSideGrid.d.ts.map +1 -0
  192. package/lib/components/grid/CubeServerSideGrid.js +114 -0
  193. package/lib/components/grid/CubeServerSideGrid.js.map +1 -0
  194. package/lib/components/grid/CubeSqlDialog.d.ts +24 -0
  195. package/lib/components/grid/CubeSqlDialog.d.ts.map +1 -0
  196. package/lib/components/grid/CubeSqlDialog.js +39 -0
  197. package/lib/components/grid/CubeSqlDialog.js.map +1 -0
  198. package/lib/components/grid/CubeSqlFormat.d.ts +20 -0
  199. package/lib/components/grid/CubeSqlFormat.d.ts.map +1 -0
  200. package/lib/components/grid/CubeSqlFormat.js +32 -0
  201. package/lib/components/grid/CubeSqlFormat.js.map +1 -0
  202. package/lib/components/palette/CubePalette.d.ts.map +1 -1
  203. package/lib/components/palette/CubePalette.js +32 -13
  204. package/lib/components/palette/CubePalette.js.map +1 -1
  205. package/lib/components/show-pure/CubeShowPureDialog.d.ts +4 -1
  206. package/lib/components/show-pure/CubeShowPureDialog.d.ts.map +1 -1
  207. package/lib/components/show-pure/CubeShowPureDialog.js +8 -4
  208. package/lib/components/show-pure/CubeShowPureDialog.js.map +1 -1
  209. package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -1
  210. package/lib/components/source-picker/CubeDataProductTab.js +37 -16
  211. package/lib/components/source-picker/CubeDataProductTab.js.map +1 -1
  212. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -1
  213. package/lib/components/source-picker/CubeDirectConnectionTab.js +6 -4
  214. package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -1
  215. package/lib/components/source-picker/CubeFunctionSteps.d.ts +36 -0
  216. package/lib/components/source-picker/CubeFunctionSteps.d.ts.map +1 -0
  217. package/lib/components/source-picker/CubeFunctionSteps.js +76 -0
  218. package/lib/components/source-picker/CubeFunctionSteps.js.map +1 -0
  219. package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -1
  220. package/lib/components/source-picker/CubeIngestTab.js +39 -16
  221. package/lib/components/source-picker/CubeIngestTab.js.map +1 -1
  222. package/lib/components/source-picker/CubeInlineModelTab.d.ts +3 -2
  223. package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -1
  224. package/lib/components/source-picker/CubeInlineModelTab.js +23 -13
  225. package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -1
  226. package/lib/components/source-picker/CubePickerListItem.d.ts +47 -0
  227. package/lib/components/source-picker/CubePickerListItem.d.ts.map +1 -0
  228. package/lib/components/source-picker/CubePickerListItem.js +62 -0
  229. package/lib/components/source-picker/CubePickerListItem.js.map +1 -0
  230. package/lib/components/source-picker/CubeProjectTab.d.ts +4 -3
  231. package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -1
  232. package/lib/components/source-picker/CubeProjectTab.js +7 -4
  233. package/lib/components/source-picker/CubeProjectTab.js.map +1 -1
  234. package/lib/components/source-picker/CubeServiceTab.d.ts +27 -0
  235. package/lib/components/source-picker/CubeServiceTab.d.ts.map +1 -0
  236. package/lib/components/source-picker/CubeServiceTab.js +36 -0
  237. package/lib/components/source-picker/CubeServiceTab.js.map +1 -0
  238. package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
  239. package/lib/components/source-picker/CubeSourcePicker.js +16 -3
  240. package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
  241. package/lib/components/source-picker/CubeTablePreview.d.ts +29 -0
  242. package/lib/components/source-picker/CubeTablePreview.d.ts.map +1 -0
  243. package/lib/components/source-picker/CubeTablePreview.js +10 -0
  244. package/lib/components/source-picker/CubeTablePreview.js.map +1 -0
  245. package/lib/components/spec-transfer/CubeImportPureDialog.d.ts +27 -0
  246. package/lib/components/spec-transfer/CubeImportPureDialog.d.ts.map +1 -0
  247. package/lib/components/spec-transfer/CubeImportPureDialog.js +38 -0
  248. package/lib/components/spec-transfer/CubeImportPureDialog.js.map +1 -0
  249. package/lib/components/spec-transfer/CubeSpecTransferDialog.d.ts.map +1 -1
  250. package/lib/components/spec-transfer/CubeSpecTransferDialog.js +9 -3
  251. package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
  252. package/lib/graph-manager/CubeDataProductCatalog.d.ts +10 -0
  253. package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -1
  254. package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -1
  255. package/lib/graph-manager/CubeEngine.d.ts +46 -1
  256. package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
  257. package/lib/graph-manager/CubeEngine.js.map +1 -1
  258. package/lib/graph-manager/CubeEngineClientSettings.d.ts +43 -0
  259. package/lib/graph-manager/CubeEngineClientSettings.d.ts.map +1 -0
  260. package/lib/graph-manager/CubeEngineClientSettings.js +51 -0
  261. package/lib/graph-manager/CubeEngineClientSettings.js.map +1 -0
  262. package/lib/graph-manager/CubeIngest.d.ts +5 -0
  263. package/lib/graph-manager/CubeIngest.d.ts.map +1 -1
  264. package/lib/graph-manager/CubeIngest.js +10 -0
  265. package/lib/graph-manager/CubeIngest.js.map +1 -1
  266. package/lib/graph-manager/CubeIngestCatalog.d.ts +26 -0
  267. package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -1
  268. package/lib/graph-manager/CubeIngestCatalog.js +6 -0
  269. package/lib/graph-manager/CubeIngestCatalog.js.map +1 -1
  270. package/lib/graph-manager/CubeLakehouseRuntime.d.ts +29 -0
  271. package/lib/graph-manager/CubeLakehouseRuntime.d.ts.map +1 -0
  272. package/lib/graph-manager/CubeLakehouseRuntime.js +40 -0
  273. package/lib/graph-manager/CubeLakehouseRuntime.js.map +1 -0
  274. package/lib/graph-manager/CubeProjectCatalog.d.ts +3 -3
  275. package/lib/graph-manager/CubeService.d.ts +20 -0
  276. package/lib/graph-manager/CubeService.d.ts.map +1 -0
  277. package/lib/graph-manager/CubeService.js +22 -0
  278. package/lib/graph-manager/CubeService.js.map +1 -0
  279. package/lib/graph-manager/CubeServiceCatalog.d.ts +31 -0
  280. package/lib/graph-manager/CubeServiceCatalog.d.ts.map +1 -0
  281. package/lib/graph-manager/CubeServiceCatalog.js +17 -0
  282. package/lib/graph-manager/CubeServiceCatalog.js.map +1 -0
  283. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +52 -5
  284. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
  285. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +63 -5
  286. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
  287. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +9 -6
  288. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -1
  289. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +12 -8
  290. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -1
  291. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.d.ts +30 -0
  292. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.d.ts.map +1 -0
  293. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.js +229 -0
  294. package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.js.map +1 -0
  295. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -1
  296. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +18 -9
  297. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -1
  298. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +4 -9
  299. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -1
  300. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +2 -1
  301. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -1
  302. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.d.ts +34 -0
  303. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.d.ts.map +1 -0
  304. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.js +332 -0
  305. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.js.map +1 -0
  306. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
  307. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +49 -10
  308. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
  309. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts +1 -1
  310. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -1
  311. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +3 -1
  312. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
  313. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +2 -1
  314. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -1
  315. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +2 -1
  316. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -1
  317. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +18 -0
  318. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
  319. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +74 -6
  320. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
  321. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -1
  322. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +7 -4
  323. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -1
  324. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.d.ts +31 -0
  325. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.d.ts.map +1 -0
  326. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.js +69 -0
  327. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.js.map +1 -0
  328. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
  329. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +6 -2
  330. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
  331. package/lib/index.css +2 -2
  332. package/lib/index.css.map +1 -1
  333. package/lib/index.d.ts +12 -3
  334. package/lib/index.d.ts.map +1 -1
  335. package/lib/index.js +10 -1
  336. package/lib/index.js.map +1 -1
  337. package/lib/stores/CubeAddPlacement.d.ts +10 -3
  338. package/lib/stores/CubeAddPlacement.d.ts.map +1 -1
  339. package/lib/stores/CubeAddPlacement.js +16 -5
  340. package/lib/stores/CubeAddPlacement.js.map +1 -1
  341. package/lib/stores/CubeDevSettingsState.d.ts +47 -0
  342. package/lib/stores/CubeDevSettingsState.d.ts.map +1 -0
  343. package/lib/stores/CubeDevSettingsState.js +99 -0
  344. package/lib/stores/CubeDevSettingsState.js.map +1 -0
  345. package/lib/stores/CubeEditorState.d.ts +173 -43
  346. package/lib/stores/CubeEditorState.d.ts.map +1 -1
  347. package/lib/stores/CubeEditorState.js +498 -113
  348. package/lib/stores/CubeEditorState.js.map +1 -1
  349. package/lib/stores/CubeEngineChecks.d.ts +59 -0
  350. package/lib/stores/CubeEngineChecks.d.ts.map +1 -0
  351. package/lib/stores/CubeEngineChecks.js +100 -0
  352. package/lib/stores/CubeEngineChecks.js.map +1 -0
  353. package/lib/stores/CubeExamples.d.ts.map +1 -1
  354. package/lib/stores/CubeExamples.js +39 -2
  355. package/lib/stores/CubeExamples.js.map +1 -1
  356. package/lib/stores/CubeExamplesState.d.ts +1 -1
  357. package/lib/stores/CubeExamplesState.d.ts.map +1 -1
  358. package/lib/stores/CubeExamplesState.js +2 -2
  359. package/lib/stores/CubeExamplesState.js.map +1 -1
  360. package/lib/stores/CubeExecutionState.d.ts.map +1 -1
  361. package/lib/stores/CubeExecutionState.js +24 -33
  362. package/lib/stores/CubeExecutionState.js.map +1 -1
  363. package/lib/stores/CubeExportState.d.ts +41 -0
  364. package/lib/stores/CubeExportState.d.ts.map +1 -0
  365. package/lib/stores/CubeExportState.js +134 -0
  366. package/lib/stores/CubeExportState.js.map +1 -0
  367. package/lib/stores/CubeExpressionFilterCheck.d.ts +51 -0
  368. package/lib/stores/CubeExpressionFilterCheck.d.ts.map +1 -0
  369. package/lib/stores/CubeExpressionFilterCheck.js +134 -0
  370. package/lib/stores/CubeExpressionFilterCheck.js.map +1 -0
  371. package/lib/stores/CubeExtendTyping.d.ts +6 -14
  372. package/lib/stores/CubeExtendTyping.d.ts.map +1 -1
  373. package/lib/stores/CubeExtendTyping.js +6 -33
  374. package/lib/stores/CubeExtendTyping.js.map +1 -1
  375. package/lib/stores/CubeFunctionRecheck.d.ts +30 -0
  376. package/lib/stores/CubeFunctionRecheck.d.ts.map +1 -0
  377. package/lib/stores/CubeFunctionRecheck.js +67 -0
  378. package/lib/stores/CubeFunctionRecheck.js.map +1 -0
  379. package/lib/stores/CubeGridFetcher.d.ts +75 -0
  380. package/lib/stores/CubeGridFetcher.d.ts.map +1 -0
  381. package/lib/stores/CubeGridFetcher.js +197 -0
  382. package/lib/stores/CubeGridFetcher.js.map +1 -0
  383. package/lib/stores/CubeGridQuickActions.d.ts +18 -6
  384. package/lib/stores/CubeGridQuickActions.d.ts.map +1 -1
  385. package/lib/stores/CubeGridQuickActions.js +32 -12
  386. package/lib/stores/CubeGridQuickActions.js.map +1 -1
  387. package/lib/stores/CubeGridState.d.ts +136 -0
  388. package/lib/stores/CubeGridState.d.ts.map +1 -0
  389. package/lib/stores/CubeGridState.js +317 -0
  390. package/lib/stores/CubeGridState.js.map +1 -0
  391. package/lib/stores/CubeHost.d.ts +42 -0
  392. package/lib/stores/CubeHost.d.ts.map +1 -1
  393. package/lib/stores/CubeHost.js +4 -0
  394. package/lib/stores/CubeHost.js.map +1 -1
  395. package/lib/stores/CubeLambdaImportState.d.ts +118 -0
  396. package/lib/stores/CubeLambdaImportState.d.ts.map +1 -0
  397. package/lib/stores/CubeLambdaImportState.js +302 -0
  398. package/lib/stores/CubeLambdaImportState.js.map +1 -0
  399. package/lib/stores/CubeLambdaSources.d.ts +45 -0
  400. package/lib/stores/CubeLambdaSources.d.ts.map +1 -0
  401. package/lib/stores/CubeLambdaSources.js +261 -0
  402. package/lib/stores/CubeLambdaSources.js.map +1 -0
  403. package/lib/stores/CubeQueryRun.d.ts +59 -0
  404. package/lib/stores/CubeQueryRun.d.ts.map +1 -0
  405. package/lib/stores/CubeQueryRun.js +101 -0
  406. package/lib/stores/CubeQueryRun.js.map +1 -0
  407. package/lib/stores/CubeRunStatsState.d.ts +61 -0
  408. package/lib/stores/CubeRunStatsState.d.ts.map +1 -0
  409. package/lib/stores/CubeRunStatsState.js +54 -0
  410. package/lib/stores/CubeRunStatsState.js.map +1 -0
  411. package/lib/stores/CubeRunningStepLambda.d.ts +25 -0
  412. package/lib/stores/CubeRunningStepLambda.d.ts.map +1 -0
  413. package/lib/stores/CubeRunningStepLambda.js +45 -0
  414. package/lib/stores/CubeRunningStepLambda.js.map +1 -0
  415. package/lib/stores/CubeServiceRecheck.d.ts +29 -0
  416. package/lib/stores/CubeServiceRecheck.d.ts.map +1 -0
  417. package/lib/stores/CubeServiceRecheck.js +33 -0
  418. package/lib/stores/CubeServiceRecheck.js.map +1 -0
  419. package/lib/stores/CubeShowPureState.d.ts +14 -1
  420. package/lib/stores/CubeShowPureState.d.ts.map +1 -1
  421. package/lib/stores/CubeShowPureState.js +41 -11
  422. package/lib/stores/CubeShowPureState.js.map +1 -1
  423. package/lib/stores/CubeSourcePickerState.d.ts +20 -4
  424. package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
  425. package/lib/stores/CubeSourcePickerState.js +75 -14
  426. package/lib/stores/CubeSourcePickerState.js.map +1 -1
  427. package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
  428. package/lib/stores/LocalModelCatalog.js +3 -1
  429. package/lib/stores/LocalModelCatalog.js.map +1 -1
  430. package/lib/stores/editors/CubeExpressionFilterDraft.d.ts +91 -0
  431. package/lib/stores/editors/CubeExpressionFilterDraft.d.ts.map +1 -0
  432. package/lib/stores/editors/CubeExpressionFilterDraft.js +254 -0
  433. package/lib/stores/editors/CubeExpressionFilterDraft.js.map +1 -0
  434. package/lib/stores/editors/CubeFunctionDraft.d.ts +34 -0
  435. package/lib/stores/editors/CubeFunctionDraft.d.ts.map +1 -0
  436. package/lib/stores/editors/CubeFunctionDraft.js +69 -0
  437. package/lib/stores/editors/CubeFunctionDraft.js.map +1 -0
  438. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +4 -2
  439. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
  440. package/lib/stores/editors/CubeNodeDraftRegistry.js +20 -3
  441. package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
  442. package/lib/stores/editors/CubePivotDraft.d.ts +93 -0
  443. package/lib/stores/editors/CubePivotDraft.d.ts.map +1 -0
  444. package/lib/stores/editors/CubePivotDraft.js +267 -0
  445. package/lib/stores/editors/CubePivotDraft.js.map +1 -0
  446. package/lib/stores/fixtures/CubeSalesDuckDbModel.d.ts +26 -0
  447. package/lib/stores/fixtures/CubeSalesDuckDbModel.d.ts.map +1 -0
  448. package/lib/stores/fixtures/CubeSalesDuckDbModel.js +46 -0
  449. package/lib/stores/fixtures/CubeSalesDuckDbModel.js.map +1 -0
  450. package/lib/stores/fixtures/CubeTradesModel.d.ts +4 -0
  451. package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -1
  452. package/lib/stores/fixtures/CubeTradesModel.js +31 -1
  453. package/lib/stores/fixtures/CubeTradesModel.js.map +1 -1
  454. package/lib/stores/source-picker/CubeDataProductTabState.d.ts +34 -5
  455. package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -1
  456. package/lib/stores/source-picker/CubeDataProductTabState.js +111 -26
  457. package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -1
  458. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +25 -2
  459. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -1
  460. package/lib/stores/source-picker/CubeDirectConnectionTabState.js +183 -31
  461. package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -1
  462. package/lib/stores/source-picker/CubeIngestTabState.d.ts +22 -9
  463. package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -1
  464. package/lib/stores/source-picker/CubeIngestTabState.js +84 -29
  465. package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -1
  466. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +100 -4
  467. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -1
  468. package/lib/stores/source-picker/CubeInlineModelTabState.js +415 -28
  469. package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -1
  470. package/lib/stores/source-picker/CubeProjectTabState.d.ts +18 -3
  471. package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -1
  472. package/lib/stores/source-picker/CubeProjectTabState.js +26 -1
  473. package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -1
  474. package/lib/stores/source-picker/CubeServiceTabState.d.ts +74 -0
  475. package/lib/stores/source-picker/CubeServiceTabState.d.ts.map +1 -0
  476. package/lib/stores/source-picker/CubeServiceTabState.js +216 -0
  477. package/lib/stores/source-picker/CubeServiceTabState.js.map +1 -0
  478. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +15 -3
  479. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -1
  480. package/lib/stores/source-picker/CubeSourcePickerTab.js +21 -0
  481. package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -1
  482. package/package.json +10 -9
  483. package/src/__lib__/LegendCubeCommand.ts +7 -0
  484. package/src/__lib__/LegendCubeFunctionLabels.ts +41 -0
  485. package/src/__lib__/LegendCubeHelpText.ts +23 -1
  486. package/src/__lib__/LegendCubeLabels.ts +170 -13
  487. package/src/__lib__/LegendCubeProjectSourceLabels.ts +26 -0
  488. package/src/__lib__/LegendCubeServiceLabels.ts +41 -0
  489. package/src/__lib__/LegendCubeTesting.ts +7 -0
  490. package/src/__test-utils__/CubeEngineTestSupport.ts +2 -1
  491. package/src/__test-utils__/CubeExpressionTestUtils.ts +29 -2
  492. package/src/__test-utils__/CubeFunctionTestOutline.ts +78 -0
  493. package/src/__test-utils__/CubeLambdaCorpus.ts +137 -0
  494. package/src/__test-utils__/CubePageTestUtils.tsx +34 -0
  495. package/src/__test-utils__/CubeTestApplication.ts +25 -0
  496. package/src/__test-utils__/FakeCubeEngine.ts +27 -0
  497. package/src/__test-utils__/FakeCubeIngestCatalog.ts +18 -0
  498. package/src/__test-utils__/FakeCubeServiceCatalog.ts +57 -0
  499. package/src/components/CubeAddItems.tsx +13 -6
  500. package/src/components/CubeDialogTheme.ts +25 -0
  501. package/src/components/CubeEditor.tsx +155 -129
  502. package/src/components/CubeFileMenu.tsx +127 -0
  503. package/src/components/CubeLambdaImportBanner.tsx +97 -0
  504. package/src/components/CubeNodeIcon.tsx +7 -0
  505. package/src/components/CubeSchemaColumnsTable.tsx +7 -2
  506. package/src/components/canvas/CubeCanvas.tsx +52 -13
  507. package/src/components/canvas/CubeCanvasContextMenu.tsx +33 -2
  508. package/src/components/canvas/CubeCanvasElements.ts +76 -3
  509. package/src/components/canvas/CubeCanvasLayout.ts +1 -1
  510. package/src/components/canvas/CubeCanvasNode.tsx +30 -3
  511. package/src/components/dev-settings/CubeDevSettings.tsx +154 -0
  512. package/src/components/editors/CubeColumnChecklist.tsx +8 -2
  513. package/src/components/editors/CubeColumnPicker.tsx +6 -3
  514. package/src/components/editors/CubeConcatEditor.tsx +2 -2
  515. package/src/components/editors/CubeExpressionFilterEditor.tsx +193 -0
  516. package/src/components/editors/CubeExtendEditor.tsx +3 -3
  517. package/src/components/editors/CubeFilterEditor.tsx +13 -1
  518. package/src/components/editors/CubeFunctionSourceEditor.tsx +140 -0
  519. package/src/components/editors/CubeJoinEditor.tsx +23 -4
  520. package/src/components/editors/CubeNodeEditorPanel.tsx +22 -10
  521. package/src/components/editors/CubeNodeEditorPopper.tsx +9 -1
  522. package/src/components/editors/CubeNodeEditorRegistry.ts +12 -0
  523. package/src/components/editors/CubePivotEditor.tsx +277 -0
  524. package/src/components/editors/CubeRestrictEditor.tsx +8 -2
  525. package/src/components/editors/CubeServiceSourceEditor.tsx +77 -0
  526. package/src/components/grid/CubeColumnFormatDialog.tsx +289 -0
  527. package/src/components/grid/CubeDrilldownBar.tsx +219 -0
  528. package/src/components/grid/CubeGridRegion.tsx +170 -54
  529. package/src/components/grid/CubeGridValues.ts +146 -1
  530. package/src/components/grid/CubeResultGrid.tsx +443 -41
  531. package/src/components/grid/CubeRunStatsPanel.tsx +156 -0
  532. package/src/components/grid/CubeServerSideGrid.tsx +200 -0
  533. package/src/components/grid/CubeSqlDialog.tsx +90 -0
  534. package/src/components/grid/CubeSqlFormat.ts +37 -0
  535. package/src/components/palette/CubePalette.tsx +45 -12
  536. package/src/components/show-pure/CubeShowPureDialog.tsx +19 -5
  537. package/src/components/source-picker/CubeDataProductTab.tsx +169 -75
  538. package/src/components/source-picker/CubeDirectConnectionTab.tsx +42 -30
  539. package/src/components/source-picker/CubeFunctionSteps.tsx +244 -0
  540. package/src/components/source-picker/CubeIngestTab.tsx +159 -79
  541. package/src/components/source-picker/CubeInlineModelTab.tsx +110 -81
  542. package/src/components/source-picker/CubePickerListItem.tsx +118 -0
  543. package/src/components/source-picker/CubeProjectTab.tsx +6 -3
  544. package/src/components/source-picker/CubeServiceTab.tsx +151 -0
  545. package/src/components/source-picker/CubeSourcePicker.tsx +54 -18
  546. package/src/components/source-picker/CubeTablePreview.tsx +49 -0
  547. package/src/components/spec-transfer/CubeImportPureDialog.tsx +122 -0
  548. package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +21 -8
  549. package/src/graph-manager/CubeDataProductCatalog.ts +11 -0
  550. package/src/graph-manager/CubeEngine.ts +51 -1
  551. package/src/graph-manager/CubeEngineClientSettings.ts +64 -0
  552. package/src/graph-manager/CubeIngest.ts +15 -0
  553. package/src/graph-manager/CubeIngestCatalog.ts +33 -0
  554. package/src/graph-manager/CubeLakehouseRuntime.ts +43 -0
  555. package/src/graph-manager/CubeProjectCatalog.ts +3 -3
  556. package/src/graph-manager/CubeService.ts +29 -0
  557. package/src/graph-manager/CubeServiceCatalog.ts +35 -0
  558. package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +115 -5
  559. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +13 -7
  560. package/src/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.ts +312 -0
  561. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +35 -9
  562. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +6 -15
  563. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.ts +471 -0
  564. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +70 -15
  565. package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +3 -1
  566. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +7 -1
  567. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +122 -7
  568. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +9 -4
  569. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.ts +92 -0
  570. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +6 -1
  571. package/src/index.ts +32 -2
  572. package/src/stores/CubeAddPlacement.ts +25 -5
  573. package/src/stores/CubeDevSettingsState.ts +117 -0
  574. package/src/stores/CubeEditorState.ts +687 -197
  575. package/src/stores/CubeEngineChecks.ts +240 -0
  576. package/src/stores/CubeExamples.ts +70 -1
  577. package/src/stores/CubeExamplesState.ts +4 -2
  578. package/src/stores/CubeExecutionState.ts +26 -57
  579. package/src/stores/CubeExportState.ts +196 -0
  580. package/src/stores/CubeExpressionFilterCheck.ts +218 -0
  581. package/src/stores/CubeExtendTyping.ts +6 -46
  582. package/src/stores/CubeFunctionRecheck.ts +97 -0
  583. package/src/stores/CubeGridFetcher.ts +302 -0
  584. package/src/stores/CubeGridQuickActions.ts +33 -11
  585. package/src/stores/CubeGridState.ts +450 -0
  586. package/src/stores/CubeHost.ts +48 -0
  587. package/src/stores/CubeLambdaImportState.ts +434 -0
  588. package/src/stores/CubeLambdaSources.ts +390 -0
  589. package/src/stores/CubeQueryRun.ts +169 -0
  590. package/src/stores/CubeRunStatsState.ts +91 -0
  591. package/src/stores/CubeRunningStepLambda.ts +62 -0
  592. package/src/stores/CubeServiceRecheck.ts +53 -0
  593. package/src/stores/CubeShowPureState.ts +51 -12
  594. package/src/stores/CubeSourcePickerState.ts +89 -13
  595. package/src/stores/LocalModelCatalog.ts +6 -1
  596. package/src/stores/editors/CubeExpressionFilterDraft.ts +385 -0
  597. package/src/stores/editors/CubeFunctionDraft.ts +92 -0
  598. package/src/stores/editors/CubeNodeDraftRegistry.ts +27 -2
  599. package/src/stores/editors/CubePivotDraft.ts +355 -0
  600. package/src/stores/fixtures/CubeSalesDuckDbModel.ts +54 -0
  601. package/src/stores/fixtures/CubeTradesModel.ts +36 -1
  602. package/src/stores/source-picker/CubeDataProductTabState.ts +162 -35
  603. package/src/stores/source-picker/CubeDirectConnectionTabState.ts +246 -47
  604. package/src/stores/source-picker/CubeIngestTabState.ts +112 -38
  605. package/src/stores/source-picker/CubeInlineModelTabState.ts +514 -34
  606. package/src/stores/source-picker/CubeProjectTabState.ts +35 -3
  607. package/src/stores/source-picker/CubeServiceTabState.ts +288 -0
  608. package/src/stores/source-picker/CubeSourcePickerTab.ts +31 -2
  609. package/tsconfig.json +50 -0
@@ -0,0 +1,114 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2026-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { clsx } from '@finos/legend-art';
18
+ import { DataGrid, } from '@finos/legend-lego/data-grid';
19
+ import { memo, useCallback, useEffect, useMemo, useState } from 'react';
20
+ import { NULL_CELL_TEXT } from '../../__lib__/LegendCubeLabels.js';
21
+ import { LEGEND_CUBE_TEST_ID } from '../../__lib__/LegendCubeTesting.js';
22
+ import { formatCellValue } from './CubeGridValues.js';
23
+ import { buildCubeColumnDefs, CUBE_EXCEL_STYLES, getCubeGridContextMenuItems, keepCubeColumnWidths, } from './CubeResultGrid.js';
24
+ /** A group row's key as text, for export and copy: `(null)` for an empty one; nothing on a run row */
25
+ const groupKeyText = (row) => {
26
+ if (!row?.isGroup) {
27
+ return '';
28
+ }
29
+ const key = row.keys.at(-1) ?? null;
30
+ return key === null ? NULL_CELL_TEXT : String(key);
31
+ };
32
+ /** A group's key in the groups' column, as its level's column shows a value */
33
+ const CubeGroupKey = (props) => {
34
+ const { data, families } = props;
35
+ if (!data?.isGroup) {
36
+ return null;
37
+ }
38
+ const key = data.keys.at(-1) ?? null;
39
+ const family = families[data.keys.length - 1];
40
+ if (key === null || family === undefined) {
41
+ return (_jsx("span", { className: "text-[var(--color-text-muted)]", children: NULL_CELL_TEXT }));
42
+ }
43
+ return _jsx(_Fragment, { children: formatCellValue(key, family) });
44
+ };
45
+ /**
46
+ * The rows of a run in server-side mode (spec §12.1, PLAN §11.10): ag-grid's
47
+ * server-side row model asks for each level as it is shown, sorted by its
48
+ * headers, and the grid's state answers from the run on screen. With a
49
+ * drill-down, the levels are groups of the run's rows, each expandable down
50
+ * to the rows, shown in a column of their own with each group's count.
51
+ * Every level is answered whole, cut at the run's row limit, and ag-grid's
52
+ * blocks are taken from it.
53
+ */
54
+ export const CubeServerSideGrid = memo((props) => {
55
+ const { editorState, result, levels, presentation, darkMode } = props;
56
+ const { grid } = editorState;
57
+ // a new grid for each run and drill-down (its key): its own token, taken
58
+ // before ag-grid's first request, and its levels say anew
59
+ const [token] = useState(() => grid.beginGrid());
60
+ useEffect(() => {
61
+ grid.resetLevels();
62
+ }, [grid]);
63
+ const { drilldown } = grid;
64
+ const getContextMenuItems = useCallback((params) => getCubeGridContextMenuItems(editorState, params), [editorState]);
65
+ const columnDefs = useMemo(() => buildCubeColumnDefs(result, (row, position) => row?.cells[position], presentation, drilldown), [result, presentation, drilldown]);
66
+ const families = useMemo(() => levels.map((level) => result.schema.lookup(level)?.type.family), [result, levels]);
67
+ const datasource = useMemo(() => ({
68
+ getRows: (params) => {
69
+ const keys = params.parentNode.data?.keys ?? [];
70
+ const { startRow = 0, endRow, sortModel } = params.request;
71
+ grid
72
+ .loadRows(result, keys, sortModel, token)
73
+ .then((rows) => {
74
+ // rows the grid no longer shows are left alone
75
+ if (rows) {
76
+ params.success({
77
+ rowData: rows.slice(startRow, endRow ?? rows.length),
78
+ rowCount: rows.length,
79
+ });
80
+ }
81
+ })
82
+ // the grid region shows the error
83
+ .catch(() => params.fail());
84
+ },
85
+ }), [grid, result, token]);
86
+ const hasLevels = levels.length > 0;
87
+ return (_jsx("div", { className: clsx('h-full w-full', {
88
+ 'ag-theme-balham': !darkMode,
89
+ 'ag-theme-balham-dark': darkMode,
90
+ }), "data-testid": LEGEND_CUBE_TEST_ID.RESULT_GRID, children: _jsx(DataGrid, { rowModelType: "serverSide", serverSideDatasource: datasource, columnDefs: columnDefs, getRowId: (params) => params.data.id, suppressFieldDotNotation: true, tooltipShowDelay: 500, getContextMenuItems: getContextMenuItems, serverSideSortAllLevels: true, excelStyles: CUBE_EXCEL_STYLES, onColumnResized: (event) => keepCubeColumnWidths(editorState, result, event), ...(hasLevels
91
+ ? {
92
+ treeData: true,
93
+ isServerSideGroup: (data) => data.isGroup,
94
+ getServerSideGroupKey: (data) => data.id,
95
+ getChildCount: (data) => data.count ?? 0,
96
+ autoGroupColumnDef: {
97
+ // the key, as export and copy read it, not the row's id
98
+ valueGetter: (params) => groupKeyText(params.data),
99
+ headerName: levels.join(' › '),
100
+ // the groups stay in view as the grid scrolls sideways
101
+ pinned: 'left',
102
+ headerTooltip: `The groups, by ${levels.join(', then ')}`,
103
+ minWidth: 200,
104
+ sortable: true,
105
+ cellRendererParams: {
106
+ innerRenderer: CubeGroupKey,
107
+ innerRendererParams: { families },
108
+ },
109
+ },
110
+ }
111
+ : {}) }) }));
112
+ });
113
+ CubeServerSideGrid.displayName = 'CubeServerSideGrid';
114
+ //# sourceMappingURL=CubeServerSideGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeServerSideGrid.js","sourceRoot":"","sources":["../../../src/components/grid/CubeServerSideGrid.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { CubeEditorState } from '../../stores/CubeEditorState.js';
17
+ /** The SQL the run's database ran, formatted, with Copy: a dialog, as Legend Query's executed SQL */
18
+ export declare const CubeSqlDialog: ((props: {
19
+ editorState: CubeEditorState;
20
+ onClose: () => void;
21
+ }) => import("react/jsx-runtime").JSX.Element) & {
22
+ displayName: string;
23
+ };
24
+ //# sourceMappingURL=CubeSqlDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeSqlDialog.d.ts","sourceRoot":"","sources":["../../../src/components/grid/CubeSqlDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAOvE,qGAAqG;AACrG,eAAO,MAAM,aAAa,WAChB;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE;;CAqD9D,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2026-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { Dialog, Modal, ModalBody, ModalFooter, ModalFooterButton, ModalHeader, } from '@finos/legend-art';
18
+ import { CodeEditor } from '@finos/legend-lego/code-editor';
19
+ import { observer } from 'mobx-react-lite';
20
+ import { LEGEND_CUBE_TEST_ID } from '../../__lib__/LegendCubeTesting.js';
21
+ import { formatCubeSql } from './CubeSqlFormat.js';
22
+ import { CUBE_PRIMARY_BUTTON_DARK_MODE } from '../CubeDialogTheme.js';
23
+ /** The code editor's language: legend-code-editor's `CODE_EDITOR_LANGUAGE.SQL` */
24
+ const SQL_LANGUAGE = 'sql';
25
+ /** The SQL the run's database ran, formatted, with Copy: a dialog, as Legend Query's executed SQL */
26
+ export const CubeSqlDialog = observer((props) => {
27
+ const { editorState, onClose } = props;
28
+ const { applicationStore } = editorState.host;
29
+ const sql = editorState.execution.result?.sql ?? [];
30
+ const darkMode = !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled;
31
+ const text = formatCubeSql(sql);
32
+ const copySql = () => {
33
+ applicationStore.clipboardService
34
+ .copyTextToClipboard(text)
35
+ .catch(applicationStore.alertUnhandledError);
36
+ };
37
+ return (_jsx(Dialog, { open: sql.length > 0, onClose: onClose, children: _jsxs(Modal, { darkMode: darkMode, className: "w-[960px] max-w-full", children: [_jsx(ModalHeader, { children: _jsx("div", { className: "modal__title", children: "Executed SQL" }) }), _jsx(ModalBody, { children: _jsx("div", { className: "h-[60vh] w-full overflow-hidden rounded-sm border border-[var(--color-border-default)]", "aria-label": "Executed SQL", "data-testid": LEGEND_CUBE_TEST_ID.SQL_PANEL, children: _jsx(CodeEditor, { inputValue: text, isReadOnly: true, language: SQL_LANGUAGE, hideMinimap: true, hideActionBar: true, extraEditorOptions: { scrollBeyondLastLine: false } }) }) }), _jsxs(ModalFooter, { children: [_jsx(ModalFooterButton, { darkMode: CUBE_PRIMARY_BUTTON_DARK_MODE, formatText: false, text: "Copy SQL", onClick: copySql }), _jsx(ModalFooterButton, { darkMode: darkMode, formatText: false, type: "secondary", text: "Close", onClick: onClose })] })] }) }));
38
+ });
39
+ //# sourceMappingURL=CubeSqlDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeSqlDialog.js","sourceRoot":"","sources":["../../../src/components/grid/CubeSqlDialog.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEtE,kFAAkF;AAClF,MAAM,YAAY,GAAG,KAAK,CAAC;AAE3B,qGAAqG;AACrG,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CACnC,CAAC,KAA4D,EAAE,EAAE;IAC/D,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACvC,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9C,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IACpD,MAAM,QAAQ,GACZ,CAAC,gBAAgB,CAAC,aAAa,CAAC,mCAAmC,CAAC;IACtE,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,gBAAgB,CAAC,gBAAgB;aAC9B,mBAAmB,CAAC,IAAI,CAAC;aACzB,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC,CAAC;IACF,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,YAC5C,MAAC,KAAK,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,sBAAsB,aACzD,KAAC,WAAW,cACV,cAAK,SAAS,EAAC,cAAc,6BAAmB,GACpC,EACd,KAAC,SAAS,cACR,cACE,SAAS,EAAC,wFAAwF,gBACvF,cAAc,iBACZ,mBAAmB,CAAC,SAAS,YAE1C,KAAC,UAAU,IACT,UAAU,EAAE,IAAI,EAChB,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,IAAI,EACjB,aAAa,EAAE,IAAI,EACnB,kBAAkB,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,GACnD,GACE,GACI,EACZ,MAAC,WAAW,eACV,KAAC,iBAAiB,IAChB,QAAQ,EAAE,6BAA6B,EACvC,UAAU,EAAE,KAAK,EACjB,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,GAChB,EACF,KAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,KAAK,EACjB,IAAI,EAAC,WAAW,EAChB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,OAAO,GAChB,IACU,IACR,GACD,CACV,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /** A statement laid out on lines, as Legend Query shows its SQL; as it came when it can't be read */
17
+ export declare const formatCubeSqlStatement: (statement: string) => string;
18
+ /** A run's statements, each formatted, numbered as Legend Query numbers them when there are several */
19
+ export declare const formatCubeSql: (statements: readonly string[]) => string;
20
+ //# sourceMappingURL=CubeSqlFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeSqlFormat.d.ts","sourceRoot":"","sources":["../../../src/components/grid/CubeSqlFormat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,GAAI,WAAW,MAAM,KAAG,MAM1D,CAAC;AAEF,uGAAuG;AACvG,eAAO,MAAM,aAAa,GAAI,YAAY,SAAS,MAAM,EAAE,KAAG,MAQzC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { format } from 'sql-formatter';
17
+ /** A statement laid out on lines, as Legend Query shows its SQL; as it came when it can't be read */
18
+ export const formatCubeSqlStatement = (statement) => {
19
+ try {
20
+ return format(statement, { language: 'sql' });
21
+ }
22
+ catch {
23
+ return statement;
24
+ }
25
+ };
26
+ /** A run's statements, each formatted, numbered as Legend Query numbers them when there are several */
27
+ export const formatCubeSql = (statements) => statements.length === 1
28
+ ? formatCubeSqlStatement(statements[0])
29
+ : statements
30
+ .map((statement, index) => `--QUERY #${index + 1}\n${formatCubeSqlStatement(statement)}`)
31
+ .join('\n\n');
32
+ //# sourceMappingURL=CubeSqlFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeSqlFormat.js","sourceRoot":"","sources":["../../../src/components/grid/CubeSqlFormat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,qGAAqG;AACrG,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAiB,EAAU,EAAE;IAClE,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,uGAAuG;AACvG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAA6B,EAAU,EAAE,CACrE,UAAU,CAAC,MAAM,KAAK,CAAC;IACrB,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAW,CAAC;IACjD,CAAC,CAAC,UAAU;SACP,GAAG,CACF,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CACnB,YAAY,KAAK,GAAG,CAAC,KAAK,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAChE;SACA,IAAI,CAAC,MAAM,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CubePalette.d.ts","sourceRoot":"","sources":["../../../src/components/palette/CubePalette.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgBH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAOvE,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AA0FhE;;;;GAIG;AACH,eAAO,MAAM,WAAW,WACd;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE;;CA4DzC,CAAC"}
1
+ {"version":3,"file":"CubePalette.d.ts","sourceRoot":"","sources":["../../../src/components/palette/CubePalette.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAuBH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAQvE,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AA4GhE;;;;GAIG;AACH,eAAO,MAAM,WAAW,WACd;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE;;CAmEzC,CAAC"}
@@ -15,20 +15,28 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
15
  * limitations under the License.
16
16
  */
17
17
  import { ChevronLeftIcon, ChevronRightIcon, clsx } from '@finos/legend-art';
18
- import { DataProductAccessPointSource, } from '@finos/legend-cube';
18
+ import { DataProductAccessPointSource, FunctionSource, IngestDatasetSource, ServiceSource, } from '@finos/legend-cube';
19
19
  import { observer } from 'mobx-react-lite';
20
20
  import { useRef } from 'react';
21
21
  import { useDrag } from 'react-dnd';
22
- import { OTHER_SOURCE_KIND_TITLE, READ_ONLY_CUBE_TITLE, } from '../../__lib__/LegendCubeLabels.js';
22
+ import { getCubeNodeBadge, OTHER_SOURCE_KIND_TITLE, READ_ONLY_CUBE_TITLE, } from '../../__lib__/LegendCubeLabels.js';
23
23
  import { LEGEND_CUBE_TEST_ID } from '../../__lib__/LegendCubeTesting.js';
24
- import { addCubeNode } from '../../stores/CubeAddPlacement.js';
24
+ import { addCubeNode, getCubeAddDatabaseProblem, } from '../../stores/CubeAddPlacement.js';
25
25
  import { CUBE_DND_TYPE, } from '../canvas/CubeCanvasDnd.js';
26
26
  import { CubeNodeIcon } from '../CubeNodeIcon.js';
27
+ import { CubePageMenu } from '../dev-settings/CubeDevSettings.js';
27
28
  /** Shown in the palette while the cube has no node yet (spec §17.2, worded for the canvas) */
28
29
  export const PALETTE_EMPTY_HINT = 'Drag items onto the canvas.';
30
+ /** What a source item picks, for its tooltip: a table, unless its type says otherwise */
31
+ const SOURCE_PICKS = {
32
+ [FunctionSource.TYPE]: 'a function',
33
+ [DataProductAccessPointSource.TYPE]: 'an access point',
34
+ [IngestDatasetSource.TYPE]: 'a data set',
35
+ [ServiceSource.TYPE]: 'a service',
36
+ };
29
37
  /** What an item does, for its tooltip */
30
38
  const describeItem = (definition) => definition.kind === 'source'
31
- ? `Click, or drop it on the canvas, to pick ${definition.type === DataProductAccessPointSource.TYPE ? 'an access point' : 'a table'}`
39
+ ? `Click, or drop it on the canvas, to pick ${SOURCE_PICKS[definition.type] ?? 'a table'}`
32
40
  : 'Click, or drop it on the canvas, to add it after the selected node; drop it on a node to add it after that node';
33
41
  const CubePaletteItem = observer((props) => {
34
42
  const { editorState, definition, collapsed } = props;
@@ -37,17 +45,24 @@ const CubePaletteItem = observer((props) => {
37
45
  const otherKind = !readOnly &&
38
46
  definition.kind === 'source' &&
39
47
  !editorState.canAddNode(definition.type);
40
- const disabled = readOnly || otherKind;
48
+ // nor a transform its database can't run, after the selected node (PLAN §11.12)
49
+ const databaseProblem = readOnly || definition.kind === 'source'
50
+ ? undefined
51
+ : getCubeAddDatabaseProblem(editorState, definition.type);
52
+ const disabled = readOnly || otherKind || databaseProblem !== undefined;
41
53
  const ref = useRef(null);
42
54
  const [, dragConnector] = useDrag(() => ({
43
55
  type: CUBE_DND_TYPE.PALETTE_ITEM,
44
56
  item: { nodeType: definition.type },
45
57
  canDrag: () => !editorState.readOnly &&
46
- (definition.kind !== 'source' ||
47
- editorState.canAddNode(definition.type)),
58
+ (definition.kind === 'source'
59
+ ? editorState.canAddNode(definition.type)
60
+ : getCubeAddDatabaseProblem(editorState, definition.type) ===
61
+ undefined),
48
62
  }), [editorState, definition.type, definition.kind]);
49
63
  dragConnector(ref);
50
- const label = `${definition.label}${definition.beta ? ' (BETA)' : ''}`;
64
+ const badge = getCubeNodeBadge(definition);
65
+ const label = `${definition.label}${badge ? ` (${badge})` : ''}`;
51
66
  const add = () => {
52
67
  if (!disabled) {
53
68
  addCubeNode(editorState, definition.type);
@@ -61,14 +76,16 @@ const CubePaletteItem = observer((props) => {
61
76
  ? READ_ONLY_CUBE_TITLE
62
77
  : otherKind
63
78
  ? OTHER_SOURCE_KIND_TITLE
64
- : collapsed
65
- ? `${label}: ${describeItem(definition)}`
66
- : describeItem(definition), onClick: add, onKeyDown: (event) => {
79
+ : databaseProblem !== undefined
80
+ ? databaseProblem
81
+ : collapsed
82
+ ? `${label}: ${describeItem(definition)}`
83
+ : describeItem(definition), onClick: add, onKeyDown: (event) => {
67
84
  if (event.key === 'Enter' || event.key === ' ') {
68
85
  event.preventDefault();
69
86
  add();
70
87
  }
71
- }, "data-testid": LEGEND_CUBE_TEST_ID.PALETTE_ITEM, children: [_jsx(CubeNodeIcon, { icon: definition.icon, className: "shrink-0 text-[var(--color-text-secondary)]" }), !collapsed && (_jsx("span", { className: "min-w-0 flex-1 truncate", children: definition.label })), !collapsed && definition.beta && (_jsx("span", { className: "shrink-0 rounded-sm bg-[var(--color-accent)] px-1 text-xs font-medium text-[var(--color-text-on-accent)]", children: "BETA" }))] }));
88
+ }, "data-testid": LEGEND_CUBE_TEST_ID.PALETTE_ITEM, children: [_jsx(CubeNodeIcon, { icon: definition.icon, className: "shrink-0 text-[var(--color-text-secondary)]" }), !collapsed && (_jsx("span", { className: "min-w-0 flex-1 truncate", children: definition.label })), !collapsed && badge && (_jsx("span", { className: "shrink-0 rounded-sm bg-[var(--color-accent)] px-1 text-xs font-medium text-[var(--color-text-on-accent)]", children: badge }))] }));
72
89
  });
73
90
  /**
74
91
  * The sidebar of node types to add (spec §17.2): the sources, then the
@@ -79,6 +96,8 @@ export const CubePalette = observer((props) => {
79
96
  const { editorState } = props;
80
97
  const collapsed = editorState.isPaletteCollapsed;
81
98
  const { registry } = editorState;
82
- return (_jsxs("div", { className: clsx('flex h-full shrink-0 flex-col border-r border-[var(--color-border-default)] bg-[var(--color-bg-panel)]', collapsed ? 'w-10' : 'w-56'), "data-testid": LEGEND_CUBE_TEST_ID.PALETTE, children: [_jsxs("div", { className: "flex h-8 shrink-0 items-center border-b border-[var(--color-border-default)] bg-[var(--color-bg-panel-header)] px-2", children: [!collapsed && (_jsx("span", { className: "min-w-0 flex-1 truncate text-base font-medium", children: "Add to the query" })), _jsx("button", { className: "flex h-6 w-6 shrink-0 items-center justify-center text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]", title: collapsed ? 'Expand the palette' : 'Collapse the palette', onClick: () => editorState.setPaletteCollapsed(!collapsed), children: collapsed ? _jsx(ChevronRightIcon, {}) : _jsx(ChevronLeftIcon, {}) })] }), _jsxs("div", { className: "flex min-h-0 shrink flex-col overflow-auto py-1", role: "group", "aria-label": "Palette", children: [editorState.offeredSources.map((definition) => (_jsx(CubePaletteItem, { editorState: editorState, definition: definition, collapsed: collapsed }, definition.type))), _jsx("div", { className: "mx-2 my-1 shrink-0 border-t border-[var(--color-border-default)]", role: "separator" }), registry.transforms.map((definition) => (_jsx(CubePaletteItem, { editorState: editorState, definition: definition, collapsed: collapsed }, definition.type)))] }), !collapsed && editorState.document.query.isEmpty && (_jsx("div", { className: "shrink-0 px-3 py-2 text-sm text-[var(--color-text-muted)]", children: PALETTE_EMPTY_HINT }))] }));
99
+ return (_jsxs("div", { className: clsx('flex h-full shrink-0 flex-col border-r border-[var(--color-border-default)] bg-[var(--color-bg-panel)]', collapsed ? 'w-10' : 'w-56'), "data-testid": LEGEND_CUBE_TEST_ID.PALETTE, children: [_jsxs("div", { className: clsx('flex shrink-0 items-center border-b border-[var(--color-border-default)] bg-[var(--color-bg-panel-header)] px-2',
100
+ // collapsed, the menu sits above the button that expands it
101
+ collapsed ? 'flex-col py-1' : 'h-8 gap-1'), children: [_jsx(CubePageMenu, { editorState: editorState }), !collapsed && (_jsx("span", { className: "min-w-0 flex-1 truncate text-base font-medium", children: "Add to the query" })), _jsx("button", { className: "flex h-6 w-6 shrink-0 items-center justify-center text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]", title: collapsed ? 'Expand the palette' : 'Collapse the palette', onClick: () => editorState.setPaletteCollapsed(!collapsed), children: collapsed ? _jsx(ChevronRightIcon, {}) : _jsx(ChevronLeftIcon, {}) })] }), _jsxs("div", { className: "flex min-h-0 shrink flex-col overflow-auto py-1", role: "group", "aria-label": "Palette", children: [editorState.offeredSources.map((definition) => (_jsx(CubePaletteItem, { editorState: editorState, definition: definition, collapsed: collapsed }, definition.type))), _jsx("div", { className: "mx-2 my-1 shrink-0 border-t border-[var(--color-border-default)]", role: "separator" }), registry.transforms.map((definition) => (_jsx(CubePaletteItem, { editorState: editorState, definition: definition, collapsed: collapsed }, definition.type)))] }), !collapsed && editorState.document.query.isEmpty && (_jsx("div", { className: "shrink-0 px-3 py-2 text-sm text-[var(--color-text-muted)]", children: PALETTE_EMPTY_HINT }))] }));
83
102
  });
84
103
  //# sourceMappingURL=CubePalette.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CubePalette.js","sourceRoot":"","sources":["../../../src/components/palette/CubePalette.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CubePalette.js","sourceRoot":"","sources":["../../../src/components/palette/CubePalette.tsx"],"names":[],"mappings":"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"}
@@ -14,7 +14,10 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { CubeEditorState } from '../../stores/CubeEditorState.js';
17
- /** The Pure text of what Execute would run, read-only, with Copy */
17
+ /**
18
+ * The Pure text of what Execute would run, read-only, with Copy; or of a run
19
+ * from the Runs panel, as it ran (PLAN §11.16)
20
+ */
18
21
  export declare const CubeShowPureDialog: ((props: {
19
22
  editorState: CubeEditorState;
20
23
  }) => import("react/jsx-runtime").JSX.Element) & {
@@ -1 +1 @@
1
- {"version":3,"file":"CubeShowPureDialog.d.ts","sourceRoot":"","sources":["../../../src/components/show-pure/CubeShowPureDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,WACrB;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE;;CAqEzC,CAAC"}
1
+ {"version":3,"file":"CubeShowPureDialog.d.ts","sourceRoot":"","sources":["../../../src/components/show-pure/CubeShowPureDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgBH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,WACrB;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE;;CA4EzC,CAAC"}
@@ -16,15 +16,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  */
17
17
  import { Dialog, Modal, ModalBody, ModalFooter, ModalFooterButton, ModalHeader, PanelLoadingIndicator, } from '@finos/legend-art';
18
18
  import { observer } from 'mobx-react-lite';
19
- import { CUBE_PENDING_LABEL } from '../../__lib__/LegendCubeLabels.js';
20
- /** The Pure text of what Execute would run, read-only, with Copy */
19
+ import { CUBE_PENDING_LABEL, CUBE_RUN_PURE_NOTE, } from '../../__lib__/LegendCubeLabels.js';
20
+ import { CUBE_PRIMARY_BUTTON_DARK_MODE } from '../CubeDialogTheme.js';
21
+ /**
22
+ * The Pure text of what Execute would run, read-only, with Copy; or of a run
23
+ * from the Runs panel, as it ran (PLAN §11.16)
24
+ */
21
25
  export const CubeShowPureDialog = observer((props) => {
22
26
  const { editorState } = props;
23
27
  const showPure = editorState.showPure;
24
28
  const { applicationStore } = editorState.host;
25
29
  const darkMode = !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled;
26
- const { text, error } = showPure;
27
- return (_jsx(Dialog, { open: showPure.isOpen, onClose: () => showPure.close(), children: _jsxs(Modal, { darkMode: darkMode, className: "w-[800px] max-w-full", children: [_jsx(ModalHeader, { children: _jsx("div", { className: "modal__title", children: "Pure query" }) }), _jsx(PanelLoadingIndicator, { isLoading: showPure.isRendering }), _jsx(ModalBody, { children: _jsxs("div", { className: "flex flex-col gap-2", children: [showPure.isRendering && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_PENDING_LABEL.RENDERING_QUERY })), text !== undefined && (_jsx("pre", { className: "max-h-[60vh] overflow-auto whitespace-pre rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-input)] p-2 font-mono text-sm text-[var(--color-text-primary)]", "aria-label": "Pure query", children: text })), error && (_jsx("div", { className: "whitespace-pre-wrap break-words text-base text-[var(--color-status-error)]", role: "alert", children: error.detail }))] }) }), _jsxs(ModalFooter, { children: [_jsx(ModalFooterButton, { darkMode: darkMode, formatText: false, text: "Copy to Clipboard", disabled: text === undefined, onClick: () => {
30
+ const { text, error, run } = showPure;
31
+ return (_jsx(Dialog, { open: showPure.isOpen, onClose: () => showPure.close(), children: _jsxs(Modal, { darkMode: darkMode, className: "w-[800px] max-w-full", children: [_jsx(ModalHeader, { children: _jsx("div", { className: "modal__title truncate", title: run, children: run === undefined ? 'Pure query' : `Pure query of ${run}` }) }), _jsx(PanelLoadingIndicator, { isLoading: showPure.isRendering }), _jsx(ModalBody, { children: _jsxs("div", { className: "flex flex-col gap-2", children: [run !== undefined && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_RUN_PURE_NOTE })), showPure.isRendering && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_PENDING_LABEL.RENDERING_QUERY })), text !== undefined && (_jsx("pre", { className: "max-h-[60vh] overflow-auto whitespace-pre rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-input)] p-2 font-mono text-sm text-[var(--color-text-primary)]", "aria-label": "Pure query", children: text })), error && (_jsx("div", { className: "whitespace-pre-wrap break-words text-base text-[var(--color-status-error)]", role: "alert", children: error.detail }))] }) }), _jsxs(ModalFooter, { children: [_jsx(ModalFooterButton, { darkMode: CUBE_PRIMARY_BUTTON_DARK_MODE, formatText: false, text: "Copy to Clipboard", disabled: text === undefined, onClick: () => {
28
32
  if (text !== undefined) {
29
33
  applicationStore.clipboardService
30
34
  .copyTextToClipboard(text, {
@@ -1 +1 @@
1
- {"version":3,"file":"CubeShowPureDialog.js","sourceRoot":"","sources":["../../../src/components/show-pure/CubeShowPureDialog.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGvE,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CACxC,CAAC,KAAuC,EAAE,EAAE;IAC1C,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9C,MAAM,QAAQ,GACZ,CAAC,gBAAgB,CAAC,aAAa,CAAC,mCAAmC,CAAC;IACtE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAEjC,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,YAC5D,MAAC,KAAK,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,sBAAsB,aACzD,KAAC,WAAW,cACV,cAAK,SAAS,EAAC,cAAc,2BAAiB,GAClC,EACd,KAAC,qBAAqB,IAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,GAAI,EAC1D,KAAC,SAAS,cACR,eAAK,SAAS,EAAC,qBAAqB,aACjC,QAAQ,CAAC,WAAW,IAAI,CACvB,cAAK,SAAS,EAAC,8CAA8C,YAC1D,kBAAkB,CAAC,eAAe,GAC/B,CACP,EACA,IAAI,KAAK,SAAS,IAAI,CACrB,cACE,SAAS,EAAC,oLAAoL,gBACnL,YAAY,YAEtB,IAAI,GACD,CACP,EACA,KAAK,IAAI,CACR,cACE,SAAS,EAAC,4EAA4E,EACtF,IAAI,EAAC,OAAO,YAEX,KAAK,CAAC,MAAM,GACT,CACP,IACG,GACI,EACZ,MAAC,WAAW,eACV,KAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,KAAK,EACjB,IAAI,EAAC,mBAAmB,EACxB,QAAQ,EAAE,IAAI,KAAK,SAAS,EAC5B,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oCACvB,gBAAgB,CAAC,gBAAgB;yCAC9B,mBAAmB,CAAC,IAAI,EAAE;wCACzB,oBAAoB,EAClB,oCAAoC;qCACvC,CAAC;yCACD,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;gCACjD,CAAC;4BACH,CAAC,GACD,EACF,KAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,KAAK,EACjB,IAAI,EAAC,WAAW,EAChB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,GAC/B,IACU,IACR,GACD,CACV,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"CubeShowPureDialog.js","sourceRoot":"","sources":["../../../src/components/show-pure/CubeShowPureDialog.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CACxC,CAAC,KAAuC,EAAE,EAAE;IAC1C,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9C,MAAM,QAAQ,GACZ,CAAC,gBAAgB,CAAC,aAAa,CAAC,mCAAmC,CAAC;IACtE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC;IAEtC,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,YAC5D,MAAC,KAAK,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,sBAAsB,aACzD,KAAC,WAAW,cACV,cAAK,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAE,GAAG,YAC9C,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,GAAG,EAAE,GACtD,GACM,EACd,KAAC,qBAAqB,IAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,GAAI,EAC1D,KAAC,SAAS,cACR,eAAK,SAAS,EAAC,qBAAqB,aACjC,GAAG,KAAK,SAAS,IAAI,CACpB,cAAK,SAAS,EAAC,8CAA8C,YAC1D,kBAAkB,GACf,CACP,EACA,QAAQ,CAAC,WAAW,IAAI,CACvB,cAAK,SAAS,EAAC,8CAA8C,YAC1D,kBAAkB,CAAC,eAAe,GAC/B,CACP,EACA,IAAI,KAAK,SAAS,IAAI,CACrB,cACE,SAAS,EAAC,oLAAoL,gBACnL,YAAY,YAEtB,IAAI,GACD,CACP,EACA,KAAK,IAAI,CACR,cACE,SAAS,EAAC,4EAA4E,EACtF,IAAI,EAAC,OAAO,YAEX,KAAK,CAAC,MAAM,GACT,CACP,IACG,GACI,EACZ,MAAC,WAAW,eACV,KAAC,iBAAiB,IAChB,QAAQ,EAAE,6BAA6B,EACvC,UAAU,EAAE,KAAK,EACjB,IAAI,EAAC,mBAAmB,EACxB,QAAQ,EAAE,IAAI,KAAK,SAAS,EAC5B,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oCACvB,gBAAgB,CAAC,gBAAgB;yCAC9B,mBAAmB,CAAC,IAAI,EAAE;wCACzB,oBAAoB,EAClB,oCAAoC;qCACvC,CAAC;yCACD,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;gCACjD,CAAC;4BACH,CAAC,GACD,EACF,KAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,KAAK,EACjB,IAAI,EAAC,WAAW,EAChB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,GAC/B,IACU,IACR,GACD,CACV,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CubeDataProductTab.d.ts","sourceRoot":"","sources":["../../../src/components/source-picker/CubeDataProductTab.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,uDAAuD,CAAC;AAiJ/D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,WACrB;IAAE,GAAG,EAAE,uBAAuB,CAAA;CAAE;;CA4MzC,CAAC"}
1
+ {"version":3,"file":"CubeDataProductTab.d.ts","sourceRoot":"","sources":["../../../src/components/source-picker/CubeDataProductTab.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,uDAAuD,CAAC;AA+R/D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,WACrB;IAAE,GAAG,EAAE,uBAAuB,CAAA;CAAE;;CA4JzC,CAAC"}
@@ -20,11 +20,13 @@ import { useId } from 'react';
20
20
  import { CUBE_ACCESS_POINT_GROUP_ACCESS_LABELS, CUBE_DATA_PRODUCT_ENVIRONMENT_LABELS, CUBE_NO_ACCESS_LABEL, CUBE_SNAPSHOT_VERSION_LABEL, getCubeRequestAccessLabel, } from '../../__lib__/LegendCubeDataProductLabels.js';
21
21
  import { CUBE_PENDING_LABEL, NULL_CELL_TEXT, READ_ONLY_CUBE_TITLE, } from '../../__lib__/LegendCubeLabels.js';
22
22
  import { CUBE_DATA_PRODUCT_TAB_MESSAGE, } from '../../stores/source-picker/CubeDataProductTabState.js';
23
+ import { CUBE_PICKER_LIST_CLASS, CubePickerListItem, } from './CubePickerListItem.js';
23
24
  import { CubeButton } from '../CubeButton.js';
24
25
  import { CubeSchemaColumnsTable } from '../CubeSchemaColumnsTable.js';
25
26
  import { CubePickerStep } from './CubePickerStep.js';
27
+ import { CUBE_PROJECT_SOURCE_LABEL } from '../../__lib__/LegendCubeProjectSourceLabels.js';
28
+ import { isCubeProjectHost } from '../../stores/CubeHost.js';
26
29
  const INPUT_CLASS = 'h-7 rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-input)] px-1 text-base text-[var(--color-text-primary)] disabled:text-[var(--color-text-secondary)]';
27
- const LIST_ITEM_CLASS = 'flex w-full items-center gap-2 px-2 py-1 text-left text-base enabled:hover:bg-[var(--color-bg-hover)] disabled:cursor-not-allowed disabled:text-[var(--color-text-disabled)]';
28
30
  /** An error as the tab shows it: its first line, the rest on demand, and an action when it has one */
29
31
  const CubeDataProductTabAlert = ({ error, children }) => (_jsxs("div", { className: "flex flex-col gap-1 text-base text-[var(--color-status-error)]", role: "alert", children: [_jsx("span", { children: error.message }), error.detail !== undefined && (_jsxs("details", { className: "text-sm", children: [_jsx("summary", { className: "cursor-pointer", children: "Details" }), _jsx("pre", { className: "whitespace-pre-wrap break-words", children: error.detail })] })), children] }));
30
32
  /**
@@ -51,11 +53,35 @@ const CubeSampleValue = ({ value }) => value === null ? (_jsx("span", { classNam
51
53
  * its description, its columns, up to five of the artifact's sample rows,
52
54
  * and its product's page in the marketplace
53
55
  */
54
- const CubeAccessPointPreview = ({ accessPoint, marketplaceLink }) => (_jsxs("section", { className: "flex flex-col gap-1 rounded-sm border border-[var(--color-border-default)] p-2", "aria-label": "Access point preview", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "min-w-0 flex-1 truncate font-medium", children: accessPoint.title ?? accessPoint.id }), marketplaceLink !== undefined && (_jsx("a", { className: "shrink-0 text-base text-[var(--color-accent)] underline", href: marketplaceLink, target: "_blank", rel: "noopener noreferrer", children: "Open in Marketplace" }))] }), _jsx("span", { className: "text-base text-[var(--color-text-secondary)]", children: accessPoint.description ?? 'No description' }), accessPoint.schema && (_jsx(CubeSchemaColumnsTable, { schema: accessPoint.schema })), accessPoint.sampleRows.length && accessPoint.schema ? (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "text-base", "aria-label": "Sample rows", children: [_jsx("thead", { children: _jsx("tr", { className: "text-left text-[var(--color-text-secondary)]", children: accessPoint.schema.columns.map((column) => (_jsx("th", { className: "pr-3 font-normal", children: column.name }, column.name))) }) }), _jsx("tbody", { children: accessPoint.sampleRows.map((row, index) => (
56
+ const CubeAccessPointPreview = ({ accessPoint, marketplaceLink, fromArtifact = true }) => (_jsxs("section", { className: "flex flex-col gap-1 rounded-sm border border-[var(--color-border-default)] p-2", "aria-label": "Access point preview", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "min-w-0 flex-1 truncate font-medium", children: accessPoint.title ?? accessPoint.id }), marketplaceLink !== undefined && (_jsx("a", { className: "shrink-0 text-base text-[var(--color-accent)] underline", href: marketplaceLink, target: "_blank", rel: "noopener noreferrer", children: "Open in Marketplace" }))] }), _jsx("span", { className: "text-base text-[var(--color-text-secondary)]", children: accessPoint.description ?? 'No description' }), accessPoint.schema && (_jsx(CubeSchemaColumnsTable, { schema: accessPoint.schema })), accessPoint.sampleRows.length && accessPoint.schema ? (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "text-base", "aria-label": "Sample rows", children: [_jsx("thead", { children: _jsx("tr", { className: "text-left text-[var(--color-text-secondary)]", children: accessPoint.schema.columns.map((column) => (_jsx("th", { className: "pr-3 font-normal", children: column.name }, column.name))) }) }), _jsx("tbody", { children: accessPoint.sampleRows.map((row, index) => (
55
57
  // eslint-disable-next-line react/no-array-index-key -- sample rows have no identity
56
58
  _jsx("tr", { children: row.map((value, column) => (
57
59
  // eslint-disable-next-line react/no-array-index-key -- by position, as the columns
58
- _jsx("td", { className: "whitespace-nowrap pr-3", children: _jsx(CubeSampleValue, { value: value }) }, column))) }, index))) })] }) })) : (_jsx("span", { className: "text-base text-[var(--color-text-muted)]", children: "No sample rows in the deployed artifact" }))] }));
60
+ _jsx("td", { className: "whitespace-nowrap pr-3", children: _jsx(CubeSampleValue, { value: value }) }, column))) }, index))) })] }) })) : fromArtifact ? (_jsx("span", { className: "text-base text-[var(--color-text-muted)]", children: "No sample rows in the deployed artifact" })) : null] }));
61
+ /** A product's access points, by group, each picked or ticked to add */
62
+ const CubeAccessPointList = observer((props) => {
63
+ const { tab } = props;
64
+ if (!tab.description) {
65
+ return null;
66
+ }
67
+ return (_jsx("ul", { className: `max-h-56 overflow-auto ${CUBE_PICKER_LIST_CLASS}`, "aria-label": "Access points", children: tab.description.groups.map((group) => (_jsxs("li", { children: [_jsxs("div", { className: "flex items-center gap-2 px-2 pt-1 text-sm text-[var(--color-text-secondary)]", children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: group.title ?? group.id }), _jsx(CubeAccessPointGroupBadge, { tab: tab, groupId: group.id })] }), _jsx("ul", { "aria-label": `Access points of ${group.title ?? group.id}`, children: group.accessPoints.map((point) => (_jsxs(CubePickerListItem, { picked: tab.isAccessPointPicked(group.id, point.id), disabled: !point.isPickable, title: point.disabledReason ?? point.description, adds: true, onPick: () => tab.selectAccessPoint(group.id, point.id), onToggle: () => tab.toggleAccessPoint(group.id, point.id), toggleLabel: point.title ?? point.id, children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: point.title ?? point.id }), _jsx("span", { className: "shrink-0 text-sm text-[var(--color-text-muted)]", children: point.isPickable
68
+ ? `${point.schema?.columns.length ?? 0} columns`
69
+ : point.disabledReason })] }, point.id))) })] }, group.id))) }));
70
+ });
71
+ /**
72
+ * The Data Product tab on a host reading one project's data products
73
+ * (Studio): the project's products by name, each path muted beside it, then
74
+ * a product's access points; the runtime its runs use is named, not picked
75
+ */
76
+ const CubeProjectDataProductTab = observer((props) => {
77
+ const { tab } = props;
78
+ const candidates = tab.candidates;
79
+ return (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("span", { className: "text-sm text-[var(--color-text-muted)]", "aria-label": "Runtime", children: tab.projectRuntime
80
+ ? CUBE_PROJECT_SOURCE_LABEL.RUNS_ON(tab.projectRuntime.label)
81
+ : tab.isReadingProjectRuntime
82
+ ? CUBE_PROJECT_SOURCE_LABEL.READING_RUNTIME
83
+ : '' }), tab.projectRuntimeError !== undefined && (_jsx(CubeDataProductTabAlert, { error: tab.projectRuntimeError })), tab.isListing && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: "listing data products" })), tab.listError !== undefined && (_jsx(CubeDataProductTabAlert, { error: tab.listError, children: _jsx("div", { children: _jsx(CubeButton, { onClick: () => tab.retryListing(), children: "Retry" }) }) })), candidates && (_jsx("ul", { className: `max-h-40 overflow-auto ${CUBE_PICKER_LIST_CLASS}`, "aria-label": "Data products", children: candidates.map((candidate) => (_jsxs(CubePickerListItem, { picked: tab.candidate === candidate, title: candidate.description ?? candidate.dataProductPath, onPick: () => tab.selectCandidate(candidate), children: [_jsx("span", { className: "shrink-0", children: candidate.title }), _jsx("span", { className: "min-w-0 flex-1 truncate text-sm text-[var(--color-text-muted)]", children: candidate.dataProductPath })] }, candidate.dataProductPath))) })), candidates?.length === 0 && (_jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: CUBE_PROJECT_SOURCE_LABEL.NO_DATA_PRODUCTS })), tab.isDescribing && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: "loading access points" })), _jsx(CubeAccessPointList, { tab: tab }), tab.accessPoint?.isPickable === true && (_jsx(CubeAccessPointPreview, { accessPoint: tab.accessPoint, marketplaceLink: undefined, fromArtifact: false })), tab.isAdding && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_PENDING_LABEL.RESOLVING_SOURCE })), tab.error !== undefined && (_jsx(CubeDataProductTabAlert, { error: tab.error }))] }));
84
+ });
59
85
  /**
60
86
  * The source dialog's Data Product tab (PLAN §6.8), as Data Cube's selection
61
87
  * goes: the mode, a deployed data product, one of its access points, and the
@@ -65,6 +91,11 @@ export const CubeDataProductTab = observer((props) => {
65
91
  const { tab } = props;
66
92
  const warehouseId = useId();
67
93
  const project = tab.fixedProject;
94
+ // a host reading one project's data products, as Studio, lists them
95
+ // alone: no class, search or warehouse to pick, its runtime named instead
96
+ if (isCubeProjectHost(tab.editorState.host)) {
97
+ return _jsx(CubeProjectDataProductTab, { tab: tab });
98
+ }
68
99
  return (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(CubePickerStep, { label: "Mode", value: tab.environmentType, options: (tab.catalog?.environmentTypes ?? []).map((type) => ({
69
100
  value: type,
70
101
  label: CUBE_DATA_PRODUCT_ENVIRONMENT_LABELS[type],
@@ -77,26 +108,16 @@ export const CubeDataProductTab = observer((props) => {
77
108
  { label: 'Search all', value: true },
78
109
  ].map(({ label, value }) => (_jsxs("label", { className: "flex items-center gap-1", children: [_jsx("input", { type: "radio", name: "cube-data-products-shown", checked: tab.showAllProjects === value, onChange: () => tab.setShowAllProjects(value) }), label] }, label))) })), tab.isListing && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: tab.searchesOnServer
79
110
  ? 'searching data products'
80
- : 'listing data products' })), tab.listError !== undefined && (_jsx(CubeDataProductTabAlert, { error: tab.listError, children: _jsx("div", { children: _jsx(CubeButton, { onClick: () => tab.retryListing(), children: "Retry" }) }) })), _jsx("ul", { className: "max-h-40 overflow-auto rounded-sm border border-[var(--color-border-subtle)]", "aria-label": "Data products", children: tab.shownCandidates.map((candidate) => {
111
+ : 'listing data products' })), tab.listError !== undefined && (_jsx(CubeDataProductTabAlert, { error: tab.listError, children: _jsx("div", { children: _jsx(CubeButton, { onClick: () => tab.retryListing(), children: "Retry" }) }) })), _jsx("ul", { className: `max-h-40 overflow-auto ${CUBE_PICKER_LIST_CLASS}`, "aria-label": "Data products", children: tab.shownCandidates.map((candidate) => {
81
112
  const isPicked = tab.candidate === candidate;
82
113
  const reason = tab.getCandidateDisabledReason(candidate);
83
- return (_jsx("li", { children: _jsxs("button", { type: "button", className: clsx(LIST_ITEM_CLASS, {
84
- 'bg-[var(--color-bg-selected)]': isPicked,
85
- }), "aria-pressed": isPicked, disabled: reason !== undefined, title: reason ?? candidate.description, onClick: () => tab.selectCandidate(candidate), children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: candidate.title }), _jsx("span", { className: "shrink-0 text-sm text-[var(--color-text-muted)]", children: reason ?? `${candidate.id} · ${candidate.versionId}` })] }) }, `${candidate.id}/${candidate.deploymentId}`));
114
+ return (_jsxs(CubePickerListItem, { picked: isPicked, disabled: reason !== undefined, title: reason ?? candidate.description, onPick: () => tab.selectCandidate(candidate), children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: candidate.title }), _jsx("span", { className: "shrink-0 text-sm text-[var(--color-text-muted)]", children: reason ?? `${candidate.id} · ${candidate.versionId}` })] }, `${candidate.id}/${candidate.deploymentId}`));
86
115
  }) }), project !== undefined &&
87
116
  !tab.showAllProjects &&
88
117
  !tab.isListing &&
89
118
  tab.listError === undefined &&
90
119
  tab.candidates !== undefined &&
91
120
  tab.search.trim().length > 0 &&
92
- !tab.shownCandidates.length && (_jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: CUBE_DATA_PRODUCT_TAB_MESSAGE.NONE_IN_PROJECT })), tab.isTruncated && (_jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: CUBE_DATA_PRODUCT_TAB_MESSAGE.TRUNCATED })), tab.isDescribing && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: "loading access points" })), tab.description && (_jsx("ul", { className: "max-h-56 overflow-auto rounded-sm border border-[var(--color-border-subtle)]", "aria-label": "Access points", children: tab.description.groups.map((group) => (_jsxs("li", { children: [_jsxs("div", { className: "flex items-center gap-2 px-2 pt-1 text-sm text-[var(--color-text-secondary)]", children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: group.title ?? group.id }), _jsx(CubeAccessPointGroupBadge, { tab: tab, groupId: group.id })] }), _jsx("ul", { "aria-label": `Access points of ${group.title ?? group.id}`, children: group.accessPoints.map((point) => {
93
- const isPicked = tab.accessPointKey?.group === group.id &&
94
- tab.accessPointKey.id === point.id;
95
- return (_jsx("li", { children: _jsxs("button", { type: "button", className: clsx(LIST_ITEM_CLASS, {
96
- 'bg-[var(--color-bg-selected)]': isPicked,
97
- }), "aria-pressed": isPicked, disabled: !point.isPickable, title: point.disabledReason ?? point.description, onClick: () => tab.selectAccessPoint(group.id, point.id), children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: point.title ?? point.id }), _jsx("span", { className: "shrink-0 text-sm text-[var(--color-text-muted)]", children: point.isPickable
98
- ? `${point.schema?.columns.length ?? 0} columns`
99
- : point.disabledReason })] }) }, point.id));
100
- }) })] }, group.id))) })), tab.accessPoint?.isPickable === true && (_jsx(CubeAccessPointPreview, { accessPoint: tab.accessPoint, marketplaceLink: tab.marketplaceLink })), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("label", { className: "w-20 shrink-0 text-base", htmlFor: warehouseId, children: "Warehouse" }), _jsx("input", { id: warehouseId, className: clsx(INPUT_CLASS, 'min-w-0 flex-1'), spellCheck: false, disabled: project !== undefined || tab.editorState.readOnly, title: tab.editorState.readOnly ? READ_ONLY_CUBE_TITLE : undefined, value: tab.warehouse, onChange: (event) => tab.setWarehouse(event.target.value) })] }), tab.isAdding && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_PENDING_LABEL.RESOLVING_SOURCE })), tab.error !== undefined && (_jsx(CubeDataProductTabAlert, { error: tab.error }))] }));
121
+ !tab.shownCandidates.length && (_jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: CUBE_DATA_PRODUCT_TAB_MESSAGE.NONE_IN_PROJECT })), tab.isTruncated && (_jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: CUBE_DATA_PRODUCT_TAB_MESSAGE.TRUNCATED })), tab.isDescribing && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: "loading access points" })), _jsx(CubeAccessPointList, { tab: tab }), tab.accessPoint?.isPickable === true && (_jsx(CubeAccessPointPreview, { accessPoint: tab.accessPoint, marketplaceLink: tab.marketplaceLink })), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("label", { className: "w-20 shrink-0 text-base", htmlFor: warehouseId, children: "Warehouse" }), _jsx("input", { id: warehouseId, className: clsx(INPUT_CLASS, 'min-w-0 flex-1'), spellCheck: false, disabled: project !== undefined || tab.editorState.readOnly, title: tab.editorState.readOnly ? READ_ONLY_CUBE_TITLE : undefined, value: tab.warehouse, onChange: (event) => tab.setWarehouse(event.target.value) })] }), tab.isAdding && (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_PENDING_LABEL.RESOLVING_SOURCE })), tab.error !== undefined && (_jsx(CubeDataProductTabAlert, { error: tab.error }))] }));
101
122
  });
102
123
  //# sourceMappingURL=CubeDataProductTab.js.map