@finos/legend-cube-builder 0.0.2 → 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 (761) hide show
  1. package/README.md +93 -1
  2. package/docs/adding-an-operation.md +181 -0
  3. package/docs/hosting.md +157 -0
  4. package/docs/testing.md +188 -0
  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 +21 -3
  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 +95 -3
  25. package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
  26. package/lib/__lib__/LegendCubeLabels.js +121 -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 +18 -0
  48. package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
  49. package/lib/__test-utils__/CubeEngineTestSupport.js +51 -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 +67 -0
  56. package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -0
  57. package/lib/__test-utils__/CubeOperationsTestUtils.js +138 -0
  58. package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -0
  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 +21 -2
  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 +19 -2
  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 +33 -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 +2 -0
  119. package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
  120. package/lib/components/canvas/CubeCanvasElements.js +8 -4
  121. package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
  122. package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
  123. package/lib/components/canvas/CubeCanvasNode.js +30 -17
  124. package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
  125. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
  126. package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
  127. package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
  128. package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
  129. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
  130. package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
  131. package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
  132. package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
  133. package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
  134. package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
  135. package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
  136. package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
  137. package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
  138. package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
  139. package/lib/components/editors/CubeColumnChecklist.js +41 -0
  140. package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
  141. package/lib/components/editors/CubeColumnPicker.d.ts +9 -2
  142. package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
  143. package/lib/components/editors/CubeColumnPicker.js +9 -4
  144. package/lib/components/editors/CubeColumnPicker.js.map +1 -1
  145. package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
  146. package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
  147. package/lib/components/editors/CubeConcatEditor.js +147 -0
  148. package/lib/components/editors/CubeConcatEditor.js.map +1 -0
  149. package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
  150. package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
  151. package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
  152. package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
  153. package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
  154. package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
  155. package/lib/components/editors/CubeDifferenceEditor.js +29 -0
  156. package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
  157. package/lib/components/editors/CubeDistinctEditor.d.ts +23 -0
  158. package/lib/components/editors/CubeDistinctEditor.d.ts.map +1 -0
  159. package/lib/components/editors/CubeDistinctEditor.js +24 -0
  160. package/lib/components/editors/CubeDistinctEditor.js.map +1 -0
  161. package/lib/components/editors/CubeExtendEditor.d.ts +25 -0
  162. package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
  163. package/lib/components/editors/CubeExtendEditor.js +86 -0
  164. package/lib/components/editors/CubeExtendEditor.js.map +1 -0
  165. package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
  166. package/lib/components/editors/CubeFilterEditor.js +3 -3
  167. package/lib/components/editors/CubeFilterEditor.js.map +1 -1
  168. package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
  169. package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
  170. package/lib/components/editors/CubeGroupEditor.js +70 -0
  171. package/lib/components/editors/CubeGroupEditor.js.map +1 -0
  172. package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
  173. package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
  174. package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
  175. package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
  176. package/lib/components/editors/CubeIntegerField.d.ts +29 -0
  177. package/lib/components/editors/CubeIntegerField.d.ts.map +1 -0
  178. package/lib/components/editors/CubeIntegerField.js +30 -0
  179. package/lib/components/editors/CubeIntegerField.js.map +1 -0
  180. package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
  181. package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
  182. package/lib/components/editors/CubeJoinEditor.js +15 -37
  183. package/lib/components/editors/CubeJoinEditor.js.map +1 -1
  184. package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
  185. package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
  186. package/lib/components/editors/CubeJoinKeyRows.js +65 -0
  187. package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
  188. package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
  189. package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
  190. package/lib/components/editors/CubeNodeEditorPanel.js +53 -14
  191. package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
  192. package/lib/components/editors/CubeNodeEditorPopper.d.ts +40 -0
  193. package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
  194. package/lib/components/editors/CubeNodeEditorPopper.js +125 -0
  195. package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
  196. package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
  197. package/lib/components/editors/CubeNodeEditorRegistry.js +28 -1
  198. package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
  199. package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
  200. package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
  201. package/lib/components/editors/CubePartitionEditor.js +93 -0
  202. package/lib/components/editors/CubePartitionEditor.js.map +1 -0
  203. package/lib/components/editors/CubeRenameEditor.d.ts +26 -0
  204. package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -0
  205. package/lib/components/editors/CubeRenameEditor.js +60 -0
  206. package/lib/components/editors/CubeRenameEditor.js.map +1 -0
  207. package/lib/components/editors/CubeRestrictEditor.d.ts +26 -0
  208. package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -0
  209. package/lib/components/editors/CubeRestrictEditor.js +23 -0
  210. package/lib/components/editors/CubeRestrictEditor.js.map +1 -0
  211. package/lib/components/editors/CubeRowCountEditor.d.ts +25 -0
  212. package/lib/components/editors/CubeRowCountEditor.d.ts.map +1 -0
  213. package/lib/components/editors/CubeRowCountEditor.js +38 -0
  214. package/lib/components/editors/CubeRowCountEditor.js.map +1 -0
  215. package/lib/components/editors/CubeSliceEditor.d.ts +25 -0
  216. package/lib/components/editors/CubeSliceEditor.d.ts.map +1 -0
  217. package/lib/components/editors/CubeSliceEditor.js +40 -0
  218. package/lib/components/editors/CubeSliceEditor.js.map +1 -0
  219. package/lib/components/editors/CubeSortEditor.d.ts +27 -0
  220. package/lib/components/editors/CubeSortEditor.d.ts.map +1 -0
  221. package/lib/components/editors/CubeSortEditor.js +45 -0
  222. package/lib/components/editors/CubeSortEditor.js.map +1 -0
  223. package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
  224. package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
  225. package/lib/components/editors/CubeSortRowEditor.js +62 -0
  226. package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
  227. package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
  228. package/lib/components/editors/CubeSourceEditor.js +18 -6
  229. package/lib/components/editors/CubeSourceEditor.js.map +1 -1
  230. package/lib/components/editors/CubeValueEditor.d.ts.map +1 -1
  231. package/lib/components/editors/CubeValueEditor.js +2 -1
  232. package/lib/components/editors/CubeValueEditor.js.map +1 -1
  233. package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
  234. package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
  235. package/lib/components/editors/CubeWarehouseControl.js +44 -0
  236. package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
  237. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
  238. package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
  239. package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
  240. package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
  241. package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
  242. package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
  243. package/lib/components/examples/CubeExamplesDialog.js +68 -0
  244. package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
  245. package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
  246. package/lib/components/grid/CubeGridRegion.js +20 -9
  247. package/lib/components/grid/CubeGridRegion.js.map +1 -1
  248. package/lib/components/grid/CubeGridValues.d.ts +16 -0
  249. package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
  250. package/lib/components/grid/CubeGridValues.js +44 -0
  251. package/lib/components/grid/CubeGridValues.js.map +1 -1
  252. package/lib/components/grid/CubeResultGrid.d.ts +14 -1
  253. package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
  254. package/lib/components/grid/CubeResultGrid.js +55 -7
  255. package/lib/components/grid/CubeResultGrid.js.map +1 -1
  256. package/lib/components/palette/CubePalette.d.ts.map +1 -1
  257. package/lib/components/palette/CubePalette.js +23 -12
  258. package/lib/components/palette/CubePalette.js.map +1 -1
  259. package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
  260. package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
  261. package/lib/components/source-picker/CubeDataProductTab.js +102 -0
  262. package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
  263. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
  264. package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
  265. package/lib/components/source-picker/CubeDirectConnectionTab.js +87 -0
  266. package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
  267. package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
  268. package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
  269. package/lib/components/source-picker/CubeIngestTab.js +66 -0
  270. package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
  271. package/lib/components/source-picker/CubeInlineModelTab.d.ts +37 -0
  272. package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
  273. package/lib/components/source-picker/CubeInlineModelTab.js +71 -0
  274. package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
  275. package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
  276. package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
  277. package/lib/components/source-picker/CubePickerStep.js +23 -0
  278. package/lib/components/source-picker/CubePickerStep.js.map +1 -0
  279. package/lib/components/source-picker/CubeProjectTab.d.ts +27 -0
  280. package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
  281. package/lib/components/source-picker/CubeProjectTab.js +50 -0
  282. package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
  283. package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
  284. package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
  285. package/lib/components/source-picker/CubeSourcePicker.js +20 -58
  286. package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
  287. package/lib/components/spec-transfer/CubeSpecTransferDialog.js +1 -1
  288. package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
  289. package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
  290. package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
  291. package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
  292. package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
  293. package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
  294. package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
  295. package/lib/graph-manager/CubeDataProduct.js +102 -0
  296. package/lib/graph-manager/CubeDataProduct.js.map +1 -0
  297. package/lib/graph-manager/CubeDataProductCatalog.d.ts +167 -0
  298. package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
  299. package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
  300. package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
  301. package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
  302. package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
  303. package/lib/graph-manager/CubeDirectConnection.js +48 -0
  304. package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
  305. package/lib/graph-manager/CubeEngine.d.ts +50 -2
  306. package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
  307. package/lib/graph-manager/CubeEngine.js +4 -1
  308. package/lib/graph-manager/CubeEngine.js.map +1 -1
  309. package/lib/graph-manager/CubeIngest.d.ts +50 -0
  310. package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
  311. package/lib/graph-manager/CubeIngest.js +88 -0
  312. package/lib/graph-manager/CubeIngest.js.map +1 -0
  313. package/lib/graph-manager/CubeIngestCatalog.d.ts +116 -0
  314. package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
  315. package/lib/graph-manager/CubeIngestCatalog.js +80 -0
  316. package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
  317. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
  318. package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
  319. package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
  320. package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
  321. package/lib/graph-manager/CubeModelOutlineHelper.d.ts +8 -0
  322. package/lib/graph-manager/CubeModelOutlineHelper.d.ts.map +1 -1
  323. package/lib/graph-manager/CubeModelOutlineHelper.js +21 -0
  324. package/lib/graph-manager/CubeModelOutlineHelper.js.map +1 -1
  325. package/lib/graph-manager/CubeProject.d.ts +41 -0
  326. package/lib/graph-manager/CubeProject.d.ts.map +1 -0
  327. package/lib/graph-manager/CubeProject.js +84 -0
  328. package/lib/graph-manager/CubeProject.js.map +1 -0
  329. package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
  330. package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
  331. package/lib/graph-manager/CubeProjectCatalog.js +17 -0
  332. package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
  333. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +63 -1
  334. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
  335. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +50 -1
  336. package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
  337. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
  338. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
  339. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
  340. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
  341. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +29 -0
  342. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
  343. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +84 -0
  344. package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
  345. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
  346. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
  347. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
  348. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
  349. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
  350. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
  351. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
  352. package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
  353. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
  354. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
  355. package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
  356. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
  357. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
  358. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
  359. package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
  360. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
  361. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
  362. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +140 -0
  363. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
  364. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +62 -0
  365. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
  366. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +119 -0
  367. package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
  368. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
  369. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
  370. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
  371. package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js.map +1 -0
  372. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
  373. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +63 -4
  374. package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
  375. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -1
  376. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +56 -3
  377. package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
  378. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
  379. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
  380. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
  381. package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
  382. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +34 -0
  383. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
  384. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +64 -0
  385. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
  386. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
  387. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
  388. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
  389. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
  390. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +97 -3
  391. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
  392. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +585 -20
  393. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
  394. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
  395. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
  396. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
  397. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
  398. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
  399. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
  400. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +91 -0
  401. package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
  402. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
  403. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
  404. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
  405. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
  406. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
  407. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
  408. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
  409. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
  410. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
  411. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
  412. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
  413. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
  414. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
  415. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
  416. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +30 -4
  417. package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
  418. package/lib/index.css +2 -2
  419. package/lib/index.css.map +1 -1
  420. package/lib/index.d.ts +11 -1
  421. package/lib/index.d.ts.map +1 -1
  422. package/lib/index.js +10 -1
  423. package/lib/index.js.map +1 -1
  424. package/lib/stores/CubeAddPlacement.d.ts +32 -0
  425. package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
  426. package/lib/stores/CubeAddPlacement.js +40 -0
  427. package/lib/stores/CubeAddPlacement.js.map +1 -0
  428. package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
  429. package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
  430. package/lib/stores/CubeDataProductRecheck.js +54 -0
  431. package/lib/stores/CubeDataProductRecheck.js.map +1 -0
  432. package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
  433. package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
  434. package/lib/stores/CubeDataProductRuntimeState.js +190 -0
  435. package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
  436. package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
  437. package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
  438. package/lib/stores/CubeDataProductWarehouse.js +25 -0
  439. package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
  440. package/lib/stores/CubeEditorState.d.ts +133 -19
  441. package/lib/stores/CubeEditorState.d.ts.map +1 -1
  442. package/lib/stores/CubeEditorState.js +433 -52
  443. package/lib/stores/CubeEditorState.js.map +1 -1
  444. package/lib/stores/CubeEntrySource.d.ts +78 -0
  445. package/lib/stores/CubeEntrySource.d.ts.map +1 -0
  446. package/lib/stores/CubeEntrySource.js +200 -0
  447. package/lib/stores/CubeEntrySource.js.map +1 -0
  448. package/lib/stores/CubeExamples.d.ts +43 -0
  449. package/lib/stores/CubeExamples.d.ts.map +1 -0
  450. package/lib/stores/CubeExamples.js +296 -0
  451. package/lib/stores/CubeExamples.js.map +1 -0
  452. package/lib/stores/CubeExamplesState.d.ts +45 -0
  453. package/lib/stores/CubeExamplesState.d.ts.map +1 -0
  454. package/lib/stores/CubeExamplesState.js +81 -0
  455. package/lib/stores/CubeExamplesState.js.map +1 -0
  456. package/lib/stores/CubeExecutionState.d.ts +6 -2
  457. package/lib/stores/CubeExecutionState.d.ts.map +1 -1
  458. package/lib/stores/CubeExecutionState.js +34 -8
  459. package/lib/stores/CubeExecutionState.js.map +1 -1
  460. package/lib/stores/CubeExtendTyping.d.ts +72 -0
  461. package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
  462. package/lib/stores/CubeExtendTyping.js +176 -0
  463. package/lib/stores/CubeExtendTyping.js.map +1 -0
  464. package/lib/stores/CubeGridQuickActions.d.ts +48 -0
  465. package/lib/stores/CubeGridQuickActions.d.ts.map +1 -0
  466. package/lib/stores/CubeGridQuickActions.js +124 -0
  467. package/lib/stores/CubeGridQuickActions.js.map +1 -0
  468. package/lib/stores/CubeHost.d.ts +32 -1
  469. package/lib/stores/CubeHost.d.ts.map +1 -1
  470. package/lib/stores/CubeHost.js +21 -1
  471. package/lib/stores/CubeHost.js.map +1 -1
  472. package/lib/stores/CubeIngestRecheck.d.ts +26 -0
  473. package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
  474. package/lib/stores/CubeIngestRecheck.js +53 -0
  475. package/lib/stores/CubeIngestRecheck.js.map +1 -0
  476. package/lib/stores/CubeNodeEditorState.d.ts +120 -6
  477. package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
  478. package/lib/stores/CubeNodeEditorState.js +275 -9
  479. package/lib/stores/CubeNodeEditorState.js.map +1 -1
  480. package/lib/stores/CubeShowPureState.d.ts +9 -3
  481. package/lib/stores/CubeShowPureState.d.ts.map +1 -1
  482. package/lib/stores/CubeShowPureState.js +28 -8
  483. package/lib/stores/CubeShowPureState.js.map +1 -1
  484. package/lib/stores/CubeSourcePickerState.d.ts +54 -65
  485. package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
  486. package/lib/stores/CubeSourcePickerState.js +155 -276
  487. package/lib/stores/CubeSourcePickerState.js.map +1 -1
  488. package/lib/stores/CubeSpecTransferState.d.ts +2 -2
  489. package/lib/stores/CubeSpecTransferState.js +2 -2
  490. package/lib/stores/LocalModelCatalog.d.ts +2 -0
  491. package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
  492. package/lib/stores/LocalModelCatalog.js +17 -3
  493. package/lib/stores/LocalModelCatalog.js.map +1 -1
  494. package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
  495. package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
  496. package/lib/stores/editors/CubeAggregationRows.js +164 -0
  497. package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
  498. package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
  499. package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
  500. package/lib/stores/editors/CubeConcatDraft.js +44 -0
  501. package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
  502. package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
  503. package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
  504. package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
  505. package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
  506. package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
  507. package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
  508. package/lib/stores/editors/CubeExtendDraft.js +359 -0
  509. package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
  510. package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
  511. package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
  512. package/lib/stores/editors/CubeGroupDraft.js +106 -0
  513. package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
  514. package/lib/stores/editors/CubeIntegerText.d.ts +24 -0
  515. package/lib/stores/editors/CubeIntegerText.d.ts.map +1 -0
  516. package/lib/stores/editors/CubeIntegerText.js +33 -0
  517. package/lib/stores/editors/CubeIntegerText.js.map +1 -0
  518. package/lib/stores/editors/CubeJoinDraft.d.ts +20 -13
  519. package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
  520. package/lib/stores/editors/CubeJoinDraft.js +109 -29
  521. package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
  522. package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
  523. package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
  524. package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
  525. package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
  526. package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
  527. package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
  528. package/lib/stores/editors/CubeNodeDraft.js +23 -5
  529. package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
  530. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +6 -0
  531. package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
  532. package/lib/stores/editors/CubeNodeDraftRegistry.js +42 -1
  533. package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
  534. package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
  535. package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
  536. package/lib/stores/editors/CubePartitionDraft.js +154 -0
  537. package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
  538. package/lib/stores/editors/CubeRenameDraft.d.ts +44 -0
  539. package/lib/stores/editors/CubeRenameDraft.d.ts.map +1 -0
  540. package/lib/stores/editors/CubeRenameDraft.js +79 -0
  541. package/lib/stores/editors/CubeRenameDraft.js.map +1 -0
  542. package/lib/stores/editors/CubeRestrictDraft.d.ts +37 -0
  543. package/lib/stores/editors/CubeRestrictDraft.d.ts.map +1 -0
  544. package/lib/stores/editors/CubeRestrictDraft.js +73 -0
  545. package/lib/stores/editors/CubeRestrictDraft.js.map +1 -0
  546. package/lib/stores/editors/CubeRowCountDraft.d.ts +42 -0
  547. package/lib/stores/editors/CubeRowCountDraft.d.ts.map +1 -0
  548. package/lib/stores/editors/CubeRowCountDraft.js +55 -0
  549. package/lib/stores/editors/CubeRowCountDraft.js.map +1 -0
  550. package/lib/stores/editors/CubeSliceDraft.d.ts +42 -0
  551. package/lib/stores/editors/CubeSliceDraft.d.ts.map +1 -0
  552. package/lib/stores/editors/CubeSliceDraft.js +72 -0
  553. package/lib/stores/editors/CubeSliceDraft.js.map +1 -0
  554. package/lib/stores/editors/CubeSortDraft.d.ts +41 -0
  555. package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -0
  556. package/lib/stores/editors/CubeSortDraft.js +73 -0
  557. package/lib/stores/editors/CubeSortDraft.js.map +1 -0
  558. package/lib/stores/editors/CubeSortRows.d.ts +34 -0
  559. package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
  560. package/lib/stores/editors/CubeSortRows.js +50 -0
  561. package/lib/stores/editors/CubeSortRows.js.map +1 -0
  562. package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
  563. package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
  564. package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
  565. package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
  566. package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
  567. package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
  568. package/lib/stores/fixtures/CubeSampleSql.js +64 -0
  569. package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
  570. package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
  571. package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
  572. package/lib/stores/fixtures/CubeSportsModel.js +158 -0
  573. package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
  574. package/lib/stores/fixtures/CubeTradesModel.d.ts +29 -0
  575. package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
  576. package/lib/stores/fixtures/CubeTradesModel.js +197 -0
  577. package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
  578. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
  579. package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
  580. package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
  581. package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
  582. package/lib/stores/source-picker/CubeDataProductTabState.d.ts +186 -0
  583. package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
  584. package/lib/stores/source-picker/CubeDataProductTabState.js +681 -0
  585. package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
  586. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +140 -0
  587. package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
  588. package/lib/stores/source-picker/CubeDirectConnectionTabState.js +516 -0
  589. package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
  590. package/lib/stores/source-picker/CubeIngestTabState.d.ts +114 -0
  591. package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
  592. package/lib/stores/source-picker/CubeIngestTabState.js +455 -0
  593. package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
  594. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +107 -0
  595. package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
  596. package/lib/stores/source-picker/CubeInlineModelTabState.js +347 -0
  597. package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
  598. package/lib/stores/source-picker/CubeProjectTabState.d.ts +62 -0
  599. package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
  600. package/lib/stores/source-picker/CubeProjectTabState.js +181 -0
  601. package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
  602. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +48 -0
  603. package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
  604. package/lib/stores/source-picker/CubeSourcePickerTab.js +24 -0
  605. package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
  606. package/package.json +12 -8
  607. package/src/__lib__/LegendCubeCommand.ts +5 -0
  608. package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
  609. package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
  610. package/src/__lib__/LegendCubeHelpText.ts +46 -2
  611. package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
  612. package/src/__lib__/LegendCubeLabels.ts +192 -4
  613. package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
  614. package/src/__lib__/LegendCubeTesting.ts +1 -0
  615. package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
  616. package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
  617. package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
  618. package/src/__test-utils__/CubeEngineTestSupport.ts +73 -0
  619. package/src/__test-utils__/CubeExpressionTestUtils.ts +119 -0
  620. package/src/__test-utils__/CubeOperationsTestUtils.ts +252 -0
  621. package/src/__test-utils__/CubePageTestUtils.tsx +35 -0
  622. package/src/__test-utils__/CubeTestApplication.ts +21 -2
  623. package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
  624. package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
  625. package/src/__test-utils__/FakeCubeEngine.ts +32 -2
  626. package/src/__test-utils__/FakeCubeIngestCatalog.ts +180 -0
  627. package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
  628. package/src/components/CubeAddItems.tsx +179 -0
  629. package/src/components/CubeEditor.tsx +73 -44
  630. package/src/components/CubeEntrySourceBanner.tsx +64 -0
  631. package/src/components/CubeNodeIcon.tsx +31 -1
  632. package/src/components/CubeSchemaColumnsTable.tsx +49 -0
  633. package/src/components/canvas/CubeCanvas.tsx +51 -14
  634. package/src/components/canvas/CubeCanvasContextMenu.tsx +31 -30
  635. package/src/components/canvas/CubeCanvasDnd.ts +16 -9
  636. package/src/components/canvas/CubeCanvasElements.ts +12 -3
  637. package/src/components/canvas/CubeCanvasNode.tsx +62 -36
  638. package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
  639. package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
  640. package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
  641. package/src/components/editors/CubeColumnChecklist.tsx +130 -0
  642. package/src/components/editors/CubeColumnPicker.tsx +36 -12
  643. package/src/components/editors/CubeConcatEditor.tsx +374 -0
  644. package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
  645. package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
  646. package/src/components/editors/CubeDistinctEditor.tsx +28 -0
  647. package/src/components/editors/CubeExtendEditor.tsx +271 -0
  648. package/src/components/editors/CubeFilterEditor.tsx +7 -0
  649. package/src/components/editors/CubeGroupEditor.tsx +135 -0
  650. package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
  651. package/src/components/editors/CubeIntegerField.tsx +51 -0
  652. package/src/components/editors/CubeJoinEditor.tsx +34 -131
  653. package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
  654. package/src/components/editors/CubeNodeEditorPanel.tsx +103 -29
  655. package/src/components/editors/CubeNodeEditorPopper.tsx +183 -0
  656. package/src/components/editors/CubeNodeEditorRegistry.ts +41 -0
  657. package/src/components/editors/CubePartitionEditor.tsx +208 -0
  658. package/src/components/editors/CubeRenameEditor.tsx +148 -0
  659. package/src/components/editors/CubeRestrictEditor.tsx +103 -0
  660. package/src/components/editors/CubeRowCountEditor.tsx +53 -0
  661. package/src/components/editors/CubeSliceEditor.tsx +69 -0
  662. package/src/components/editors/CubeSortEditor.tsx +84 -0
  663. package/src/components/editors/CubeSortRowEditor.tsx +176 -0
  664. package/src/components/editors/CubeSourceEditor.tsx +42 -40
  665. package/src/components/editors/CubeValueEditor.tsx +2 -1
  666. package/src/components/editors/CubeWarehouseControl.tsx +113 -0
  667. package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
  668. package/src/components/examples/CubeExamplesDialog.tsx +199 -0
  669. package/src/components/grid/CubeGridRegion.tsx +49 -10
  670. package/src/components/grid/CubeGridValues.ts +55 -0
  671. package/src/components/grid/CubeResultGrid.tsx +83 -13
  672. package/src/components/palette/CubePalette.tsx +33 -15
  673. package/src/components/source-picker/CubeDataProductTab.tsx +392 -0
  674. package/src/components/source-picker/CubeDirectConnectionTab.tsx +340 -0
  675. package/src/components/source-picker/CubeIngestTab.tsx +232 -0
  676. package/src/components/source-picker/CubeInlineModelTab.tsx +191 -0
  677. package/src/components/source-picker/CubePickerStep.tsx +49 -0
  678. package/src/components/source-picker/CubeProjectTab.tsx +114 -0
  679. package/src/components/source-picker/CubeSourcePicker.tsx +62 -227
  680. package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +1 -1
  681. package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
  682. package/src/graph-manager/CubeDataProduct.ts +150 -0
  683. package/src/graph-manager/CubeDataProductCatalog.ts +245 -0
  684. package/src/graph-manager/CubeDirectConnection.ts +67 -0
  685. package/src/graph-manager/CubeEngine.ts +57 -1
  686. package/src/graph-manager/CubeIngest.ts +144 -0
  687. package/src/graph-manager/CubeIngestCatalog.ts +169 -0
  688. package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
  689. package/src/graph-manager/CubeModelOutlineHelper.ts +26 -0
  690. package/src/graph-manager/CubeProject.ts +117 -0
  691. package/src/graph-manager/CubeProjectCatalog.ts +40 -0
  692. package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +145 -1
  693. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
  694. package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +101 -0
  695. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
  696. package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
  697. package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
  698. package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
  699. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +201 -0
  700. package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +183 -0
  701. package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
  702. package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +84 -4
  703. package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +89 -3
  704. package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
  705. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +116 -0
  706. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
  707. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +967 -24
  708. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
  709. package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +147 -0
  710. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
  711. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
  712. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
  713. package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +48 -4
  714. package/src/index.ts +20 -0
  715. package/src/stores/CubeAddPlacement.ts +67 -0
  716. package/src/stores/CubeDataProductRecheck.ts +93 -0
  717. package/src/stores/CubeDataProductRuntimeState.ts +256 -0
  718. package/src/stores/CubeDataProductWarehouse.ts +40 -0
  719. package/src/stores/CubeEditorState.ts +621 -68
  720. package/src/stores/CubeEntrySource.ts +278 -0
  721. package/src/stores/CubeExamples.ts +457 -0
  722. package/src/stores/CubeExamplesState.ts +108 -0
  723. package/src/stores/CubeExecutionState.ts +60 -8
  724. package/src/stores/CubeExtendTyping.ts +291 -0
  725. package/src/stores/CubeGridQuickActions.ts +184 -0
  726. package/src/stores/CubeHost.ts +71 -1
  727. package/src/stores/CubeIngestRecheck.ts +92 -0
  728. package/src/stores/CubeNodeEditorState.ts +348 -10
  729. package/src/stores/CubeShowPureState.ts +33 -8
  730. package/src/stores/CubeSourcePickerState.ts +160 -330
  731. package/src/stores/CubeSpecTransferState.ts +2 -2
  732. package/src/stores/LocalModelCatalog.ts +22 -3
  733. package/src/stores/editors/CubeAggregationRows.ts +299 -0
  734. package/src/stores/editors/CubeConcatDraft.ts +49 -0
  735. package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
  736. package/src/stores/editors/CubeExtendDraft.ts +532 -0
  737. package/src/stores/editors/CubeGroupDraft.ts +145 -0
  738. package/src/stores/editors/CubeIntegerText.ts +34 -0
  739. package/src/stores/editors/CubeJoinDraft.ts +170 -54
  740. package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
  741. package/src/stores/editors/CubeNodeDraft.ts +26 -6
  742. package/src/stores/editors/CubeNodeDraftRegistry.ts +60 -1
  743. package/src/stores/editors/CubePartitionDraft.ts +214 -0
  744. package/src/stores/editors/CubeRenameDraft.ts +110 -0
  745. package/src/stores/editors/CubeRestrictDraft.ts +83 -0
  746. package/src/stores/editors/CubeRowCountDraft.ts +69 -0
  747. package/src/stores/editors/CubeSliceDraft.ts +87 -0
  748. package/src/stores/editors/CubeSortDraft.ts +98 -0
  749. package/src/stores/editors/CubeSortRows.ts +84 -0
  750. package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
  751. package/src/stores/fixtures/CubeSampleSql.ts +85 -0
  752. package/src/stores/fixtures/CubeSportsModel.ts +182 -0
  753. package/src/stores/fixtures/CubeTradesModel.ts +241 -0
  754. package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
  755. package/src/stores/source-picker/CubeDataProductTabState.ts +839 -0
  756. package/src/stores/source-picker/CubeDirectConnectionTabState.ts +647 -0
  757. package/src/stores/source-picker/CubeIngestTabState.ts +551 -0
  758. package/src/stores/source-picker/CubeInlineModelTabState.ts +448 -0
  759. package/src/stores/source-picker/CubeProjectTabState.ts +218 -0
  760. package/src/stores/source-picker/CubeSourcePickerTab.ts +50 -0
  761. package/tsconfig.json +104 -0
