@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
@@ -13,86 +13,75 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { type CubeContext, type ModelContext } from '@finos/legend-cube';
17
- import { type GeneratorFn } from '@finos/legend-shared';
18
- import { type CubeModelOutline, type CubeOutlineDatabase, type CubeOutlineRuntime, type CubeOutlineSchema, type CubeOutlineTable } from '../graph-manager/CubeEngine.js';
16
+ import type { GeneratorFn } from '@finos/legend-shared';
19
17
  import type { CubeEditorState } from './CubeEditorState.js';
20
- import { type BundledModel } from './LocalModelCatalog.js';
21
- /** Whether a table can be picked: a table with a column Cube can't read can't */
22
- export declare const isTableSelectable: (table: CubeOutlineTable) => boolean;
18
+ import { CubeDataProductTabState } from './source-picker/CubeDataProductTabState.js';
19
+ import { CubeDirectConnectionTabState } from './source-picker/CubeDirectConnectionTabState.js';
20
+ import { CubeIngestTabState } from './source-picker/CubeIngestTabState.js';
21
+ import { CubeProjectTabState } from './source-picker/CubeProjectTabState.js';
22
+ import { CubeInlineModelTabState } from './source-picker/CubeInlineModelTabState.js';
23
+ import { type CubeSourcePickerTab, CubeSourcePickerTabKey } from './source-picker/CubeSourcePickerTab.js';
23
24
  /**
24
- * The source picker (PLAN §6.2.7, Settled before M1.8): model, then database,
25
- * then a runtime keyed by that database, then schema and table. A step with
26
- * a single choice is picked automatically. The first table fixes the cube's
27
- * model and runtime; later tables come from the same database and runtime.
28
- * A table is added only once its schema has resolved.
25
+ * The source dialog (PLAN §6.1, §6.8): a tab per way to find a source, the
26
+ * Sample Data tab first. It opens on the tab asked for, or the one the cube's
27
+ * fixed context belongs to, which is then the only tab enabled; Add runs the
28
+ * open tab's Add and closes the dialog once the source is added.
29
29
  */
