@finos/legend-cube-builder 0.0.3 → 0.0.4

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 (691) hide show
  1. package/README.md +52 -19
  2. package/docs/adding-an-operation.md +102 -13
  3. package/docs/hosting.md +82 -4
  4. package/docs/testing.md +114 -9
  5. package/lib/__lib__/LegendCubeCommand.d.ts +2 -1
  6. package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
  7. package/lib/__lib__/LegendCubeCommand.js +5 -0
  8. package/lib/__lib__/LegendCubeCommand.js.map +1 -1
  9. package/lib/__lib__/LegendCubeDataProductLabels.d.ts +45 -0
  10. package/lib/__lib__/LegendCubeDataProductLabels.d.ts.map +1 -0
  11. package/lib/__lib__/LegendCubeDataProductLabels.js +60 -0
  12. package/lib/__lib__/LegendCubeDataProductLabels.js.map +1 -0
  13. package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts +56 -0
  14. package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts.map +1 -0
  15. package/lib/__lib__/LegendCubeDirectConnectionLabels.js +76 -0
  16. package/lib/__lib__/LegendCubeDirectConnectionLabels.js.map +1 -0
  17. package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
  18. package/lib/__lib__/LegendCubeHelpText.js +12 -2
  19. package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
  20. package/lib/__lib__/LegendCubeIngestLabels.d.ts +25 -0
  21. package/lib/__lib__/LegendCubeIngestLabels.d.ts.map +1 -0
  22. package/lib/__lib__/LegendCubeIngestLabels.js +29 -0
  23. package/lib/__lib__/LegendCubeIngestLabels.js.map +1 -0
  24. package/lib/__lib__/LegendCubeLabels.d.ts +76 -3
  25. package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
  26. package/lib/__lib__/LegendCubeLabels.js +102 -4
  27. package/lib/__lib__/LegendCubeLabels.js.map +1 -1
  28. package/lib/__lib__/LegendCubeProjectLabels.d.ts +22 -0
  29. package/lib/__lib__/LegendCubeProjectLabels.d.ts.map +1 -0
  30. package/lib/__lib__/LegendCubeProjectLabels.js +23 -0
  31. package/lib/__lib__/LegendCubeProjectLabels.js.map +1 -0
  32. package/lib/__lib__/LegendCubeTesting.d.ts +1 -0
  33. package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
  34. package/lib/__lib__/LegendCubeTesting.js +1 -0
  35. package/lib/__lib__/LegendCubeTesting.js.map +1 -1
  36. package/lib/__test-utils__/CubeCanvasTestUtils.d.ts.map +1 -1
  37. package/lib/__test-utils__/CubeCanvasTestUtils.js +1 -1
  38. package/lib/__test-utils__/CubeCanvasTestUtils.js.map +1 -1
  39. package/lib/__test-utils__/CubeConnectionTestSupport.d.ts +22 -0
  40. package/lib/__test-utils__/CubeConnectionTestSupport.d.ts.map +1 -0
  41. package/lib/__test-utils__/CubeConnectionTestSupport.js +30 -0
  42. package/lib/__test-utils__/CubeConnectionTestSupport.js.map +1 -0
  43. package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts +31 -0
  44. package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts.map +1 -0
  45. package/lib/__test-utils__/CubeDirectConnectionFixtures.js +63 -0
  46. package/lib/__test-utils__/CubeDirectConnectionFixtures.js.map +1 -0
  47. package/lib/__test-utils__/CubeEngineTestSupport.d.ts +12 -0
  48. package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
  49. package/lib/__test-utils__/CubeEngineTestSupport.js +21 -0
  50. package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
  51. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +37 -0
  52. package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -0
  53. package/lib/__test-utils__/CubeExpressionTestUtils.js +83 -0
  54. package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -0
  55. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts +25 -0
  56. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -1
  57. package/lib/__test-utils__/CubeOperationsTestUtils.js +56 -10
  58. package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -1
  59. package/lib/__test-utils__/CubePageTestUtils.d.ts +12 -0
  60. package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
  61. package/lib/__test-utils__/CubePageTestUtils.js +25 -1
  62. package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
  63. package/lib/__test-utils__/CubeTestApplication.d.ts +5 -1
  64. package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
  65. package/lib/__test-utils__/CubeTestApplication.js +9 -1
  66. package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
  67. package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts +33 -0
  68. package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts.map +1 -0
  69. package/lib/__test-utils__/FakeCubeConnectionExplorer.js +67 -0
  70. package/lib/__test-utils__/FakeCubeConnectionExplorer.js.map +1 -0
  71. package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts +45 -0
  72. package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts.map +1 -0
  73. package/lib/__test-utils__/FakeCubeDataProductCatalog.js +137 -0
  74. package/lib/__test-utils__/FakeCubeDataProductCatalog.js.map +1 -0
  75. package/lib/__test-utils__/FakeCubeEngine.d.ts +2 -0
  76. package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
  77. package/lib/__test-utils__/FakeCubeEngine.js +14 -1
  78. package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
  79. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +35 -0
  80. package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -0
  81. package/lib/__test-utils__/FakeCubeIngestCatalog.js +107 -0
  82. package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -0
  83. package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts +30 -0
  84. package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts.map +1 -0
  85. package/lib/__test-utils__/FakeCubeProjectCatalog.js +64 -0
  86. package/lib/__test-utils__/FakeCubeProjectCatalog.js.map +1 -0
  87. package/lib/components/CubeAddItems.d.ts +35 -0
  88. package/lib/components/CubeAddItems.d.ts.map +1 -0
  89. package/lib/components/CubeAddItems.js +82 -0
  90. package/lib/components/CubeAddItems.js.map +1 -0
  91. package/lib/components/CubeEditor.d.ts +5 -1
  92. package/lib/components/CubeEditor.d.ts.map +1 -1
  93. package/lib/components/CubeEditor.js +33 -13
  94. package/lib/components/CubeEditor.js.map +1 -1
  95. package/lib/components/CubeEntrySourceBanner.d.ts +23 -0
  96. package/lib/components/CubeEntrySourceBanner.d.ts.map +1 -0
  97. package/lib/components/CubeEntrySourceBanner.js +32 -0
  98. package/lib/components/CubeEntrySourceBanner.js.map +1 -0
  99. package/lib/components/CubeNodeIcon.d.ts.map +1 -1
  100. package/lib/components/CubeNodeIcon.js +8 -1
  101. package/lib/components/CubeNodeIcon.js.map +1 -1
  102. package/lib/components/CubeSchemaColumnsTable.d.ts +21 -0
  103. package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -0
  104. package/lib/components/CubeSchemaColumnsTable.js +6 -0
  105. package/lib/components/CubeSchemaColumnsTable.js.map +1 -0
  106. package/lib/components/canvas/CubeCanvas.d.ts +4 -3
  107. package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
  108. package/lib/components/canvas/CubeCanvas.js +31 -12
  109. package/lib/components/canvas/CubeCanvas.js.map +1 -1
  110. package/lib/components/canvas/CubeCanvasContextMenu.d.ts +8 -4
  111. package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
  112. package/lib/components/canvas/CubeCanvasContextMenu.js +19 -9
  113. package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
  114. package/lib/components/canvas/CubeCanvasDnd.d.ts +7 -5
  115. package/lib/components/canvas/CubeCanvasDnd.d.ts.map +1 -1
  116. package/lib/components/canvas/CubeCanvasDnd.js +14 -9
  117. package/lib/components/canvas/CubeCanvasDnd.js.map +1 -1
  118. package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
  119. package/lib/components/canvas/CubeCanvasElements.js +6 -3
  120. package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
  121. package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
  122. package/lib/components/canvas/CubeCanvasNode.js +30 -20
  123. package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
  124. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
  125. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
  126. package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
  127. package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
  128. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
  129. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
  130. package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
  131. package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
  132. package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
  133. package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
  134. package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
  135. package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
  136. package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
  137. package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
  138. package/lib/components/editors/CubeColumnChecklist.js +41 -0
  139. package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
  140. package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
  141. package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
  142. package/lib/components/editors/CubeConcatEditor.js +147 -0
  143. package/lib/components/editors/CubeConcatEditor.js.map +1 -0
  144. package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
  145. package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
  146. package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
  147. package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
  148. package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
  149. package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
  150. package/lib/components/editors/CubeDifferenceEditor.js +29 -0
  151. package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
  152. package/lib/components/editors/CubeExtendEditor.d.ts +25 -0
  153. package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
  154. package/lib/components/editors/CubeExtendEditor.js +86 -0
  155. package/lib/components/editors/CubeExtendEditor.js.map +1 -0
  156. package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
  157. package/lib/components/editors/CubeFilterEditor.js +3 -3
  158. package/lib/components/editors/CubeFilterEditor.js.map +1 -1
  159. package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
  160. package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
  161. package/lib/components/editors/CubeGroupEditor.js +70 -0
  162. package/lib/components/editors/CubeGroupEditor.js.map +1 -0
  163. package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
  164. package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
  165. package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
  166. package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
  167. package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
  168. package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
  169. package/lib/components/editors/CubeJoinEditor.js +7 -37
  170. package/lib/components/editors/CubeJoinEditor.js.map +1 -1
  171. package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
  172. package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
  173. package/lib/components/editors/CubeJoinKeyRows.js +65 -0
  174. package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
  175. package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
  176. package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
  177. package/lib/components/editors/CubeNodeEditorPanel.js +51 -13
  178. package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
  179. package/lib/components/editors/CubeNodeEditorPopper.d.ts +40 -0
  180. package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
  181. package/lib/components/editors/CubeNodeEditorPopper.js +125 -0
  182. package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
  183. package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
  184. package/lib/components/editors/CubeNodeEditorRegistry.js +15 -1
  185. package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
  186. package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
  187. package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
  188. package/lib/components/editors/CubePartitionEditor.js +93 -0
  189. package/lib/components/editors/CubePartitionEditor.js.map +1 -0
  190. package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -1
  191. package/lib/components/editors/CubeRenameEditor.js +6 -4
  192. package/lib/components/editors/CubeRenameEditor.js.map +1 -1
  193. package/lib/components/editors/CubeRestrictEditor.js +1 -1
  194. package/lib/components/editors/CubeRestrictEditor.js.map +1 -1
  195. package/lib/components/editors/CubeSortEditor.d.ts.map +1 -1
  196. package/lib/components/editors/CubeSortEditor.js +10 -37
  197. package/lib/components/editors/CubeSortEditor.js.map +1 -1
  198. package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
  199. package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
  200. package/lib/components/editors/CubeSortRowEditor.js +62 -0
  201. package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
  202. package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
  203. package/lib/components/editors/CubeSourceEditor.js +18 -5
  204. package/lib/components/editors/CubeSourceEditor.js.map +1 -1
  205. package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
  206. package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
  207. package/lib/components/editors/CubeWarehouseControl.js +44 -0
  208. package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
  209. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
  210. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
  211. package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
  212. package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
  213. package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
  214. package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
  215. package/lib/components/examples/CubeExamplesDialog.js +68 -0
  216. package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
  217. package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
  218. package/lib/components/grid/CubeGridRegion.js +19 -8
  219. package/lib/components/grid/CubeGridRegion.js.map +1 -1
  220. package/lib/components/grid/CubeGridValues.d.ts +16 -0
  221. package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
  222. package/lib/components/grid/CubeGridValues.js +44 -0
  223. package/lib/components/grid/CubeGridValues.js.map +1 -1
  224. package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
  225. package/lib/components/grid/CubeResultGrid.js +14 -2
  226. package/lib/components/grid/CubeResultGrid.js.map +1 -1
  227. package/lib/components/palette/CubePalette.d.ts.map +1 -1
  228. package/lib/components/palette/CubePalette.js +23 -12
  229. package/lib/components/palette/CubePalette.js.map +1 -1
  230. package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
  231. package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
  232. package/lib/components/source-picker/CubeDataProductTab.js +102 -0
  233. package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
  234. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
  235. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
  236. package/lib/components/source-picker/CubeDirectConnectionTab.js +87 -0
  237. package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
  238. package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
  239. package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
  240. package/lib/components/source-picker/CubeIngestTab.js +66 -0
  241. package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
  242. package/lib/components/source-picker/CubeInlineModelTab.d.ts +37 -0
  243. package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
  244. package/lib/components/source-picker/CubeInlineModelTab.js +71 -0
  245. package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
  246. package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
  247. package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
  248. package/lib/components/source-picker/CubePickerStep.js +23 -0
  249. package/lib/components/source-picker/CubePickerStep.js.map +1 -0
  250. package/lib/components/source-picker/CubeProjectTab.d.ts +27 -0
  251. package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
  252. package/lib/components/source-picker/CubeProjectTab.js +50 -0
  253. package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
  254. package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
  255. package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
  256. package/lib/components/source-picker/CubeSourcePicker.js +20 -58
  257. package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
  258. package/lib/components/spec-transfer/CubeSpecTransferDialog.js +1 -1
  259. package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
  260. package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
  261. package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
  262. package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
  263. package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
  264. package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
  265. package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
  266. package/lib/graph-manager/CubeDataProduct.js +102 -0
  267. package/lib/graph-manager/CubeDataProduct.js.map +1 -0
  268. package/lib/graph-manager/CubeDataProductCatalog.d.ts +167 -0
  269. package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
  270. package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
  271. package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
  272. package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
  273. package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
  274. package/lib/graph-manager/CubeDirectConnection.js +48 -0
  275. package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
  276. package/lib/graph-manager/CubeEngine.d.ts +37 -2
  277. package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
  278. package/lib/graph-manager/CubeEngine.js +4 -1
  279. package/lib/graph-manager/CubeEngine.js.map +1 -1
  280. package/lib/graph-manager/CubeIngest.d.ts +50 -0
  281. package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
  282. package/lib/graph-manager/CubeIngest.js +88 -0
  283. package/lib/graph-manager/CubeIngest.js.map +1 -0
  284. package/lib/graph-manager/CubeIngestCatalog.d.ts +116 -0
  285. package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
  286. package/lib/graph-manager/CubeIngestCatalog.js +80 -0
  287. package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
  288. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
  289. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
  290. package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
  291. package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
  292. package/lib/graph-manager/CubeProject.d.ts +41 -0
  293. package/lib/graph-manager/CubeProject.d.ts.map +1 -0
  294. package/lib/graph-manager/CubeProject.js +84 -0
  295. package/lib/graph-manager/CubeProject.js.map +1 -0
  296. package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
  297. package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
  298. package/lib/graph-manager/CubeProjectCatalog.js +17 -0
  299. package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
  300. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +63 -1
  301. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
  302. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +50 -1
  303. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
  304. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
  305. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
  306. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
  307. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
  308. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +29 -0
  309. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
  310. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +84 -0
  311. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
  312. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
  313. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
  314. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
  315. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
  316. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
  317. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
  318. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
  319. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
  320. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
  321. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
  322. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
  323. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
  324. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
  325. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
  326. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
  327. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
  328. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
  329. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +140 -0
  330. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
  331. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +62 -0
  332. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
  333. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +119 -0
  334. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
  335. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
  336. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
  337. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
  338. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js.map +1 -0
  339. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
  340. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +63 -4
  341. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
  342. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
  343. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
  344. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
  345. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
  346. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +34 -0
  347. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
  348. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +64 -0
  349. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
  350. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
  351. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
  352. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
  353. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
  354. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +97 -3
  355. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
  356. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +585 -20
  357. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
  358. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
  359. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
  360. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
  361. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
  362. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
  363. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
  364. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +91 -0
  365. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
  366. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
  367. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
  368. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
  369. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
  370. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
  371. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
  372. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
  373. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
  374. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
  375. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
  376. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
  377. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
  378. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
  379. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
  380. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +27 -1
  381. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
  382. package/lib/index.css +2 -2
  383. package/lib/index.css.map +1 -1
  384. package/lib/index.d.ts +11 -1
  385. package/lib/index.d.ts.map +1 -1
  386. package/lib/index.js +10 -1
  387. package/lib/index.js.map +1 -1
  388. package/lib/stores/CubeAddPlacement.d.ts +32 -0
  389. package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
  390. package/lib/stores/CubeAddPlacement.js +40 -0
  391. package/lib/stores/CubeAddPlacement.js.map +1 -0
  392. package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
  393. package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
  394. package/lib/stores/CubeDataProductRecheck.js +54 -0
  395. package/lib/stores/CubeDataProductRecheck.js.map +1 -0
  396. package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
  397. package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
  398. package/lib/stores/CubeDataProductRuntimeState.js +190 -0
  399. package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
  400. package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
  401. package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
  402. package/lib/stores/CubeDataProductWarehouse.js +25 -0
  403. package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
  404. package/lib/stores/CubeEditorState.d.ts +100 -16
  405. package/lib/stores/CubeEditorState.d.ts.map +1 -1
  406. package/lib/stores/CubeEditorState.js +347 -47
  407. package/lib/stores/CubeEditorState.js.map +1 -1
  408. package/lib/stores/CubeEntrySource.d.ts +78 -0
  409. package/lib/stores/CubeEntrySource.d.ts.map +1 -0
  410. package/lib/stores/CubeEntrySource.js +200 -0
  411. package/lib/stores/CubeEntrySource.js.map +1 -0
  412. package/lib/stores/CubeExamples.d.ts +43 -0
  413. package/lib/stores/CubeExamples.d.ts.map +1 -0
  414. package/lib/stores/CubeExamples.js +296 -0
  415. package/lib/stores/CubeExamples.js.map +1 -0
  416. package/lib/stores/CubeExamplesState.d.ts +45 -0
  417. package/lib/stores/CubeExamplesState.d.ts.map +1 -0
  418. package/lib/stores/CubeExamplesState.js +81 -0
  419. package/lib/stores/CubeExamplesState.js.map +1 -0
  420. package/lib/stores/CubeExecutionState.d.ts +6 -2
  421. package/lib/stores/CubeExecutionState.d.ts.map +1 -1
  422. package/lib/stores/CubeExecutionState.js +15 -5
  423. package/lib/stores/CubeExecutionState.js.map +1 -1
  424. package/lib/stores/CubeExtendTyping.d.ts +72 -0
  425. package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
  426. package/lib/stores/CubeExtendTyping.js +176 -0
  427. package/lib/stores/CubeExtendTyping.js.map +1 -0
  428. package/lib/stores/CubeGridQuickActions.d.ts +14 -6
  429. package/lib/stores/CubeGridQuickActions.d.ts.map +1 -1
  430. package/lib/stores/CubeGridQuickActions.js +53 -15
  431. package/lib/stores/CubeGridQuickActions.js.map +1 -1
  432. package/lib/stores/CubeHost.d.ts +32 -1
  433. package/lib/stores/CubeHost.d.ts.map +1 -1
  434. package/lib/stores/CubeHost.js +21 -1
  435. package/lib/stores/CubeHost.js.map +1 -1
  436. package/lib/stores/CubeIngestRecheck.d.ts +26 -0
  437. package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
  438. package/lib/stores/CubeIngestRecheck.js +53 -0
  439. package/lib/stores/CubeIngestRecheck.js.map +1 -0
  440. package/lib/stores/CubeNodeEditorState.d.ts +101 -5
  441. package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
  442. package/lib/stores/CubeNodeEditorState.js +221 -10
  443. package/lib/stores/CubeNodeEditorState.js.map +1 -1
  444. package/lib/stores/CubeShowPureState.d.ts +5 -2
  445. package/lib/stores/CubeShowPureState.d.ts.map +1 -1
  446. package/lib/stores/CubeShowPureState.js +7 -4
  447. package/lib/stores/CubeShowPureState.js.map +1 -1
  448. package/lib/stores/CubeSourcePickerState.d.ts +54 -65
  449. package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
  450. package/lib/stores/CubeSourcePickerState.js +155 -276
  451. package/lib/stores/CubeSourcePickerState.js.map +1 -1
  452. package/lib/stores/CubeSpecTransferState.d.ts +2 -2
  453. package/lib/stores/CubeSpecTransferState.js +2 -2
  454. package/lib/stores/LocalModelCatalog.d.ts +2 -0
  455. package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
  456. package/lib/stores/LocalModelCatalog.js +17 -3
  457. package/lib/stores/LocalModelCatalog.js.map +1 -1
  458. package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
  459. package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
  460. package/lib/stores/editors/CubeAggregationRows.js +164 -0
  461. package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
  462. package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
  463. package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
  464. package/lib/stores/editors/CubeConcatDraft.js +44 -0
  465. package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
  466. package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
  467. package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
  468. package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
  469. package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
  470. package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
  471. package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
  472. package/lib/stores/editors/CubeExtendDraft.js +359 -0
  473. package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
  474. package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
  475. package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
  476. package/lib/stores/editors/CubeGroupDraft.js +106 -0
  477. package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
  478. package/lib/stores/editors/CubeJoinDraft.d.ts +9 -10
  479. package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
  480. package/lib/stores/editors/CubeJoinDraft.js +92 -21
  481. package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
  482. package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
  483. package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
  484. package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
  485. package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
  486. package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
  487. package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
  488. package/lib/stores/editors/CubeNodeDraft.js +23 -5
  489. package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
  490. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
  491. package/lib/stores/editors/CubeNodeDraftRegistry.js +20 -1
  492. package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
  493. package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
  494. package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
  495. package/lib/stores/editors/CubePartitionDraft.js +154 -0
  496. package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
  497. package/lib/stores/editors/CubeSortDraft.d.ts +2 -10
  498. package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -1
  499. package/lib/stores/editors/CubeSortDraft.js +9 -35
  500. package/lib/stores/editors/CubeSortDraft.js.map +1 -1
  501. package/lib/stores/editors/CubeSortRows.d.ts +34 -0
  502. package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
  503. package/lib/stores/editors/CubeSortRows.js +50 -0
  504. package/lib/stores/editors/CubeSortRows.js.map +1 -0
  505. package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
  506. package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
  507. package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
  508. package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
  509. package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
  510. package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
  511. package/lib/stores/fixtures/CubeSampleSql.js +64 -0
  512. package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
  513. package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
  514. package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
  515. package/lib/stores/fixtures/CubeSportsModel.js +158 -0
  516. package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
  517. package/lib/stores/fixtures/CubeTradesModel.d.ts +29 -0
  518. package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
  519. package/lib/stores/fixtures/CubeTradesModel.js +197 -0
  520. package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
  521. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
  522. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
  523. package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
  524. package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
  525. package/lib/stores/source-picker/CubeDataProductTabState.d.ts +186 -0
  526. package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
  527. package/lib/stores/source-picker/CubeDataProductTabState.js +681 -0
  528. package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
  529. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +140 -0
  530. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
  531. package/lib/stores/source-picker/CubeDirectConnectionTabState.js +516 -0
  532. package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
  533. package/lib/stores/source-picker/CubeIngestTabState.d.ts +114 -0
  534. package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
  535. package/lib/stores/source-picker/CubeIngestTabState.js +455 -0
  536. package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
  537. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +107 -0
  538. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
  539. package/lib/stores/source-picker/CubeInlineModelTabState.js +347 -0
  540. package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
  541. package/lib/stores/source-picker/CubeProjectTabState.d.ts +62 -0
  542. package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
  543. package/lib/stores/source-picker/CubeProjectTabState.js +181 -0
  544. package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
  545. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +48 -0
  546. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
  547. package/lib/stores/source-picker/CubeSourcePickerTab.js +24 -0
  548. package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
  549. package/package.json +10 -6
  550. package/src/__lib__/LegendCubeCommand.ts +5 -0
  551. package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
  552. package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
  553. package/src/__lib__/LegendCubeHelpText.ts +25 -1
  554. package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
  555. package/src/__lib__/LegendCubeLabels.ts +162 -4
  556. package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
  557. package/src/__lib__/LegendCubeTesting.ts +1 -0
  558. package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
  559. package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
  560. package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
  561. package/src/__test-utils__/CubeEngineTestSupport.ts +38 -0
  562. package/src/__test-utils__/CubeExpressionTestUtils.ts +119 -0
  563. package/src/__test-utils__/CubeOperationsTestUtils.ts +93 -18
  564. package/src/__test-utils__/CubePageTestUtils.tsx +35 -0
  565. package/src/__test-utils__/CubeTestApplication.ts +21 -2
  566. package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
  567. package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
  568. package/src/__test-utils__/FakeCubeEngine.ts +25 -1
  569. package/src/__test-utils__/FakeCubeIngestCatalog.ts +180 -0
  570. package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
  571. package/src/components/CubeAddItems.tsx +179 -0
  572. package/src/components/CubeEditor.tsx +73 -44
  573. package/src/components/CubeEntrySourceBanner.tsx +64 -0
  574. package/src/components/CubeNodeIcon.tsx +13 -0
  575. package/src/components/CubeSchemaColumnsTable.tsx +49 -0
  576. package/src/components/canvas/CubeCanvas.tsx +49 -14
  577. package/src/components/canvas/CubeCanvasContextMenu.tsx +31 -30
  578. package/src/components/canvas/CubeCanvasDnd.ts +16 -9
  579. package/src/components/canvas/CubeCanvasElements.ts +8 -2
  580. package/src/components/canvas/CubeCanvasNode.tsx +61 -43
  581. package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
  582. package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
  583. package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
  584. package/src/components/editors/CubeColumnChecklist.tsx +130 -0
  585. package/src/components/editors/CubeConcatEditor.tsx +374 -0
  586. package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
  587. package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
  588. package/src/components/editors/CubeExtendEditor.tsx +271 -0
  589. package/src/components/editors/CubeFilterEditor.tsx +7 -0
  590. package/src/components/editors/CubeGroupEditor.tsx +135 -0
  591. package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
  592. package/src/components/editors/CubeJoinEditor.tsx +12 -132
  593. package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
  594. package/src/components/editors/CubeNodeEditorPanel.tsx +91 -28
  595. package/src/components/editors/CubeNodeEditorPopper.tsx +183 -0
  596. package/src/components/editors/CubeNodeEditorRegistry.ts +21 -0
  597. package/src/components/editors/CubePartitionEditor.tsx +208 -0
  598. package/src/components/editors/CubeRenameEditor.tsx +10 -5
  599. package/src/components/editors/CubeRestrictEditor.tsx +1 -1
  600. package/src/components/editors/CubeSortEditor.tsx +20 -142
  601. package/src/components/editors/CubeSortRowEditor.tsx +176 -0
  602. package/src/components/editors/CubeSourceEditor.tsx +42 -30
  603. package/src/components/editors/CubeWarehouseControl.tsx +113 -0
  604. package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
  605. package/src/components/examples/CubeExamplesDialog.tsx +199 -0
  606. package/src/components/grid/CubeGridRegion.tsx +48 -10
  607. package/src/components/grid/CubeGridValues.ts +55 -0
  608. package/src/components/grid/CubeResultGrid.tsx +24 -8
  609. package/src/components/palette/CubePalette.tsx +33 -15
  610. package/src/components/source-picker/CubeDataProductTab.tsx +392 -0
  611. package/src/components/source-picker/CubeDirectConnectionTab.tsx +340 -0
  612. package/src/components/source-picker/CubeIngestTab.tsx +232 -0
  613. package/src/components/source-picker/CubeInlineModelTab.tsx +191 -0
  614. package/src/components/source-picker/CubePickerStep.tsx +49 -0
  615. package/src/components/source-picker/CubeProjectTab.tsx +114 -0
  616. package/src/components/source-picker/CubeSourcePicker.tsx +62 -227
  617. package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +1 -1
  618. package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
  619. package/src/graph-manager/CubeDataProduct.ts +150 -0
  620. package/src/graph-manager/CubeDataProductCatalog.ts +245 -0
  621. package/src/graph-manager/CubeDirectConnection.ts +67 -0
  622. package/src/graph-manager/CubeEngine.ts +43 -1
  623. package/src/graph-manager/CubeIngest.ts +144 -0
  624. package/src/graph-manager/CubeIngestCatalog.ts +169 -0
  625. package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
  626. package/src/graph-manager/CubeProject.ts +117 -0
  627. package/src/graph-manager/CubeProjectCatalog.ts +40 -0
  628. package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +145 -1
  629. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
  630. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +101 -0
  631. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
  632. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
  633. package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
  634. package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
  635. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +201 -0
  636. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +183 -0
  637. package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
  638. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +84 -4
  639. package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
  640. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +116 -0
  641. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
  642. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +967 -24
  643. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
  644. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +147 -0
  645. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
  646. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
  647. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
  648. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +42 -1
  649. package/src/index.ts +20 -0
  650. package/src/stores/CubeAddPlacement.ts +67 -0
  651. package/src/stores/CubeDataProductRecheck.ts +93 -0
  652. package/src/stores/CubeDataProductRuntimeState.ts +256 -0
  653. package/src/stores/CubeDataProductWarehouse.ts +40 -0
  654. package/src/stores/CubeEditorState.ts +511 -63
  655. package/src/stores/CubeEntrySource.ts +278 -0
  656. package/src/stores/CubeExamples.ts +457 -0
  657. package/src/stores/CubeExamplesState.ts +108 -0
  658. package/src/stores/CubeExecutionState.ts +24 -5
  659. package/src/stores/CubeExtendTyping.ts +291 -0
  660. package/src/stores/CubeGridQuickActions.ts +69 -14
  661. package/src/stores/CubeHost.ts +71 -1
  662. package/src/stores/CubeIngestRecheck.ts +92 -0
  663. package/src/stores/CubeNodeEditorState.ts +278 -9
  664. package/src/stores/CubeShowPureState.ts +7 -4
  665. package/src/stores/CubeSourcePickerState.ts +160 -330
  666. package/src/stores/CubeSpecTransferState.ts +2 -2
  667. package/src/stores/LocalModelCatalog.ts +22 -3
  668. package/src/stores/editors/CubeAggregationRows.ts +299 -0
  669. package/src/stores/editors/CubeConcatDraft.ts +49 -0
  670. package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
  671. package/src/stores/editors/CubeExtendDraft.ts +532 -0
  672. package/src/stores/editors/CubeGroupDraft.ts +145 -0
  673. package/src/stores/editors/CubeJoinDraft.ts +130 -41
  674. package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
  675. package/src/stores/editors/CubeNodeDraft.ts +26 -6
  676. package/src/stores/editors/CubeNodeDraftRegistry.ts +25 -0
  677. package/src/stores/editors/CubePartitionDraft.ts +214 -0
  678. package/src/stores/editors/CubeSortDraft.ts +17 -54
  679. package/src/stores/editors/CubeSortRows.ts +84 -0
  680. package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
  681. package/src/stores/fixtures/CubeSampleSql.ts +85 -0
  682. package/src/stores/fixtures/CubeSportsModel.ts +182 -0
  683. package/src/stores/fixtures/CubeTradesModel.ts +241 -0
  684. package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
  685. package/src/stores/source-picker/CubeDataProductTabState.ts +839 -0
  686. package/src/stores/source-picker/CubeDirectConnectionTabState.ts +647 -0
  687. package/src/stores/source-picker/CubeIngestTabState.ts +551 -0
  688. package/src/stores/source-picker/CubeInlineModelTabState.ts +448 -0
  689. package/src/stores/source-picker/CubeProjectTabState.ts +218 -0
  690. package/src/stores/source-picker/CubeSourcePickerTab.ts +50 -0
  691. package/tsconfig.json +89 -0