@@ -0,0 +1,148 @@
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
+
17
+ import { clsx, TimesIcon } from '@finos/legend-art';
18
+ import { type Schema, validateRenameMapping } from '@finos/legend-cube';
19
+ import { guaranteeType } from '@finos/legend-shared';
20
+ import { observer } from 'mobx-react-lite';
21
+ import {
22
+ COLUMN_NAME_RULES_HINT,
23
+ READ_ONLY_CUBE_TITLE,
24
+ } from '../../__lib__/LegendCubeLabels.js';
25
+ import {
26
+ type CubeRenameRow,
27
+ CubeRenameDraft,
28
+ } from '../../stores/editors/CubeRenameDraft.js';
29
+ import { CubeButton } from '../CubeButton.js';
30
+ import { CubeColumnPicker } from './CubeColumnPicker.js';
31
+ import type { CubeNodeEditorProps } from './CubeNodeEditorRegistry.js';
32
+
33
+ const CubeRenameRowEditor = observer(
34
+ (props: {
35
+ draft: CubeRenameDraft;
36
+ row: CubeRenameRow;
37
+ position: number;
38
+ schema: Schema;
39
+ problem: string | undefined;
40
+ readOnly: boolean;
41
+ }) => {
42
+ const { draft, row, position, schema, problem, readOnly } = props;
43
+ return (
44
+ <li className="flex flex-col gap-1 border-b border-[var(--color-border-subtle)] py-1">
45
+ <div className="grid grid-cols-[1fr_auto_1fr_auto] items-center gap-1">
46
+ <CubeColumnPicker
47
+ label={`Old column ${position}`}
48
+ schema={schema}
49
+ value={row.from}
50
+ disabled={readOnly}
51
+ onChange={(name) => draft.setFrom(row.key, name)}
52
+ />
53
+ <span className="text-[var(--color-text-secondary)]">→</span>
54
+ <input
55
+ aria-label={`New column name ${position}`}
56
+ aria-invalid={problem !== undefined}
57
+ title={problem}
58
+ className={clsx(
59
+ 'h-6 min-w-0 rounded-sm border bg-[var(--color-bg-input)] px-1 text-base',
60
+ problem
61
+ ? 'border-[var(--color-status-error)]'
62
+ : 'border-[var(--color-border-default)]',
63
+ )}
64
+ type="text"
65
+ spellCheck={false}
66
+ value={row.to}
67
+ disabled={readOnly}
68
+ onChange={(event) => draft.setTo(row.key, event.target.value)}
69
+ />
70
+ <button
71
+ className="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)]"
72
+ aria-label={`Remove rename ${position}`}
73
+ title="Remove this rename"
74
+ disabled={readOnly}
75
+ onClick={() => draft.removeRow(row.key)}
76
+ >
77
+ <TimesIcon />
78
+ </button>
79
+ </div>
80
+ {problem && (
81
+ <div className="text-sm text-[var(--color-status-error)]">
82
+ {problem}
83
+ </div>
84
+ )}
85
+ </li>
86
+ );
87
+ },
88
+ );
89
+
90
+ /**
91
+ * The Rename editor (spec §17.6): rows of an old column, picked from the
92
+ * input, and its new name, typed. Each row shows its first problem, as the
93
+ * node checks it, and the rule for new names stays shown under the rows. The
94
+ * rows scroll on their own, so the editor fits wherever it is shown.
95
+ */
96
+ export const CubeRenameEditor = observer((props: CubeNodeEditorProps) => {
97
+ const { readOnly } = props;
98
+ const draft = guaranteeType(props.draft, CubeRenameDraft);
99
+ const [schema] = props.inputSchemas as [Schema];
100
+ const { mappings } = draft;
101
+ // a row's problem, as the node will judge it; a blank row has none
102
+ let mappingIndex = 0;
103
+ const problems = draft.rows.map((row) => {
104
+ if (!row.from && !row.to) {
105
+ return undefined;
106
+ }
107
+ const errors: string[] = [];
108
+ validateRenameMapping(mappings, mappingIndex, schema, errors);
109
+ mappingIndex += 1;
110
+ return errors[0];
111
+ });
112
+ const canAddRow = !readOnly && draft.rows.length < schema.columns.length;
113
+ return (
114
+ <div className="flex flex-col gap-2 text-base">
115
+ <ul aria-label="Column renames">
116
+ {draft.rows.map((row, index) => (
117
+ <CubeRenameRowEditor
118
+ key={row.key}
119
+ draft={draft}
120
+ row={row}
121
+ position={index + 1}
122
+ schema={schema}
123
+ problem={problems[index]}
124
+ readOnly={readOnly}
125
+ />
126
+ ))}
127
+ </ul>
128
+ <div>
129
+ <CubeButton
130
+ title={
131
+ readOnly
132
+ ? READ_ONLY_CUBE_TITLE
133
+ : canAddRow
134
+ ? 'Add a column to rename'
135
+ : 'Every column of the input already has a row'
136
+ }
137
+ disabled={!canAddRow}
138
+ onClick={() => draft.addRow()}
139
+ >
140
+ Add column to rename
141
+ </CubeButton>
142
+ </div>
143
+ <div className="text-sm text-[var(--color-text-secondary)]">
144
+ {COLUMN_NAME_RULES_HINT}
145
+ </div>
146
+ </div>
147
+ );
148
+ });
@@ -0,0 +1,103 @@
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
+
17
+ import type { Schema } from '@finos/legend-cube';
18
+ import { guaranteeType } from '@finos/legend-shared';
19
+ import { observer } from 'mobx-react-lite';
20
+ import { getColumnTypeLabel } from '../../__lib__/LegendCubeLabels.js';
21
+ import { CubeRestrictDraft } from '../../stores/editors/CubeRestrictDraft.js';
22
+ import { CubeButton } from '../CubeButton.js';
23
+ import { CubeColumnTypeIcon } from './CubeColumnPicker.js';
24
+ import type { CubeNodeEditorProps } from './CubeNodeEditorRegistry.js';
25
+
26
+ const KEEP = 'Columns to keep';
27
+
28
+ /**
29
+ * The Restrict editor (spec §17.6): the input's columns, in its order, each
30
+ * ticked to keep it. A saved column the input doesn't have stays listed, last
31
+ * and ticked, until it is unticked. The list scrolls on its own, so the
32
+ * editor fits wherever it is shown.
33
+ */
34
+ export const CubeRestrictEditor = observer((props: CubeNodeEditorProps) => {
35
+ const { readOnly } = props;
36
+ const draft = guaranteeType(props.draft, CubeRestrictDraft);
37
+ const [schema] = props.inputSchemas as [Schema];
38
+ // each once, though a saved restrict may repeat one (validation reports it)
39
+ const missing = Array.from(
40
+ new Set(draft.columns.filter((name) => !schema.lookup(name))),
41
+ );
42
+ return (
43
+ <div className="flex flex-col gap-2 text-base">
44
+ <div className="flex items-center gap-2">
45
+ <span>{KEEP}</span>
46
+ <span className="flex-1" />
47
+ <CubeButton
48
+ title="Keep every column of the input"
49
+ disabled={readOnly}
50
+ onClick={() => draft.selectAll(schema)}
51
+ >
52
+ All
53
+ </CubeButton>
54
+ <CubeButton
55
+ title="Untick every column"
56
+ disabled={readOnly}
57
+ onClick={() => draft.clear()}
58
+ >
59
+ None
60
+ </CubeButton>
61
+ </div>
62
+ <ul
63
+ aria-label={KEEP}
64
+ className="rounded-sm border border-[var(--color-border-subtle)]"
65
+ >
66
+ {schema.columns.map((column) => (
67
+ <li key={column.name}>
68
+ <label className="flex items-center gap-2 px-1 py-0.5">
69
+ <input
70
+ type="checkbox"
71
+ checked={draft.columns.includes(column.name)}
72
+ disabled={readOnly}
73
+ onChange={() => draft.toggleColumn(column.name, schema)}
74
+ />
75
+ <CubeColumnTypeIcon
76
+ type={column.type}
77
+ className="text-[var(--color-text-secondary)]"
78
+ />
79
+ <span className="min-w-0 truncate">{column.name}</span>
80
+ <span className="shrink-0 text-sm text-[var(--color-text-muted)]">
81
+ {getColumnTypeLabel(column)}
82
+ </span>
83
+ </label>
84
+ </li>
85
+ ))}
86
+ {missing.map((name) => (
87
+ <li key={`missing:${name}`}>
88
+ <label className="flex items-center gap-2 px-1 py-0.5 text-[var(--color-status-error)]">
89
+ <input
90
+ type="checkbox"
91
+ checked={true}
92
+ disabled={readOnly}
93
+ onChange={() => draft.toggleColumn(name, schema)}
94
+ />
95
+ <span className="min-w-0 truncate">{name || '(blank)'}</span>
96
+ <span className="shrink-0 text-sm">(not in the input)</span>
97
+ </label>
98
+ </li>
99
+ ))}
100
+ </ul>
101
+ </div>
102
+ );
103
+ });
@@ -0,0 +1,53 @@
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
+
17
+ import { Drop, isPositiveWholeNumber, Limit } from '@finos/legend-cube';
18
+ import { guaranteeType } from '@finos/legend-shared';
19
+ import { observer } from 'mobx-react-lite';
20
+ import { CubeRowCountDraft } from '../../stores/editors/CubeRowCountDraft.js';
21
+ import { CubeIntegerField } from './CubeIntegerField.js';
22
+ import type { CubeNodeEditorProps } from './CubeNodeEditorRegistry.js';
23
+
24
+ /** The field's label for each node type the editor serves */
25
+ const ROW_COUNT_LABELS: Readonly<Record<string, string>> = {
26
+ [Drop.TYPE]: 'Rows to drop',
27
+ [Limit.TYPE]: 'Rows to keep',
28
+ };
29
+
30
+ /**
31
+ * The editor of a node whose one setting is a number of rows, a Limit or a
32
+ * Drop (spec §17.6: one integer field). Clearing the field leaves the size empty,
33
+ * which the panel reports; it never falls back to the default.
34
+ */
35
+ export const CubeRowCountEditor = observer((props: CubeNodeEditorProps) => {
36
+ const { readOnly } = props;
37
+ const draft = guaranteeType(props.draft, CubeRowCountDraft);
38
+ const label = ROW_COUNT_LABELS[draft.original.type] ?? 'Rows';
39
+ return (
40
+ <div className="flex flex-col gap-2 text-base">
41
+ <label className="flex items-center gap-2">
42
+ <span>{label}</span>
43
+ <CubeIntegerField
44
+ label={label}
45
+ text={draft.sizeText}
46
+ invalid={!isPositiveWholeNumber(draft.size)}
47
+ disabled={readOnly}
48
+ onChange={(text) => draft.setSizeText(text)}
49
+ />
50
+ </label>
51
+ </div>
52
+ );
53
+ });
@@ -0,0 +1,69 @@
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
+
17
+ import { isRowIndex } from '@finos/legend-cube';
18
+ import { guaranteeType } from '@finos/legend-shared';
19
+ import { observer } from 'mobx-react-lite';
20
+ import { SLICE_RANGE_HINT } from '../../__lib__/LegendCubeLabels.js';
21
+ import { CubeSliceDraft } from '../../stores/editors/CubeSliceDraft.js';
22
+ import { CubeIntegerField } from './CubeIntegerField.js';
23
+ import type { CubeNodeEditorProps } from './CubeNodeEditorRegistry.js';
24
+
25
+ const START = 'Start row index';
26
+ const STOP = 'Stop row index';
27
+
28
+ /**
29
+ * The Slice editor (spec §17.6): the start and stop row indexes, counting
30
+ * from 0, the start row kept and the stop row not (D5). A cleared field
31
+ * leaves its bound empty, which the panel reports.
32
+ */
33
+ export const CubeSliceEditor = observer((props: CubeNodeEditorProps) => {
34
+ const { readOnly } = props;
35
+ const draft = guaranteeType(props.draft, CubeSliceDraft);
36
+ const { start, stop } = draft;
37
+ const validStart = isRowIndex(start);
38
+ const validStop = isRowIndex(stop);
39
+ // the stop is marked when it doesn't come after the start, too
40
+ const outOfOrder =
41
+ validStart && validStop && (start as number) >= (stop as number);
42
+ return (
43
+ <div className="flex flex-col gap-2 text-base">
44
+ <label className="flex items-center gap-2">
45
+ <span className="w-28">{START}</span>
46
+ <CubeIntegerField
47
+ label={START}
48
+ text={draft.startText}
49
+ invalid={!validStart}
50
+ disabled={readOnly}
51
+ onChange={(text) => draft.setStartText(text)}
52
+ />
53
+ </label>
54
+ <label className="flex items-center gap-2">
55
+ <span className="w-28">{STOP}</span>
56
+ <CubeIntegerField
57
+ label={STOP}
58
+ text={draft.stopText}
59
+ invalid={!validStop || outOfOrder}
60
+ disabled={readOnly}
61
+ onChange={(text) => draft.setStopText(text)}
62
+ />
63
+ </label>
64
+ <div className="text-sm text-[var(--color-text-secondary)]">
65
+ {SLICE_RANGE_HINT}
66
+ </div>
67
+ </div>
68
+ );
69
+ });
@@ -0,0 +1,84 @@
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
+
17
+ import { isSortableType, type Schema } from '@finos/legend-cube';
18
+ import { guaranteeType } from '@finos/legend-shared';
19
+ import { observer } from 'mobx-react-lite';
20
+ import { READ_ONLY_CUBE_TITLE } from '../../__lib__/LegendCubeLabels.js';
21
+ import { CubeSortDraft } from '../../stores/editors/CubeSortDraft.js';
22
+ import { CubeButton } from '../CubeButton.js';
23
+ import type { CubeNodeEditorProps } from './CubeNodeEditorRegistry.js';
24
+ import {
25
+ CubeSortRowEditor,
26
+ getSortRowProblems,
27
+ getTakenSortColumns,
28
+ } from './CubeSortRowEditor.js';
29
+
30
+ /**
31
+ * The Sort editor (spec §17.6: an ordered list of column and direction rows,
32
+ * added, removed and reordered). The first row sorts first. A column that
33
+ * can't be sorted, or that another row has, can't be picked; a saved one
34
+ * stays shown with its problem. The rows scroll on their own, so the editor
35
+ * fits wherever it is shown.
36
+ */
37
+ export const CubeSortEditor = observer((props: CubeNodeEditorProps) => {
38
+ const { readOnly } = props;
39
+ const draft = guaranteeType(props.draft, CubeSortDraft);
40
+ const [schema] = props.inputSchemas as [Schema];
41
+ const { rows } = draft;
42
+ const problems = getSortRowProblems(rows, schema);
43
+ const sortable = schema.columns.filter((column) =>
44
+ isSortableType(column.type),
45
+ );
46
+ const canAddRow = !readOnly && rows.length < sortable.length;
47
+ return (
48
+ <div className="flex flex-col gap-2 text-base">
49
+ <ul aria-label="Sort columns">
50
+ {rows.map((row, index) => (
51
+ <CubeSortRowEditor
52
+ key={row.key}
53
+ row={row}
54
+ position={index + 1}
55
+ count={rows.length}
56
+ schema={schema}
57
+ takenColumns={getTakenSortColumns(rows, row)}
58
+ problem={problems[index]}
59
+ readOnly={readOnly}
60
+ onColumn={(column) => draft.setColumn(row.key, column)}
61
+ onDirection={(direction) => draft.setDirection(row.key, direction)}
62
+ onMove={(offset) => draft.moveRow(row.key, offset)}
63
+ onRemove={() => draft.removeRow(row.key)}
64
+ />
65
+ ))}
66
+ </ul>
67
+ <div>
68
+ <CubeButton
69
+ title={
70
+ readOnly
71
+ ? READ_ONLY_CUBE_TITLE
72
+ : canAddRow
73
+ ? 'Add a column to sort by'
74
+ : 'Every column that can be sorted already has a row'
75
+ }
76
+ disabled={!canAddRow}
77
+ onClick={() => draft.addRow()}
78
+ >
79
+ Add sort column
80
+ </CubeButton>
81
+ </div>
82
+ </div>
83
+ );
84
+ });
@@ -0,0 +1,176 @@
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
+
17
+ import { ArrowDownIcon, ArrowUpIcon, TimesIcon } from '@finos/legend-art';
18
+ import {
19
+ isSortableType,
20
+ isSortDirection,
21
+ MESSAGE_CANNOT_HAVE_DUPLICATES,
22
+ type Schema,
23
+ type SchemaColumn,
24
+ SORT_DIRECTION_DESCRIPTIONS,
25
+ SORT_DIRECTIONS,
26
+ type SortDirection,
27
+ validateSortKey,
28
+ } from '@finos/legend-cube';
29
+ import { observer } from 'mobx-react-lite';
30
+ import { CUBE_SORT_COLUMN_DISABLED_REASON } from '../../__lib__/LegendCubeLabels.js';
31
+ import type { CubeSortRow } from '../../stores/editors/CubeSortRows.js';
32
+ import { CubeColumnPicker } from './CubeColumnPicker.js';
33
+
34
+ const ROW_BUTTON_CLASS =
35
+ '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)]';
36
+
37
+ /**
38
+ * Each sort row's first problem, as the node will judge it: its key
39
+ * (`validateSortKey`), then a column an earlier row has; a blank row has none
40
+ */
41
+ export const getSortRowProblems = (
42
+ rows: readonly CubeSortRow[],
43
+ schema: Schema,
44
+ ): (string | undefined)[] =>
45
+ rows.map((row, index) => {
46
+ if (!row.column) {
47
+ return undefined;
48
+ }
49
+ const errors: string[] = [];
50
+ validateSortKey(row, schema, errors);
51
+ return (
52
+ errors[0] ??
53
+ (rows.slice(0, index).some(({ column }) => column === row.column)
54
+ ? MESSAGE_CANNOT_HAVE_DUPLICATES('Sort columns')
55
+ : undefined)
56
+ );
57
+ });
58
+
59
+ /** The columns of the other rows, which a row can't take */
60
+ export const getTakenSortColumns = (
61
+ rows: readonly CubeSortRow[],
62
+ row: CubeSortRow,
63
+ ): ReadonlySet<string> =>
64
+ new Set(
65
+ rows
66
+ .filter((other) => other.key !== row.key && other.column)
67
+ .map(({ column }) => column),
68
+ );
69
+
70
+ /**
71
+ * One sort row (a Sort's, PLAN §11.4; a Partition's window, §11.6): its
72
+ * column, its direction, buttons that move it up or down and remove it, then
73
+ * its first problem. A column that can't be sorted, or that another row has,
74
+ * can't be picked.
75
+ */
76
+ export const CubeSortRowEditor = observer(
77
+ (props: {
78
+ row: CubeSortRow;
79
+ position: number;
80
+ count: number;
81
+ schema: Schema;
82
+ /** The columns of the other rows, which this row can't take */
83
+ takenColumns: ReadonlySet<string>;
84
+ problem: string | undefined;
85
+ readOnly: boolean;
86
+ onColumn: (column: string) => void;
87
+ onDirection: (direction: SortDirection) => void;
88
+ onMove: (offset: -1 | 1) => void;
89
+ onRemove: () => void;
90
+ }) => {
91
+ const {
92
+ row,
93
+ position,
94
+ count,
95
+ schema,
96
+ takenColumns,
97
+ problem,
98
+ readOnly,
99
+ onColumn,
100
+ onDirection,
101
+ onMove,
102
+ onRemove,
103
+ } = props;
104
+ const isColumnDisabled = (column: SchemaColumn): string | undefined =>
105
+ !isSortableType(column.type)
106
+ ? CUBE_SORT_COLUMN_DISABLED_REASON.NOT_SORTABLE
107
+ : takenColumns.has(column.name)
108
+ ? CUBE_SORT_COLUMN_DISABLED_REASON.TAKEN
109
+ : undefined;
110
+ return (
111
+ <li className="flex flex-col gap-1 border-b border-[var(--color-border-subtle)] py-1">
112
+ <div className="grid grid-cols-[1fr_auto_auto_auto_auto] items-center gap-1">
113
+ <CubeColumnPicker
114
+ label={`Sort column ${position}`}
115
+ schema={schema}
116
+ value={row.column}
117
+ disabled={readOnly}
118
+ invalid={problem !== undefined}
119
+ isColumnDisabled={isColumnDisabled}
120
+ onChange={onColumn}
121
+ />
122
+ <select
123
+ aria-label={`Sort direction ${position}`}
124
+ className="h-6 rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-input)] px-1 text-base"
125
+ value={row.direction}
126
+ disabled={readOnly}
127
+ onChange={(event) => {
128
+ const direction = event.target.value;
129
+ if (isSortDirection(direction)) {
130
+ onDirection(direction);
131
+ }
132
+ }}
133
+ >
134
+ {SORT_DIRECTIONS.map((direction) => (
135
+ <option key={direction} value={direction}>
136
+ {SORT_DIRECTION_DESCRIPTIONS[direction]}
137
+ </option>
138
+ ))}
139
+ </select>
140
+ <button
141
+ className={ROW_BUTTON_CLASS}
142
+ aria-label={`Move sort column ${position} up`}
143
+ title="Sort by this column before the one above"
144
+ disabled={readOnly || position === 1}
145
+ onClick={() => onMove(-1)}
146
+ >
147
+ <ArrowUpIcon />
148
+ </button>
149
+ <button
150
+ className={ROW_BUTTON_CLASS}
151
+ aria-label={`Move sort column ${position} down`}
152
+ title="Sort by this column after the one below"
153
+ disabled={readOnly || position === count}
154
+ onClick={() => onMove(1)}
155
+ >
156
+ <ArrowDownIcon />
157
+ </button>
158
+ <button
159
+ className={ROW_BUTTON_CLASS}
160
+ aria-label={`Remove sort column ${position}`}
161
+ title="Remove this sort column"
162
+ disabled={readOnly}
163
+ onClick={onRemove}
164
+ >
165
+ <TimesIcon />
166
+ </button>
167
+ </div>
168
+ {problem && (
169
+ <div className="text-sm text-[var(--color-status-error)]">
170
+ {problem}
171
+ </div>
172
+ )}
173
+ </li>
174
+ );
175
+ },
176
+ );