30
30
  export declare class CubeSourcePickerState {
31
31
  readonly editorState: CubeEditorState;
32
+ readonly modelTab: CubeInlineModelTabState;
33
+ readonly directTab: CubeDirectConnectionTabState;
34
+ readonly dataProductTab: CubeDataProductTabState;
35
+ readonly ingestTab: CubeIngestTabState;
36
+ readonly projectTab: CubeProjectTabState;
32
37
  isOpen: boolean;
33
- model: ModelContext | undefined;
34
- /** The model is Pure text the user pastes, not a bundled one */
35
- isPastingModel: boolean;
36
- pastedModelText: string;
37
- /** The model the paste box last loaded: only it keeps the box shown */
38
- private pastedModel;
39
- outline: CubeModelOutline | undefined;
40
- isLoadingModel: boolean;
41
- databasePath: string | undefined;
42
- runtimePath: string | undefined;
43
- schemaName: string | undefined;
44
- tableName: string | undefined;
45
- tableSearch: string;
46
- isResolving: boolean;
47
- /** Why the outline or the table couldn't be loaded, shown in the dialog */
48
- error: string | undefined;
49
- /** Counts Add presses: closing the dialog moves it on, so the pending Add is dropped */
50
- private confirmRequest;
38
+ activeTabKey: CubeSourcePickerTabKey;
39
+ /** Open with no tab chosen yet, from the empty canvas's link (U4(b)) */
40
+ isChoosingTab: boolean;
51
41
  constructor(editorState: CubeEditorState);
52
- get models(): readonly BundledModel[];
53
- /** Once the cube has a model, every table comes from it */
54
- get fixedContext(): CubeContext | undefined;
55
- /** Once the cube has a table, every other one comes from its database */
56
- get fixedDatabasePath(): string | undefined;
57
- get databases(): readonly CubeOutlineDatabase[];
58
- get runtimes(): readonly CubeOutlineRuntime[];
59
- get schemas(): readonly CubeOutlineSchema[];
60
- /** The schema's tables, views left out, filtered by the search text */
61
- get tables(): readonly CubeOutlineTable[];
62
- get canConfirm(): boolean;
42
+ /** The tabs that add their own kind of source, each from its palette item */
43
+ private get dedicatedTabs();
44
+ /** The tabs the host serves, in order */
45
+ get tabs(): readonly CubeSourcePickerTab[];
63
46
  /**
64
- * Opens the dialog on the cube's model, or on the only model offered. A
65
- * model whose outline failed to load is loaded again. Does nothing while
66
- * the cube is read-only.
47
+ * The tab the cube's fixed context belongs to, which the host may not
48
+ * serve; the Sample Data tab takes any context no tab claims
67
49
  */
68
- open(): void;
69
- /** Closes the dialog; a table still being typed is not added */
70
- close(): void;
71
- /** Offers a text box for a Pure model in place of the bundled ones */
72
- startPastingModel(): void;
73
- setPastedModelText(text: string): void;
50
+ get fixedTab(): CubeSourcePickerTab | undefined;
51
+ get activeTab(): CubeSourcePickerTab;
52
+ /**
53
+ * The tab a palette item opens (DP-3): a data product's or an ingest data
54
+ * set's own tab, when the host serves it; for a table, the table tab the
55
+ * cube uses, else the table tab open last, else the Sample Data tab
56
+ */
57
+ tabForSourceType(type: string): CubeSourcePickerTab | undefined;
74
58
  /**
75
- * Loads the pasted Pure text as the model: the cube will hold the text
76
- * itself, so it counts towards the size a saved cube can have
59
+ * A cube with a fixed context takes sources from its own tab only, and
60
+ * none when the host doesn't serve that tab
77
61
  */
78
- loadPastedModel(): GeneratorFn<void>;
62
+ isTabEnabled(tab: CubeSourcePickerTab): boolean;
79
63
  /**
80
- * Loads a model's outline. Any model but the one the paste box loaded ends
81
- * pasting, e.g. a bundled model, or the model of a cube opened meanwhile.
64
+ * Why the dialog can't open, else undefined: the cube is read-only, or the
65
+ * host doesn't serve the cube's kind of source, so no tab could add one
82
66
  */
83
- selectModel(model: ModelContext): GeneratorFn<void>;
84
- selectDatabase(path: string | undefined): void;
85
- selectRuntime(path: string | undefined): void;
86
- selectSchema(name: string | undefined): void;
87
- selectTable(name: string | undefined): void;
88
- setTableSearch(search: string): void;
67
+ get disabledReason(): string | undefined;
68
+ get canConfirm(): boolean;
69
+ /**
70
+ * Opens the dialog on the cube's own tab, else the tab asked for, else the
71
+ * one open last. Does nothing while it can't open (`disabledReason`).
72
+ */
73
+ open(tabKey?: CubeSourcePickerTabKey): void;
89
74
  /**
90
- * Types the picked table with the engine, then adds it; the first table
91
- * also sets the cube's model and runtime, in the same undo step. The cube
92
- * may have changed while the engine answered: the table is added only if
93
- * the cube still has the same model and runtime and can take it.
75
+ * Opens the dialog with no tab chosen, showing the prompt to choose one
76
+ * (U4(b)); a cube with a fixed context, or a host serving one tab, opens
77
+ * on it as `open` does
94
78
  */
79
+ openToChoose(): void;
80
+ /** Switches to an enabled tab; the tab left drops what it was waiting for */
81
+ selectTab(tabKey: CubeSourcePickerTabKey): void;
82
+ /** Closes the dialog; a source still being typed is not added */
83
+ close(): void;
84
+ /** Adds the open tab's source, then closes the dialog */
95
85
  confirm(): GeneratorFn<void>;
96
- private resetFrom;
97
86
  }