@@ -1 +1 @@
1
- {"version":3,"file":"CubeSortEditor.d.ts","sourceRoot":"","sources":["../../../src/components/editors/CubeSortEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAqGvE;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,WAAoB,mBAAmB;;CA6DhE,CAAC"}
1
+ {"version":3,"file":"CubeSortEditor.d.ts","sourceRoot":"","sources":["../../../src/components/editors/CubeSortEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAOvE;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,WAAoB,mBAAmB;;CA+ChE,CAAC"}
@@ -14,29 +14,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { ArrowDownIcon, ArrowUpIcon, TimesIcon } from '@finos/legend-art';
18
- import { isSortableType, isSortDirection, MESSAGE_CANNOT_HAVE_DUPLICATES, SORT_DIRECTION_DESCRIPTIONS, SORT_DIRECTIONS, validateSortKey, } from '@finos/legend-cube';
17
+ import { isSortableType } from '@finos/legend-cube';
19
18
  import { guaranteeType } from '@finos/legend-shared';
20
19
  import { observer } from 'mobx-react-lite';
21
- import { CUBE_SORT_COLUMN_DISABLED_REASON } from '../../__lib__/LegendCubeLabels.js';
22
- import { CubeSortDraft, } from '../../stores/editors/CubeSortDraft.js';
20
+ import { READ_ONLY_CUBE_TITLE } from '../../__lib__/LegendCubeLabels.js';
21
+ import { CubeSortDraft } from '../../stores/editors/CubeSortDraft.js';
23
22
  import { CubeButton } from '../CubeButton.js';
24
- import { CubeColumnPicker } from './CubeColumnPicker.js';
25
- const ROW_BUTTON_CLASS = 'flex h-6 w-6 items-center justify-center text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] disabled:text-[var(--color-text-disabled)]';
26
- const CubeSortRowEditor = observer((props) => {
27
- const { draft, row, position, count, schema, takenColumns, problem, readOnly, } = props;
28
- const isColumnDisabled = (column) => !isSortableType(column.type)
29
- ? CUBE_SORT_COLUMN_DISABLED_REASON.NOT_SORTABLE
30
- : takenColumns.has(column.name)
31
- ? CUBE_SORT_COLUMN_DISABLED_REASON.TAKEN
32
- : undefined;
33
- return (_jsxs("li", { className: "flex flex-col gap-1 border-b border-[var(--color-border-subtle)] py-1", children: [_jsxs("div", { className: "grid grid-cols-[1fr_auto_auto_auto_auto] items-center gap-1", children: [_jsx(CubeColumnPicker, { label: `Sort column ${position}`, schema: schema, value: row.column, disabled: readOnly, invalid: problem !== undefined, isColumnDisabled: isColumnDisabled, onChange: (name) => draft.setColumn(row.key, name) }), _jsx("select", { "aria-label": `Sort direction ${position}`, className: "h-6 rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-input)] px-1 text-base", value: row.direction, disabled: readOnly, onChange: (event) => {
34
- const direction = event.target.value;
35
- if (isSortDirection(direction)) {
36
- draft.setDirection(row.key, direction);
37
- }
38
- }, children: SORT_DIRECTIONS.map((direction) => (_jsx("option", { value: direction, children: SORT_DIRECTION_DESCRIPTIONS[direction] }, direction))) }), _jsx("button", { className: ROW_BUTTON_CLASS, "aria-label": `Move sort column ${position} up`, title: "Sort by this column before the one above", disabled: readOnly || position === 1, onClick: () => draft.moveRow(row.key, -1), children: _jsx(ArrowUpIcon, {}) }), _jsx("button", { className: ROW_BUTTON_CLASS, "aria-label": `Move sort column ${position} down`, title: "Sort by this column after the one below", disabled: readOnly || position === count, onClick: () => draft.moveRow(row.key, 1), children: _jsx(ArrowDownIcon, {}) }), _jsx("button", { className: ROW_BUTTON_CLASS, "aria-label": `Remove sort column ${position}`, title: "Remove this sort column", disabled: readOnly, onClick: () => draft.removeRow(row.key), children: _jsx(TimesIcon, {}) })] }), problem && (_jsx("div", { className: "text-sm text-[var(--color-status-error)]", children: problem }))] }));
39
- });
23
+ import { CubeSortRowEditor, getSortRowProblems, getTakenSortColumns, } from './CubeSortRowEditor.js';
40
24
  /**
41
25
  * The Sort editor (spec §17.6: an ordered list of column and direction rows,
42
26
  * added, removed and reordered). The first row sorts first. A column that
@@ -49,24 +33,13 @@ export const CubeSortEditor = observer((props) => {
49
33
  const draft = guaranteeType(props.draft, CubeSortDraft);
50
34
  const [schema] = props.inputSchemas;
51
35
  const { rows } = draft;
52
- // a row's problem, as the node will judge it; a blank row has none
53
- const problems = rows.map((row, index) => {
54
- if (!row.column) {
55
- return undefined;
56
- }
57
- const errors = [];
58
- validateSortKey(row, schema, errors);
59
- return (errors[0] ??
60
- (rows.slice(0, index).some(({ column }) => column === row.column)
61
- ? MESSAGE_CANNOT_HAVE_DUPLICATES('Sort columns')
62
- : undefined));
63
- });
36
+ const problems = getSortRowProblems(rows, schema);
64
37
  const sortable = schema.columns.filter((column) => isSortableType(column.type));
65
38
  const canAddRow = !readOnly && rows.length < sortable.length;
66
- return (_jsxs("div", { className: "flex flex-col gap-2 text-base", children: [_jsx("ul", { "aria-label": "Sort columns", className: "max-h-80 overflow-auto", children: rows.map((row, index) => (_jsx(CubeSortRowEditor, { draft: draft, row: row, position: index + 1, count: rows.length, schema: schema, takenColumns: new Set(rows
67
- .filter((other) => other.key !== row.key && other.column)
68
- .map(({ column }) => column)), problem: problems[index], readOnly: readOnly }, row.key))) }), _jsx("div", { children: _jsx(CubeButton, { title: canAddRow
69
- ? 'Add a column to sort by'
70
- : 'Every column that can be sorted already has a row', disabled: !canAddRow, onClick: () => draft.addRow(), children: "Add sort column" }) })] }));
39
+ return (_jsxs("div", { className: "flex flex-col gap-2 text-base", children: [_jsx("ul", { "aria-label": "Sort columns", children: rows.map((row, index) => (_jsx(CubeSortRowEditor, { row: row, position: index + 1, count: rows.length, schema: schema, takenColumns: getTakenSortColumns(rows, row), problem: problems[index], readOnly: readOnly, onColumn: (column) => draft.setColumn(row.key, column), onDirection: (direction) => draft.setDirection(row.key, direction), onMove: (offset) => draft.moveRow(row.key, offset), onRemove: () => draft.removeRow(row.key) }, row.key))) }), _jsx("div", { children: _jsx(CubeButton, { title: readOnly
40
+ ? READ_ONLY_CUBE_TITLE
41
+ : canAddRow
42
+ ? 'Add a column to sort by'
43
+ : 'Every column that can be sorted already has a row', disabled: !canAddRow, onClick: () => draft.addRow(), children: "Add sort column" }) })] }));
71
44
  });
72
45
  //# sourceMappingURL=CubeSortEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CubeSortEditor.js","sourceRoot":"","sources":["../../../src/components/editors/CubeSortEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CubeSortEditor.js","sourceRoot":"","sources":["../../../src/components/editors/CubeSortEditor.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAe,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,KAA0B,EAAE,EAAE;IACpE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,YAAwB,CAAC;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5B,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC7D,OAAO,CACL,eAAK,SAAS,EAAC,+BAA+B,aAC5C,2BAAe,cAAc,YAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACxB,KAAC,iBAAiB,IAEhB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,KAAK,GAAG,CAAC,EACnB,KAAK,EAAE,IAAI,CAAC,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,EAC5C,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EACtD,WAAW,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAClE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAClD,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAXnC,GAAG,CAAC,GAAG,CAYZ,CACH,CAAC,GACC,EACL,wBACE,KAAC,UAAU,IACT,KAAK,EACH,QAAQ;wBACN,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,SAAS;4BACT,CAAC,CAAC,yBAAyB;4BAC3B,CAAC,CAAC,mDAAmD,EAE3D,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,gCAGlB,GACT,IACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,47 @@
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 Schema, type SortDirection } from '@finos/legend-cube';
17
+ import type { CubeSortRow } from '../../stores/editors/CubeSortRows.js';
18
+ /**
19
+ * Each sort row's first problem, as the node will judge it: its key
20
+ * (`validateSortKey`), then a column an earlier row has; a blank row has none
21
+ */
22
+ export declare const getSortRowProblems: (rows: readonly CubeSortRow[], schema: Schema) => (string | undefined)[];
23
+ /** The columns of the other rows, which a row can't take */
24
+ export declare const getTakenSortColumns: (rows: readonly CubeSortRow[], row: CubeSortRow) => ReadonlySet<string>;
25
+ /**
26
+ * One sort row (a Sort's, PLAN §11.4; a Partition's window, §11.6): its
27
+ * column, its direction, buttons that move it up or down and remove it, then
28
+ * its first problem. A column that can't be sorted, or that another row has,
29
+ * can't be picked.
30
+ */
31
+ export declare const CubeSortRowEditor: ((props: {
32
+ row: CubeSortRow;
33
+ position: number;
34
+ count: number;
35
+ schema: Schema;
36
+ /** The columns of the other rows, which this row can't take */
37
+ takenColumns: ReadonlySet<string>;
38
+ problem: string | undefined;
39
+ readOnly: boolean;
40
+ onColumn: (column: string) => void;
41
+ onDirection: (direction: SortDirection) => void;
42
+ onMove: (offset: -1 | 1) => void;
43
+ onRemove: () => void;
44
+ }) => import("react/jsx-runtime").JSX.Element) & {
45
+ displayName: string;
46
+ };
47
+ //# sourceMappingURL=CubeSortRowEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeSortRowEditor.d.ts","sourceRoot":"","sources":["../../../src/components/editors/CubeSortRowEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAIL,KAAK,MAAM,EAIX,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAMxE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,SAAS,WAAW,EAAE,EAC5B,QAAQ,MAAM,KACb,CAAC,MAAM,GAAG,SAAS,CAAC,EAanB,CAAC;AAEL,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,GAC9B,MAAM,SAAS,WAAW,EAAE,EAC5B,KAAK,WAAW,KACf,WAAW,CAAC,MAAM,CAKlB,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,WACpB;IACN,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;;CAsFF,CAAC"}
@@ -0,0 +1,62 @@
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 { ArrowDownIcon, ArrowUpIcon, TimesIcon } from '@finos/legend-art';
18
+ import { isSortableType, isSortDirection, MESSAGE_CANNOT_HAVE_DUPLICATES, SORT_DIRECTION_DESCRIPTIONS, SORT_DIRECTIONS, validateSortKey, } from '@finos/legend-cube';
19
+ import { observer } from 'mobx-react-lite';
20
+ import { CUBE_SORT_COLUMN_DISABLED_REASON } from '../../__lib__/LegendCubeLabels.js';
21
+ import { CubeColumnPicker } from './CubeColumnPicker.js';
22
+ const ROW_BUTTON_CLASS = 'flex h-6 w-6 items-center justify-center text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] disabled:text-[var(--color-text-disabled)]';
23
+ /**
24
+ * Each sort row's first problem, as the node will judge it: its key
25
+ * (`validateSortKey`), then a column an earlier row has; a blank row has none
26
+ */
27
+ export const getSortRowProblems = (rows, schema) => rows.map((row, index) => {
28
+ if (!row.column) {
29
+ return undefined;
30
+ }
31
+ const errors = [];
32
+ validateSortKey(row, schema, errors);
33
+ return (errors[0] ??
34
+ (rows.slice(0, index).some(({ column }) => column === row.column)
35
+ ? MESSAGE_CANNOT_HAVE_DUPLICATES('Sort columns')
36
+ : undefined));
37
+ });
38
+ /** The columns of the other rows, which a row can't take */
39
+ export const getTakenSortColumns = (rows, row) => new Set(rows
40
+ .filter((other) => other.key !== row.key && other.column)
41
+ .map(({ column }) => column));
42
+ /**
43
+ * One sort row (a Sort's, PLAN §11.4; a Partition's window, §11.6): its
44
+ * column, its direction, buttons that move it up or down and remove it, then
45
+ * its first problem. A column that can't be sorted, or that another row has,
46
+ * can't be picked.
47
+ */
48
+ export const CubeSortRowEditor = observer((props) => {
49
+ const { row, position, count, schema, takenColumns, problem, readOnly, onColumn, onDirection, onMove, onRemove, } = props;
50
+ const isColumnDisabled = (column) => !isSortableType(column.type)
51
+ ? CUBE_SORT_COLUMN_DISABLED_REASON.NOT_SORTABLE
52
+ : takenColumns.has(column.name)
53
+ ? CUBE_SORT_COLUMN_DISABLED_REASON.TAKEN
54
+ : undefined;
55
+ return (_jsxs("li", { className: "flex flex-col gap-1 border-b border-[var(--color-border-subtle)] py-1", children: [_jsxs("div", { className: "grid grid-cols-[1fr_auto_auto_auto_auto] items-center gap-1", children: [_jsx(CubeColumnPicker, { label: `Sort column ${position}`, schema: schema, value: row.column, disabled: readOnly, invalid: problem !== undefined, isColumnDisabled: isColumnDisabled, onChange: onColumn }), _jsx("select", { "aria-label": `Sort direction ${position}`, className: "h-6 rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-input)] px-1 text-base", value: row.direction, disabled: readOnly, onChange: (event) => {
56
+ const direction = event.target.value;
57
+ if (isSortDirection(direction)) {
58
+ onDirection(direction);
59
+ }
60
+ }, children: SORT_DIRECTIONS.map((direction) => (_jsx("option", { value: direction, children: SORT_DIRECTION_DESCRIPTIONS[direction] }, direction))) }), _jsx("button", { className: ROW_BUTTON_CLASS, "aria-label": `Move sort column ${position} up`, title: "Sort by this column before the one above", disabled: readOnly || position === 1, onClick: () => onMove(-1), children: _jsx(ArrowUpIcon, {}) }), _jsx("button", { className: ROW_BUTTON_CLASS, "aria-label": `Move sort column ${position} down`, title: "Sort by this column after the one below", disabled: readOnly || position === count, onClick: () => onMove(1), children: _jsx(ArrowDownIcon, {}) }), _jsx("button", { className: ROW_BUTTON_CLASS, "aria-label": `Remove sort column ${position}`, title: "Remove this sort column", disabled: readOnly, onClick: onRemove, children: _jsx(TimesIcon, {}) })] }), problem && (_jsx("div", { className: "text-sm text-[var(--color-status-error)]", children: problem }))] }));
61
+ });
62
+ //# sourceMappingURL=CubeSortRowEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeSortRowEditor.js","sourceRoot":"","sources":["../../../src/components/editors/CubeSortRowEditor.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CubeSourceEditor.d.ts","sourceRoot":"","sources":["../../../src/components/editors/CubeSourceEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgBH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WAAoB,mBAAmB;;CAoElE,CAAC"}
1
+ {"version":3,"file":"CubeSourceEditor.d.ts","sourceRoot":"","sources":["../../../src/components/editors/CubeSourceEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmBH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WAAoB,mBAAmB;;CA6ElE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /**
3
3
  * Copyright (c) 2026-present, Goldman Sachs
4
4
  *
@@ -19,9 +19,12 @@ import { getRelationalDisplayName, RelationalTableSource, } from '@finos/legend-
19
19
  import { guaranteeType } from '@finos/legend-shared';
20
20
  import { flowResult } from 'mobx';
21
21
  import { observer } from 'mobx-react-lite';
22
- import { CUBE_PENDING_LABEL, getColumnTypeLabel, } from '../../__lib__/LegendCubeLabels.js';
22
+ import { CUBE_DIRECT_CONNECTION_FALLBACK_LABEL, getCubeConnectionSummaryLabel, } from '../../__lib__/LegendCubeDirectConnectionLabels.js';
23
+ import { CUBE_PENDING_LABEL } from '../../__lib__/LegendCubeLabels.js';
24
+ import { getCubeDirectConnection } from '../../graph-manager/CubeDirectConnection.js';
25
+ import { getCubeProjectCoordinates } from '../../graph-manager/CubeProject.js';
23
26
  import { CubeButton } from '../CubeButton.js';
24
- import { CubeColumnTypeIcon } from './CubeColumnPicker.js';
27
+ import { CubeSchemaColumnsTable } from '../CubeSchemaColumnsTable.js';
25
28
  /**
26
29
  * A table source (spec §17.6): where it reads from, its columns as the engine
27
30
  * typed them, and Refresh, which types the table again. Nothing here is
@@ -32,9 +35,19 @@ export const CubeSourceEditor = observer((props) => {
32
35
  const source = guaranteeType(props.draft.original, RelationalTableSource);
33
36
  const refreshing = editorState.isPendingSource(source);
34
37
  const { resolution } = source;
35
- return (_jsxs("div", { className: "relative flex flex-col gap-2", children: [_jsxs("dl", { className: "grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-base", children: [_jsx("dt", { className: "text-[var(--color-text-secondary)]", children: "Database" }), _jsx("dd", { className: "min-w-0 break-all", children: source.database }), _jsx("dt", { className: "text-[var(--color-text-secondary)]", children: "Schema" }), _jsx("dd", { children: getRelationalDisplayName(source.schema) }), _jsx("dt", { className: "text-[var(--color-text-secondary)]", children: "Table" }), _jsx("dd", { children: getRelationalDisplayName(source.table) })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(CubeButton, { title: "Type the table again with the engine, e.g. after its columns changed", disabled: refreshing, onClick: () => {
38
+ // a direct cube's tables all belong to a Database Cube builds: its
39
+ // connection says where they come from (PLAN §6.8)
40
+ const model = editorState.document.context?.model;
41
+ const connection = model ? getCubeDirectConnection(model) : undefined;
42
+ const description = connection &&
43
+ editorState.host.connectionExplorer?.describeConnection(connection);
44
+ // a project cube's tables come from its project at the saved version (PLAN §6.3)
45
+ const project = model ? getCubeProjectCoordinates(model) : undefined;
46
+ return (_jsxs("div", { className: "relative flex flex-col gap-2", children: [_jsxs("dl", { className: "grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-base", children: [connection ? (_jsxs(_Fragment, { children: [_jsx("dt", { className: "text-[var(--color-text-secondary)]", children: "Connection" }), _jsx("dd", { className: "min-w-0 break-words", children: description?.supported
47
+ ? getCubeConnectionSummaryLabel(description.summary)
48
+ : CUBE_DIRECT_CONNECTION_FALLBACK_LABEL })] })) : (_jsxs(_Fragment, { children: [project && (_jsxs(_Fragment, { children: [_jsx("dt", { className: "text-[var(--color-text-secondary)]", children: "Project" }), _jsxs("dd", { className: "min-w-0 break-all", children: [project.groupId, ":", project.artifactId] }), _jsx("dt", { className: "text-[var(--color-text-secondary)]", children: "Version" }), _jsx("dd", { children: project.versionId })] })), _jsx("dt", { className: "text-[var(--color-text-secondary)]", children: "Database" }), _jsx("dd", { className: "min-w-0 break-all", children: source.database })] })), _jsx("dt", { className: "text-[var(--color-text-secondary)]", children: "Schema" }), _jsx("dd", { children: getRelationalDisplayName(source.schema) }), _jsx("dt", { className: "text-[var(--color-text-secondary)]", children: "Table" }), _jsx("dd", { children: getRelationalDisplayName(source.table) })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(CubeButton, { title: "Type the table again with the engine, e.g. after its columns changed", disabled: refreshing, onClick: () => {
36
49
  flowResult(editorState.refreshSource(source.id)).catch(editorState.host.applicationStore.alertUnhandledError);
37
- }, children: "Refresh" }), refreshing && (_jsx("span", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_PENDING_LABEL.REFRESHING_SOURCE }))] }), _jsx(PanelLoadingIndicator, { isLoading: refreshing }), resolution.kind === 'resolved' ? (_jsxs("table", { className: "w-full text-base", "aria-label": "Columns", children: [_jsx("thead", { children: _jsxs("tr", { className: "text-left text-[var(--color-text-secondary)]", children: [_jsx("th", { className: "font-normal", children: "Column" }), _jsx("th", { className: "font-normal", children: "Type" })] }) }), _jsx("tbody", { children: resolution.schema.columns.map((column) => (_jsxs("tr", { children: [_jsx("td", { className: "break-all pr-2", children: column.name }), _jsx("td", { title: column.type.fullName, children: _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(CubeColumnTypeIcon, { type: column.type, className: "text-[var(--color-text-secondary)]" }), getColumnTypeLabel(column)] }) })] }, column.name))) })] })) : (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: resolution.kind === 'failed'
50
+ }, children: "Refresh" }), refreshing && (_jsx("span", { className: "text-base text-[var(--color-text-secondary)]", children: CUBE_PENDING_LABEL.REFRESHING_SOURCE }))] }), _jsx(PanelLoadingIndicator, { isLoading: refreshing }), resolution.kind === 'resolved' ? (_jsx(CubeSchemaColumnsTable, { schema: resolution.schema })) : (_jsx("div", { className: "text-base text-[var(--color-text-secondary)]", children: resolution.kind === 'failed'
38
51
  ? resolution.message
39
52
  : 'The table has not been typed yet.' }))] }));
40
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CubeSourceEditor.js","sourceRoot":"","sources":["../../../src/components/editors/CubeSourceEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CubeSourceEditor.js","sourceRoot":"","sources":["../../../src/components/editors/CubeSourceEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
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 CubeDataProductRuntimeState } from '../../stores/CubeDataProductRuntimeState.js';
17
+ /**
18
+ * The warehouse a lakehouse cube runs on, edited in place: Apply, Enter, or
19
+ * closing the node editor, runs the cube on another one, as one undo step. Text typed but not
20
+ * applied belongs to the cube's context it was typed on; once the context
21
+ * changes, e.g. on Undo, the control shows the cube's warehouse again.
22
+ * Below it, after a run the warehouse failed, what to do about it
23
+ */
24
+ export declare const CubeWarehouseControl: ((props: {
25
+ runtime: CubeDataProductRuntimeState;
26
+ readOnly: boolean;
27
+ }) => import("react/jsx-runtime").JSX.Element) & {
28
+ displayName: string;
29
+ };
30
+ //# sourceMappingURL=CubeWarehouseControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeWarehouseControl.d.ts","sourceRoot":"","sources":["../../../src/components/editors/CubeWarehouseControl.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,6CAA6C,CAAC;AAGrD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,WACvB;IAAE,OAAO,EAAE,2BAA2B,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;;CA0EpE,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { observer } from 'mobx-react-lite';
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { CUBE_WAREHOUSE_APPLY_TITLE, getCubeWarehouseErrorHint, } from '../../__lib__/LegendCubeDataProductLabels.js';
5
+ import { READ_ONLY_CUBE_TITLE } from '../../__lib__/LegendCubeLabels.js';
6
+ import { CubeDataProductRunErrorKind, } from '../../stores/CubeDataProductRuntimeState.js';
7
+ import { CubeButton } from '../CubeButton.js';
8
+ /**
9
+ * The warehouse a lakehouse cube runs on, edited in place: Apply, Enter, or
10
+ * closing the node editor, runs the cube on another one, as one undo step. Text typed but not
11
+ * applied belongs to the cube's context it was typed on; once the context
12
+ * changes, e.g. on Undo, the control shows the cube's warehouse again.
13
+ * Below it, after a run the warehouse failed, what to do about it
14
+ */
15
+ export const CubeWarehouseControl = observer((props) => {
16
+ const { runtime, readOnly } = props;
17
+ const { context } = runtime.editorState.document;
18
+ const current = runtime.effectiveWarehouse ?? '';
19
+ const [draft, setDraft] = useState();
20
+ const text = draft !== undefined && draft.context === context ? draft.text : current;
21
+ const disabled = readOnly || !runtime.canEditWarehouse;
22
+ const canApply = !disabled && text.trim().length > 0 && text.trim() !== current;
23
+ const apply = () => {
24
+ if (canApply && runtime.setWarehouse(text)) {
25
+ setDraft(undefined);
26
+ }
27
+ };
28
+ // closing the node editor applies, as for every edit (PLAN §11.8),
29
+ // without remembering it for the viewer's next cubes: Undo takes it back
30
+ const latest = useRef({ text, canApply });
31
+ latest.current = { text, canApply };
32
+ useEffect(() => runtime.editorState.nodeEditor.addFlusher(() => {
33
+ if (latest.current.canApply &&
34
+ runtime.setWarehouse(latest.current.text, { remember: false })) {
35
+ setDraft(undefined);
36
+ }
37
+ }, { isPending: () => latest.current.canApply }), [runtime]);
38
+ return (_jsxs(_Fragment, { children: [_jsxs("span", { className: "flex min-w-0 items-center gap-1", children: [_jsx("input", { className: "h-6 min-w-0 flex-1 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)]", "aria-label": "Warehouse", spellCheck: false, disabled: disabled, title: readOnly ? READ_ONLY_CUBE_TITLE : undefined, value: text, onChange: (event) => setDraft({ context, text: event.target.value }), onKeyDown: (event) => {
39
+ if (event.key === 'Enter') {
40
+ apply();
41
+ }
42
+ } }), _jsx(CubeButton, { title: readOnly ? READ_ONLY_CUBE_TITLE : CUBE_WAREHOUSE_APPLY_TITLE, disabled: !canApply, onClick: apply, children: "Apply" })] }), runtime.runErrorKind === CubeDataProductRunErrorKind.WAREHOUSE && (_jsx("span", { className: "mt-1 block text-sm text-[var(--color-status-error)]", role: "alert", children: getCubeWarehouseErrorHint(current, runtime.canEditWarehouse) }))] }));
43
+ });
44
+ //# sourceMappingURL=CubeWarehouseControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeWarehouseControl.js","sourceRoot":"","sources":["../../../src/components/editors/CubeWarehouseControl.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
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
+ /** Whether a press on the target, outside the editor, closes it */
18
+ export declare const isCubeNodeEditorDismissedBy: (target: EventTarget | null, editor: Element | null) => boolean;
19
+ /**
20
+ * Closes the floating node editor, applying its edits, on a press of the
21
+ * main button outside it, or on Escape (PLAN §11.8, spec §17.5). A press
22
+ * closes it as it goes down, before the click, so a button pressed outside
23
+ * (Execute, Undo) acts on the applied edits. Nothing closes it while a Cube
24
+ * dialog is open or something opened from it holds it; an Escape a field or
25
+ * a dialog already used is theirs, and so is one in the results grid's menu.
26
+ * A surface opened from the editor and shown elsewhere (a portal) must be
27
+ * one of MUI's layers, or hold the editor open (`nodeEditor.holdOpen()`),
28
+ * or a press in it closes the editor.
29
+ */
30
+ export declare const useCubeNodeEditorDismiss: (editorState: CubeEditorState, editorRef: React.RefObject<Element | null>) => void;
31
+ //# sourceMappingURL=useCubeNodeEditorDismiss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCubeNodeEditorDismiss.d.ts","sourceRoot":"","sources":["../../../src/components/editors/useCubeNodeEditorDismiss.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAkBvE,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,GACtC,QAAQ,WAAW,GAAG,IAAI,EAC1B,QAAQ,OAAO,GAAG,IAAI,KACrB,OAGkC,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,eAAe,EAC5B,WAAW,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KACzC,IA4CF,CAAC"}
@@ -0,0 +1,83 @@
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 { useEffect } from 'react';
17
+ import { returnFocusToCubeCanvasNode } from '../canvas/CubeCanvasNodeFocus.js';
18
+ /**
19
+ * What a press outside the floating editor leaves alone (PLAN §11.8):
20
+ * a node, whose click applies and opens it or selects it; the canvas's
21
+ * background, controls and minimap, so panning or zooming keeps the editor
22
+ * (a plain click on the background closes it, through the canvas); the
23
+ * splitter above the results, as the editor follows its node when the
24
+ * canvas is resized; and MUI's layers, where a dropdown, menu or dialog
25
+ * opened from the editor lives.
26
+ */
27
+ const LEFT_ALONE = '.react-flow__node, .react-flow__pane, .react-flow__controls, .react-flow__minimap, .reflex-splitter, .MuiModal-root, .MuiPopover-root, .MuiPopper-root';
28
+ /** An Escape there is the results grid's, e.g. closing its menu */
29
+ const GRID_LAYERS = '.ag-popup, .ag-menu';
30
+ /** Whether a press on the target, outside the editor, closes it */
31
+ export const isCubeNodeEditorDismissedBy = (target, editor) => target instanceof Element &&
32
+ !editor?.contains(target) &&
33
+ target.closest(LEFT_ALONE) === null;
34
+ /**
35
+ * Closes the floating node editor, applying its edits, on a press of the
36
+ * main button outside it, or on Escape (PLAN §11.8, spec §17.5). A press
37
+ * closes it as it goes down, before the click, so a button pressed outside
38
+ * (Execute, Undo) acts on the applied edits. Nothing closes it while a Cube
39
+ * dialog is open or something opened from it holds it; an Escape a field or
40
+ * a dialog already used is theirs, and so is one in the results grid's menu.
41
+ * A surface opened from the editor and shown elsewhere (a portal) must be
42
+ * one of MUI's layers, or hold the editor open (`nodeEditor.holdOpen()`),
43
+ * or a press in it closes the editor.
44
+ */
45
+ export const useCubeNodeEditorDismiss = (editorState, editorRef) => {
46
+ const isOpen = editorState.nodeEditor.nodeId !== undefined;
47
+ useEffect(() => {
48
+ if (!isOpen) {
49
+ return undefined;
50
+ }
51
+ const canDismiss = () => !editorState.isDialogOpen && !editorState.nodeEditor.isHeld;
52
+ const onPointerDown = (event) => {
53
+ if (event.button === 0 &&
54
+ // on macOS, Ctrl with the main button is a right-click
55
+ !event.ctrlKey &&
56
+ canDismiss() &&
57
+ isCubeNodeEditorDismissedBy(event.target, editorRef.current)) {
58
+ editorState.nodeEditor.finish();
59
+ }
60
+ };
61
+ const onKeyDown = (event) => {
62
+ if (event.key === 'Escape' &&
63
+ !event.defaultPrevented &&
64
+ !(event.target instanceof Element &&
65
+ event.target.closest(GRID_LAYERS) !== null) &&
66
+ canDismiss()) {
67
+ const { nodeId } = editorState.nodeEditor;
68
+ const focused = document.activeElement;
69
+ if (editorState.nodeEditor.finish() && nodeId !== undefined) {
70
+ returnFocusToCubeCanvasNode(nodeId, editorRef.current, focused);
71
+ }
72
+ }
73
+ };
74
+ // capturing, so a press that something else stops still closes it
75
+ document.addEventListener('pointerdown', onPointerDown, true);
76
+ document.addEventListener('keydown', onKeyDown);
77
+ return () => {
78
+ document.removeEventListener('pointerdown', onPointerDown, true);
79
+ document.removeEventListener('keydown', onKeyDown);
80
+ };
81
+ }, [editorState, editorRef, isOpen]);
82
+ };
83
+ //# sourceMappingURL=useCubeNodeEditorDismiss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCubeNodeEditorDismiss.js","sourceRoot":"","sources":["../../../src/components/editors/useCubeNodeEditorDismiss.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,GACd,wJAAwJ,CAAC;AAE3J,mEAAmE;AACnE,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,mEAAmE;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,MAA0B,EAC1B,MAAsB,EACb,EAAE,CACX,MAAM,YAAY,OAAO;IACzB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;IACzB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,WAA4B,EAC5B,SAA0C,EACpC,EAAE;IACR,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC;IAC3D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,UAAU,GAAG,GAAY,EAAE,CAC/B,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;QAC9D,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAQ,EAAE;YAClD,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;gBAClB,uDAAuD;gBACvD,CAAC,KAAK,CAAC,OAAO;gBACd,UAAU,EAAE;gBACZ,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAC5D,CAAC;gBACD,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC/C,IACE,KAAK,CAAC,GAAG,KAAK,QAAQ;gBACtB,CAAC,KAAK,CAAC,gBAAgB;gBACvB,CAAC,CACC,KAAK,CAAC,MAAM,YAAY,OAAO;oBAC/B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAC3C;gBACD,UAAU,EAAE,EACZ,CAAC;gBACD,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC;gBAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;gBACvC,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC5D,2BAA2B,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,kEAAkE;QAClE,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAC9D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;YACjE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
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
+ /**
18
+ * The Examples dialog (PLAN §6.9): a row per sample dataset, its card first,
19
+ * then its example cubes. Either replaces the cube, and Undo brings it back.
20
+ */
21
+ export declare const CubeExamplesDialog: ((props: {
22
+ editorState: CubeEditorState;
23
+ }) => import("react/jsx-runtime").JSX.Element) & {
24
+ displayName: string;
25
+ };
26
+ //# sourceMappingURL=CubeExamplesDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubeExamplesDialog.d.ts","sourceRoot":"","sources":["../../../src/components/examples/CubeExamplesDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAkHvE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,WACrB;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE;;CAgDzC,CAAC"}
@@ -0,0 +1,68 @@
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 { ChartIcon, ChevronRightIcon, Dialog, Modal, ModalBody, ModalFooter, ModalFooterButton, ModalHeader, ShoppingCartIcon, TrophyIcon, } from '@finos/legend-art';
18
+ import { flowResult } from 'mobx';
19
+ import { observer } from 'mobx-react-lite';
20
+ import { Fragment, useMemo } from 'react';
21
+ import { CubeNodeIcon } from '../CubeNodeIcon.js';
22
+ /** Each dataset's icon, by dataset id */
23
+ const DATASET_ICONS = {
24
+ northwind: ShoppingCartIcon,
25
+ sports: TrophyIcon,
26
+ trades: ChartIcon,
27
+ };
28
+ const DatasetIcon = (props) => {
29
+ const Icon = DATASET_ICONS[props.dataset] ?? ChartIcon;
30
+ return _jsx(Icon, { className: props.className });
31
+ };
32
+ const CARD = 'flex h-full w-full flex-col gap-1 rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-panel)] p-3 text-left hover:border-[var(--color-accent)] hover:bg-[var(--color-bg-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--color-accent)]';
33
+ /** A dataset: starts a new cube on its model */
34
+ const DatasetCard = observer((props) => {
35
+ const { editorState, dataset } = props;
36
+ return (_jsxs("button", { type: "button", className: `${CARD} border-l-4 border-l-[var(--color-accent)]`, title: `Start a new cube on ${dataset.name}, from its first table`, onClick: () => editorState.examples.startOnDataset(dataset), children: [_jsxs("span", { className: "flex items-center gap-2 text-lg font-medium text-[var(--color-text-primary)]", children: [_jsx(DatasetIcon, { dataset: dataset.id, className: "shrink-0 text-xl text-[var(--color-accent)]" }), dataset.name] }), _jsx("span", { className: "text-base text-[var(--color-text-secondary)]", children: dataset.description }), _jsx("span", { className: "mt-auto pt-1 text-sm text-[var(--color-text-muted)]", children: dataset.tables.join(' · ') }), _jsx("span", { className: "text-sm text-[var(--color-accent)]", children: "Start a new cube \u2192" })] }));
37
+ });
38
+ /** An example cube: opens in place of the cube and runs */
39
+ const ExampleCard = observer((props) => {
40
+ const { editorState, example } = props;
41
+ const { registry } = editorState;
42
+ // the example's nodes, in order, as their icons
43
+ const steps = useMemo(() => example
44
+ .createDocument()
45
+ .query.nodes.map((node) => registry.get(node.type))
46
+ .filter((definition) => definition !== undefined)
47
+ .map((definition) => ({
48
+ icon: definition.icon,
49
+ label: definition.label,
50
+ })), [example, registry]);
51
+ return (_jsxs("button", { type: "button", className: CARD, title: `Open ${example.name}: it replaces this cube and runs`, onClick: () => {
52
+ flowResult(editorState.examples.openExample(example)).catch(editorState.host.applicationStore.alertUnhandledError);
53
+ }, children: [_jsxs("span", { className: "flex items-center gap-2 text-base font-medium text-[var(--color-text-primary)]", children: [_jsx(DatasetIcon, { dataset: example.dataset, className: "shrink-0 text-[var(--color-text-secondary)]" }), example.name] }), _jsx("span", { className: "text-sm text-[var(--color-text-secondary)]", children: example.description }), _jsx("span", { className: "mt-auto flex flex-wrap items-center gap-1 pt-2 text-[var(--color-text-muted)]", "aria-label": `Steps: ${steps.map((step) => step.label).join(', ')}`, children: steps.map((step, index) => (
54
+ // eslint-disable-next-line react/no-array-index-key
55
+ _jsxs(Fragment, { children: [index > 0 && _jsx(ChevronRightIcon, { className: "text-xs" }), _jsx("span", { title: step.label, children: _jsx(CubeNodeIcon, { icon: step.icon }) })] }, index))) })] }));
56
+ });
57
+ /**
58
+ * The Examples dialog (PLAN §6.9): a row per sample dataset, its card first,
59
+ * then its example cubes. Either replaces the cube, and Undo brings it back.
60
+ */
61
+ export const CubeExamplesDialog = observer((props) => {
62
+ const { editorState } = props;
63
+ const { examples } = editorState;
64
+ const { applicationStore } = editorState.host;
65
+ const darkMode = !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled;
66
+ return (_jsx(Dialog, { open: examples.isOpen, onClose: () => examples.close(), children: _jsxs(Modal, { darkMode: darkMode, className: "w-[960px] max-w-full", children: [_jsx(ModalHeader, { children: _jsx("div", { className: "modal__title", children: "Examples" }) }), _jsxs(ModalBody, { children: [_jsx("div", { className: "mb-3 text-base text-[var(--color-text-secondary)]", children: "Sample data to explore. Open an example cube, or start a new cube on a dataset. Either replaces this cube: Undo brings it back." }), _jsx("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", "aria-label": "Examples", children: examples.datasets.map((dataset) => (_jsxs(Fragment, { children: [_jsx(DatasetCard, { editorState: editorState, dataset: dataset }), examples.examplesOf(dataset).map((example) => (_jsx(ExampleCard, { editorState: editorState, example: example }, example.id)))] }, dataset.id))) })] }), _jsx(ModalFooter, { children: _jsx(ModalFooterButton, { darkMode: darkMode, formatText: false, type: "secondary", text: "Close", onClick: () => examples.close() }) })] }) }));
67
+ });
68
+ //# sourceMappingURL=CubeExamplesDialog.js.map