@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,93 @@
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 { type V1_AppliedFunction } from '@finos/legend-graph';
18
+ import {
19
+ DataCubeQueryFilterOperation,
20
+ generateDefaultFilterConditionPrimitiveTypeValue,
21
+ ofType,
22
+ } from './DataCubeQueryFilterOperation.js';
23
+ import type {
24
+ DataCubeQuerySnapshotColumn,
25
+ DataCubeQuerySnapshotFilterCondition,
26
+ } from '../DataCubeQuerySnapshot.js';
27
+ import {
28
+ DataCubeFunction,
29
+ DataCubeQueryFilterOperator,
30
+ type DataCubeOperationValue,
31
+ } from '../DataCubeQueryEngine.js';
32
+ import {
33
+ _function,
34
+ _functionName,
35
+ _property,
36
+ _value,
37
+ _var,
38
+ } from '../DataCubeQueryBuilderUtils.js';
39
+ import { guaranteeNonNullable } from '@finos/legend-shared';
40
+
41
+ export class DataCubeQueryFilterOperation__StartWithCaseInsensitive extends DataCubeQueryFilterOperation {
42
+ override get label() {
43
+ return 'starts with (case-insensitive)';
44
+ }
45
+
46
+ override get textLabel() {
47
+ return 'startsWith (case-insensitive)';
48
+ }
49
+
50
+ override get description(): string {
51
+ return 'starts with (case-insensitive)';
52
+ }
53
+
54
+ override get operator(): string {
55
+ return DataCubeQueryFilterOperator.START_WITH_CASE_INSENSITIVE;
56
+ }
57
+
58
+ isCompatibleWithColumn(column: DataCubeQuerySnapshotColumn) {
59
+ return ofType(column.type, ['string']);
60
+ }
61
+
62
+ isCompatibleWithValue(value: DataCubeOperationValue) {
63
+ return (
64
+ ofType(value.type, ['string']) &&
65
+ value.value !== undefined &&
66
+ !Array.isArray(value.value)
67
+ );
68
+ }
69
+
70
+ generateDefaultValue(column: DataCubeQuerySnapshotColumn) {
71
+ return {
72
+ type: column.type,
73
+ value: generateDefaultFilterConditionPrimitiveTypeValue(column.type),
74
+ };
75
+ }
76
+
77
+ buildConditionSnapshot(expression: V1_AppliedFunction) {
78
+ // TODO: @akphi - implement this for roundtrip testing
79
+ return undefined;
80
+ }
81
+
82
+ buildConditionExpression(condition: DataCubeQuerySnapshotFilterCondition) {
83
+ const variable = _var();
84
+ return _function(_functionName(DataCubeFunction.STARTS_WITH), [
85
+ _function(_functionName(DataCubeFunction.TO_LOWERCASE), [
86
+ _property(condition.name, variable),
87
+ ]),
88
+ _function(_functionName(DataCubeFunction.TO_LOWERCASE), [
89
+ _value(guaranteeNonNullable(condition.value), variable),
90
+ ]),
91
+ ]);
92
+ }
93
+ }
@@ -30,7 +30,7 @@ import {
30
30
  } from '@finos/legend-shared';
31
31
  import type { DataCubeConfiguration } from '../core/DataCubeConfiguration.js';
32
32
  import {
33
- DataCubeAggregateOperation,
33
+ DataCubeAggregateOperator,
34
34
  DataCubeColumnKind,
35
35
  } from '../core/DataCubeQueryEngine.js';
36
36
  import { PRIMITIVE_TYPE } from '@finos/legend-graph';
@@ -123,7 +123,7 @@ export class DataCubeEditorColumnPropertiesPanelState
123
123
  case PRIMITIVE_TYPE.INTEGER:
124
124
  case PRIMITIVE_TYPE.DECIMAL:
125
125
  case PRIMITIVE_TYPE.FLOAT: {
126
- column.setAggregateFunction(DataCubeAggregateOperation.SUM);
126
+ column.setAggregateFunction(DataCubeAggregateOperator.SUM);
127
127
  column.setAggregateFunctionParameters([]);
128
128
  break;
129
129
  }
