@finos/legend-application-repl 0.0.47 → 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
@@ -0,0 +1,353 @@
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
+ /***************************************************************************************
18
+ * [CORE]
19
+ *
20
+ * These are utilities used to build the executable query from the query snapshot.
21
+ * The executable query is then used to fetch data.
22
+ ***************************************************************************************/
23
+
24
+ import {
25
+ PRIMITIVE_TYPE,
26
+ V1_AppliedFunction,
27
+ V1_AppliedProperty,
28
+ V1_CBoolean,
29
+ V1_CDateTime,
30
+ V1_CDecimal,
31
+ V1_CFloat,
32
+ V1_CInteger,
33
+ V1_CStrictDate,
34
+ V1_CStrictTime,
35
+ V1_CString,
36
+ V1_ClassInstance,
37
+ V1_ClassInstanceType,
38
+ V1_ColSpec,
39
+ V1_ColSpecArray,
40
+ V1_Collection,
41
+ V1_Lambda,
42
+ V1_Multiplicity,
43
+ V1_PackageableElementPtr,
44
+ type V1_PrimitiveValueSpecification,
45
+ V1_Variable,
46
+ V1_deserializeValueSpecification,
47
+ extractElementNameFromPath as _functionName,
48
+ type V1_ValueSpecification,
49
+ } from '@finos/legend-graph';
50
+ import {
51
+ type DataCubeQuerySnapshotFilterCondition,
52
+ type DataCubeQuerySnapshotFilter,
53
+ _findCol,
54
+ type DataCubeQuerySnapshotColumn,
55
+ type DataCubeQuerySnapshotAggregateColumn,
56
+ } from './DataCubeQuerySnapshot.js';
57
+ import {
58
+ guaranteeNonNullable,
59
+ guaranteeIsString,
60
+ guaranteeIsBoolean,
61
+ guaranteeIsNumber,
62
+ UnsupportedOperationError,
63
+ guaranteeType,
64
+ type PlainObject,
65
+ } from '@finos/legend-shared';
66
+ import {
67
+ DataCubeFunction,
68
+ DEFAULT_LAMBDA_VARIABLE_NAME,
69
+ INTERNAL__FILLER_COUNT_AGG_COLUMN_NAME,
70
+ DataCubeQueryFilterGroupOperator,
71
+ DataCubeAggregateOperator,
72
+ type DataCubeOperationValue,
73
+ DataCubeOperationAdvancedValueType,
74
+ } from './DataCubeQueryEngine.js';
75
+ import type { DataCubeQueryFilterOperation } from './filter/DataCubeQueryFilterOperation.js';
76
+
77
+ // --------------------------------- UTILITIES ---------------------------------
78
+
79
+ export function _deserializeToLambda(json: PlainObject<V1_Lambda>) {
80
+ return guaranteeType(V1_deserializeValueSpecification(json, []), V1_Lambda);
81
+ }
82
+
83
+ export function _var(name?: string | undefined) {
84
+ const variable = new V1_Variable();
85
+ variable.name = name ?? DEFAULT_LAMBDA_VARIABLE_NAME;
86
+ return variable;
87
+ }
88
+
89
+ export function _property(name: string, variable?: V1_Variable | undefined) {
90
+ const property = new V1_AppliedProperty();
91
+ property.property = name;
92
+ property.parameters.push(variable ?? _var());
93
+ return property;
94
+ }
95
+
96
+ export function _lambda(
97
+ parameters: V1_Variable[],
98
+ body: V1_ValueSpecification[],
99
+ ) {
100
+ const lambda = new V1_Lambda();
101
+ lambda.parameters = parameters;
102
+ lambda.body = body;
103
+ return lambda;
104
+ }
105
+
106
+ export { _functionName };
107
+ export function _function(
108
+ functionName: string,
109
+ parameters: V1_ValueSpecification[],
110
+ ) {
111
+ const func = new V1_AppliedFunction();
112
+ func.function = functionName;
113
+ func.parameters = parameters;
114
+ return func;
115
+ }
116
+
117
+ export function _collection(values: V1_ValueSpecification[]) {
118
+ const collection = new V1_Collection();
119
+ collection.multiplicity = new V1_Multiplicity(values.length, values.length);
120
+ collection.values = values;
121
+ return collection;
122
+ }
123
+
124
+ export function _primitiveValue(type: string, value: unknown) {
125
+ const _val = <T extends V1_PrimitiveValueSpecification & { value: unknown }>(
126
+ primitiveValue: T,
127
+ val: unknown,
128
+ ): T => {
129
+ primitiveValue.value = val;
130
+ return primitiveValue;
131
+ };
132
+ switch (type) {
133
+ case PRIMITIVE_TYPE.STRING:
134
+ return _val(new V1_CString(), guaranteeIsString(value));
135
+ case PRIMITIVE_TYPE.BOOLEAN:
136
+ return _val(new V1_CBoolean(), guaranteeIsBoolean(value));
137
+ case PRIMITIVE_TYPE.NUMBER:
138
+ case PRIMITIVE_TYPE.DECIMAL:
139
+ return _val(new V1_CDecimal(), guaranteeIsNumber(value));
140
+ case PRIMITIVE_TYPE.INTEGER:
141
+ return _val(new V1_CInteger(), guaranteeIsNumber(value));
142
+ case PRIMITIVE_TYPE.FLOAT:
143
+ return _val(new V1_CFloat(), guaranteeIsNumber(value));
144
+ case PRIMITIVE_TYPE.DATE:
145
+ case PRIMITIVE_TYPE.STRICTDATE:
146
+ return _val(new V1_CStrictDate(), guaranteeIsString(value));
147
+ case PRIMITIVE_TYPE.DATETIME:
148
+ return _val(new V1_CDateTime(), guaranteeIsString(value));
149
+ case PRIMITIVE_TYPE.STRICTTIME:
150
+ return _val(new V1_CStrictTime(), guaranteeIsString(value));
151
+ default:
152
+ throw new UnsupportedOperationError(`Unsupported value type '${type}'`);
153
+ }
154
+ }
155
+
156
+ export function _elementPtr(fullPath: string) {
157
+ const ptr = new V1_PackageableElementPtr();
158
+ ptr.fullPath = fullPath;
159
+ return ptr;
160
+ }
161
+
162
+ function _classInstance(type: string, value: unknown) {
163
+ const instance = new V1_ClassInstance();
164
+ instance.type = type;
165
+ instance.value = value;
166
+ return instance;
167
+ }
168
+
169
+ export function _colSpec(
170
+ name: string,
171
+ function1?: V1_Lambda | undefined,
172
+ function2?: V1_Lambda | undefined,
173
+ ) {
174
+ const colSpec = new V1_ColSpec();
175
+ colSpec.name = name;
176
+ colSpec.function1 = function1;
177
+ colSpec.function2 = function2;
178
+ return colSpec;
179
+ }
180
+
181
+ export function _value(
182
+ value: DataCubeOperationValue,
183
+ variable?: V1_Variable | undefined,
184
+ ) {
185
+ switch (value.type) {
186
+ case PRIMITIVE_TYPE.STRING:
187
+ case PRIMITIVE_TYPE.BOOLEAN:
188
+ case PRIMITIVE_TYPE.NUMBER:
189
+ case PRIMITIVE_TYPE.DECIMAL:
190
+ case PRIMITIVE_TYPE.INTEGER:
191
+ case PRIMITIVE_TYPE.FLOAT:
192
+ case PRIMITIVE_TYPE.DATE:
193
+ case PRIMITIVE_TYPE.DATETIME:
194
+ case PRIMITIVE_TYPE.STRICTDATE:
195
+ case PRIMITIVE_TYPE.STRICTTIME: {
196
+ if (Array.isArray(value.value)) {
197
+ return _collection(
198
+ value.value.map((val) => _primitiveValue(value.type, val)),
199
+ );
200
+ }
201
+ return _primitiveValue(value.type, value.value);
202
+ }
203
+ case DataCubeOperationAdvancedValueType.COLUMN:
204
+ return _property(guaranteeIsString(value.value), variable);
205
+ default:
206
+ throw new UnsupportedOperationError(
207
+ `Unsupported value type '${value.type}'`,
208
+ );
209
+ }
210
+ }
211
+
212
+ function _aggFunctionName(operation: string) {
213
+ switch (operation) {
214
+ case DataCubeAggregateOperator.SUM:
215
+ return DataCubeFunction.SUM;
216
+ case DataCubeAggregateOperator.AVERAGE:
217
+ return DataCubeFunction.AVERAGE;
218
+ case DataCubeAggregateOperator.COUNT:
219
+ return DataCubeFunction.COUNT;
220
+ case DataCubeAggregateOperator.MIN:
221
+ return DataCubeFunction.MIN;
222
+ case DataCubeAggregateOperator.MAX:
223
+ return DataCubeFunction.MAX;
224
+ case DataCubeAggregateOperator.FIRST:
225
+ return DataCubeFunction.FIRST;
226
+ case DataCubeAggregateOperator.LAST:
227
+ return DataCubeFunction.LAST;
228
+ case DataCubeAggregateOperator.VAR_POP:
229
+ return DataCubeFunction.VAR_POP;
230
+ case DataCubeAggregateOperator.VAR_SAMP:
231
+ return DataCubeFunction.VAR_SAMP;
232
+ case DataCubeAggregateOperator.STDDEV_POP:
233
+ return DataCubeFunction.STDDEV_POP;
234
+ case DataCubeAggregateOperator.STDDEV_SAMP:
235
+ return DataCubeFunction.STDDEV_SAMP;
236
+ default:
237
+ throw new UnsupportedOperationError(
238
+ `Unsupported aggregate operation '${operation}'`,
239
+ );
240
+ }
241
+ }
242
+
243
+ function _agg(
244
+ agg: DataCubeQuerySnapshotAggregateColumn,
245
+ variable?: V1_Variable | undefined,
246
+ ) {
247
+ const parameters = agg.parameters.map((param) => _value(param));
248
+ return _function(_aggFunctionName(agg.operation), [
249
+ variable ?? _var(),
250
+ ...parameters,
251
+ ]);
252
+ }
253
+
254
+ export function _not(fn: V1_AppliedFunction) {
255
+ return _function(DataCubeFunction.NOT, [fn]);
256
+ }
257
+
258
+ // --------------------------------- BUILDING BLOCKS ---------------------------------
259
+
260
+ export function _col(
261
+ name: string,
262
+ function1?: V1_Lambda | undefined,
263
+ function2?: V1_Lambda | undefined,
264
+ ) {
265
+ return _classInstance(
266
+ V1_ClassInstanceType.COL_SPEC,
267
+ _colSpec(name, function1, function2),
268
+ );
269
+ }
270
+
271
+ export function _cols(colSpecs: V1_ColSpec[]) {
272
+ const colSpecArray = new V1_ColSpecArray();
273
+ colSpecArray.colSpecs = colSpecs;
274
+ return _classInstance(V1_ClassInstanceType.COL_SPEC_ARRAY, colSpecArray);
275
+ }
276
+
277
+ export function _groupByAggCols(
278
+ columns: DataCubeQuerySnapshotAggregateColumn[],
279
+ ) {
280
+ const variable = _var();
281
+ return columns.length
282
+ ? columns.map((agg) =>
283
+ _colSpec(
284
+ agg.name,
285
+ _lambda([variable], [_property(agg.name, variable)]),
286
+ _lambda([variable], [_agg(agg)]),
287
+ ),
288
+ )
289
+ : // if no aggregates are specified, add a dummy count() aggregate to satisfy compiler
290
+ [
291
+ _colSpec(
292
+ INTERNAL__FILLER_COUNT_AGG_COLUMN_NAME,
293
+ _lambda([variable], [variable]),
294
+ _lambda([variable], [_function(DataCubeFunction.COUNT, [variable])]),
295
+ ),
296
+ ];
297
+ }
298
+
299
+ export function _filter(
300
+ filter: DataCubeQuerySnapshotFilter | DataCubeQuerySnapshotFilterCondition,
301
+ filterOperations: DataCubeQueryFilterOperation[],
302
+ ) {
303
+ if ('groupOperator' in filter) {
304
+ const filterGroup = filter;
305
+ const groupOperation =
306
+ filterGroup.groupOperator === DataCubeQueryFilterGroupOperator.AND
307
+ ? DataCubeFunction.AND
308
+ : DataCubeFunction.OR;
309
+ let conditions: V1_ValueSpecification[] = [];
310
+ filterGroup.conditions.forEach((condition) => {
311
+ conditions.push(_filter(condition, filterOperations));
312
+ // NOTE: a group operation (and/or) function can only have 2 parameters, so we
313
+ // have to breakdown the group operation into nested group functions
314
+ if (conditions.length === 2) {
315
+ conditions = [_function(groupOperation, conditions)];
316
+ }
317
+ });
318
+ return guaranteeNonNullable(conditions[0]);
319
+ } else {
320
+ const filterCondition = filter;
321
+ const operation = filterOperations.find(
322
+ (op) => op.operator === filterCondition.operation,
323
+ );
324
+ const condition = operation?.buildConditionExpression(filterCondition);
325
+ if (!condition) {
326
+ throw new UnsupportedOperationError(
327
+ `Unsupported filter operation '${filterCondition.operation}'`,
328
+ );
329
+ }
330
+ return condition;
331
+ }
332
+ }
333
+
334
+ export function _groupByExtend(
335
+ columns: DataCubeQuerySnapshotColumn[],
336
+ columnsUsedInGroupBy: DataCubeQuerySnapshotColumn[],
337
+ ) {
338
+ const missingCols = columns.filter(
339
+ (col) => !_findCol(columnsUsedInGroupBy, col.name),
340
+ );
341
+ return missingCols.length
342
+ ? _function(_functionName(DataCubeFunction.EXTEND), [
343
+ _cols(
344
+ missingCols.map((col) =>
345
+ _colSpec(
346
+ col.name,
347
+ _lambda([_var()], [_primitiveValue(PRIMITIVE_TYPE.STRING, '')]),
348
+ ),
349
+ ),
350
+ ),
351
+ ])
352
+ : undefined;
353
+ }
@@ -39,18 +39,19 @@ export enum DataCubeFunction {
39
39
 
40
40
  // filter
41
41
  AND = 'meta::pure::functions::boolean::and',
42
- NOT = 'meta::pure::functions::boolean::not',
43
42
  OR = 'meta::pure::functions::boolean::or',
43
+ NOT = 'meta::pure::functions::boolean::not',
44
+ TO_LOWERCASE = 'meta::pure::functions::string::toLower',
44
45
 
45
46
  CONTAINS = 'meta::pure::functions::string::contains',
46
47
  ENDS_WITH = 'meta::pure::functions::string::endsWith',
47
48
  EQUAL = 'meta::pure::functions::boolean::equal',
48
49
  GREATER_THAN = 'meta::pure::functions::boolean::greaterThan',
49
- GREATER_THAN_EQUAL = 'meta::pure::functions::boolean::greaterThanEqual',
50
+ GREATER_THAN_OR_EQUAL = 'meta::pure::functions::boolean::greaterThanEqual',
50
51
  IN = 'meta::pure::functions::collection::in',
51
52
  IS_EMPTY = 'meta::pure::functions::collection::isEmpty',
52
53
  LESS_THAN = 'meta::pure::functions::boolean::lessThan',
53
- LESS_THAN_EQUAL = 'meta::pure::functions::boolean::lessThanEqual',
54
+ LESS_THAN_OR_EQUAL = 'meta::pure::functions::boolean::lessThanEqual',
54
55
  STARTS_WITH = 'meta::pure::functions::string::startsWith',
55
56
 
56
57
  // aggregate
@@ -155,15 +156,17 @@ export enum DataCubeColumnKind {
155
156
  DIMENSION = 'Dimension',
156
157
  }
157
158
 
158
- // TODO: we could potentially support complex type like parameter/column in the future
159
- export enum DataCubeOperationValueType {}
159
+ export enum DataCubeOperationAdvancedValueType {
160
+ COLUMN = 'COLUMN',
161
+ // PARAMETER
162
+ }
160
163
 
161
164
  export type DataCubeOperationValue = {
162
165
  value: unknown;
163
166
  type: string;
164
167
  };
165
168
 
166
- export enum DataCubeAggregateOperation {
169
+ export enum DataCubeAggregateOperator {
167
170
  SUM = 'sum',
168
171
  AVERAGE = 'avg',
169
172
  COUNT = 'count',
@@ -197,27 +200,49 @@ export enum DataCubeAggregateOperation {
197
200
  // custom
198
201
  }
199
202
 
200
- export enum DataCubeQueryFilterOperation {
201
- EQUAL = 'equal',
202
- NOT_EQUAL = 'notEqual',
203
- GREATER_THAN = 'greaterThan',
204
- GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual',
205
- LESS_THAN = 'lessThan',
206
- LESS_THAN_OR_EQUAL = 'lessThanOrEqual',
207
- BLANK = 'isEmpty',
208
- NOT_BLANK = 'isNotEmpty',
209
- CONTAINS = 'contains',
210
- NOT_CONTAINS = 'notContains',
211
- STARTS_WITH = 'startsWith',
212
- ENDS_WITH = 'endsWith',
203
+ export enum DataCubeQueryFilterOperator {
204
+ LESS_THAN = '<', // DONE
205
+ LESS_THAN_OR_EQUAL = '<=', // DONE
206
+ EQUAL = '=', // DONE
207
+ NOT_EQUAL = '!=', // DONE
208
+ GREATER_THAN = '>', // DONE
209
+ GREATER_THAN_OR_EQUAL = '>=', // DONE
210
+ IN = 'in',
211
+ NOT_IN = 'not in',
212
+ IS_NULL = 'is null', // DONE
213
+ IS_NOT_NULL = 'is not null', // DONE
214
+ // string ONLY
215
+ EQUAL_CASE_INSENSITIVE = '= (case-insensitive)', // DONE
216
+ NOT_EQUAL_CASE_INSENSITIVE = '!= (case-insensitive)', // DONE
217
+ IN_CASE_INSENSITIVE = 'in (case-insensitive)',
218
+ NOT_IN_CASE_INSENSITIVE = 'not in (case-insensitive)',
219
+ CONTAIN = 'contains', // DONE
220
+ CONTAIN_CASE_INSENSITIVE = 'contains (case-insensitive)', // DONE
221
+ NOT_CONTAIN = 'does not contain', // DONE
222
+ START_WITH = 'starts with', // DONE
223
+ START_WITH_CASE_INSENSITIVE = 'starts with (case-insensitive)', // DONE
224
+ NOT_START_WITH = 'does not start with', // DONE
225
+ END_WITH = 'ends with', // DONE
226
+ END_WITH_CASE_INSENSITIVE = 'ends with (case-insensitive)', // DONE
227
+ NOT_END_WITH = 'does not end with', // DONE
228
+ // column
229
+ LESS_THAN_COLUMN = '< value in column', // DONE
230
+ LESS_THAN_OR_EQUAL_COLUMN = '<= value in column', // DONE
231
+ EQUAL_COLUMN = '= value in column', // DONE
232
+ EQUAL_CASE_INSENSITIVE_COLUMN = '= (case-insensitive) value in column', // DONE
233
+ NOT_EQUAL_COLUMN = '!= value in column', // DONE
234
+ NOT_EQUAL_CASE_INSENSITIVE_COLUMN = '!= (case-insensitive) value in column', // DONE
235
+ GREATER_THAN_COLUMN = '> value in column', // DONE
236
+ GREATER_THAN_OR_EQUAL_COLUMN = '>= value in column', // DONE
237
+ // TODO?: having, having in aggregate, between
213
238
  }
214
239
 
215
- export enum DataCubeQueryFilterGroupOperation {
240
+ export enum DataCubeQueryFilterGroupOperator {
216
241
  AND = 'and',
217
242
  OR = 'or',
218
243
  }
219
244
 
220
- export enum DataCubeQuerySortOperation {
245
+ export enum DataCubeQuerySortOperator {
221
246
  ASCENDING = 'ascending',
222
247
  DESCENDING = 'descending',
223
248
  }
@@ -25,26 +25,22 @@ import {
25
25
  type PlainObject,
26
26
  type Writable,
27
27
  } from '@finos/legend-shared';
28
- import type {
29
- DataCubeAggregateOperation,
30
- DataCubeOperationValue,
31
- DataCubeQueryFilterGroupOperation,
32
- DataCubeQueryFilterOperation,
33
- DataCubeQuerySortOperation,
34
- } from './DataCubeQueryEngine.js';
28
+ import type { DataCubeOperationValue } from './DataCubeQueryEngine.js';
35
29
 
36
30
  export type DataCubeQuerySnapshotFilterCondition =
37
31
  DataCubeQuerySnapshotColumn & {
38
32
  value: DataCubeOperationValue | undefined;
39
- operation: DataCubeQueryFilterOperation;
33
+ operation: string;
34
+ not?: boolean | undefined;
40
35
  };
41
36
 
42
37
  export type DataCubeQuerySnapshotFilter = {
43
- groupOperation: DataCubeQueryFilterGroupOperation;
38
+ groupOperator: string;
44
39
  conditions: (
45
40
  | DataCubeQuerySnapshotFilterCondition
46
41
  | DataCubeQuerySnapshotFilter
47
42
  )[];
43
+ not?: boolean | undefined;
48
44
  };
49
45
 
50
46
  export type DataCubeQuerySnapshotColumn = {
@@ -59,12 +55,12 @@ export type DataCubeQuerySnapshotExtendedColumn =
59
55
  };
60
56
 
61
57
  export type DataCubeQuerySnapshotSortColumn = DataCubeQuerySnapshotColumn & {
62
- operation: DataCubeQuerySortOperation;
58
+ operation: string;
63
59
  };
64
60
 
65
61
  export type DataCubeQuerySnapshotAggregateColumn =
66
62
  DataCubeQuerySnapshotColumn & {
67
- operation: DataCubeAggregateOperation;
63
+ operation: string;
68
64
  parameters: DataCubeOperationValue[];
69
65
  };
70
66
 
@@ -156,9 +152,9 @@ export class DataCubeQuerySnapshot {
156
152
  */
157
153
  stageCols(stage: DataCubeQuerySnapshotStage) {
158
154
  switch (stage) {
159
- case 'filter':
160
155
  case 'leaf-extend':
161
156
  return [...this.data.sourceColumns];
157
+ case 'filter':
162
158
  case 'select':
163
159
  return [...this.data.sourceColumns, ...this.data.leafExtendedColumns];
164
160
  case 'aggregation':