@finos/legend-application-repl 0.0.21 → 0.0.23

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 (291) hide show
  1. package/lib/{stores/CompletionResult.d.ts → __lib__/LegendREPLEvent.d.ts} +4 -6
  2. package/lib/__lib__/LegendREPLEvent.d.ts.map +1 -0
  3. package/lib/__lib__/LegendREPLEvent.js +21 -0
  4. package/lib/__lib__/LegendREPLEvent.js.map +1 -0
  5. package/lib/{stores/dataCube/DataCubePanelState.js → __lib__/LegendREPLSetting.d.ts} +3 -6
  6. package/lib/__lib__/LegendREPLSetting.d.ts.map +1 -0
  7. package/lib/{components/grid/TDSLambdaBuilder.d.ts → __lib__/LegendREPLSetting.js} +5 -4
  8. package/lib/__lib__/LegendREPLSetting.js.map +1 -0
  9. package/lib/application/{LegendREPLGridClient.d.ts → LegendREPL.d.ts} +10 -10
  10. package/lib/application/LegendREPL.d.ts.map +1 -0
  11. package/lib/application/{LegendREPLGridClient.js → LegendREPL.js} +10 -15
  12. package/lib/application/LegendREPL.js.map +1 -0
  13. package/lib/application/{LegendREPLGridClientApplicationConfig.d.ts → LegendREPLApplicationConfig.d.ts} +4 -4
  14. package/lib/application/LegendREPLApplicationConfig.d.ts.map +1 -0
  15. package/lib/application/{LegendREPLGridClientApplicationConfig.js → LegendREPLApplicationConfig.js} +2 -2
  16. package/lib/application/LegendREPLApplicationConfig.js.map +1 -0
  17. package/lib/application/{LegendREPLGridClientPluginManager.d.ts → LegendREPLPluginManager.d.ts} +4 -4
  18. package/lib/application/LegendREPLPluginManager.d.ts.map +1 -0
  19. package/lib/application/{LegendREPLGridClientPluginManager.js → LegendREPLPluginManager.js} +3 -3
  20. package/lib/application/LegendREPLPluginManager.js.map +1 -0
  21. package/lib/components/{Core_LegendREPLGridClientApplicationPlugin.d.ts → Core_LegendREPLApplicationPlugin.d.ts} +3 -3
  22. package/lib/components/Core_LegendREPLApplicationPlugin.d.ts.map +1 -0
  23. package/lib/components/{Core_LegendREPLGridClientApplicationPlugin.js → Core_LegendREPLApplicationPlugin.js} +12 -7
  24. package/lib/components/Core_LegendREPLApplicationPlugin.js.map +1 -0
  25. package/lib/components/{AgGrid.d.ts → LegendREPLApplication.d.ts} +8 -6
  26. package/lib/components/LegendREPLApplication.d.ts.map +1 -0
  27. package/lib/components/LegendREPLApplication.js +32 -0
  28. package/lib/components/LegendREPLApplication.js.map +1 -0
  29. package/lib/components/{LegendREPLGridClientFrameworkProvider.d.ts → LegendREPLFrameworkProvider.d.ts} +4 -4
  30. package/lib/components/LegendREPLFrameworkProvider.d.ts.map +1 -0
  31. package/lib/components/{LegendREPLGridClientFrameworkProvider.js → LegendREPLFrameworkProvider.js} +9 -9
  32. package/lib/components/LegendREPLFrameworkProvider.js.map +1 -0
  33. package/lib/components/{REPLGridClientStoreProvider.d.ts → REPLStoreProvider.d.ts} +5 -5
  34. package/lib/components/REPLStoreProvider.d.ts.map +1 -0
  35. package/lib/components/{REPLGridClientStoreProvider.js → REPLStoreProvider.js} +9 -9
  36. package/lib/components/REPLStoreProvider.js.map +1 -0
  37. package/lib/components/dataCube/DataCube.d.ts +19 -0
  38. package/lib/components/dataCube/DataCube.d.ts.map +1 -0
  39. package/lib/components/dataCube/DataCube.js +33 -0
  40. package/lib/components/dataCube/DataCube.js.map +1 -0
  41. package/lib/components/{REPLGridClient.d.ts → dataCube/editor/DataCubeEditor.d.ts} +5 -9
  42. package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -0
  43. package/lib/components/dataCube/editor/DataCubeEditor.js +54 -0
  44. package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -0
  45. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts +19 -0
  46. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -0
  47. package/lib/components/dataCube/{DataCubeQueryTextEditor.js → editor/DataCubeEditorCodePanel.js} +20 -20
  48. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -0
  49. package/lib/components/dataCube/{DataCubeGridEditor.d.ts → editor/DataCubeEditorSortPanel.d.ts} +4 -4
  50. package/lib/components/dataCube/editor/DataCubeEditorSortPanel.d.ts.map +1 -0
  51. package/lib/components/dataCube/editor/DataCubeEditorSortPanel.js +61 -0
  52. package/lib/components/dataCube/editor/DataCubeEditorSortPanel.js.map +1 -0
  53. package/lib/components/dataCube/{DataCubeQueryTextEditor.d.ts → grid/DataCubeGrid.d.ts} +4 -4
  54. package/lib/components/dataCube/grid/DataCubeGrid.d.ts.map +1 -0
  55. package/lib/components/dataCube/grid/DataCubeGrid.js +59 -0
  56. package/lib/components/dataCube/grid/DataCubeGrid.js.map +1 -0
  57. package/lib/grid.css +1 -1
  58. package/lib/index.css +2 -2
  59. package/lib/index.css.map +1 -1
  60. package/lib/index.d.ts +1 -1
  61. package/lib/index.d.ts.map +1 -1
  62. package/lib/index.js +8 -8
  63. package/lib/index.js.map +1 -1
  64. package/lib/package.json +3 -3
  65. package/lib/repl.css +1 -1
  66. package/lib/server/REPLServerClient.d.ts +11 -13
  67. package/lib/server/REPLServerClient.d.ts.map +1 -1
  68. package/lib/server/REPLServerClient.js +27 -15
  69. package/lib/server/REPLServerClient.js.map +1 -1
  70. package/lib/server/models/DataCubeEngineModels.d.ts +50 -0
  71. package/lib/server/models/DataCubeEngineModels.d.ts.map +1 -0
  72. package/lib/server/models/DataCubeEngineModels.js +39 -0
  73. package/lib/server/models/DataCubeEngineModels.js.map +1 -0
  74. package/lib/server/models/DataCubeQuery.d.ts +41 -0
  75. package/lib/server/models/DataCubeQuery.d.ts.map +1 -0
  76. package/lib/server/models/DataCubeQuery.js +78 -0
  77. package/lib/server/models/DataCubeQuery.js.map +1 -0
  78. package/lib/stores/{LegendREPLGridClientApplicationPlugin.d.ts → LegendREPLApplicationPlugin.d.ts} +4 -4
  79. package/lib/stores/LegendREPLApplicationPlugin.d.ts.map +1 -0
  80. package/lib/stores/{LegendREPLGridClientApplicationPlugin.js → LegendREPLApplicationPlugin.js} +2 -2
  81. package/lib/stores/LegendREPLApplicationPlugin.js.map +1 -0
  82. package/lib/stores/LegendREPLBaseStore.d.ts +25 -0
  83. package/lib/stores/LegendREPLBaseStore.d.ts.map +1 -0
  84. package/lib/stores/{LegendREPLGridClientBaseStore.js → LegendREPLBaseStore.js} +2 -2
  85. package/lib/stores/LegendREPLBaseStore.js.map +1 -0
  86. package/lib/stores/dataCube/DataCubeMetaModelConst.d.ts +49 -0
  87. package/lib/stores/dataCube/DataCubeMetaModelConst.d.ts.map +1 -0
  88. package/lib/stores/dataCube/DataCubeMetaModelConst.js +57 -0
  89. package/lib/stores/dataCube/DataCubeMetaModelConst.js.map +1 -0
  90. package/lib/stores/dataCube/DataCubeState.d.ts +18 -23
  91. package/lib/stores/dataCube/DataCubeState.d.ts.map +1 -1
  92. package/lib/stores/dataCube/DataCubeState.js +31 -181
  93. package/lib/stores/dataCube/DataCubeState.js.map +1 -1
  94. package/lib/stores/{REPLGridClientStore.d.ts → dataCube/DataCubeStore.d.ts} +7 -7
  95. package/lib/stores/dataCube/DataCubeStore.d.ts.map +1 -0
  96. package/lib/stores/{REPLGridClientStore.js → dataCube/DataCubeStore.js} +5 -4
  97. package/lib/stores/dataCube/DataCubeStore.js.map +1 -0
  98. package/lib/stores/dataCube/core/DataCubeEngine.d.ts +29 -0
  99. package/lib/stores/dataCube/core/DataCubeEngine.d.ts.map +1 -0
  100. package/lib/stores/dataCube/core/DataCubeEngine.js +47 -0
  101. package/lib/stores/dataCube/core/DataCubeEngine.js.map +1 -0
  102. package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.d.ts +37 -0
  103. package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.d.ts.map +1 -0
  104. package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.js +269 -0
  105. package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.js.map +1 -0
  106. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts +19 -0
  107. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts.map +1 -0
  108. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +98 -0
  109. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -0
  110. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +73 -0
  111. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -0
  112. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +56 -0
  113. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -0
  114. package/lib/stores/dataCube/{DataCubePanelState.d.ts → core/DataCubeQuerySnapshotManager.d.ts} +11 -6
  115. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts.map +1 -0
  116. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js +46 -0
  117. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js.map +1 -0
  118. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts +27 -0
  119. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts.map +1 -0
  120. package/lib/{components/grid/REPLGridServerResult.js → stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js} +18 -10
  121. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js.map +1 -0
  122. package/lib/stores/dataCube/{DataCubeQueryEditorState.d.ts → editor/DataCubeEditorCodeState.d.ts} +12 -2
  123. package/lib/stores/dataCube/editor/DataCubeEditorCodeState.d.ts.map +1 -0
  124. package/lib/stores/dataCube/editor/DataCubeEditorCodeState.js +87 -0
  125. package/lib/stores/dataCube/editor/DataCubeEditorCodeState.js.map +1 -0
  126. package/lib/stores/dataCube/editor/DataCubeEditorQuerySnapshotBuilder.d.ts +28 -0
  127. package/lib/stores/dataCube/editor/DataCubeEditorQuerySnapshotBuilder.d.ts.map +1 -0
  128. package/lib/stores/dataCube/editor/DataCubeEditorQuerySnapshotBuilder.js +17 -0
  129. package/lib/stores/dataCube/editor/DataCubeEditorQuerySnapshotBuilder.js.map +1 -0
  130. package/lib/stores/dataCube/editor/DataCubeEditorSortState.d.ts +46 -0
  131. package/lib/stores/dataCube/editor/DataCubeEditorSortState.d.ts.map +1 -0
  132. package/lib/stores/dataCube/editor/DataCubeEditorSortState.js +133 -0
  133. package/lib/stores/dataCube/editor/DataCubeEditorSortState.js.map +1 -0
  134. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +44 -0
  135. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -0
  136. package/lib/stores/dataCube/editor/DataCubeEditorState.js +77 -0
  137. package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -0
  138. package/lib/{components/grid/ServerSideDataSource.d.ts → stores/dataCube/grid/DataCubeGridClientEngine.d.ts} +17 -14
  139. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +1 -0
  140. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +96 -0
  141. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -0
  142. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts +19 -0
  143. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts.map +1 -0
  144. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js +224 -0
  145. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js.map +1 -0
  146. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +33 -0
  147. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +1 -0
  148. package/lib/stores/dataCube/grid/DataCubeGridState.js +50 -0
  149. package/lib/stores/dataCube/grid/DataCubeGridState.js.map +1 -0
  150. package/package.json +9 -9
  151. package/src/{Const.ts → __lib__/LegendREPLEvent.ts} +1 -16
  152. package/{lib/components/grid/REPLGridServerResult.d.ts → src/__lib__/LegendREPLSetting.ts} +3 -6
  153. package/src/application/LegendREPL.tsx +64 -0
  154. package/src/application/{LegendREPLGridClientApplicationConfig.ts → LegendREPLApplicationConfig.ts} +3 -3
  155. package/src/application/{LegendREPLGridClientPluginManager.ts → LegendREPLPluginManager.ts} +5 -5
  156. package/src/components/{Core_LegendREPLGridClientApplicationPlugin.tsx → Core_LegendREPLApplicationPlugin.tsx} +11 -6
  157. package/src/components/{LegendREPLGridClientApplication.tsx → LegendREPLApplication.tsx} +11 -28
  158. package/src/components/LegendREPLFrameworkProvider.tsx +57 -0
  159. package/src/components/{REPLGridClientStoreProvider.tsx → REPLStoreProvider.tsx} +17 -21
  160. package/src/components/dataCube/DataCube.tsx +63 -0
  161. package/src/components/dataCube/editor/DataCubeEditor.tsx +127 -0
  162. package/src/components/dataCube/{DataCubeQueryTextEditor.tsx → editor/DataCubeEditorCodePanel.tsx} +69 -76
  163. package/src/components/dataCube/editor/DataCubeEditorSortPanel.tsx +274 -0
  164. package/src/components/dataCube/grid/DataCubeGrid.tsx +77 -0
  165. package/src/index.tsx +12 -8
  166. package/src/server/REPLServerClient.ts +50 -78
  167. package/src/server/models/DataCubeEngineModels.ts +84 -0
  168. package/src/server/models/DataCubeQuery.ts +130 -0
  169. package/src/stores/{LegendREPLGridClientApplicationPlugin.ts → LegendREPLApplicationPlugin.ts} +4 -4
  170. package/src/stores/{LegendREPLGridClientBaseStore.ts → LegendREPLBaseStore.ts} +9 -9
  171. package/src/stores/dataCube/DataCubeMetaModelConst.ts +61 -0
  172. package/src/stores/dataCube/DataCubeState.ts +39 -303
  173. package/src/stores/{REPLGridClientStore.ts → dataCube/DataCubeStore.ts} +8 -6
  174. package/src/stores/dataCube/core/DataCubeEngine.ts +79 -0
  175. package/src/stores/dataCube/core/DataCubeQueryAnalyzer.ts +424 -0
  176. package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +151 -0
  177. package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +201 -0
  178. package/src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts +67 -0
  179. package/src/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.ts +43 -0
  180. package/src/stores/dataCube/editor/DataCubeEditorCodeState.ts +166 -0
  181. package/src/{components/grid/REPLGridServerResult.ts → stores/dataCube/editor/DataCubeEditorQuerySnapshotBuilder.ts} +14 -11
  182. package/src/stores/dataCube/editor/DataCubeEditorSortState.ts +198 -0
  183. package/src/stores/dataCube/editor/DataCubeEditorState.ts +94 -0
  184. package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +152 -0
  185. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.ts +245 -0
  186. package/src/stores/dataCube/grid/DataCubeGridState.ts +62 -0
  187. package/tsconfig.json +33 -29
  188. package/lib/Const.d.ts +0 -32
  189. package/lib/Const.d.ts.map +0 -1
  190. package/lib/Const.js +0 -35
  191. package/lib/Const.js.map +0 -1
  192. package/lib/application/LegendREPLGridClient.d.ts.map +0 -1
  193. package/lib/application/LegendREPLGridClient.js.map +0 -1
  194. package/lib/application/LegendREPLGridClientApplicationConfig.d.ts.map +0 -1
  195. package/lib/application/LegendREPLGridClientApplicationConfig.js.map +0 -1
  196. package/lib/application/LegendREPLGridClientPluginManager.d.ts.map +0 -1
  197. package/lib/application/LegendREPLGridClientPluginManager.js.map +0 -1
  198. package/lib/components/AgGrid.d.ts.map +0 -1
  199. package/lib/components/AgGrid.js +0 -41
  200. package/lib/components/AgGrid.js.map +0 -1
  201. package/lib/components/Core_LegendREPLGridClientApplicationPlugin.d.ts.map +0 -1
  202. package/lib/components/Core_LegendREPLGridClientApplicationPlugin.js.map +0 -1
  203. package/lib/components/LegendREPLGridClientApplication.d.ts +0 -31
  204. package/lib/components/LegendREPLGridClientApplication.d.ts.map +0 -1
  205. package/lib/components/LegendREPLGridClientApplication.js +0 -39
  206. package/lib/components/LegendREPLGridClientApplication.js.map +0 -1
  207. package/lib/components/LegendREPLGridClientFrameworkProvider.d.ts.map +0 -1
  208. package/lib/components/LegendREPLGridClientFrameworkProvider.js.map +0 -1
  209. package/lib/components/REPLGridClient.d.ts.map +0 -1
  210. package/lib/components/REPLGridClient.js +0 -143
  211. package/lib/components/REPLGridClient.js.map +0 -1
  212. package/lib/components/REPLGridClientStoreProvider.d.ts.map +0 -1
  213. package/lib/components/REPLGridClientStoreProvider.js.map +0 -1
  214. package/lib/components/dataCube/DataCubeGridEditor.d.ts.map +0 -1
  215. package/lib/components/dataCube/DataCubeGridEditor.js +0 -37
  216. package/lib/components/dataCube/DataCubeGridEditor.js.map +0 -1
  217. package/lib/components/dataCube/DataCubeQueryTextEditor.d.ts.map +0 -1
  218. package/lib/components/dataCube/DataCubeQueryTextEditor.js.map +0 -1
  219. package/lib/components/grid/GridUtils.d.ts +0 -31
  220. package/lib/components/grid/GridUtils.d.ts.map +0 -1
  221. package/lib/components/grid/GridUtils.js +0 -174
  222. package/lib/components/grid/GridUtils.js.map +0 -1
  223. package/lib/components/grid/REPLGridServerResult.d.ts.map +0 -1
  224. package/lib/components/grid/REPLGridServerResult.js.map +0 -1
  225. package/lib/components/grid/ServerSideDataSource.d.ts.map +0 -1
  226. package/lib/components/grid/ServerSideDataSource.js +0 -109
  227. package/lib/components/grid/ServerSideDataSource.js.map +0 -1
  228. package/lib/components/grid/TDSLambdaBuilder.d.ts.map +0 -1
  229. package/lib/components/grid/TDSLambdaBuilder.js +0 -314
  230. package/lib/components/grid/TDSLambdaBuilder.js.map +0 -1
  231. package/lib/components/grid/TDSQuery.d.ts +0 -25
  232. package/lib/components/grid/TDSQuery.d.ts.map +0 -1
  233. package/lib/components/grid/TDSQuery.js +0 -32
  234. package/lib/components/grid/TDSQuery.js.map +0 -1
  235. package/lib/components/grid/TDSRequest.d.ts +0 -103
  236. package/lib/components/grid/TDSRequest.d.ts.map +0 -1
  237. package/lib/components/grid/TDSRequest.js +0 -172
  238. package/lib/components/grid/TDSRequest.js.map +0 -1
  239. package/lib/stores/CompletionResult.d.ts.map +0 -1
  240. package/lib/stores/CompletionResult.js +0 -26
  241. package/lib/stores/CompletionResult.js.map +0 -1
  242. package/lib/stores/LegendREPLGridClientApplicationPlugin.d.ts.map +0 -1
  243. package/lib/stores/LegendREPLGridClientApplicationPlugin.js.map +0 -1
  244. package/lib/stores/LegendREPLGridClientBaseStore.d.ts +0 -25
  245. package/lib/stores/LegendREPLGridClientBaseStore.d.ts.map +0 -1
  246. package/lib/stores/LegendREPLGridClientBaseStore.js.map +0 -1
  247. package/lib/stores/REPLGridClientStore.d.ts.map +0 -1
  248. package/lib/stores/REPLGridClientStore.js.map +0 -1
  249. package/lib/stores/dataCube/DataCubeConfigState.d.ts +0 -32
  250. package/lib/stores/dataCube/DataCubeConfigState.d.ts.map +0 -1
  251. package/lib/stores/dataCube/DataCubeConfigState.js +0 -62
  252. package/lib/stores/dataCube/DataCubeConfigState.js.map +0 -1
  253. package/lib/stores/dataCube/DataCubeGridState.d.ts +0 -39
  254. package/lib/stores/dataCube/DataCubeGridState.d.ts.map +0 -1
  255. package/lib/stores/dataCube/DataCubeGridState.js +0 -108
  256. package/lib/stores/dataCube/DataCubeGridState.js.map +0 -1
  257. package/lib/stores/dataCube/DataCubePanelState.d.ts.map +0 -1
  258. package/lib/stores/dataCube/DataCubePanelState.js.map +0 -1
  259. package/lib/stores/dataCube/DataCubePropertiesPanelState.d.ts +0 -34
  260. package/lib/stores/dataCube/DataCubePropertiesPanelState.d.ts.map +0 -1
  261. package/lib/stores/dataCube/DataCubePropertiesPanelState.js +0 -57
  262. package/lib/stores/dataCube/DataCubePropertiesPanelState.js.map +0 -1
  263. package/lib/stores/dataCube/DataCubeQueryEditorState.d.ts.map +0 -1
  264. package/lib/stores/dataCube/DataCubeQueryEditorState.js +0 -49
  265. package/lib/stores/dataCube/DataCubeQueryEditorState.js.map +0 -1
  266. package/lib/stores/dataCube/DataCubeQueryTextEditorState.d.ts +0 -25
  267. package/lib/stores/dataCube/DataCubeQueryTextEditorState.d.ts.map +0 -1
  268. package/lib/stores/dataCube/DataCubeQueryTextEditorState.js +0 -35
  269. package/lib/stores/dataCube/DataCubeQueryTextEditorState.js.map +0 -1
  270. package/lib/stores/dataCube/HPivotAndSortPanelState.d.ts +0 -40
  271. package/lib/stores/dataCube/HPivotAndSortPanelState.d.ts.map +0 -1
  272. package/lib/stores/dataCube/HPivotAndSortPanelState.js +0 -130
  273. package/lib/stores/dataCube/HPivotAndSortPanelState.js.map +0 -1
  274. package/src/application/LegendREPLGridClient.tsx +0 -72
  275. package/src/components/AgGrid.tsx +0 -59
  276. package/src/components/LegendREPLGridClientFrameworkProvider.tsx +0 -63
  277. package/src/components/REPLGridClient.tsx +0 -560
  278. package/src/components/dataCube/DataCubeGridEditor.tsx +0 -69
  279. package/src/components/grid/GridUtils.ts +0 -220
  280. package/src/components/grid/ServerSideDataSource.ts +0 -197
  281. package/src/components/grid/TDSLambdaBuilder.ts +0 -456
  282. package/src/components/grid/TDSQuery.ts +0 -37
  283. package/src/components/grid/TDSRequest.ts +0 -231
  284. package/src/stores/CompletionResult.ts +0 -30
  285. package/src/stores/dataCube/DataCubeConfigState.ts +0 -79
  286. package/src/stores/dataCube/DataCubeGridState.ts +0 -143
  287. package/src/stores/dataCube/DataCubePanelState.ts +0 -28
  288. package/src/stores/dataCube/DataCubePropertiesPanelState.ts +0 -65
  289. package/src/stores/dataCube/DataCubeQueryEditorState.ts +0 -66
  290. package/src/stores/dataCube/DataCubeQueryTextEditorState.ts +0 -41
  291. package/src/stores/dataCube/HPivotAndSortPanelState.ts +0 -170