@@ -0,0 +1,295 @@
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 { action, computed, makeObservable, observable } from 'mobx';
18
+ import {
19
+ DataCubeQueryFilterGroupOperator,
20
+ DataCubeQueryFilterOperator,
21
+ } from '../core/DataCubeQueryEngine.js';
22
+ import type { DataCubeQuerySnapshot } from '../core/DataCubeQuerySnapshot.js';
23
+ import {
24
+ deepClone,
25
+ getNonNullableEntry,
26
+ guaranteeNonNullable,
27
+ } from '@finos/legend-shared';
28
+ import type { DataCubeEditorState } from './DataCubeEditorState.js';
29
+ import type { DataCubeState } from '../DataCubeState.js';
30
+ import type { DataCubeQueryEditorPanelState } from './DataCubeEditorPanelState.js';
31
+ import type { DataCubeConfiguration } from '../core/DataCubeConfiguration.js';
32
+ import {
33
+ type DataCubeFilterEditorTree,
34
+ type DataCubeFilterEditorTreeNode,
35
+ DataCubeFilterEditorConditionGroupTreeNode,
36
+ DataCubeFilterEditorConditionTreeNode,
37
+ buildFilterEditorTree,
38
+ buildFilterQuerySnapshot,
39
+ } from '../core/filter/DataCubeQueryFilterEditorState.js';
40
+
41
+ export class DataCubeEditorFilterPanelState
42
+ implements DataCubeQueryEditorPanelState
43
+ {
44
+ readonly dataCube!: DataCubeState;
45
+ readonly editor!: DataCubeEditorState;
46
+
47
+ tree: DataCubeFilterEditorTree;
48
+ selectedNode?: DataCubeFilterEditorTreeNode | undefined;
49
+
50
+ constructor(editor: DataCubeEditorState) {
51
+ makeObservable(this, {
52
+ tree: observable.ref,
53
+ initializeTree: action,
54
+ refreshTree: action,
55
+
56
+ selectedNode: observable,
57
+ selectedGroupNode: computed,
58
+ setSelectedNode: action,
59
+ addFilterNode: action,
60
+ removeFilterNode: action,
61
+ layerFilterNode: action,
62
+ });
63
+
64
+ this.dataCube = editor.dataCube;
65
+ this.editor = editor;
66
+ this.tree = {
67
+ nodes: new Map<string, DataCubeFilterEditorTreeNode>(),
68
+ };
69
+ }
70
+
71
+ get columns() {
72
+ // TODO: include leaf-extended columns
73
+ return this.editor.columns.sourceColumns;
74
+ }
75
+
76
+ initializeTree() {
77
+ if (this.tree.root === undefined && this.tree.nodes.size === 0) {
78
+ const root = new DataCubeFilterEditorConditionGroupTreeNode(
79
+ undefined,
80
+ DataCubeQueryFilterGroupOperator.AND,
81
+ undefined,
82
+ );
83
+ this.tree.nodes.set(root.uuid, root);
84
+ this.tree.root = root;
85
+ const condition = this.generateNewFilterNode(root);
86
+ if (condition) {
87
+ root.addChild(condition);
88
+ this.tree.nodes.set(condition.uuid, condition);
89
+ }
90
+ this.refreshTree();
91
+ }
92
+ }
93
+
94
+ refreshTree() {
95
+ this.tree = { ...this.tree };
96
+ }
97
+
98
+ get selectedGroupNode():
99
+ | DataCubeFilterEditorConditionGroupTreeNode
100
+ | undefined {
101
+ return this.selectedNode instanceof
102
+ DataCubeFilterEditorConditionGroupTreeNode
103
+ ? this.selectedNode
104
+ : this.selectedNode?.parent;
105
+ }
106
+
107
+ setSelectedNode(node: DataCubeFilterEditorTreeNode | undefined) {
108
+ this.selectedNode = node;
109
+ }
110
+
111
+ private generateNewFilterNode(baseNode: DataCubeFilterEditorTreeNode) {
112
+ if (baseNode instanceof DataCubeFilterEditorConditionTreeNode) {
113
+ return new DataCubeFilterEditorConditionTreeNode(
114
+ undefined,
115
+ baseNode.column,
116
+ baseNode.operation,
117
+ deepClone(baseNode.value),
118
+ baseNode.not,
119
+ );
120
+ } else if (baseNode instanceof DataCubeFilterEditorConditionGroupTreeNode) {
121
+ if (this.editor.columnProperties.columns.length !== 0) {
122
+ const columnConfig = getNonNullableEntry(
123
+ this.editor.columnProperties.columns,
124
+ 0,
125
+ );
126
+ const column = {
127
+ name: columnConfig.name,
128
+ type: columnConfig.type,
129
+ };
130
+ const operation = this.dataCube.engine.getFilterOperation(
131
+ DataCubeQueryFilterOperator.EQUAL,
132
+ );
133
+ return new DataCubeFilterEditorConditionTreeNode(
134
+ undefined,
135
+ column,
136
+ operation,
137
+ operation.generateDefaultValue(column),
138
+ undefined,
139
+ );
140
+ }
141
+ }
142
+ return undefined;
143
+ }
144
+
145
+ /**
146
+ * Add a new filter condition node just after the specified filter node.
147
+ * The added node is a clone of the specified node to make the filter's overall match unaffected,
148
+ * except if the specified node is a group node, then a new (default) condition will be added.
149
+ */
150
+ addFilterNode(baseNode: DataCubeFilterEditorTreeNode) {
151
+ if (this.tree.root) {
152
+ const node = this.generateNewFilterNode(baseNode);
153
+ const parentNode = baseNode.parent;
154
+ if (parentNode && node) {
155
+ parentNode.addChild(
156
+ node,
157
+ baseNode instanceof DataCubeFilterEditorConditionTreeNode
158
+ ? parentNode.children.indexOf(baseNode) + 1
159
+ : undefined,
160
+ );
161
+
162
+ this.tree.nodes.set(node.uuid, node);
163
+ this.refreshTree();
164
+ }
165
+ }
166
+ }
167
+
168
+ /**
169
+ * Remove the specified filter node.
170
+ * If its parent node has just one child, then flatten the parent node if:
171
+ * 1. parent node is not the root node and has exactly one child left
172
+ * 2. OR parent node is the root node and has no child left, in this case,
173
+ * flattening means completely remove the filter tree
174
+ */
175
+ removeFilterNode(nodeToRemove: DataCubeFilterEditorTreeNode) {
176
+ if (this.tree.root) {
177
+ const parentNode = nodeToRemove.parent;
178
+ // skip root node
179
+ if (nodeToRemove !== this.tree.root && parentNode) {
180
+ // remove all nodes in the subtree
181
+ let childNodesToRemove = [nodeToRemove];
182
+ while (childNodesToRemove.length) {
183
+ childNodesToRemove.forEach((node) => {
184
+ if (node instanceof DataCubeFilterEditorConditionGroupTreeNode) {
185
+ node.children.forEach((child) => {
186
+ child.setParent(undefined);
187
+ });
188
+ }
189
+ this.tree.nodes.delete(node.uuid);
190
+ });
191
+ childNodesToRemove = Array.from(this.tree.nodes.values()).filter(
192
+ (node) => node !== this.tree.root && !node.parent,
193
+ );
194
+ }
195
+
196
+ // remove node from parent
197
+ parentNode.removeChild(nodeToRemove);
198
+ this.tree.nodes.delete(nodeToRemove.uuid);
199
+
200
+ // flatten parent node if
201
+ // 1. parent node is not the root node and has exactly one child left
202
+ // 2. OR parent node is the root node and has no child left, in this case,
203
+ // flattening means completely remove the filter tree
204
+ if (parentNode.children.length === 1) {
205
+ if (parentNode !== this.tree.root) {
206
+ const childNode = getNonNullableEntry(parentNode.children, 0);
207
+ const grandParentNode = guaranteeNonNullable(parentNode.parent);
208
+
209
+ parentNode.removeChild(childNode);
210
+
211
+ const parentNodeIndex =
212
+ grandParentNode.children.indexOf(parentNode);
213
+ grandParentNode.removeChild(parentNode);
214
+ this.tree.nodes.delete(parentNode.uuid);
215
+
216
+ grandParentNode.addChild(childNode, parentNodeIndex);
217
+ }
218
+ } else if (parentNode.children.length === 0) {
219
+ if (parentNode === this.tree.root) {
220
+ this.tree.root = undefined;
221
+ this.tree.nodes.delete(parentNode.uuid);
222
+ }
223
+ }
224
+
225
+ this.refreshTree();
226
+
227
+ if (this.selectedNode === nodeToRemove) {
228
+ this.setSelectedNode(undefined);
229
+ }
230
+ }
231
+ }
232
+ }
233
+
234
+ /**
235
+ * Replace the specified filter node with a group which contains
236
+ * the specified node and a new condition node.
237
+ * The added node is a clone of the specified node to make the filter's overall match unaffected,
238
+ * except if the specified node is a group node, then a new (default) condition will be added.
239
+ */
240
+ layerFilterNode(baseNode: DataCubeFilterEditorTreeNode) {
241
+ if (this.tree.root) {
242
+ const node = this.generateNewFilterNode(baseNode);
243
+ const parentNode = baseNode.parent;
244
+ if (parentNode && node) {
245
+ const baseNodeIndex = parentNode.children.indexOf(baseNode);
246
+ parentNode.removeChild(baseNode);
247
+
248
+ const subGroupNode = new DataCubeFilterEditorConditionGroupTreeNode(
249
+ undefined,
250
+ // Use OR condition when we create sub-group to relax filtering
251
+ DataCubeQueryFilterGroupOperator.OR,
252
+ undefined,
253
+ );
254
+
255
+ subGroupNode.addChild(baseNode);
256
+ subGroupNode.addChild(node);
257
+ parentNode.addChild(subGroupNode, baseNodeIndex);
258
+
259
+ this.tree.nodes.set(subGroupNode.uuid, subGroupNode);
260
+ this.tree.nodes.set(node.uuid, node);
261
+ this.refreshTree();
262
+
263
+ if (this.selectedNode === baseNode) {
264
+ this.setSelectedNode(subGroupNode);
265
+ }
266
+ }
267
+ }
268
+ }
269
+
270
+ applySnaphot(
271
+ snapshot: DataCubeQuerySnapshot,
272
+ configuration: DataCubeConfiguration,
273
+ ): void {
274
+ this.tree.nodes = new Map<string, DataCubeFilterEditorTreeNode>();
275
+ this.tree.root = snapshot.data.filter
276
+ ? buildFilterEditorTree(
277
+ snapshot.data.filter,
278
+ undefined,
279
+ this.tree.nodes,
280
+ (op) => this.dataCube.engine.getFilterOperation(op),
281
+ )
282
+ : undefined;
283
+ this.setSelectedNode(undefined);
284
+ this.refreshTree();
285
+ }
286
+
287
+ buildSnapshot(
288
+ newSnapshot: DataCubeQuerySnapshot,
289
+ baseSnapshot: DataCubeQuerySnapshot,
290
+ ): void {
291
+ newSnapshot.data.filter = this.tree.root
292
+ ? buildFilterQuerySnapshot(this.tree.root)
293
+ : undefined;
294
+ }
295
+ }
@@ -17,7 +17,7 @@
17
17
  import { action, makeObservable, observable } from 'mobx';
