@finos/legend-application-repl 0.0.48 → 0.0.49

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 (335) hide show
  1. package/lib/components/dataCube/DataCube.d.ts.map +1 -1
  2. package/lib/components/dataCube/DataCube.js +14 -11
  3. package/lib/components/dataCube/DataCube.js.map +1 -1
  4. package/lib/components/dataCube/editor/DataCubeEditor.d.ts +4 -1
  5. package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -1
  6. package/lib/components/dataCube/editor/DataCubeEditor.js +6 -7
  7. package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -1
  8. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts +4 -1
  9. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -1
  10. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js +2 -12
  11. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -1
  12. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts +4 -1
  13. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
  14. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +57 -51
  15. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
  16. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts +4 -1
  17. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -1
  18. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js +3 -4
  19. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js.map +1 -1
  20. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js +1 -1
  21. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts +4 -1
  22. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts.map +1 -1
  23. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js +3 -4
  24. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js.map +1 -1
  25. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts +4 -1
  26. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts.map +1 -1
  27. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js +289 -10
  28. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js.map +1 -1
  29. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts +4 -1
  30. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +1 -1
  31. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js +30 -30
  32. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -1
  33. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.d.ts +4 -1
  34. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.d.ts.map +1 -1
  35. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js +3 -4
  36. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js.map +1 -1
  37. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts +4 -1
  38. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts.map +1 -1
  39. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js +19 -20
  40. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js.map +1 -1
  41. package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.d.ts +4 -1
  42. package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.d.ts.map +1 -1
  43. package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.js +3 -4
  44. package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.js.map +1 -1
  45. package/lib/components/dataCube/grid/DataCubeGrid.d.ts +7 -2
  46. package/lib/components/dataCube/grid/DataCubeGrid.d.ts.map +1 -1
  47. package/lib/components/dataCube/grid/DataCubeGrid.js +53 -54
  48. package/lib/components/dataCube/grid/DataCubeGrid.js.map +1 -1
  49. package/lib/components/repl/Form.d.ts +4 -2
  50. package/lib/components/repl/Form.d.ts.map +1 -1
  51. package/lib/components/repl/Form.js +55 -19
  52. package/lib/components/repl/Form.js.map +1 -1
  53. package/lib/index.css +2 -2
  54. package/lib/index.css.map +1 -1
  55. package/lib/package.json +4 -3
  56. package/lib/stores/dataCube/DataCubeEngine.d.ts +30 -0
  57. package/lib/stores/dataCube/DataCubeEngine.d.ts.map +1 -1
  58. package/lib/stores/dataCube/DataCubeEngine.js +60 -1
  59. package/lib/stores/dataCube/DataCubeEngine.js.map +1 -1
  60. package/lib/stores/dataCube/DataCubeState.d.ts +2 -2
  61. package/lib/stores/dataCube/DataCubeState.d.ts.map +1 -1
  62. package/lib/stores/dataCube/DataCubeState.js +11 -5
  63. package/lib/stores/dataCube/DataCubeState.js.map +1 -1
  64. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts +0 -1
  65. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts.map +1 -1
  66. package/lib/stores/dataCube/core/DataCubeConfiguration.js +0 -2
  67. package/lib/stores/dataCube/core/DataCubeConfiguration.js.map +1 -1
  68. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts +8 -17
  69. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts.map +1 -1
  70. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +16 -230
  71. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -1
  72. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts +44 -0
  73. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts.map +1 -0
  74. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js +220 -0
  75. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js.map +1 -0
  76. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +41 -20
  77. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +1 -1
  78. package/lib/stores/dataCube/core/DataCubeQueryEngine.js +70 -46
  79. package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +1 -1
  80. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +7 -5
  81. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  82. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +1 -1
  83. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -1
  84. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts +4 -4
  85. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  86. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +18 -135
  87. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  88. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts +31 -0
  89. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -0
  90. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js +142 -0
  91. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -0
  92. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts +16 -1
  93. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts.map +1 -1
  94. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js +25 -3
  95. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js.map +1 -1
  96. package/lib/stores/dataCube/core/{DataCubeCoreState.d.ts → DataCubeStaticContentDisplayState.d.ts} +3 -4
  97. package/lib/stores/dataCube/core/DataCubeStaticContentDisplayState.d.ts.map +1 -0
  98. package/lib/stores/dataCube/core/{DataCubeCoreState.js → DataCubeStaticContentDisplayState.js} +3 -6
  99. package/lib/stores/dataCube/core/DataCubeStaticContentDisplayState.js.map +1 -0
  100. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.d.ts +36 -0
  101. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.d.ts.map +1 -0
  102. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.js +151 -0
  103. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.js.map +1 -0
  104. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts +32 -0
  105. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -0
  106. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js +64 -0
  107. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js.map +1 -0
  108. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.d.ts +34 -0
  109. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -0
  110. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js +59 -0
  111. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -0
  112. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts +34 -0
  113. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -0
  114. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +64 -0
  115. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -0
  116. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts +34 -0
  117. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -0
  118. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js +59 -0
  119. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -0
  120. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts +34 -0
  121. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -0
  122. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +64 -0
  123. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -0
  124. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.d.ts +34 -0
  125. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -0
  126. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js +126 -0
  127. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -0
  128. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts +34 -0
  129. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -0
  130. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +64 -0
  131. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -0
  132. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts +34 -0
  133. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -0
  134. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +64 -0
  135. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -0
  136. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts +34 -0
  137. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -0
  138. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +60 -0
  139. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -0
  140. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts +34 -0
  141. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -0
  142. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +59 -0
  143. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -0
  144. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts +34 -0
  145. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -0
  146. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +60 -0
  147. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -0
  148. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts +34 -0
  149. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -0
  150. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +59 -0
  151. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -0
  152. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts +34 -0
  153. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -0
  154. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +60 -0
  155. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -0
  156. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts +31 -0
  157. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -0
  158. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +54 -0
  159. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -0
  160. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts +31 -0
  161. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -0
  162. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js +54 -0
  163. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -0
  164. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts +34 -0
  165. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -0
  166. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js +59 -0
  167. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -0
  168. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts +34 -0
  169. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -0
  170. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +60 -0
  171. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -0
  172. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts +34 -0
  173. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -0
  174. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +59 -0
  175. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -0
  176. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts +34 -0
  177. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -0
  178. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +60 -0
  179. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -0
  180. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts +34 -0
  181. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -0
  182. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js +59 -0
  183. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -0
  184. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts +34 -0
  185. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -0
  186. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +59 -0
  187. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -0
  188. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts +34 -0
  189. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -0
  190. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js +59 -0
  191. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -0
  192. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts +34 -0
  193. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -0
  194. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +64 -0
  195. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -0
  196. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts +34 -0
  197. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -0
  198. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +64 -0
  199. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -0
  200. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts +34 -0
  201. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -0
  202. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +60 -0
  203. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -0
  204. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts +34 -0
  205. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -0
  206. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +59 -0
  207. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -0
  208. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts +34 -0
  209. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -0
  210. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js +59 -0
  211. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -0
  212. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts +34 -0
  213. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -0
  214. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +64 -0
  215. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -0
  216. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js +2 -2
  217. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  218. package/lib/stores/dataCube/editor/DataCubeEditorFilterPanelState.d.ts +58 -0
  219. package/lib/stores/dataCube/editor/DataCubeEditorFilterPanelState.d.ts.map +1 -0
  220. package/lib/stores/dataCube/editor/DataCubeEditorFilterPanelState.js +205 -0
  221. package/lib/stores/dataCube/editor/DataCubeEditorFilterPanelState.js.map +1 -0
  222. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts +4 -4
  223. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
  224. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js +2 -2
  225. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js.map +1 -1
  226. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +5 -4
  227. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -1
  228. package/lib/stores/dataCube/editor/DataCubeEditorState.js +9 -7
  229. package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -1
  230. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts +5 -4
  231. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts.map +1 -1
  232. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js +6 -5
  233. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js.map +1 -1
  234. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts +2 -8
  235. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  236. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +3 -10
  237. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -1
  238. package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js +1 -1
  239. package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js.map +1 -1
  240. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
  241. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js +16 -40
  242. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
  243. package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts +17 -7
  244. package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts.map +1 -1
  245. package/lib/stores/dataCube/grid/DataCubeGridControllerState.js +59 -6
  246. package/lib/stores/dataCube/grid/DataCubeGridControllerState.js.map +1 -1
  247. package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
  248. package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js +157 -53
  249. package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js.map +1 -1
  250. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts +2 -1
  251. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
  252. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +7 -7
  253. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +1 -1
  254. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +4 -4
  255. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
  256. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +2 -3
  257. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +1 -1
  258. package/lib/stores/dataCube/grid/DataCubeGridState.js +10 -6
  259. package/lib/stores/dataCube/grid/DataCubeGridState.js.map +1 -1
  260. package/package.json +10 -9
  261. package/src/components/dataCube/DataCube.tsx +20 -13
  262. package/src/components/dataCube/editor/DataCubeEditor.tsx +15 -15
  263. package/src/components/dataCube/editor/DataCubeEditorCodePanel.tsx +72 -80
  264. package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +1020 -950
  265. package/src/components/dataCube/editor/DataCubeEditorColumnsPanel.tsx +46 -44
  266. package/src/components/dataCube/editor/DataCubeEditorColumnsSelector.tsx +1 -1
  267. package/src/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.tsx +20 -18
  268. package/src/components/dataCube/editor/DataCubeEditorFilterPanel.tsx +862 -19
  269. package/src/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.tsx +687 -667
  270. package/src/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.tsx +20 -18
  271. package/src/components/dataCube/editor/DataCubeEditorSortsPanel.tsx +71 -62
  272. package/src/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.tsx +19 -17
  273. package/src/components/dataCube/grid/DataCubeGrid.tsx +144 -140
  274. package/src/components/repl/Form.tsx +145 -98
  275. package/src/stores/dataCube/DataCubeEngine.ts +69 -1
  276. package/src/stores/dataCube/DataCubeState.ts +13 -9
  277. package/src/stores/dataCube/core/DataCubeConfiguration.ts +1 -3
  278. package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +43 -355
  279. package/src/stores/dataCube/core/DataCubeQueryBuilderUtils.ts +353 -0
  280. package/src/stores/dataCube/core/DataCubeQueryEngine.ts +46 -21
  281. package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +8 -12
  282. package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +25 -194
  283. package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.ts +211 -0
  284. package/src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts +50 -1
  285. package/src/stores/dataCube/core/{DataCubeCoreState.ts → DataCubeStaticContentDisplayState.ts} +2 -6
  286. package/src/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.ts +227 -0
  287. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation.ts +105 -0
  288. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.tsx +87 -0
  289. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +93 -0
  290. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +87 -0
  291. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +93 -0
  292. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.tsx +159 -0
  293. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +93 -0
  294. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +93 -0
  295. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +89 -0
  296. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +87 -0
  297. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +89 -0
  298. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +87 -0
  299. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +89 -0
  300. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +83 -0
  301. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +80 -0
  302. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +87 -0
  303. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +89 -0
  304. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +87 -0
  305. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +89 -0
  306. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +90 -0
  307. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +90 -0
  308. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +90 -0
  309. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +96 -0
  310. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +96 -0
  311. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +92 -0
  312. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +90 -0
  313. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +87 -0
  314. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +93 -0
  315. package/src/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.ts +2 -2
  316. package/src/stores/dataCube/editor/DataCubeEditorFilterPanelState.ts +295 -0
  317. package/src/stores/dataCube/editor/DataCubeEditorSortsPanelState.ts +5 -9
  318. package/src/stores/dataCube/editor/DataCubeEditorState.tsx +9 -8
  319. package/src/stores/dataCube/editor/DataCubeMutableConfiguration.ts +10 -10
  320. package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +22 -23
  321. package/src/stores/dataCube/grid/DataCubeGridClientExportEngine.ts +1 -1
  322. package/src/stores/dataCube/grid/DataCubeGridConfigurationBuilder.tsx +16 -43
  323. package/src/stores/dataCube/grid/DataCubeGridControllerState.ts +91 -10
  324. package/src/stores/dataCube/grid/DataCubeGridMenuBuilder.tsx +218 -53
  325. package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +66 -61
  326. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +4 -4
  327. package/src/stores/dataCube/grid/DataCubeGridState.ts +10 -6
  328. package/tsconfig.json +33 -2
  329. package/lib/stores/dataCube/core/DataCubeCoreState.d.ts.map +0 -1
  330. package/lib/stores/dataCube/core/DataCubeCoreState.js.map +0 -1
  331. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts +0 -30
  332. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts.map +0 -1
  333. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js +0 -41
  334. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js.map +0 -1
  335. package/src/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.ts +0 -62