@@ -0,0 +1,269 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { V1_AppliedFunction, V1_ClassInstance, V1_ColSpec, V1_Collection, V1_serializeValueSpecification, extractElementNameFromPath, matchFunctionName, } from '@finos/legend-graph';
17
+ import { DATA_CUBE_FUNCTIONS, DATA_CUBE_COLUMN_SORT_DIRECTION, } from '../DataCubeMetaModelConst.js';
18
+ import { DataCubeQuerySnapshotColumnOrigin, createSnapshot, } from './DataCubeQuerySnapshot.js';
19
+ import { assertErrorThrown, assertTrue, assertType, guaranteeNonNullable, } from '@finos/legend-shared';
20
+ const _SUPPORTED_TOP_LEVEL_FUNCTIONS = [
21
+ { func: DATA_CUBE_FUNCTIONS.EXTEND, parameters: 1 },
22
+ { func: DATA_CUBE_FUNCTIONS.FILTER, parameters: 1 },
23
+ { func: DATA_CUBE_FUNCTIONS.GROUP_BY, parameters: 3 },
24
+ { func: DATA_CUBE_FUNCTIONS.LIMIT, parameters: 1 },
25
+ { func: DATA_CUBE_FUNCTIONS.PIVOT, parameters: 3 },
26
+ { func: DATA_CUBE_FUNCTIONS.RENAME, parameters: 2 },
27
+ { func: DATA_CUBE_FUNCTIONS.SELECT, parameters: 1 },
28
+ { func: DATA_CUBE_FUNCTIONS.SORT, parameters: 1 },
29
+ { func: DATA_CUBE_FUNCTIONS.CAST, parameters: 1 },
30
+ ];
31
+ // NOTE: this corresponds to the sequence:
32
+ // extend()->rename()->filter()->groupBy()->select()->pivot()->cast()->extend()->sort()->limit()
33
+ // which represents the ONLY query shape that we currently support
34
+ const _FUNCTION_SEQUENCE_COMPOSITION_PATTERN = [
35
+ { func: DATA_CUBE_FUNCTIONS.EXTEND },
36
+ { func: DATA_CUBE_FUNCTIONS.RENAME, repeat: true }, // rename() can be repeated since each call only allow renaming one column
37
+ { func: DATA_CUBE_FUNCTIONS.FILTER },
38
+ { func: DATA_CUBE_FUNCTIONS.GROUP_BY },
39
+ { func: DATA_CUBE_FUNCTIONS.SELECT },
40
+ { func: DATA_CUBE_FUNCTIONS.PIVOT },
41
+ { func: DATA_CUBE_FUNCTIONS.CAST },
42
+ { func: DATA_CUBE_FUNCTIONS.EXTEND },
43
+ { func: DATA_CUBE_FUNCTIONS.SORT },
44
+ { func: DATA_CUBE_FUNCTIONS.LIMIT },
45
+ ];
46
+ const _FUNCTION_SEQUENCE_COMPOSITION_PATTERN_REGEXP = new RegExp(`^${_FUNCTION_SEQUENCE_COMPOSITION_PATTERN
47
+ .map((entry) => `(?:<${extractElementNameFromPath(entry.func)}>)${entry.repeat ? '*' : !entry.required ? '?' : ''}`)
48
+ .join('')}$`);
49
+ /**
50
+ * Since the query created by DataCube will be a chain call of various functions,
51
+ * this utility function will extract that sequence of function calls as well as
52
+ * do various basic checks for the validity, composition, and order of those functions.
53
+ */
54
+ function extractQueryFunctionSequence(query) {
55
+ // Make sure this is a sequence of function calls
56
+ if (!(query instanceof V1_AppliedFunction)) {
57
+ throw new Error(`Query sequence must be a sequence of function calls (e.g. x()->y()->z())`);
58
+ }
59
+ const sequence = [];
60
+ let currentQuery = query;
61
+ while (currentQuery instanceof V1_AppliedFunction) {
62
+ const supportedFunc = _SUPPORTED_TOP_LEVEL_FUNCTIONS.find((spec) => matchFunctionName(currentQuery.function, spec.func));
63
+ // Check that all functions in sequence are supported
64
+ if (!supportedFunc) {
65
+ throw new Error(`Found unsupported function ${currentQuery.function}()`);
66
+ }
67
+ if (currentQuery.parameters.length > supportedFunc.parameters) {
68
+ const vs = currentQuery.parameters[0];
69
+ if (!(vs instanceof V1_AppliedFunction)) {
70
+ throw new Error(`Query sequence must be a sequence of function calls (e.g. x()->y()->z())`);
71
+ }
72
+ currentQuery.parameters = currentQuery.parameters.slice(1);
73
+ sequence.unshift(currentQuery);
74
+ currentQuery = vs;
75
+ }
76
+ else {
77
+ sequence.unshift(currentQuery);
78
+ break;
79
+ }
80
+ }
81
+ // Check that sequence follows the supported pattern
82
+ const sequenceFormText = sequence
83
+ .map((func) => `<${extractElementNameFromPath(func.function)}>`)
84
+ .join('');
85
+ if (!sequenceFormText.match(_FUNCTION_SEQUENCE_COMPOSITION_PATTERN_REGEXP)) {
86
+ throw new Error(`Unsupported function composition ${sequence.map((fn) => `${extractElementNameFromPath(fn.function)}()`).join('->')} (supported composition: ${_FUNCTION_SEQUENCE_COMPOSITION_PATTERN.map((entry) => `${extractElementNameFromPath(entry.func)}()`).join('->')})`);
87
+ }
88
+ // Special checks
89
+ // Check that the first and second extend() must be separated by either groupBy() or pivot() (i.e. aggregation)
90
+ const firstExtendIndex = sequence.findIndex((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.EXTEND));
91
+ const secondExtendIndex = sequence.findLastIndex((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.EXTEND));
92
+ if (firstExtendIndex !== -1 && firstExtendIndex !== secondExtendIndex) {
93
+ const seq = sequence.slice(firstExtendIndex + 1, secondExtendIndex);
94
+ if (!seq.some((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.GROUP_BY) ||
95
+ matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.PIVOT))) {
96
+ throw new Error(`Found invalid usage of group-level extend() for query without aggregation such as pivot() and groupBy()`);
97
+ }
98
+ }
99
+ // Check that pivot() and cast() must co-present and stand consecutively in the sequence
100
+ const pivotFunc = sequence.find((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.PIVOT));
101
+ const castFunc = sequence.find((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.CAST));
102
+ if (Boolean(pivotFunc) !== Boolean(castFunc)) {
103
+ throw new Error(`Found usage of dynamic function pivot() without casting`);
104
+ }
105
+ return sequence;
106
+ }
107
+ /**
108
+ * Turn the function sequence into a map of available functions
109
+ * for easier construction of the snapshot
110
+ */
111
+ function extractFunctionMap(sequence) {
112
+ let leafExtend = undefined;
113
+ let groupExtend = undefined;
114
+ const aggregationFuncIndex = sequence.findLastIndex((func) => matchFunctionName(func.function, [
115
+ DATA_CUBE_FUNCTIONS.PIVOT,
116
+ DATA_CUBE_FUNCTIONS.GROUP_BY,
117
+ ]));
118
+ const firstExtendIndex = sequence.findIndex((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.EXTEND));
119
+ const secondExtendIndex = sequence.findLastIndex((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.EXTEND));
120
+ if (aggregationFuncIndex !== -1) {
121
+ if (firstExtendIndex !== secondExtendIndex) {
122
+ leafExtend = sequence[firstExtendIndex];
123
+ groupExtend = sequence[secondExtendIndex];
124
+ }
125
+ }
126
+ else {
127
+ if (firstExtendIndex !== -1) {
128
+ leafExtend = sequence[firstExtendIndex];
129
+ }
130
+ }
131
+ const rename = sequence.filter((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.RENAME));
132
+ const filter = sequence.find((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.FILTER));
133
+ const groupBy = sequence.find((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.GROUP_BY));
134
+ const select = sequence.find((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.SELECT));
135
+ const pivot = sequence.find((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.PIVOT));
136
+ const cast = sequence.find((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.CAST));
137
+ const sort = sequence.find((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.SORT));
138
+ const limit = sequence.find((func) => matchFunctionName(func.function, DATA_CUBE_FUNCTIONS.LIMIT));
139
+ return {
140
+ leafExtend,
141
+ rename,
142
+ filter,
143
+ groupBy,
144
+ select,
145
+ pivot,
146
+ cast,
147
+ groupExtend,
148
+ sort,
149
+ limit,
150
+ };
151
+ }
152
+ /**
153
+ * Analyze the partial query to build the base snapshot.
154
+ *
155
+ * NOTE: the base snapshot is almost, but not a complete snapshot.
156
+ * It has key information about the partial query filled in, these are the bits
157
+ * required to reconstruct the query just from the snapshot.
158
+ * However, it lacks analytics information, such as extended columns' lambda code,
159
+ * which might be useful for initializing the editors. These should get filled in
160
+ * at a later stage in the analysis/initialization flow.
161
+ *
162
+ * Implementation-wise, this extracts the function call sequence, then walk the
163
+ * sequence in order to fill in the information for the snapshot.
164
+ */
165
+ export function validateAndBuildBaseSnapshot(baseQuery, analytics) {
166
+ // --------------------------------- BASE ---------------------------------
167
+ // Build the function call sequence and the function map to make the
168
+ // analysis more ergonomic
169
+ const { partialQuery, sourceQuery } = analytics;
170
+ const sequence = partialQuery
171
+ ? extractQueryFunctionSequence(partialQuery)
172
+ : [];
173
+ const funcMap = extractFunctionMap(sequence);
174
+ const snapshot = createSnapshot(baseQuery.name, baseQuery.source.runtime, V1_serializeValueSpecification(sourceQuery, []), baseQuery.configuration);
175
+ // --------------------------------- SOURCE ---------------------------------
176
+ snapshot.originalColumns = baseQuery.source.columns;
177
+ const columns = snapshot.originalColumns.map((col) => ({
178
+ ...col,
179
+ origin: DataCubeQuerySnapshotColumnOrigin.SOURCE,
180
+ }));
181
+ // leafExtendedColumns: DataCubeQueryExtendedColumnSnapshot[] = [];
182
+ // filter: ValueSpecification[0..1]; // TODO
183
+ // renamedColumns: DataCubeQuerySnapshotRenamedColumn[] = [];
184
+ // groupByColumns: DataCubeQuerySnapshotColumn[] = [];
185
+ // groupByAggColumns: DataCubeQuerySnapshotAggregateColumn[] = [];
186
+ // selectedColumns: DataCubeQuerySnapshotColumn[] = [];
187
+ // pivotColumns: DataCubeQuerySnapshotColumn[] = [];
188
+ // pivotAggColumns: DataCubeQuerySnapshotAggregateColumn[] = [];
189
+ // castColumns: DataCubeQuerySnapshotColumn[] = [];
190
+ // groupExtendedColumns: DataCubeQueryExtendedColumnSnapshot[] = [];
191
+ // limit: number | undefined = undefined;
192
+ // configuration: DataCubeConfiguration;
193
+ // --------------------------------- LEAF EXTEND ---------------------------------
194
+ // TODO: @akphi - implement this
195
+ // --------------------------------- FILTER ---------------------------------
196
+ // TODO: @akphi - implement this
197
+ // --------------------------------- RENAME ---------------------------------
198
+ // TODO: @akphi - implement this
199
+ // --------------------------------- GROUP BY ---------------------------------
200
+ // TODO: @akphi - implement this
201
+ // --------------------------------- SELECT ---------------------------------
202
+ // TODO: @akphi - implement this
203
+ // --------------------------------- PIVOT ---------------------------------
204
+ // TODO: @akphi - implement this
205
+ // --------------------------------- CAST ---------------------------------
206
+ // TODO: @akphi - implement this
207
+ // --------------------------------- GROUP EXTEND ---------------------------------
208
+ // TODO: @akphi - implement this
209
+ // --------------------------------- SORT ---------------------------------
210
+ if (funcMap.sort) {
211
+ const sortColumns = funcMap.sort.parameters[0];
212
+ assertType(sortColumns, V1_Collection, `Can't process ${extractElementNameFromPath(DATA_CUBE_FUNCTIONS.SORT)}(): columns cannot be extracted`);
213
+ snapshot.sortColumns = sortColumns.values.map((col) => {
214
+ try {
215
+ assertType(col, V1_AppliedFunction);
216
+ assertTrue(matchFunctionName(col.function, [
217
+ DATA_CUBE_FUNCTIONS.ASC,
218
+ DATA_CUBE_FUNCTIONS.DESC,
219
+ ]));
220
+ const direction = extractElementNameFromPath(col.function) === DATA_CUBE_FUNCTIONS.ASC
221
+ ? DATA_CUBE_COLUMN_SORT_DIRECTION.ASCENDING
222
+ : DATA_CUBE_COLUMN_SORT_DIRECTION.DESCENDING;
223
+ assertTrue(col.parameters.length === 1);
224
+ assertType(col.parameters[0], V1_ClassInstance);
225
+ assertType(col.parameters[0].value, V1_ColSpec);
226
+ const name = col.parameters[0].value.name;
227
+ const type = guaranteeNonNullable(columns.find((c) => c.name === name)).type;
228
+ return { name, type, direction };
229
+ }
230
+ catch {
231
+ throw new Error(`Can't process ${extractElementNameFromPath(DATA_CUBE_FUNCTIONS.SORT)}(): column sort information cannot be extracted`);
232
+ }
233
+ });
234
+ }
235
+ // --------------------------------- LIMIT ---------------------------------
236
+ // TODO: @akphi - implement this
237
+ // --------------------------------- FINALIZE ---------------------------------
238
+ snapshot.columns = columns;
239
+ return snapshot;
240
+ }
241
+ export async function buildSnapshotFromQuery(baseQuery, engine) {
242
+ let partialQuery;
243
+ if (baseQuery.partialQuery) {
244
+ try {
245
+ partialQuery = await engine.parseQuery(baseQuery.partialQuery);
246
+ }
247
+ catch (error) {
248
+ assertErrorThrown(error);
249
+ throw new Error(`Can't parse partial query [${baseQuery.partialQuery}]: ${error.message}`);
250
+ }
251
+ }
252
+ else {
253
+ partialQuery = undefined;
254
+ }
255
+ let sourceQuery;
256
+ try {
257
+ sourceQuery = await engine.parseQuery(baseQuery.source.query);
258
+ }
259
+ catch (error) {
260
+ assertErrorThrown(error);
261
+ throw new Error(`Can't parse source query [${baseQuery.source.query}]: ${error.message}`);
262
+ }
263
+ const snapshot = validateAndBuildBaseSnapshot(baseQuery, {
264
+ partialQuery,
265
+ sourceQuery,
266
+ });
267
+ return snapshot;
268
+ }
269
+ //# sourceMappingURL=DataCubeQueryAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCubeQueryAnalyzer.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/core/DataCubeQueryAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { type V1_ValueSpecification } from '@finos/legend-graph';
17
+ import type { DataCubeQuerySnapshot } from './DataCubeQuerySnapshot.js';
18
+ export declare function buildExecutableQueryFromSnapshot(snapshot: DataCubeQuerySnapshot): V1_ValueSpecification;
19
+ //# sourceMappingURL=DataCubeQueryBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCubeQueryBuilder.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/core/DataCubeQueryBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAWL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAwBxE,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,qBAAqB,GAC9B,qBAAqB,CA+EvB"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { V1_AppliedFunction, V1_ClassInstance, V1_ClassInstanceType, V1_ColSpec, V1_Collection, V1_Multiplicity, V1_PackageableElementPtr, V1_deserializeValueSpecification, extractElementNameFromPath, } from '@finos/legend-graph';
17
+ import { guaranteeNonNullable } from '@finos/legend-shared';
18
+ import { DATA_CUBE_COLUMN_SORT_DIRECTION, DATA_CUBE_FUNCTIONS, } from '../DataCubeMetaModelConst.js';
19
+ function createColSpec(name, type, function1, function2) {
20
+ const instance = new V1_ClassInstance();
21
+ instance.type = V1_ClassInstanceType.COL_SPEC;
22
+ const colSpec = new V1_ColSpec();
23
+ colSpec.name = name;
24
+ colSpec.type = type;
25
+ colSpec.function1 = function1;
26
+ colSpec.function2 = function2;
27
+ instance.value = colSpec;
28
+ return instance;
29
+ }
30
+ export function buildExecutableQueryFromSnapshot(snapshot) {
31
+ const sourceQuery = V1_deserializeValueSpecification(snapshot.sourceQuery, []);
32
+ const sequence = [];
33
+ // --------------------------------- LEAF EXTEND ---------------------------------
34
+ // TODO: @akphi - implement this
35
+ // --------------------------------- FILTER ---------------------------------
36
+ // TODO: @akphi - implement this
37
+ // --------------------------------- RENAME ---------------------------------
38
+ // TODO: @akphi - implement this
39
+ // --------------------------------- GROUP BY ---------------------------------
40
+ // TODO: @akphi - implement this
41
+ // --------------------------------- SELECT ---------------------------------
42
+ // TODO: @akphi - implement this
43
+ // --------------------------------- PIVOT ---------------------------------
44
+ // TODO: @akphi - implement this
45
+ // --------------------------------- CAST ---------------------------------
46
+ // TODO: @akphi - implement this
47
+ // --------------------------------- GROUP EXTEND ---------------------------------
48
+ // TODO: @akphi - implement this
49
+ // --------------------------------- SORT ---------------------------------
50
+ if (snapshot.sortColumns.length) {
51
+ const sort = new V1_AppliedFunction();
52
+ sort.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.SORT);
53
+ const sortInfos = new V1_Collection();
54
+ sortInfos.multiplicity = new V1_Multiplicity(snapshot.sortColumns.length, snapshot.sortColumns.length);
55
+ snapshot.sortColumns.forEach((sortCol) => {
56
+ const sortInfo = new V1_AppliedFunction();
57
+ sortInfo.function = extractElementNameFromPath(sortCol.direction === DATA_CUBE_COLUMN_SORT_DIRECTION.ASCENDING
58
+ ? DATA_CUBE_FUNCTIONS.ASC
59
+ : DATA_CUBE_FUNCTIONS.DESC);
60
+ sortInfo.parameters.push(createColSpec(sortCol.name));
61
+ sortInfos.values.push(sortInfo);
62
+ });
63
+ sort.parameters.push(sortInfos);
64
+ sequence.push(sort);
65
+ }
66
+ // --------------------------------- LIMIT ---------------------------------
67
+ // TODO: @akphi - implement this
68
+ // --------------------------------- FROM ---------------------------------
69
+ const fromFunc = new V1_AppliedFunction();
70
+ fromFunc.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.FROM);
71
+ const runtimePtr = new V1_PackageableElementPtr();
72
+ runtimePtr.fullPath = snapshot.runtime;
73
+ fromFunc.parameters.push(runtimePtr);
74
+ sequence.push(fromFunc);
75
+ // --------------------------------- FINALIZE ---------------------------------
76
+ if (!sequence.length) {
77
+ return sourceQuery;
78
+ }
79
+ for (let i = 0; i < sequence.length; i++) {
80
+ guaranteeNonNullable(sequence[i]).parameters.unshift(i === 0 ? sourceQuery : guaranteeNonNullable(sequence[i - 1]));
81
+ }
82
+ return guaranteeNonNullable(sequence[sequence.length - 1]);
83
+ }
84
+ // export async function buildPersistentQueryFromSnapshot(
85
+ // snapshot: DataCubeQuerySnapshot,
86
+ // ) {
87
+ // return new DataCubeQuery(
88
+ // snapshot.name,
89
+ // snapshot.sourceQuery,
90
+ // snapshot.configuration,
91
+ // );
92
+ // }
93
+ // name!: string;
94
+ // query!: string;
95
+ // partialQuery!: string;
96
+ // source!: DataCubeQuerySource;
97
+ // configuration!: DataCubeConfiguration;
98
+ //# sourceMappingURL=DataCubeQueryBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCubeQueryBuilder.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/core/DataCubeQueryBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,eAAe,EACf,wBAAwB,EACxB,gCAAgC,EAChC,0BAA0B,GAG3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,SAAS,aAAa,CACpB,IAAY,EACZ,IAAyB,EACzB,SAAiC,EACjC,SAAiC;IAEjC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACxC,QAAQ,CAAC,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IACjC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,QAA+B;IAE/B,MAAM,WAAW,GAAG,gCAAgC,CAClD,QAAQ,CAAC,WAAW,EACpB,EAAE,CACH,CAAC;IACF,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,kFAAkF;IAClF,gCAAgC;IAEhC,6EAA6E;IAC7E,gCAAgC;IAEhC,6EAA6E;IAC7E,gCAAgC;IAEhC,+EAA+E;IAC/E,gCAAgC;IAEhC,6EAA6E;IAC7E,gCAAgC;IAEhC,4EAA4E;IAC5E,gCAAgC;IAEhC,2EAA2E;IAC3E,gCAAgC;IAEhC,mFAAmF;IACnF,gCAAgC;IAEhC,2EAA2E;IAE3E,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QACtC,SAAS,CAAC,YAAY,GAAG,IAAI,eAAe,CAC1C,QAAQ,CAAC,WAAW,CAAC,MAAM,EAC3B,QAAQ,CAAC,WAAW,CAAC,MAAM,CAC5B,CAAC;QACF,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACvC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC1C,QAAQ,CAAC,QAAQ,GAAG,0BAA0B,CAC5C,OAAO,CAAC,SAAS,KAAK,+BAA+B,CAAC,SAAS;gBAC7D,CAAC,CAAC,mBAAmB,CAAC,GAAG;gBACzB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAC7B,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,4EAA4E;IAC5E,gCAAgC;IAEhC,2EAA2E;IAE3E,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,GAAG,0BAA0B,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAClD,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExB,+EAA+E;IAE/E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAClD,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,0DAA0D;AAC1D,qCAAqC;AACrC,MAAM;AACN,8BAA8B;AAC9B,qBAAqB;AACrB,4BAA4B;AAC5B,8BAA8B;AAC9B,OAAO;AACP,IAAI;AAEJ,iBAAiB;AACjB,kBAAkB;AAClB,yBAAyB;AACzB,gCAAgC;AAChC,yCAAyC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { V1_Lambda, V1_ValueSpecification } from '@finos/legend-graph';
17
+ import type { DataCubeConfiguration } from '../../../server/models/DataCubeQuery.js';
18
+ import { type PlainObject } from '@finos/legend-shared';
19
+ import type { DATA_CUBE_AGGREGATE_FUNCTION, DATA_CUBE_COLUMN_SORT_DIRECTION } from '../DataCubeMetaModelConst.js';
20
+ export type DataCubeQueryFilter = {};
21
+ export declare enum DataCubeQuerySnapshotColumnOrigin {
22
+ SOURCE = 0,
23
+ LEAF_EXTENDED = 1,
24
+ RENAME = 2,
25
+ GROUP_BY = 3,
26
+ SELECT = 4,
27
+ PIVOT = 5,
28
+ GROUP_EXTENDED = 6
29
+ }
30
+ export type DataCubeQuerySnapshotColumn = {
31
+ name: string;
32
+ type: string;
33
+ };
34
+ export type DataCubeQuerySnapshotColumnWithOrigin = DataCubeQuerySnapshotColumn & {
35
+ origin: DataCubeQuerySnapshotColumnOrigin;
36
+ };
37
+ export type DataCubeQuerySnapshotExtendedColumn = DataCubeQuerySnapshotColumn & {
38
+ lambda: PlainObject<V1_Lambda>;
39
+ code: string;
40
+ };
41
+ export type DataCubeQuerySnapshotRenamedColumn = DataCubeQuerySnapshotColumn & {
42
+ oldName: string;
43
+ };
44
+ export type DataCubeQuerySnapshotSortColumn = DataCubeQuerySnapshotColumn & {
45
+ direction: DATA_CUBE_COLUMN_SORT_DIRECTION;
46
+ };
47
+ export type DataCubeQuerySnapshotAggregateColumn = DataCubeQuerySnapshotColumn & {
48
+ function: DATA_CUBE_AGGREGATE_FUNCTION;
49
+ };
50
+ export type DataCubeQuerySnapshot = {
51
+ readonly uuid: string;
52
+ name: string;
53
+ runtime: string;
54
+ sourceQuery: PlainObject<V1_ValueSpecification>;
55
+ configuration: DataCubeConfiguration;
56
+ originalColumns: DataCubeQuerySnapshotColumn[];
57
+ leafExtendedColumns: DataCubeQuerySnapshotExtendedColumn[];
58
+ filter?: DataCubeQueryFilter | undefined;
59
+ renamedColumns: DataCubeQuerySnapshotRenamedColumn[];
60
+ groupByColumns: DataCubeQuerySnapshotColumn[];
61
+ groupByAggColumns: DataCubeQuerySnapshotAggregateColumn[];
62
+ selectedColumns: DataCubeQuerySnapshotColumn[];
63
+ pivotColumns: DataCubeQuerySnapshotColumn[];
64
+ pivotAggColumns: DataCubeQuerySnapshotAggregateColumn[];
65
+ castColumns: DataCubeQuerySnapshotColumn[];
66
+ groupExtendedColumns: DataCubeQuerySnapshotExtendedColumn[];
67
+ sortColumns: DataCubeQuerySnapshotSortColumn[];
68
+ limit: number | undefined;
69
+ columns: DataCubeQuerySnapshotColumnWithOrigin[];
70
+ };
71
+ export declare function createSnapshot(name: string, runtime: string, sourceQuery: PlainObject<V1_ValueSpecification>, configuration: DataCubeConfiguration): DataCubeQuerySnapshot;
72
+ export declare function cloneSnapshot(snapshot: DataCubeQuerySnapshot): DataCubeQuerySnapshot;
73
+ //# sourceMappingURL=DataCubeQuerySnapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCubeQuerySnapshot.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/core/DataCubeQuerySnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAQ,KAAK,WAAW,EAAiB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EACV,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,8BAA8B,CAAC;AA0EtC,MAAM,MAAM,mBAAmB,GAAG,EAEjC,CAAC;AAEF,oBAAY,iCAAiC;IAC3C,MAAM,IAAA;IACN,aAAa,IAAA;IACb,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,KAAK,IAAA;IACL,cAAc,IAAA;CACf;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAC/C,2BAA2B,GAAG;IAC5B,MAAM,EAAE,iCAAiC,CAAC;CAC3C,CAAC;AAEJ,MAAM,MAAM,mCAAmC,GAC7C,2BAA2B,GAAG;IAC5B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ,MAAM,MAAM,kCAAkC,GAAG,2BAA2B,GAAG;IAC7E,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,2BAA2B,GAAG;IAC1E,SAAS,EAAE,+BAA+B,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAC9C,2BAA2B,GAAG;IAC5B,QAAQ,EAAE,4BAA4B,CAAC;CACxC,CAAC;AAEJ,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAChD,aAAa,EAAE,qBAAqB,CAAC;IAErC,eAAe,EAAE,2BAA2B,EAAE,CAAC;IAC/C,mBAAmB,EAAE,mCAAmC,EAAE,CAAC;IAC3D,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACzC,cAAc,EAAE,kCAAkC,EAAE,CAAC;IACrD,cAAc,EAAE,2BAA2B,EAAE,CAAC;IAC9C,iBAAiB,EAAE,oCAAoC,EAAE,CAAC;IAC1D,eAAe,EAAE,2BAA2B,EAAE,CAAC;IAC/C,YAAY,EAAE,2BAA2B,EAAE,CAAC;IAC5C,eAAe,EAAE,oCAAoC,EAAE,CAAC;IACxD,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAC3C,oBAAoB,EAAE,mCAAmC,EAAE,CAAC;IAC5D,WAAW,EAAE,+BAA+B,EAAE,CAAC;IAC/C,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,qCAAqC,EAAE,CAAC;CAClD,CAAC;AAIF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,CAAC,qBAAqB,CAAC,EAC/C,aAAa,EAAE,qBAAqB,GACnC,qBAAqB,CAuBvB;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,qBAAqB,GAC9B,qBAAqB,CAIvB"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { uuid } from '@finos/legend-shared';
17
+ export var DataCubeQuerySnapshotColumnOrigin;
18
+ (function (DataCubeQuerySnapshotColumnOrigin) {
19
+ DataCubeQuerySnapshotColumnOrigin[DataCubeQuerySnapshotColumnOrigin["SOURCE"] = 0] = "SOURCE";
20
+ DataCubeQuerySnapshotColumnOrigin[DataCubeQuerySnapshotColumnOrigin["LEAF_EXTENDED"] = 1] = "LEAF_EXTENDED";
21
+ DataCubeQuerySnapshotColumnOrigin[DataCubeQuerySnapshotColumnOrigin["RENAME"] = 2] = "RENAME";
22
+ DataCubeQuerySnapshotColumnOrigin[DataCubeQuerySnapshotColumnOrigin["GROUP_BY"] = 3] = "GROUP_BY";
23
+ DataCubeQuerySnapshotColumnOrigin[DataCubeQuerySnapshotColumnOrigin["SELECT"] = 4] = "SELECT";
24
+ DataCubeQuerySnapshotColumnOrigin[DataCubeQuerySnapshotColumnOrigin["PIVOT"] = 5] = "PIVOT";
25
+ DataCubeQuerySnapshotColumnOrigin[DataCubeQuerySnapshotColumnOrigin["GROUP_EXTENDED"] = 6] = "GROUP_EXTENDED";
26
+ })(DataCubeQuerySnapshotColumnOrigin || (DataCubeQuerySnapshotColumnOrigin = {}));
27
+ // ------------------------------------- UTILITIES -------------------------------------
28
+ export function createSnapshot(name, runtime, sourceQuery, configuration) {
29
+ return {
30
+ uuid: uuid(),
31
+ name,
32
+ runtime,
33
+ sourceQuery,
34
+ configuration,
35
+ originalColumns: [],
36
+ leafExtendedColumns: [],
37
+ filter: undefined,
38
+ renamedColumns: [],
39
+ groupByColumns: [],
40
+ groupByAggColumns: [],
41
+ selectedColumns: [],
42
+ pivotColumns: [],
43
+ pivotAggColumns: [],
44
+ castColumns: [],
45
+ groupExtendedColumns: [],
46
+ sortColumns: [],
47
+ limit: undefined,
48
+ columns: [],
49
+ };
50
+ }
51
+ export function cloneSnapshot(snapshot) {
52
+ const clone = JSON.parse(JSON.stringify(snapshot));
53
+ clone.uuid = uuid();
54
+ return clone;
55
+ }
56
+ //# sourceMappingURL=DataCubeQuerySnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCubeQuerySnapshot.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/core/DataCubeQuerySnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,IAAI,EAAmC,MAAM,sBAAsB,CAAC;AAkF7E,MAAM,CAAN,IAAY,iCAQX;AARD,WAAY,iCAAiC;IAC3C,6FAAM,CAAA;IACN,2GAAa,CAAA;IACb,6FAAM,CAAA;IACN,iGAAQ,CAAA;IACR,6FAAM,CAAA;IACN,2FAAK,CAAA;IACL,6GAAc,CAAA;AAChB,CAAC,EARW,iCAAiC,KAAjC,iCAAiC,QAQ5C;AAsDD,wFAAwF;AAExF,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,OAAe,EACf,WAA+C,EAC/C,aAAoC;IAEpC,OAAO;QACL,IAAI,EAAE,IAAI,EAAE;QACZ,IAAI;QACJ,OAAO;QACP,WAAW;QACX,aAAa;QAEb,eAAe,EAAE,EAAE;QACnB,mBAAmB,EAAE,EAAE;QACvB,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,EAAE;QACnB,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;QACnB,WAAW,EAAE,EAAE;QACf,oBAAoB,EAAE,EAAE;QACxB,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,QAA+B;IAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAA0B,CAAC;IAC3E,KAAyC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;IACzD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -13,11 +13,16 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { DataCubeState } from './DataCubeState.js';
17
- export declare abstract class DataCubePanelState {
18
- readonly dataCubeState: DataCubeState;
16
+ import type { DataCubeState } from '../DataCubeState.js';
17
+ import type { DataCubeQuerySnapshot } from './DataCubeQuerySnapshot.js';
18
+ import type { DataCubeQuerySnapshotSubscriber } from './DataCubeQuerySnapshotSubscriber.js';
19
+ export declare class DataCubeQuerySnapshotManager {
20
+ private readonly dataCubeState;
21
+ private readonly subscribers;
22
+ private readonly snapshots;
19
23
  constructor(dataCubeState: DataCubeState);
20
- abstract initialize(): void;
21
- abstract applyChanges(): void;
24
+ get currentSnapshot(): DataCubeQuerySnapshot;
25
+ registerSubscriber(subscriber: DataCubeQuerySnapshotSubscriber): void;
26
+ broadcastSnapshot(snapshot: DataCubeQuerySnapshot): void;
22
27
  }
23
- //# sourceMappingURL=DataCubePanelState.d.ts.map
28
+ //# sourceMappingURL=DataCubeQuerySnapshotManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCubeQuerySnapshotManager.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAU5F,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;gBAE7C,aAAa,EAAE,aAAa;IAIxC,IAAI,eAAe,IAAI,qBAAqB,CAE3C;IAED,kBAAkB,CAAC,UAAU,EAAE,+BAA+B,GAAG,IAAI;IAIrE,iBAAiB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;CAoBzD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { APPLICATION_EVENT } from '@finos/legend-application';
17
+ import { LogEvent, assertErrorThrown, guaranteeNonNullable, } from '@finos/legend-shared';
18
+ // TODO: use this when we implement undo/redo
19
+ // const DATA_CUBE_MAX_SNAPSHOT_COUNT = 100;
20
+ export class DataCubeQuerySnapshotManager {
21
+ dataCubeState;
22
+ subscribers = [];
23
+ snapshots = [];
24
+ constructor(dataCubeState) {
25
+ this.dataCubeState = dataCubeState;
26
+ }
27
+ get currentSnapshot() {
28
+ return guaranteeNonNullable(this.snapshots[this.snapshots.length - 1]);
29
+ }
30
+ registerSubscriber(subscriber) {
31
+ this.subscribers.push(subscriber);
32
+ }
33
+ broadcastSnapshot(snapshot) {
34
+ this.snapshots.push(snapshot);
35
+ this.subscribers.forEach((subscriber) => {
36
+ const currentSnapshot = subscriber.getLatestSnapshot();
37
+ if (currentSnapshot?.uuid !== snapshot.uuid) {
38
+ subscriber.receiveSnapshot(snapshot).catch((error) => {
39
+ assertErrorThrown(error);
40
+ this.dataCubeState.applicationStore.logService.error(LogEvent.create(APPLICATION_EVENT.ILLEGAL_APPLICATION_STATE_OCCURRED), `Error ocurred when subscribers receive and apply new snapshot should be handled gracefully`, error);
41
+ });
42
+ }
43
+ });
44
+ }
45
+ }
46
+ //# sourceMappingURL=DataCubeQuerySnapshotManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCubeQuerySnapshotManager.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,6CAA6C;AAC7C,4CAA4C;AAE5C,MAAM,OAAO,4BAA4B;IACtB,aAAa,CAAgB;IAC7B,WAAW,GAAsC,EAAE,CAAC;IACpD,SAAS,GAA4B,EAAE,CAAC;IAEzD,YAAY,aAA4B;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,kBAAkB,CAAC,UAA2C;QAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,iBAAiB,CAAC,QAA+B;QAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACtC,MAAM,eAAe,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACvD,IAAI,eAAe,EAAE,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC5C,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBAC5D,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAClD,QAAQ,CAAC,MAAM,CACb,iBAAiB,CAAC,kCAAkC,CACrD,EACD,4FAA4F,EAC5F,KAAK,CACN,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CAGF"}