98
87
  //# sourceMappingURL=CubeSourcePickerState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CubeSourcePickerState.d.ts","sourceRoot":"","sources":["../../src/stores/CubeSourcePickerState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,YAAY,EAGlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAS3E,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,wBAAwB,CAAC;AAO5E,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,GAAI,OAAO,gBAAgB,KAAG,OACV,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IAEtC,MAAM,UAAS;IACf,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,gEAAgE;IAChE,cAAc,UAAS;IACvB,eAAe,SAAM;IACrB,uEAAuE;IACvE,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACtC,cAAc,UAAS;IACvB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,SAAM;IACjB,WAAW,UAAS;IACpB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,wFAAwF;IACxF,OAAO,CAAC,cAAc,CAAK;gBAEf,WAAW,EAAE,eAAe;IAsCxC,IAAI,MAAM,IAAI,SAAS,YAAY,EAAE,CAEpC;IAED,2DAA2D;IAC3D,IAAI,YAAY,IAAI,WAAW,GAAG,SAAS,CAE1C;IAED,yEAAyE;IACzE,IAAI,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAK1C;IAED,IAAI,SAAS,IAAI,SAAS,mBAAmB,EAAE,CAa9C;IAED,IAAI,QAAQ,IAAI,SAAS,kBAAkB,EAAE,CAQ5C;IAED,IAAI,OAAO,IAAI,SAAS,iBAAiB,EAAE,CAK1C;IAED,uEAAuE;IACvE,IAAI,MAAM,IAAI,SAAS,gBAAgB,EAAE,CAUxC;IAED,IAAI,UAAU,IAAI,OAAO,CAYxB;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI;IA8BZ,gEAAgE;IAChE,KAAK,IAAI,IAAI;IAMb,sEAAsE;IACtE,iBAAiB,IAAI,IAAI;IASzB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAItC;;;OAGG;IACF,eAAe,IAAI,WAAW,CAAC,IAAI,CAAC;IAOrC;;;OAGG;IACF,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;IA8BpD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAa9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAI7C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAK5C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAK3C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;OAKG;IACF,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC;IA6E7B,OAAO,CAAC,SAAS;CAWlB"}