18
18
  import type { DataCubeState } from '../DataCubeState.js';
19
19
  import { type DataCubeQuerySnapshot } from '../core/DataCubeQuerySnapshot.js';
20
- import { DataCubeQuerySortOperation } from '../core/DataCubeQueryEngine.js';
20
+ import { DataCubeQuerySortOperator } from '../core/DataCubeQueryEngine.js';
21
21
  import type { DataCubeQueryEditorPanelState } from './DataCubeEditorPanelState.js';
22
22
  import {
23
23
  DataCubeEditorColumnsSelectorColumnState,
@@ -27,13 +27,9 @@ import type { DataCubeEditorState } from './DataCubeEditorState.js';
27
27
  import type { DataCubeConfiguration } from '../core/DataCubeConfiguration.js';
28
28
 
29
29
  export class DataCubeEditorSortColumnState extends DataCubeEditorColumnsSelectorColumnState {
30
- operation: DataCubeQuerySortOperation;
30
+ operation: string;
31
31
 
32
- constructor(
33
- name: string,
34
- type: string,
35
- direction: DataCubeQuerySortOperation,
36
- ) {
32
+ constructor(name: string, type: string, direction: string) {
37
33
  super(name, type);
38
34
 
39
35
  makeObservable(this, {
@@ -44,7 +40,7 @@ export class DataCubeEditorSortColumnState extends DataCubeEditorColumnsSelector
44
40
  this.operation = direction;
45
41
  }
46
42
 
47
- setOperation(val: DataCubeQuerySortOperation) {
43
+ setOperation(val: DataCubeQuerySortOperator) {
48
44
  this.operation = val;
49
45
  }
50
46
  }
@@ -64,7 +60,7 @@ export class DataCubeEditorSortColumnsSelectorState extends DataCubeEditorColumn
64
60
  new DataCubeEditorSortColumnState(
65
61
  col.name,
66
62
  col.type,
67
- DataCubeQuerySortOperation.ASCENDING,
63
+ DataCubeQuerySortOperator.ASCENDING,
68
64
  ),
69
65
  );
70
66
  }
@@ -18,7 +18,7 @@ import { action, makeObservable, observable } from 'mobx';
18
18
  import type { DataCubeState } from '../DataCubeState.js';
19
19
  import { DataCubeEditorSortsPanelState } from './DataCubeEditorSortsPanelState.js';
20
20
  import { DataCubeEditorCodePanelState } from './DataCubeEditorCodePanelState.js';
21
- import { DataCubeQuerySnapshotSubscriber } from '../core/DataCubeQuerySnapshotSubscriber.js';
21
+ import { DataCubeQuerySnapshotController } from '../core/DataCubeQuerySnapshotManager.js';
22
22
  import { type DataCubeQuerySnapshot } from '../core/DataCubeQuerySnapshot.js';
23
23
  import { guaranteeNonNullable } from '@finos/legend-shared';
24
24
  import { DataCubeEditorGeneralPropertiesPanelState } from './DataCubeEditorGeneralPropertiesPanelState.js';
@@ -28,12 +28,13 @@ import { DataCubeConfiguration } from '../core/DataCubeConfiguration.js';
28
28
  import { DataCubeEditorVerticalPivotsPanelState } from './DataCubeEditorVerticalPivotsPanelState.js';
29
29
  import { SingletonModeDisplayState } from '../../LayoutManagerState.js';
30
30
  import { DataCubeEditor } from '../../../components/dataCube/editor/DataCubeEditor.js';
31
+ import { DataCubeEditorFilterPanelState } from './DataCubeEditorFilterPanelState.js';
31
32
 
32
33
  export enum DataCubeEditorTab {
33
34
  GENERAL_PROPERTIES = 'General Properties',
34
35
  COLUMN_PROPERTIES = 'Column Properties',
35
- FILTER = 'Filter',
36
36
  EXTENDED_COLUMNS = 'Extended Columns',
37
+ FILTER = 'Filter',
37
38
  COLUMNS = 'Columns',
38
39
  VERTICAL_PIVOTS = 'Vertical Pivots',
39
40
  HORIZONTAL_PIVOTS = 'Horizontal Pivots',
@@ -41,10 +42,11 @@ export enum DataCubeEditorTab {
41
42
  CODE = 'Code',
42
43
  }
43
44
 
44
- export class DataCubeEditorState extends DataCubeQuerySnapshotSubscriber {
45
+ export class DataCubeEditorState extends DataCubeQuerySnapshotController {
45
46
  readonly display: SingletonModeDisplayState;
46
47
  readonly generalProperties: DataCubeEditorGeneralPropertiesPanelState;
47
48
  readonly columnProperties: DataCubeEditorColumnPropertiesPanelState;
49
+ readonly filter: DataCubeEditorFilterPanelState;
48
50
  readonly columns: DataCubeEditorColumnsPanelState;
49
51
  readonly verticalPivots: DataCubeEditorVerticalPivotsPanelState;
50
52
  readonly sorts: DataCubeEditorSortsPanelState;
@@ -65,12 +67,13 @@ export class DataCubeEditorState extends DataCubeQuerySnapshotSubscriber {
65
67
  this.display = new SingletonModeDisplayState(
66
68
  this.dataCube.repl.layout,
67
69
  'Properties',
68
- () => <DataCubeEditor />,
70
+ () => <DataCubeEditor dataCube={this.dataCube} />,
69
71
  );
70
72
  this.generalProperties = new DataCubeEditorGeneralPropertiesPanelState(
71
73
  this,
72
74
  );
73
75
  this.columnProperties = new DataCubeEditorColumnPropertiesPanelState(this);
76
+ this.filter = new DataCubeEditorFilterPanelState(this);
74
77
  this.columns = new DataCubeEditorColumnsPanelState(this);
75
78
  this.verticalPivots = new DataCubeEditorVerticalPivotsPanelState(this);
76
79
  this.sorts = new DataCubeEditorSortsPanelState(this);
@@ -91,6 +94,7 @@ export class DataCubeEditorState extends DataCubeQuerySnapshotSubscriber {
91
94
  this.columns.buildSnapshot(snapshot, baseSnapshot);
92
95
  this.verticalPivots.buildSnapshot(snapshot, baseSnapshot);
93
96
  this.sorts.buildSnapshot(snapshot, baseSnapshot);
97
+ this.filter.buildSnapshot(snapshot, baseSnapshot);
94
98
 
95
99
  // grid configuration must be processed before processing columns' configuration
96
100
  // to properly generate the container configuration
@@ -114,12 +118,9 @@ export class DataCubeEditorState extends DataCubeQuerySnapshotSubscriber {
114
118
  this.columns.applySnaphot(snapshot, configuration);
115
119
  this.verticalPivots.applySnaphot(snapshot, configuration);
116
120
  this.sorts.applySnaphot(snapshot, configuration);
121
+ this.filter.applySnaphot(snapshot, configuration);
117
122
 
118
123
  this.generalProperties.applySnaphot(snapshot, configuration);
119
124
  this.columnProperties.applySnaphot(snapshot, configuration);
120
125
  }
121
-
122
- override async initialize() {
123
- // do nothing
124
- }
125
126
  }
@@ -18,7 +18,6 @@ import {
18
18
  getDataType,
19
19
  type DataCubeColumnKind,
20
20
  type DataCubeFont,
21
- type DataCubeAggregateOperation,
22
21
  type DataCubeOperationValue,
23
22
  type DataCubeNumberScale,
24
23
  type DataCubeSelectionStat,
@@ -54,9 +53,10 @@ export class DataCubeMutableColumnConfiguration extends DataCubeColumnConfigurat
54
53
  // NOTE: these configurations are synthesized from the data query, and materialized here
55
54
  // to make editing more convenient. They should not be part of the persistent configuration
56
55
  // to avoid duplication of information with the data query.
57
- aggregateFunction?: DataCubeAggregateOperation | undefined;
56
+ aggregateFunction?: string | undefined;
58
57
  aggregateFunctionParameters: DataCubeOperationValue[] = [];
59
58
  excludedFromHorizontalPivot = false;
59
+ horizontalPivotSortFunction?: string | undefined;
60
60
 
61
61
  static create(
62
62
  json: PlainObject<DataCubeColumnConfiguration>,
@@ -90,9 +90,6 @@ export class DataCubeMutableColumnConfiguration extends DataCubeColumnConfigurat
90
90
  missingValueDisplayText: observable,
91
91
  setMissingValueDisplayText: action,
92
92
 
93
- hPivotSortFunction: observable,
94
- setHPivotSortFunction: action,
95
-
96
93
  fontFamily: observable,
97
94
  setFontFamily: action,
98
95
 
@@ -176,6 +173,9 @@ export class DataCubeMutableColumnConfiguration extends DataCubeColumnConfigurat
176
173
 
177
174
  excludedFromHorizontalPivot: observable,
178
175
  setExcludedFromHorizontalPivot: action,
176
+
177
+ horizontalPivotSortFunction: observable,
178
+ setHorizontalPivotSortFunction: action,
179
179
  });
180
180
 
181
181
  return configuration;
@@ -259,10 +259,6 @@ export class DataCubeMutableColumnConfiguration extends DataCubeColumnConfigurat
259
259
  this.missingValueDisplayText = value;
260
260
  }
261
261
 
262
- setHPivotSortFunction(value: string | undefined) {
263
- this.hPivotSortFunction = value;
264
- }
265
-
266
262
  setFontFamily(value: DataCubeFont | undefined) {
267
263
  this.fontFamily = value;
268
264
  }
@@ -359,7 +355,7 @@ export class DataCubeMutableColumnConfiguration extends DataCubeColumnConfigurat
359
355
  this.linkLabelParameter = value;
360
356
  }
361
357
 
362
- setAggregateFunction(value: DataCubeAggregateOperation | undefined) {
358
+ setAggregateFunction(value: string | undefined) {
363
359
  this.aggregateFunction = value;
364
360
  }
365
361
 
@@ -370,6 +366,10 @@ export class DataCubeMutableColumnConfiguration extends DataCubeColumnConfigurat
370
366
  setAggregateFunctionParameters(value: DataCubeOperationValue[]) {
371
367
  this.aggregateFunctionParameters = value;
372
368
  }
369
+
370
+ setHorizontalPivotSortFunction(value: string | undefined) {
371
+ this.horizontalPivotSortFunction = value;
372
+ }
373
373
  }
374
374
 
375
375
  export class DataCubeMutableConfiguration extends DataCubeConfiguration {
@@ -52,7 +52,7 @@ export enum DataCubeGridClientExportFormat {
52
52
  }
53
53
 
54
54
  export enum INTERNAL__GridClientUtilityCssClassName {
55
- ROOT = 'data-cube-grid.ag-theme-balham',
55
+ ROOT = 'data-cube-grid.ag-theme-quartz',
56
56
  HIGHLIGHT_ROW = 'data-cube-grid__utility--highlight-row',
57
57
  SHOW_VERTICAL_GRID_LINES = 'data-cube-grid__utility--show-vertical-grid-lines',
58
58
  SHOW_HORIZONTAL_GRID_LINES = 'data-cube-grid__utility--show-horizontal-grid-lines',
@@ -111,6 +111,8 @@ export const INTERNAL__GRID_CLIENT_TOOLTIP_SHOW_DELAY = 1000;
111
111
  export const INTERNAL__GRID_CLIENT_AUTO_RESIZE_PADDING = 10;
112
112
  export const INTERNAL__GRID_CLIENT_MISSING_VALUE = '__MISSING';
113
113
  export const INTERNAL__GRID_CLIENT_TREE_COLUMN_ID = 'INTERNAL__tree';
114
+ export const INTERNAL__GRID_CLIENT_FILTER_TRIGGER_COLUMN_ID =
115
+ 'INTERNAL__filterTrigger';
114
116
  export const INTERNAL__GRID_CLIENT_ROW_GROUPING_COUNT_AGG_COLUMN_ID =
115
117
  'INTERNAL__count';
116
118
 
@@ -124,14 +126,6 @@ export enum GridClientSortDirection {
124
126
  DESCENDING = 'desc',
125
127
  }
126
128
 
127
- export enum GridClientAggregateOperation {
128
- COUNT = 'count',
129
- SUM = 'sum',
130
- MAX = 'max',
131
- MIN = 'min',
132
- AVERAGE = 'avg',
133
- }
134
-
135
129
  export function getDataForAllNodes<T>(client: GridApi<T>): T[] {
136
130
  const rows: T[] = [];
137
131
  client.forEachNode((node: IRowNode<T>) => {
@@ -221,20 +215,25 @@ export class DataCubeGridClientServerSideDataSource
221
215
  // ------------------------------ DATA ------------------------------
222
216
 
223
217
  try {
224
- const executableQuery = buildExecutableQuery(syncedSnapshot, {
225
- postProcessor: generateRowGroupingDrilldownExecutableQueryPostProcessor(
226
- params.request.groupKeys,
227
- ),
228
- pagination:
229
- this.grid.isPaginationEnabled &&
230
- params.request.startRow !== undefined &&
231
- params.request.endRow !== undefined
232
- ? {
233
- start: params.request.startRow,
234
- end: params.request.endRow,
235
- }
236
- : undefined,
237
- });
218
+ const executableQuery = buildExecutableQuery(
219
+ syncedSnapshot,
220
+ this.grid.dataCube.engine.filterOperations,
221
+ {
222
+ postProcessor:
223
+ generateRowGroupingDrilldownExecutableQueryPostProcessor(
224
+ params.request.groupKeys,
225
+ ),
226
+ pagination:
227
+ this.grid.isPaginationEnabled &&
228
+ params.request.startRow !== undefined &&
229
+ params.request.endRow !== undefined
230
+ ? {
231
+ start: params.request.startRow,
232
+ end: params.request.endRow,
233
+ }
234
+ : undefined,
235
+ },
236
+ );
238
237
  const lambda = new V1_Lambda();
239
238
  lambda.body.push(executableQuery);
240
239
  const result = await this.grid.dataCube.engine.executeQuery(lambda);
@@ -90,7 +90,7 @@ export class DataCubeGridClientExportEngine {
90
90
  }
91
91
 
92
92
  private generateFileName() {
93
- return `${this.dataCube.core.name} - ${formatDate(new Date(), 'EEE MMM dd yyyy HH_mm_ss')}`;
93
+ return `${this.dataCube.staticContent.name} - ${formatDate(new Date(), 'EEE MMM dd yyyy HH_mm_ss')}`;
94
94
  }
95
95
 
96
96
  exportFile(format: DataCubeGridClientExportFormat) {