@@ -17,19 +17,16 @@
17
17
  /***************************************************************************************
18
18
  * [CORE]
19
19
  *
20
- * These are utilities used to build the query snapshot from the executable query.
21
- * This is needed when we initialize the application by loading a persisted query.
20
+ * This and its corresponding utilitites are used to build the query snapshot from the
21
+ * executable query. This is needed when we initialize the application by loading a
22
+ * persisted query.
22
23
  ***************************************************************************************/
23
24
 
24
25
  import {
25
- PRIMITIVE_TYPE,
26
26
  V1_AppliedFunction,
27
27
  V1_CInteger,
28
- V1_ClassInstance,
29
- V1_ColSpec,
30
- V1_ColSpecArray,
28
+ type V1_ColSpec,
31
29
  V1_Collection,
32
- V1_Lambda,
33
30
  V1_serializeValueSpecification,
34
31
  extractElementNameFromPath as _name,
35
32
  matchFunctionName,
@@ -38,189 +35,23 @@ import {
38
35
  import type { DataCubeQuery } from '../../../server/DataCubeQuery.js';
39
36
  import {
40
37
  DataCubeQuerySnapshot,
41
- type DataCubeQuerySnapshotAggregateColumn,
42
38
  type DataCubeQuerySnapshotColumn,
43
39
  } from './DataCubeQuerySnapshot.js';
40
+ import { assertType, guaranteeNonNullable } from '@finos/legend-shared';
44
41
  import {
45
- assertTrue,
46
- assertType,
47
- guaranteeNonNullable,
48
- guaranteeType,
49
- UnsupportedOperationError,
50
- type Clazz,
51
- } from '@finos/legend-shared';
52
- import {
53
- DataCubeQuerySortOperation,
42
+ DataCubeQuerySortOperator,
54
43
  DataCubeFunction,
55
44
  type DataCubeQueryFunctionMap,
56
- DataCubeAggregateOperation,
57
45
  } from './DataCubeQueryEngine.js';
58
46
  import { DataCubeConfiguration } from './DataCubeConfiguration.js';
59
47
  import { buildDefaultConfiguration } from './DataCubeConfigurationBuilder.js';
60
-
61
- // --------------------------------- UTILITIES ---------------------------------
62
-
63
- function _param<T extends V1_ValueSpecification>(
64
- func: V1_AppliedFunction,
65
- paramIdx: number,
66
- clazz: Clazz<T>,
67
- ): T {
68
- assertTrue(
69
- func.parameters.length >= paramIdx + 1,
70
- `Can't process ${_name(func.function)}: Expected at least ${paramIdx + 1} parameter(s)`,
71
- );
72
- return guaranteeType(
73
- func.parameters[paramIdx],
74
- clazz,
75
- `Can't process ${_name(func.function)}: Found unexpected type for parameter at index ${paramIdx}`,
76
- );
77
- }
78
-
79
- function _colSpecParam(func: V1_AppliedFunction, paramIdx: number) {
80
- return guaranteeType(
81
- _param(func, paramIdx, V1_ClassInstance).value,
82
- V1_ColSpec,
83
- `Can't process ${_name(func.function)}: Expected parameter at index ${paramIdx} to be a column specification`,
84
- );
85
- }
86
-
87
- function _colSpecArrayParam(func: V1_AppliedFunction, paramIdx: number) {
88
- return guaranteeType(
89
- _param(func, paramIdx, V1_ClassInstance).value,
90
- V1_ColSpecArray,
91
- `Can't process ${_name(func.function)}: Expected parameter at index ${paramIdx} to be a column specification list`,
92
- );
93
- }
94
-
95
- function _funcMatch(
96
- value: V1_ValueSpecification | undefined,
97
- functionNames: string | string[],
98
- ) {
99
- assertType(
100
- value,
101
- V1_AppliedFunction,
102
- `Can't process function: Found unexpected value specification type`,
103
- );
104
- assertTrue(
105
- matchFunctionName(
106
- value.function,
107
- Array.isArray(functionNames) ? functionNames : [functionNames],
108
- ),
109
- `Can't process function: Expected function name to be one of [${Array.isArray(functionNames) ? functionNames.join(', ') : functionNames}]`,
110
- );
111
- return value;
112
- }
113
-
114
- function _aggFuncMatch(
115
- value: V1_ValueSpecification | undefined,
116
- functionNames: string | string[],
117
- ) {
118
- assertType(
119
- value,
120
- V1_Lambda,
121
- `Can't process aggregation: Found unexpected value specification type`,
122
- );
123
- return _funcMatch(value.body[0], functionNames);
124
- }
125
-
126
- export function _defaultAggCol(
127
- name: string,
128
- type: string,
129
- ): DataCubeQuerySnapshotAggregateColumn | undefined {
130
- switch (type) {
131
- case PRIMITIVE_TYPE.NUMBER:
132
- case PRIMITIVE_TYPE.INTEGER:
133
- case PRIMITIVE_TYPE.DECIMAL:
134
- case PRIMITIVE_TYPE.FLOAT: {
135
- return {
136
- name,
137
- type,
138
- operation: DataCubeAggregateOperation.SUM,
139
- parameters: [],
140
- };
141
- }
142
- default:
143
- return undefined;
144
- }
145
- }
146
-
147
- function _aggCol(colSpec: V1_ColSpec, column: DataCubeQuerySnapshotColumn) {
148
- const func = _aggFuncMatch(
149
- colSpec.function2,
150
- Object.values(DataCubeFunction),
151
- );
152
- if (matchFunctionName(func.function, DataCubeFunction.COUNT)) {
153
- return {
154
- ...column,
155
- operation: DataCubeAggregateOperation.COUNT,
156
- parameters: [],
157
- };
158
- } else if (matchFunctionName(func.function, DataCubeFunction.SUM)) {
159
- return {
160
- ...column,
161
- operation: DataCubeAggregateOperation.SUM,
162
- parameters: [],
163
- };
164
- } else if (matchFunctionName(func.function, DataCubeFunction.AVERAGE)) {
165
- return {
166
- ...column,
167
- operation: DataCubeAggregateOperation.AVERAGE,
168
- parameters: [],
169
- };
170
- } else if (matchFunctionName(func.function, DataCubeFunction.MIN)) {
171
- return {
172
- ...column,
173
- operation: DataCubeAggregateOperation.MIN,
174
- parameters: [],
175
- };
176
- } else if (matchFunctionName(func.function, DataCubeFunction.MAX)) {
177
- return {
178
- ...column,
179
- operation: DataCubeAggregateOperation.MAX,
180
- parameters: [],
181
- };
182
- } else if (matchFunctionName(func.function, DataCubeFunction.FIRST)) {
183
- return {
184
- ...column,
185
- operation: DataCubeAggregateOperation.FIRST,
186
- parameters: [],
187
- };
188
- } else if (matchFunctionName(func.function, DataCubeFunction.LAST)) {
189
- return {
190
- ...column,
191
- operation: DataCubeAggregateOperation.LAST,
192
- parameters: [],
193
- };
194
- } else if (matchFunctionName(func.function, DataCubeFunction.VAR_POP)) {
195
- return {
196
- ...column,
197
- operation: DataCubeAggregateOperation.VAR_POP,
198
- parameters: [],
199
- };
200
- } else if (matchFunctionName(func.function, DataCubeFunction.VAR_SAMP)) {
201
- return {
202
- ...column,
203
- operation: DataCubeAggregateOperation.VAR_SAMP,
204
- parameters: [],
205
- };
206
- } else if (matchFunctionName(func.function, DataCubeFunction.STDDEV_POP)) {
207
- return {
208
- ...column,
209
- operation: DataCubeAggregateOperation.STDDEV_POP,
210
- parameters: [],
211
- };
212
- } else if (matchFunctionName(func.function, DataCubeFunction.STDDEV_SAMP)) {
213
- return {
214
- ...column,
215
- operation: DataCubeAggregateOperation.STDDEV_SAMP,
216
- parameters: [],
217
- };
218
- } else {
219
- throw new UnsupportedOperationError(
220
- `Unsupported aggregate function '${func.function}'`,
221
- );
222
- }
223
- }
48
+ import {
49
+ _aggCol,
50
+ _colSpecArrayParam,
51
+ _colSpecParam,
52
+ _funcMatch,
53
+ _param,
54
+ } from './DataCubeQuerySnapshotBuilderUtils.js';
224
55
 
225
56
  // --------------------------------- BUILDING BLOCKS ---------------------------------
226
57
 
@@ -228,27 +59,26 @@ const _SUPPORTED_TOP_LEVEL_FUNCTIONS: {
228
59
  func: string;
229
60
  parameters: number;
230
61
  }[] = [
231
- { func: DataCubeFunction.FILTER, parameters: 1 },
232
62
  { func: DataCubeFunction.EXTEND, parameters: 1 },
63
+ { func: DataCubeFunction.FILTER, parameters: 1 },
233
64
  { func: DataCubeFunction.SELECT, parameters: 1 },
234
65
  { func: DataCubeFunction.GROUP_BY, parameters: 3 },
235
- { func: DataCubeFunction.LIMIT, parameters: 1 },
236
66
  { func: DataCubeFunction.PIVOT, parameters: 3 },
237
- { func: DataCubeFunction.SORT, parameters: 1 },
238
-
239
67
  { func: DataCubeFunction.CAST, parameters: 1 },
68
+ { func: DataCubeFunction.SORT, parameters: 1 },
69
+ { func: DataCubeFunction.LIMIT, parameters: 1 },
240
70
  ];
241
71
 
242
72
  // NOTE: this corresponds to the sequence:
243
- // filter()->extend()->groupBy()->select()->pivot()->cast()->extend()->sort()->limit()
73
+ // extend()->filter()->groupBy()->select()->pivot()->cast()->extend()->sort()->limit()
244
74
  // which represents the ONLY query shape that we currently support
245
75
  const _FUNCTION_SEQUENCE_COMPOSITION_PATTERN: {
246
76
  func: string;
247
77
  repeat?: boolean | undefined;
248
78
  required?: boolean | undefined;
249
79
  }[] = [
250
- { func: DataCubeFunction.FILTER },
251
80
  { func: DataCubeFunction.EXTEND },
81
+ { func: DataCubeFunction.FILTER },
252
82
  { func: DataCubeFunction.SELECT },
253
83
  { func: DataCubeFunction.GROUP_BY },
254
84
  { func: DataCubeFunction.PIVOT },
@@ -315,7 +145,7 @@ function extractQueryFunctionSequence(query: V1_ValueSpecification) {
315
145
  );
316
146
  }
317
147
 
318
- // Special checks
148
+ // TODO: we need to improve this logic since there can be more than just 2 extend() functions
319
149
  // Check that the first and second extend() must be separated by either groupBy() or pivot() (i.e. aggregation)
320
150
  const firstExtendIndex = sequence.findIndex((func) =>
321
151
  matchFunctionName(func.function, DataCubeFunction.EXTEND),
@@ -464,9 +294,13 @@ export function validateAndBuildQuerySnapshot(
464
294
  }));
465
295
  data.sourceColumns.map((col) => colsMap.set(col.name, col));
466
296
 
297
+ // --------------------------------- LEAF EXTEND ---------------------------------
298
+ // TODO: @akphi - implement this
299
+
467
300
  // --------------------------------- FILTER ---------------------------------
468
301
 
469
302
  if (funcMap.filter) {
303
+ data.filter = undefined; // TODO: @akphi - implement this
470
304
  // data.selectColumns = _colSpecArrayParam(funcMap.select, 0).colSpecs.map(
471
305
  // (colSpec) => ({
472
306
  // _col(colSpec),
@@ -474,9 +308,6 @@ export function validateAndBuildQuerySnapshot(
474
308
  // );
475
309
  }
476
310
 
477
- // --------------------------------- LEAF EXTEND ---------------------------------
478
- // TODO: @akphi - implement this
479
-
480
311
  // --------------------------------- SELECT ---------------------------------
481
312
 
482
313
  if (funcMap.select) {
@@ -522,8 +353,8 @@ export function validateAndBuildQuerySnapshot(
522
353
  ..._col(_colSpecParam(sortColFunc, 0)),
523
354
  operation:
524
355
  _name(sortColFunc.function) === DataCubeFunction.ASC
525
- ? DataCubeQuerySortOperation.ASCENDING
526
- : DataCubeQuerySortOperation.DESCENDING,
356
+ ? DataCubeQuerySortOperator.ASCENDING
357
+ : DataCubeQuerySortOperator.DESCENDING,
527
358
  };
528
359
  },
529
360
  );
@@ -0,0 +1,211 @@
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
+
17
+ import {
18
+ PRIMITIVE_TYPE,
19
+ V1_AppliedFunction,
20
+ V1_ClassInstance,
21
+ V1_ColSpec,
22
+ V1_ColSpecArray,
23
+ V1_Lambda,
24
+ extractElementNameFromPath as _name,
25
+ matchFunctionName,
26
+ type V1_ValueSpecification,
27
+ } from '@finos/legend-graph';
28
+ import {
29
+ type DataCubeQuerySnapshotAggregateColumn,
30
+ type DataCubeQuerySnapshotColumn,
31
+ } from './DataCubeQuerySnapshot.js';
32
+ import {
33
+ assertTrue,
34
+ assertType,
35
+ guaranteeType,
36
+ UnsupportedOperationError,
37
+ type Clazz,
38
+ } from '@finos/legend-shared';
39
+ import {
40
+ DataCubeFunction,
41
+ DataCubeAggregateOperator,
42
+ } from './DataCubeQueryEngine.js';
43
+
44
+ // --------------------------------- UTILITIES ---------------------------------
45
+
46
+ export function _param<T extends V1_ValueSpecification>(
47
+ func: V1_AppliedFunction,
48
+ paramIdx: number,
49
+ clazz: Clazz<T>,
50
+ ): T {
51
+ assertTrue(
52
+ func.parameters.length >= paramIdx + 1,
53
+ `Can't process ${_name(func.function)}: Expected at least ${paramIdx + 1} parameter(s)`,
54
+ );
55
+ return guaranteeType(
56
+ func.parameters[paramIdx],
57
+ clazz,
58
+ `Can't process ${_name(func.function)}: Found unexpected type for parameter at index ${paramIdx}`,
59
+ );
60
+ }
61
+
62
+ export function _colSpecParam(func: V1_AppliedFunction, paramIdx: number) {
63
+ return guaranteeType(
64
+ _param(func, paramIdx, V1_ClassInstance).value,
65
+ V1_ColSpec,
66
+ `Can't process ${_name(func.function)}: Expected parameter at index ${paramIdx} to be a column specification`,
67
+ );
68
+ }
69
+
70
+ export function _colSpecArrayParam(func: V1_AppliedFunction, paramIdx: number) {
71
+ return guaranteeType(
72
+ _param(func, paramIdx, V1_ClassInstance).value,
73
+ V1_ColSpecArray,
74
+ `Can't process ${_name(func.function)}: Expected parameter at index ${paramIdx} to be a column specification list`,
75
+ );
76
+ }
77
+
78
+ export function _funcMatch(
79
+ value: V1_ValueSpecification | undefined,
80
+ functionNames: string | string[],
81
+ ) {
82
+ assertType(
83
+ value,
84
+ V1_AppliedFunction,
85
+ `Can't process function: Found unexpected value specification type`,
86
+ );
87
+ assertTrue(
88
+ matchFunctionName(
89
+ value.function,
90
+ Array.isArray(functionNames) ? functionNames : [functionNames],
91
+ ),
92
+ `Can't process function: Expected function name to be one of [${Array.isArray(functionNames) ? functionNames.join(', ') : functionNames}]`,
93
+ );
94
+ return value;
95
+ }
96
+
97
+ // TODO: move these functions out into aggregator utils when we make agg operator handling systematic
98
+ // similar to what we did with filter
99
+ function _aggFuncMatch(
100
+ value: V1_ValueSpecification | undefined,
101
+ functionNames: string | string[],
102
+ ) {
103
+ assertType(
104
+ value,
105
+ V1_Lambda,
106
+ `Can't process aggregation: Found unexpected value specification type`,
107
+ );
108
+ return _funcMatch(value.body[0], functionNames);
109
+ }
110
+
111
+ export function _defaultAggCol(
112
+ name: string,
113
+ type: string,
114
+ ): DataCubeQuerySnapshotAggregateColumn | undefined {
115
+ switch (type) {
116
+ case PRIMITIVE_TYPE.NUMBER:
117
+ case PRIMITIVE_TYPE.INTEGER:
118
+ case PRIMITIVE_TYPE.DECIMAL:
119
+ case PRIMITIVE_TYPE.FLOAT: {
120
+ return {
121
+ name,
122
+ type,
123
+ operation: DataCubeAggregateOperator.SUM,
124
+ parameters: [],
125
+ };
126
+ }
127
+ default:
128
+ return undefined;
129
+ }
130
+ }
131
+
132
+ export function _aggCol(
133
+ colSpec: V1_ColSpec,
134
+ column: DataCubeQuerySnapshotColumn,
135
+ ) {
136
+ const func = _aggFuncMatch(
137
+ colSpec.function2,
138
+ Object.values(DataCubeFunction),
139
+ );
140
+ if (matchFunctionName(func.function, DataCubeFunction.COUNT)) {
141
+ return {
142
+ ...column,
143
+ operation: DataCubeAggregateOperator.COUNT,
144
+ parameters: [],
145
+ };
146
+ } else if (matchFunctionName(func.function, DataCubeFunction.SUM)) {
147
+ return {
148
+ ...column,
149
+ operation: DataCubeAggregateOperator.SUM,
150
+ parameters: [],
151
+ };
152
+ } else if (matchFunctionName(func.function, DataCubeFunction.AVERAGE)) {
153
+ return {
154
+ ...column,
155
+ operation: DataCubeAggregateOperator.AVERAGE,
156
+ parameters: [],
157
+ };
158
+ } else if (matchFunctionName(func.function, DataCubeFunction.MIN)) {
159
+ return {
160
+ ...column,
161
+ operation: DataCubeAggregateOperator.MIN,
162
+ parameters: [],
163
+ };
164
+ } else if (matchFunctionName(func.function, DataCubeFunction.MAX)) {
165
+ return {
166
+ ...column,
167
+ operation: DataCubeAggregateOperator.MAX,
168
+ parameters: [],
169
+ };
170
+ } else if (matchFunctionName(func.function, DataCubeFunction.FIRST)) {
171
+ return {
172
+ ...column,
173
+ operation: DataCubeAggregateOperator.FIRST,
174
+ parameters: [],
175
+ };
176
+ } else if (matchFunctionName(func.function, DataCubeFunction.LAST)) {
177
+ return {
178
+ ...column,
179
+ operation: DataCubeAggregateOperator.LAST,
180
+ parameters: [],
181
+ };
182
+ } else if (matchFunctionName(func.function, DataCubeFunction.VAR_POP)) {
183
+ return {
184
+ ...column,
185
+ operation: DataCubeAggregateOperator.VAR_POP,
186
+ parameters: [],
187
+ };
188
+ } else if (matchFunctionName(func.function, DataCubeFunction.VAR_SAMP)) {
189
+ return {
190
+ ...column,
191
+ operation: DataCubeAggregateOperator.VAR_SAMP,
192
+ parameters: [],
193
+ };
194
+ } else if (matchFunctionName(func.function, DataCubeFunction.STDDEV_POP)) {
195
+ return {
196
+ ...column,
197
+ operation: DataCubeAggregateOperator.STDDEV_POP,
198
+ parameters: [],
199
+ };
200
+ } else if (matchFunctionName(func.function, DataCubeFunction.STDDEV_SAMP)) {
201
+ return {
202
+ ...column,
203
+ operation: DataCubeAggregateOperator.STDDEV_SAMP,
204
+ parameters: [],
205
+ };
206
+ } else {
207
+ throw new UnsupportedOperationError(
208
+ `Unsupported aggregate function '${func.function}'`,
209
+ );
210
+ }
211
+ }
@@ -17,18 +17,67 @@
17
17
  import { APPLICATION_EVENT } from '@finos/legend-application';
18
18
  import type { DataCubeState } from '../DataCubeState.js';
19
19
  import type { DataCubeQuerySnapshot } from './DataCubeQuerySnapshot.js';
20
- import type { DataCubeQuerySnapshotSubscriber } from './DataCubeQuerySnapshotSubscriber.js';
21
20
  import {
22
21
  IllegalStateError,
23
22
  LogEvent,
24
23
  assertErrorThrown,
24
+ deepDiff,
25
25
  guaranteeNonNullable,
26
26
  } from '@finos/legend-shared';
27
27
  import type { DataCubeQuery } from '../../../server/DataCubeQuery.js';
28
+ import type { LegendREPLApplicationStore } from '../../LegendREPLBaseStore.js';
28
29
 
29
30
  // TODO: set a stack depth when we implement undo/redo
30
31
  // const DATA_CUBE_MAX_SNAPSHOT_COUNT = 100;
31
32
 
33
+ interface DataCubeQuerySnapshotSubscriber {
34
+ getLatestSnapshot(): DataCubeQuerySnapshot | undefined;
35
+ receiveSnapshot(snapshot: DataCubeQuerySnapshot): Promise<void>;
36
+ }
37
+
38
+ export abstract class DataCubeQuerySnapshotController
39
+ implements DataCubeQuerySnapshotSubscriber
40
+ {
41
+ readonly dataCube!: DataCubeState;
42
+ readonly application!: LegendREPLApplicationStore;
43
+
44
+ private latestSnapshot: DataCubeQuerySnapshot | undefined;
45
+
46
+ constructor(dataCube: DataCubeState) {
47
+ this.dataCube = dataCube;
48
+ this.application = dataCube.application;
49
+ }
50
+
51
+ abstract applySnapshot(
52
+ snapshot: DataCubeQuerySnapshot,
53
+ previousSnapshot: DataCubeQuerySnapshot | undefined,
54
+ ): Promise<void>;
55
+
56
+ async receiveSnapshot(snapshot: DataCubeQuerySnapshot) {
57
+ const previousSnapshot = this.latestSnapshot;
58
+ this.latestSnapshot = snapshot;
59
+ await this.applySnapshot(snapshot, previousSnapshot);
60
+ }
61
+
62
+ publishSnapshot(snapshot: DataCubeQuerySnapshot) {
63
+ if (this.dataCube.engine.enableDebugMode) {
64
+ this.application.debugProcess(
65
+ `New Snapshot`,
66
+ '\nSnapshot',
67
+ snapshot,
68
+ '\nDiff',
69
+ deepDiff(snapshot, this.latestSnapshot ?? {}),
70
+ );
71
+ }
72
+ this.latestSnapshot = snapshot;
73
+ this.dataCube.snapshotManager.broadcastSnapshot(snapshot);
74
+ }
75
+
76
+ getLatestSnapshot() {
77
+ return this.latestSnapshot;
78
+ }
79
+ }
80
+
32
81
  export class DataCubeQuerySnapshotManager {
33
82
  private readonly dataCube: DataCubeState;
34
83
  private readonly subscribers: DataCubeQuerySnapshotSubscriber[] = [];
@@ -16,13 +16,13 @@
16
16
 
17
17
  import { action, makeObservable, observable } from 'mobx';
18
18
  import type { DataCubeState } from '../DataCubeState.js';
19
- import { DataCubeQuerySnapshotSubscriber } from './DataCubeQuerySnapshotSubscriber.js';
19
+ import { DataCubeQuerySnapshotController } from './DataCubeQuerySnapshotManager.js';
20
20
  import type { DataCubeQuerySnapshot } from './DataCubeQuerySnapshot.js';
21
21
  import type { DataCubeQuery } from '../../../server/DataCubeQuery.js';
22
22
  import { formatDate } from '@finos/legend-shared';
23
23
  import { DEFAULT_REPORT_NAME } from './DataCubeQueryEngine.js';
24
24
 
25
- export class DataCubeCoreState extends DataCubeQuerySnapshotSubscriber {
25
+ export class DataCubeStaticContentDisplayState extends DataCubeQuerySnapshotController {
26
26
  baseQuery!: DataCubeQuery;
27
27
  name = DEFAULT_REPORT_NAME;
28
28
  private startTime?: number | undefined;
@@ -53,8 +53,4 @@ export class DataCubeCoreState extends DataCubeQuerySnapshotSubscriber {
53
53
  `\u229E ${data.name}${this.startTime ? ` - ${formatDate(new Date(this.startTime), 'HH:mm:ss EEE MMM dd yyyy')}` : ''}`,
54
54
  );
55
55
  }
56
-
57
- override async initialize() {
58
- // do nothing
59
- }
60
56
  }