1
+ {"version":3,"file":"CubeSourcePickerState.d.ts","sourceRoot":"","sources":["../../src/stores/CubeSourcePickerState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAaxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EACL,KAAK,mBAAmB,EACxB,sBAAsB,EACvB,MAAM,wCAAwC,CAAC;AAEhD;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,4BAA4B,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAEzC,MAAM,UAAS;IACf,YAAY,yBAAgC;IAC5C,wEAAwE;IACxE,aAAa,UAAS;gBAEV,WAAW,EAAE,eAAe;IAwBxC,6EAA6E;IAC7E,OAAO,KAAK,aAAa,GAKxB;IAED,yCAAyC;IACzC,IAAI,IAAI,IAAI,SAAS,mBAAmB,EAAE,CAQzC;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,mBAAmB,GAAG,SAAS,CAU9C;IAED,IAAI,SAAS,IAAI,mBAAmB,CAInC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAgB/D;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO;IAM/C;;;OAGG;IACH,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAQvC;IAED,IAAI,UAAU,IAAI,OAAO,CAMxB;IAED;;;OAGG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,IAAI;IAe3C;;;;OAIG;IACH,YAAY,IAAI,IAAI;IASpB,6EAA6E;IAC7E,SAAS,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAgB/C,iEAAiE;IACjE,KAAK,IAAI,IAAI;IAUb,yDAAyD;IACxD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC;CAW9B"}
@@ -13,322 +13,201 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { getRelationalDisplayName, RELATIONAL_TABLE_SOURCE_DEFINITION, RelationalTableSource, } from '@finos/legend-cube';
17
- import { assertErrorThrown } from '@finos/legend-shared';
16
+ import { DataProductAccessPointSource, IngestDatasetSource, RelationalTableSource, } from '@finos/legend-cube';
18
17
  import { action, computed, flow, flowResult, makeObservable, observable, } from 'mobx';
19
- import { CubeEngineError, CubeEngineErrorKind, CubeTableFlag, } from '../graph-manager/CubeEngine.js';
20
- import { getRuntimesForDatabase } from '../graph-manager/CubeModelOutlineHelper.js';
21
- import { createTextModel } from './LocalModelCatalog.js';
22
- const toMessage = (error) => {
23
- assertErrorThrown(error);
24
- return error instanceof CubeEngineError ? error.firstLine : error.message;
25
- };
26
- /** Whether a table can be picked: a table with a column Cube can't read can't */
27
- export const isTableSelectable = (table) => !table.flags.includes(CubeTableFlag.UNAVAILABLE);
18
+ import { READ_ONLY_CUBE_TITLE, UNSERVED_SOURCE_KIND_TITLE, } from '../__lib__/LegendCubeLabels.js';
19
+ import { CubeDataProductTabState } from './source-picker/CubeDataProductTabState.js';
20
+ import { CubeDirectConnectionTabState } from './source-picker/CubeDirectConnectionTabState.js';
21
+ import { CubeIngestTabState } from './source-picker/CubeIngestTabState.js';
22
+ import { CubeProjectTabState } from './source-picker/CubeProjectTabState.js';
23
+ import { CubeInlineModelTabState } from './source-picker/CubeInlineModelTabState.js';
24
+ import { CubeSourcePickerTabKey, } from './source-picker/CubeSourcePickerTab.js';
28
25
  /**
29
- * The source picker (PLAN §6.2.7, Settled before M1.8): model, then database,
30
- * then a runtime keyed by that database, then schema and table. A step with
31
- * a single choice is picked automatically. The first table fixes the cube's
32
- * model and runtime; later tables come from the same database and runtime.
33
- * A table is added only once its schema has resolved.
26
+ * The source dialog (PLAN §6.1, §6.8): a tab per way to find a source, the
27
+ * Sample Data tab first. It opens on the tab asked for, or the one the cube's
28
+ * fixed context belongs to, which is then the only tab enabled; Add runs the
29
+ * open tab's Add and closes the dialog once the source is added.
34
30
  */
35
31
  export class CubeSourcePickerState {
36
32
  editorState;
33
+ modelTab;
34
+ directTab;
35
+ dataProductTab;
36
+ ingestTab;
37
+ projectTab;
37
38
  isOpen = false;
38
- model;
39
- /** The model is Pure text the user pastes, not a bundled one */
40
- isPastingModel = false;
41
- pastedModelText = '';
42
- /** The model the paste box last loaded: only it keeps the box shown */
43
- pastedModel;
44
- outline;
45
- isLoadingModel = false;
46
- databasePath;
47
- runtimePath;
48
- schemaName;
49
- tableName;
50
- tableSearch = '';
51
- isResolving = false;
52
- /** Why the outline or the table couldn't be loaded, shown in the dialog */
53
- error;
54
- /** Counts Add presses: closing the dialog moves it on, so the pending Add is dropped */
55
- confirmRequest = 0;
39
+ activeTabKey = CubeSourcePickerTabKey.MODEL;
40
+ /** Open with no tab chosen yet, from the empty canvas's link (U4(b)) */
41
+ isChoosingTab = false;
56
42
  constructor(editorState) {
57
43
  makeObservable(this, {
58
44
  isOpen: observable,
59
- model: observable.ref,
60
- isPastingModel: observable,
61
- pastedModelText: observable,
62
- outline: observable.ref,
63
- isLoadingModel: observable,
64
- databasePath: observable,
65
- runtimePath: observable,
66
- schemaName: observable,
67
- tableName: observable,
68
- tableSearch: observable,
69
- isResolving: observable,
70
- error: observable,
71
- fixedContext: computed,
72
- fixedDatabasePath: computed,
73
- databases: computed,
74
- runtimes: computed,
75
- schemas: computed,
76
- tables: computed,
45
+ activeTabKey: observable,
46
+ isChoosingTab: observable,
47
+ tabs: computed,
48
+ fixedTab: computed,
49
+ activeTab: computed,
50
+ disabledReason: computed,
77
51
  canConfirm: computed,
78
52
  open: action,
53
+ openToChoose: action,
54
+ selectTab: action,
79
55
  close: action,
80
- selectDatabase: action,
81
- selectRuntime: action,
82
- selectSchema: action,
83
- selectTable: action,
84
- setTableSearch: action,
85
- startPastingModel: action,
86
- setPastedModelText: action,
87
- selectModel: flow,
88
- loadPastedModel: flow,
89
56
  confirm: flow,
90
57
  });
91
58
  this.editorState = editorState;
59
+ this.modelTab = new CubeInlineModelTabState(editorState);
60
+ this.directTab = new CubeDirectConnectionTabState(editorState);
61
+ this.dataProductTab = new CubeDataProductTabState(editorState);
62
+ this.ingestTab = new CubeIngestTabState(editorState);
63
+ this.projectTab = new CubeProjectTabState(editorState);
64
+ }
65
+ /** The tabs that add their own kind of source, each from its palette item */
66
+ get dedicatedTabs() {
67
+ return new Map([
68
+ [DataProductAccessPointSource.TYPE, this.dataProductTab],
69
+ [IngestDatasetSource.TYPE, this.ingestTab],
70
+ ]);
71
+ }
72
+ /** The tabs the host serves, in order */
73
+ get tabs() {
74
+ return [
75
+ this.modelTab,
76
+ this.projectTab,
77
+ this.directTab,
78
+ this.dataProductTab,
79
+ this.ingestTab,
80
+ ].filter((tab) => tab.isAvailable);
92
81
  }
93
- get models() {
94
- return this.editorState.host.modelCatalog.models;
95
- }
96
- /** Once the cube has a model, every table comes from it */
97
- get fixedContext() {
98
- return this.editorState.document.context;
99
- }
100
- /** Once the cube has a table, every other one comes from its database */
101
- get fixedDatabasePath() {
102
- return this.editorState.document.query.nodes.find((node) => node instanceof RelationalTableSource)?.database;
103
- }
104
- get databases() {
105
- const databases = this.outline?.databases ?? [];
106
- const fixedRuntime = this.fixedContext?.runtime;
107
- return databases.filter((database) => (this.fixedDatabasePath === undefined ||
108
- database.path === this.fixedDatabasePath) &&
109
- (fixedRuntime === undefined ||
110
- (this.outline &&
111
- getRuntimesForDatabase(this.outline, database.path).some((runtime) => runtime.path === fixedRuntime))));
82
+ /**
83
+ * The tab the cube's fixed context belongs to, which the host may not
84
+ * serve; the Sample Data tab takes any context no tab claims
85
+ */
86
+ get fixedTab() {
87
+ const { context } = this.editorState.document;
88
+ return context
89
+ ? ([
90
+ this.projectTab,
91
+ this.directTab,
92
+ this.dataProductTab,
93
+ this.ingestTab,
94
+ ].find((tab) => tab.ownsContext(context)) ?? this.modelTab)
95
+ : undefined;
96
+ }
97
+ get activeTab() {
98
+ return (this.tabs.find((tab) => tab.key === this.activeTabKey) ?? this.modelTab);
112
99
  }
113
- get runtimes() {
114
- if (!this.outline || this.databasePath === undefined) {
115
- return [];
100
+ /**
101
+ * The tab a palette item opens (DP-3): a data product's or an ingest data
102
+ * set's own tab, when the host serves it; for a table, the table tab the
103
+ * cube uses, else the table tab open last, else the Sample Data tab
104
+ */
105
+ tabForSourceType(type) {
106
+ const dedicated = this.dedicatedTabs.get(type);
107
+ if (dedicated) {
108
+ return dedicated.isAvailable ? dedicated : undefined;
116
109
  }
117
- const fixedRuntime = this.fixedContext?.runtime;
118
- return getRuntimesForDatabase(this.outline, this.databasePath).filter((runtime) => fixedRuntime === undefined || runtime.path === fixedRuntime);
119
- }
120
- get schemas() {
121
- return (this.databases.find((database) => database.path === this.databasePath)
122
- ?.schemas ?? []);
123
- }
124
- /** The schema's tables, views left out, filtered by the search text */
125
- get tables() {
126
- const search = this.tableSearch.trim().toLowerCase();
127
- return (this.schemas.find((schema) => schema.name === this.schemaName)?.tables ??
128
- []).filter((table) => !table.isView &&
129
- getRelationalDisplayName(table.name).toLowerCase().includes(search));
110
+ if (type !== RelationalTableSource.TYPE) {
111
+ return undefined;
112
+ }
113
+ const dedicatedTabs = [...this.dedicatedTabs.values()];
114
+ const tableTabs = this.tabs.filter((tab) => !dedicatedTabs.includes(tab));
115
+ const { fixedTab } = this;
116
+ return fixedTab
117
+ ? tableTabs.find((tab) => tab === fixedTab)
118
+ : (tableTabs.find((tab) => tab === this.activeTab) ?? this.modelTab);
130
119
  }
131
- get canConfirm() {
132
- const table = this.tables.find((candidate) => candidate.name === this.tableName);
133
- return (!this.isLoadingModel &&
134
- !this.isResolving &&
135
- this.model !== undefined &&
136
- this.runtimePath !== undefined &&
137
- table !== undefined &&
138
- isTableSelectable(table));
120
+ /**
121
+ * A cube with a fixed context takes sources from its own tab only, and
122
+ * none when the host doesn't serve that tab
123
+ */
124
+ isTabEnabled(tab) {
125
+ return (tab.isAvailable && (this.fixedTab === undefined || tab === this.fixedTab));
139
126
  }
140
127
  /**
141
- * Opens the dialog on the cube's model, or on the only model offered. A
142
- * model whose outline failed to load is loaded again. Does nothing while
143
- * the cube is read-only.
128
+ * Why the dialog can't open, else undefined: the cube is read-only, or the
129
+ * host doesn't serve the cube's kind of source, so no tab could add one
144
130
  */
145
- open() {
131
+ get disabledReason() {
146
132
  if (this.editorState.readOnly) {
147
- return;
148
- }
149
- this.isOpen = true;
150
- this.error = undefined;
151
- const model = this.fixedContext?.model ??
152
- (this.models.length === 1 && !this.isPastingModel
153
- ? this.models[0]?.model
154
- : this.model);
155
- if (!model) {
156
- return;
157
- }
158
- if (model !== this.model || !this.outline) {
159
- flowResult(this.selectModel(model)).catch(this.editorState.host.applicationStore.alertUnhandledError);
160
- }
161
- else if (this.databasePath !== undefined &&
162
- !this.databases.some((database) => database.path === this.databasePath)) {
163
- // the cube changed since the last pick, e.g. by undo
164
- const [onlyDatabase, ...otherDatabases] = this.databases;
165
- this.selectDatabase(onlyDatabase && !otherDatabases.length ? onlyDatabase.path : undefined);
133
+ return READ_ONLY_CUBE_TITLE;
166
134
  }
135
+ const { fixedTab } = this;
136
+ return fixedTab && !fixedTab.isAvailable
137
+ ? UNSERVED_SOURCE_KIND_TITLE
138
+ : undefined;
167
139
  }
168
- /** Closes the dialog; a table still being typed is not added */
169
- close() {
170
- this.isOpen = false;
171
- this.confirmRequest++;
172
- this.isResolving = false;
173
- }
174
- /** Offers a text box for a Pure model in place of the bundled ones */
175
- startPastingModel() {
176
- this.isPastingModel = true;
177
- this.model = undefined;
178
- this.outline = undefined;
179
- this.error = undefined;
180
- this.isLoadingModel = false;
181
- this.resetFrom('database');
182
- }
183
- setPastedModelText(text) {
184
- this.pastedModelText = text;
140
+ get canConfirm() {
141
+ return (!this.isChoosingTab &&
142
+ this.activeTab.canConfirm &&
143
+ this.isTabEnabled(this.activeTab));
185
144
  }
186
145
  /**
187
- * Loads the pasted Pure text as the model: the cube will hold the text
188
- * itself, so it counts towards the size a saved cube can have
146
+ * Opens the dialog on the cube's own tab, else the tab asked for, else the
147
+ * one open last. Does nothing while it can't open (`disabledReason`).
189
148
  */
190
- *loadPastedModel() {
191
- if (this.pastedModelText.trim()) {
192
- this.pastedModel = createTextModel(this.pastedModelText);
193
- yield flowResult(this.selectModel(this.pastedModel));
149
+ open(tabKey) {
150
+ if (this.disabledReason !== undefined) {
151
+ return;
194
152
  }
153
+ const { fixedTab } = this;
154
+ this.isOpen = true;
155
+ this.isChoosingTab = false;
156
+ const tab = fixedTab ??
157
+ this.tabs.find((candidate) => candidate.key === tabKey) ??
158
+ this.activeTab;
159
+ this.activeTabKey = tab.key;
160
+ tab.open();
195
161
  }
196
162
  /**
197
- * Loads a model's outline. Any model but the one the paste box loaded ends
198
- * pasting, e.g. a bundled model, or the model of a cube opened meanwhile.
163
+ * Opens the dialog with no tab chosen, showing the prompt to choose one
164
+ * (U4(b)); a cube with a fixed context, or a host serving one tab, opens
165
+ * on it as `open` does
199
166
  */
200
- *selectModel(model) {
201
- this.isPastingModel = model === this.pastedModel;
202
- this.model = model;
203
- this.outline = undefined;
204
- this.error = undefined;
205
- this.resetFrom('database');
206
- this.isLoadingModel = true;
207
- try {
208
- const outline = (yield this.editorState.host.modelCatalog.loadOutline(model));
209
- if (this.model !== model) {
210
- return;
211
- }
212
- this.outline = outline;
213
- const [onlyDatabase, ...otherDatabases] = this.databases;
214
- if (onlyDatabase && !otherDatabases.length) {
215
- this.selectDatabase(onlyDatabase.path);
216
- }
217
- }
218
- catch (error) {
219
- if (this.model === model) {
220
- this.error = toMessage(error);
221
- }
222
- }
223
- finally {
224
- if (this.model === model) {
225
- this.isLoadingModel = false;
167
+ openToChoose() {
168
+ if (this.fixedTab !== undefined || this.tabs.length <= 1) {
169
+ this.open();
170
+ }
171
+ else if (this.disabledReason === undefined) {
172
+ this.isOpen = true;
173
+ this.isChoosingTab = true;
174
+ }
175
+ }
176
+ /** Switches to an enabled tab; the tab left drops what it was waiting for */
177
+ selectTab(tabKey) {
178
+ const tab = this.tabs.find((candidate) => candidate.key === tabKey);
179
+ if (tab &&
180
+ this.isTabEnabled(tab) &&
181
+ (this.isChoosingTab || tab !== this.activeTab)) {
182
+ if (!this.isChoosingTab) {
183
+ this.activeTab.close();
226
184
  }
185
+ this.isChoosingTab = false;
186
+ this.activeTabKey = tab.key;
187
+ tab.open();
227
188
  }
228
189
  }
229
- selectDatabase(path) {
230
- this.databasePath = path;
231
- this.resetFrom('runtime');
232
- const [onlyRuntime, ...otherRuntimes] = this.runtimes;
233
- if (onlyRuntime && !otherRuntimes.length) {
234
- this.runtimePath = onlyRuntime.path;
235
- }
236
- const [onlySchema, ...otherSchemas] = this.schemas;
237
- if (onlySchema && !otherSchemas.length) {
238
- this.schemaName = onlySchema.name;
239
- }
240
- }
241
- selectRuntime(path) {
242
- this.runtimePath = path;
243
- }
244
- selectSchema(name) {
245
- this.schemaName = name;
246
- this.resetFrom('table');
247
- }
248
- selectTable(name) {
249
- this.tableName = name;
250
- this.error = undefined;
251
- }
252
- setTableSearch(search) {
253
- this.tableSearch = search;
254
- }
255
- /**
256
- * Types the picked table with the engine, then adds it; the first table
257
- * also sets the cube's model and runtime, in the same undo step. The cube
258
- * may have changed while the engine answered: the table is added only if
259
- * the cube still has the same model and runtime and can take it.
260
- */
190
+ /** Closes the dialog; a source still being typed is not added */
191
+ close() {
192
+ this.isOpen = false;
193
+ this.isChoosingTab = false;
194
+ this.modelTab.close();
195
+ this.directTab.close();
196
+ this.dataProductTab.close();
197
+ this.ingestTab.close();
198
+ this.projectTab.close();
199
+ }
200
+ /** Adds the open tab's source, then closes the dialog */
261
201
  *confirm() {
202
+ const tab = this.activeTab;
262
203
  if (!this.canConfirm) {
263
204
  return;
264
205
  }
265
- const { editorState } = this;
266
- const model = this.model;
267
- const runtime = this.runtimePath;
268
- const coordinates = {
269
- database: this.databasePath,
270
- schema: this.schemaName,
271
- table: this.tableName,
272
- };
273
- const contextBefore = editorState.document.context;
274
- // the engine stamps the table's accessor with its node id, so the id comes first
275
- const id = editorState.document.query.generateId(RelationalTableSource.TYPE);
276
- const request = ++this.confirmRequest;
277
- this.isResolving = true;
278
- this.error = undefined;
279
- try {
280
- const typed = (yield editorState.host.engine.resolveSchemas(model, new Map([
281
- [id, [coordinates.database, coordinates.schema, coordinates.table]],
282
- ])));
283
- if (request !== this.confirmRequest) {
284
- return;
285
- }
286
- const schema = typed.get(id);
287
- if (schema === undefined || schema instanceof CubeEngineError) {
288
- throw (schema ??
289
- new CubeEngineError(CubeEngineErrorKind.COMPILE, `The engine gave no schema for this table`));
290
- }
291
- const node = RELATIONAL_TABLE_SOURCE_DEFINITION.resolve(RELATIONAL_TABLE_SOURCE_DEFINITION.fromCoordinates(id, coordinates), { kind: 'resolved', schema });
292
- const { document } = editorState;
293
- if (document.context !== contextBefore || !document.query.canAdd(node)) {
294
- throw new Error(`The cube changed while the table was loading; pick the table again.`);
295
- }
296
- const query = document.query.add(node);
297
- // the first table sets the model and runtime; a cube saved with a model
298
- // but no runtime takes the picked runtime and keeps the rest
299
- editorState.applyDocument(document.context?.runtime !== undefined
300
- ? document.withQuery(query)
301
- : document
302
- .withContext({
303
- ...document.context,
304
- model: document.context?.model ?? model,
305
- runtime,
306
- })
307
- .withQuery(query));
308
- this.isOpen = false;
309
- this.resetFrom('table');
310
- }
311
- catch (error) {
312
- if (request === this.confirmRequest) {
313
- this.error = toMessage(error);
314
- }
315
- }
316
- finally {
317
- if (request === this.confirmRequest) {
318
- this.isResolving = false;
319
- }
320
- }
321
- }
322
- resetFrom(step) {
323
- if (step === 'database') {
324
- this.databasePath = undefined;
325
- }
326
- if (step === 'database' || step === 'runtime') {
327
- this.runtimePath = undefined;
328
- this.schemaName = undefined;
206
+ const added = (yield flowResult(tab.confirm()));
207
+ if (added) {
208
+ // every tab drops what it was still waiting for
209
+ this.close();
329
210
  }
330
- this.tableName = undefined;
331
- this.tableSearch = '';
332
211
  }
333
212
  }
334
213
  //# sourceMappingURL=CubeSourcePickerState.js.map