@finos/legend-application-repl 0.0.54 → 0.0.55

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 (297) hide show
  1. package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -1
  2. package/lib/components/dataCube/editor/DataCubeEditor.js +1 -2
  3. package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -1
  4. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -1
  5. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js +3 -167
  6. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -1
  7. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
  8. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +18 -16
  9. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
  10. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.d.ts.map +1 -1
  11. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js +3 -5
  12. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js.map +1 -1
  13. package/lib/index.css +1 -1
  14. package/lib/package.json +1 -1
  15. package/lib/server/DataCubeQuery.d.ts +1 -0
  16. package/lib/server/DataCubeQuery.d.ts.map +1 -1
  17. package/lib/server/DataCubeQuery.js +5 -2
  18. package/lib/server/DataCubeQuery.js.map +1 -1
  19. package/lib/server/REPLServerClient.d.ts.map +1 -1
  20. package/lib/server/REPLServerClient.js +0 -1
  21. package/lib/server/REPLServerClient.js.map +1 -1
  22. package/lib/stores/dataCube/DataCubeEngine.d.ts +16 -2
  23. package/lib/stores/dataCube/DataCubeEngine.d.ts.map +1 -1
  24. package/lib/stores/dataCube/DataCubeEngine.js +35 -2
  25. package/lib/stores/dataCube/DataCubeEngine.js.map +1 -1
  26. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts +5 -1
  27. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts.map +1 -1
  28. package/lib/stores/dataCube/core/DataCubeConfiguration.js +9 -1
  29. package/lib/stores/dataCube/core/DataCubeConfiguration.js.map +1 -1
  30. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.d.ts.map +1 -1
  31. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js +6 -1
  32. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js.map +1 -1
  33. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts +3 -2
  34. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts.map +1 -1
  35. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +10 -15
  36. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -1
  37. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts +7 -5
  38. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
  39. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js +61 -50
  40. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js.map +1 -1
  41. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +11 -9
  42. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +1 -1
  43. package/lib/stores/dataCube/core/DataCubeQueryEngine.js +11 -11
  44. package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +1 -1
  45. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +2 -7
  46. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  47. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +7 -7
  48. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -1
  49. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  50. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +36 -22
  51. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  52. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts +1 -2
  53. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -1
  54. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js +9 -26
  55. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -1
  56. package/lib/stores/dataCube/core/aggregation/{DataCubeQueryAggregationOperation.d.ts → DataCubeQueryAggregateOperation.d.ts} +7 -6
  57. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.d.ts.map +1 -0
  58. package/lib/stores/dataCube/core/aggregation/{DataCubeQueryAggregationOperation.js → DataCubeQueryAggregateOperation.js} +7 -2
  59. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.js.map +1 -0
  60. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts +27 -0
  61. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts.map +1 -0
  62. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.js +39 -0
  63. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.js.map +1 -0
  64. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts +27 -0
  65. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts.map +1 -0
  66. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.js +47 -0
  67. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.js.map +1 -0
  68. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts +27 -0
  69. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts.map +1 -0
  70. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.js +44 -0
  71. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.js.map +1 -0
  72. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts +27 -0
  73. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts.map +1 -0
  74. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js +53 -0
  75. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js.map +1 -0
  76. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts +27 -0
  77. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts.map +1 -0
  78. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.js +44 -0
  79. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.js.map +1 -0
  80. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts +27 -0
  81. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts.map +1 -0
  82. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.js +39 -0
  83. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.js.map +1 -0
  84. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts +27 -0
  85. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts.map +1 -0
  86. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.js +39 -0
  87. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.js.map +1 -0
  88. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts +27 -0
  89. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts.map +1 -0
  90. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js +39 -0
  91. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js.map +1 -0
  92. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts +27 -0
  93. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts.map +1 -0
  94. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js +39 -0
  95. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js.map +1 -0
  96. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts +27 -0
  97. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts.map +1 -0
  98. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.js +39 -0
  99. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.js.map +1 -0
  100. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts +27 -0
  101. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts.map +1 -0
  102. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js +44 -0
  103. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js.map +1 -0
  104. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts +27 -0
  105. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts.map +1 -0
  106. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js +39 -0
  107. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js.map +1 -0
  108. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts +27 -0
  109. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts.map +1 -0
  110. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js +39 -0
  111. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js.map +1 -0
  112. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts +1 -0
  113. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -1
  114. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js +4 -1
  115. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js.map +1 -1
  116. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js +1 -1
  117. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -1
  118. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +1 -1
  119. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -1
  120. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js +1 -1
  121. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -1
  122. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +1 -1
  123. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -1
  124. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js +1 -1
  125. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -1
  126. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +1 -1
  127. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -1
  128. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +1 -1
  129. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -1
  130. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +1 -1
  131. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -1
  132. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +1 -1
  133. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -1
  134. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +1 -1
  135. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -1
  136. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +1 -1
  137. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -1
  138. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +1 -1
  139. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -1
  140. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +1 -1
  141. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -1
  142. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js +1 -1
  143. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -1
  144. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js +1 -1
  145. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -1
  146. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +1 -1
  147. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -1
  148. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +1 -1
  149. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -1
  150. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +1 -1
  151. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -1
  152. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js +1 -1
  153. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -1
  154. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +1 -1
  155. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -1
  156. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js +1 -1
  157. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -1
  158. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +1 -1
  159. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -1
  160. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +1 -1
  161. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -1
  162. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +1 -1
  163. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -1
  164. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +1 -1
  165. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -1
  166. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js +1 -1
  167. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -1
  168. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +1 -1
  169. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -1
  170. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts +6 -6
  171. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -1
  172. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js +2 -2
  173. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  174. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.d.ts.map +1 -1
  175. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.js +3 -3
  176. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.js.map +1 -1
  177. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts +3 -3
  178. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts.map +1 -1
  179. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js +3 -3
  180. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js.map +1 -1
  181. package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts +34 -0
  182. package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts.map +1 -0
  183. package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.js +57 -0
  184. package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.js.map +1 -0
  185. package/lib/stores/dataCube/editor/{DataCubeMutableConfiguration.d.ts → DataCubeEditorMutableConfiguration.d.ts} +11 -14
  186. package/lib/stores/dataCube/editor/DataCubeEditorMutableConfiguration.d.ts.map +1 -0
  187. package/lib/stores/dataCube/editor/{DataCubeMutableConfiguration.js → DataCubeEditorMutableConfiguration.js} +25 -54
  188. package/lib/stores/dataCube/editor/DataCubeEditorMutableConfiguration.js.map +1 -0
  189. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +5 -1
  190. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -1
  191. package/lib/stores/dataCube/editor/DataCubeEditorState.js +10 -3
  192. package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -1
  193. package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.d.ts.map +1 -1
  194. package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.js +0 -14
  195. package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.js.map +1 -1
  196. package/lib/stores/dataCube/extend/DataCubeColumnEditorState.d.ts.map +1 -1
  197. package/lib/stores/dataCube/extend/DataCubeColumnEditorState.js +1 -1
  198. package/lib/stores/dataCube/extend/DataCubeColumnEditorState.js.map +1 -1
  199. package/lib/stores/dataCube/extend/DataCubeExtendManagerState.d.ts +1 -1
  200. package/lib/stores/dataCube/extend/DataCubeExtendManagerState.d.ts.map +1 -1
  201. package/lib/stores/dataCube/extend/DataCubeExtendManagerState.js +3 -0
  202. package/lib/stores/dataCube/extend/DataCubeExtendManagerState.js.map +1 -1
  203. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  204. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +1 -1
  205. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -1
  206. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
  207. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js +3 -4
  208. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
  209. package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts.map +1 -1
  210. package/lib/stores/dataCube/grid/DataCubeGridControllerState.js +1 -3
  211. package/lib/stores/dataCube/grid/DataCubeGridControllerState.js.map +1 -1
  212. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts +2 -1
  213. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
  214. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +5 -14
  215. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +1 -1
  216. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts +1 -3
  217. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts.map +1 -1
  218. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +6 -19
  219. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
  220. package/package.json +3 -3
  221. package/src/components/dataCube/editor/DataCubeEditor.tsx +1 -2
  222. package/src/components/dataCube/editor/DataCubeEditorCodePanel.tsx +2 -176
  223. package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +72 -65
  224. package/src/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.tsx +5 -7
  225. package/src/server/DataCubeQuery.ts +5 -1
  226. package/src/server/REPLEngine.ts +1 -1
  227. package/src/server/REPLServerClient.ts +0 -1
  228. package/src/stores/dataCube/DataCubeEngine.ts +38 -7
  229. package/src/stores/dataCube/core/DataCubeConfiguration.ts +11 -1
  230. package/src/stores/dataCube/core/DataCubeConfigurationBuilder.ts +6 -0
  231. package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +21 -13
  232. package/src/stores/dataCube/core/DataCubeQueryBuilderUtils.ts +87 -77
  233. package/src/stores/dataCube/core/DataCubeQueryEngine.ts +12 -13
  234. package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +16 -12
  235. package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +35 -24
  236. package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.ts +20 -34
  237. package/src/stores/dataCube/core/aggregation/{DataCubeQueryAggregationOperation.ts → DataCubeQueryAggregateOperation.ts} +19 -12
  238. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.tsx +52 -0
  239. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.tsx +61 -0
  240. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.tsx +57 -0
  241. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.tsx +81 -0
  242. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.tsx +57 -0
  243. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.tsx +52 -0
  244. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.tsx +52 -0
  245. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.tsx +55 -0
  246. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.tsx +52 -0
  247. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.tsx +52 -0
  248. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.tsx +57 -0
  249. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.tsx +52 -0
  250. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.tsx +52 -0
  251. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation.ts +15 -1
  252. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.tsx +1 -1
  253. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +1 -1
  254. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +1 -1
  255. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +1 -1
  256. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.tsx +1 -1
  257. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +1 -1
  258. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +1 -1
  259. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +1 -1
  260. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +1 -1
  261. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +1 -1
  262. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +1 -1
  263. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +1 -1
  264. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +1 -1
  265. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +1 -1
  266. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +1 -1
  267. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +1 -1
  268. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +1 -1
  269. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +1 -1
  270. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +1 -1
  271. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +1 -1
  272. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +1 -1
  273. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +1 -1
  274. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +1 -1
  275. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +1 -1
  276. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +1 -1
  277. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +1 -1
  278. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +1 -1
  279. package/src/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.ts +7 -5
  280. package/src/stores/dataCube/editor/DataCubeEditorColumnsPanelState.ts +8 -5
  281. package/src/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.ts +4 -4
  282. package/src/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.ts +99 -0
  283. package/src/stores/dataCube/editor/{DataCubeMutableConfiguration.ts → DataCubeEditorMutableConfiguration.ts} +41 -60
  284. package/src/stores/dataCube/editor/DataCubeEditorState.tsx +11 -2
  285. package/src/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.ts +0 -21
  286. package/src/stores/dataCube/extend/DataCubeColumnEditorState.tsx +1 -0
  287. package/src/stores/dataCube/extend/DataCubeExtendManagerState.tsx +3 -1
  288. package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +1 -0
  289. package/src/stores/dataCube/grid/DataCubeGridConfigurationBuilder.tsx +3 -4
  290. package/src/stores/dataCube/grid/DataCubeGridControllerState.ts +1 -12
  291. package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +10 -17
  292. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +6 -41
  293. package/tsconfig.json +16 -2
  294. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregationOperation.d.ts.map +0 -1
  295. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregationOperation.js.map +0 -1
  296. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts.map +0 -1
  297. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js.map +0 -1
@@ -20,130 +20,10 @@ import { useEffect } from 'react';
20
20
  import { FormBadge_WIP } from '../../repl/Form.js';
21
21
  import type { DataCubeState } from '../../../stores/dataCube/DataCubeState.js';
22
22
 
23
- // const DataCubeCodeEditor = observer(() => {
24
- // const application = repl.application;
25
- // const dataCubeState = repl.dataCubeState;
26
- // const queryEditorState = dataCubeState.editor.codePanel.queryEditorState;
27
- // const onDidChangeModelContentEventDisposer = useRef<IDisposable | undefined>(
28
- // undefined,
29
- // );
30
- // const value = normalizeLineEnding(queryEditorState.query);
31
- // const parserError = queryEditorState.parserError;
32
- // const [editor, setEditor] = useState<
33
- // monacoEditorAPI.IStandaloneCodeEditor | undefined
34
- // >();
35
- // const textInputRef = useRef<HTMLDivElement>(null);
36
- // const autoCompleteSuggestionProviderDisposer = useRef<
37
- // IDisposable | undefined
38
- // >(undefined);
39
-
40
- // const debouncedParseQuery = useMemo(
41
- // () =>
42
- // debounce(()=> {
43
- // flowResult(dataCubeState.editor.codePanel.parseQuery()).catch(
44
- // repl.application.logUnhandledError,
45
- // );
46
- // }, 1000),
47
- // [dataCubeState, repl.application.logUnhandledError],
48
- // );
49
-
50
- // if (editor) {
51
- // onDidChangeModelContentEventDisposer.current?.dispose();
52
- // onDidChangeModelContentEventDisposer.current =
53
- // editor.onDidChangeModelContent(() => {
54
- // const currentVal = getCodeEditorValue(editor);
55
- // if (currentVal !== value) {
56
- // queryEditorState.setQuery(currentVal);
57
- // debouncedParseQuery.cancel();
58
- // debouncedParseQuery();
59
- // }
60
- // });
61
-
62
- // // Set the text value
63
- // const currentValue = getCodeEditorValue(editor);
64
- // const editorModel = editor.getModel();
65
-
66
- // if (currentValue !== value) {
67
- // editor.setValue(value);
68
- // }
69
-
70
- // // auto complete suggestions
71
- // autoCompleteSuggestionProviderDisposer.current?.dispose();
72
- // autoCompleteSuggestionProviderDisposer.current =
73
- // monacoLanguagesAPI.registerCompletionItemProvider(
74
- // CODE_EDITOR_LANGUAGE.PURE,
75
- // {
76
- // triggerCharacters: ['>', '.', '$', '~'],
77
- // provideCompletionItems: async (model, position, context) => {
78
- // // TODO: @akphi - do this later when we support typeahead for extended columns, etc.
79
- // // const suggestions: monacoLanguagesAPI.CompletionItem[] =
80
- // // await dataCubeState.getTypeaheadResults(position, model);
81
- // const suggestions: monacoLanguagesAPI.CompletionItem[] = [];
82
- // return { suggestions };
83
- // },
84
- // },
85
- // );
86
-
87
- // // Set the errors
88
- // if (editorModel) {
89
- // editorModel.updateOptions({ tabSize: DEFAULT_TAB_SIZE });
90
- // const error = parserError;
91
- // if (error?.sourceInformation) {
92
- // setErrorMarkers(editorModel, [
93
- // {
94
- // message: error.message,
95
- // startLineNumber: error.sourceInformation.startLine,
96
- // startColumn: error.sourceInformation.startColumn,
97
- // endLineNumber: error.sourceInformation.endLine,
98
- // endColumn: error.sourceInformation.endColumn,
99
- // },
100
- // ]);
101
- // } else {
102
- // clearMarkers();
103
- // }
104
- // }
105
- // }
106
-
107
- // useEffect(() => {
108
- // if (!editor && textInputRef.current) {
109
- // const element = textInputRef.current;
110
- // const _editor = monacoEditorAPI.create(element, {
111
- // ...getBaseCodeEditorOptions(),
112
- // language: CODE_EDITOR_LANGUAGE.PURE,
113
- // theme: application.layoutService
114
- // .TEMPORARY__isLightColorThemeEnabled
115
- // ? CODE_EDITOR_THEME.BUILT_IN__VSCODE_LIGHT
116
- // : CODE_EDITOR_THEME.DEFAULT_DARK,
117
- // });
118
- // setEditor(_editor);
119
- // }
120
- // }, [
121
- // application.layoutService.TEMPORARY__isLightColorThemeEnabled,
122
- // editor,
123
- // ]);
124
-
125
- // // dispose editor
126
- // useEffect(
127
- // () => ()=> {
128
- // if (editor) {
129
- // disposeCodeEditor(editor);
130
-
131
- // onDidChangeModelContentEventDisposer.current?.dispose();
132
- // }
133
- // },
134
- // [editor],
135
- // );
136
-
137
- // return (
138
- // <div className={clsx('repl__query__content__editor__content')}>
139
- // <div className="code-editor__body" ref={textInputRef} />
140
- // </div>
141
- // );
142
- // });
143
-
144
23
  export const DataCubeEditorCodePanel = observer(
145
24
  (props: { dataCube: DataCubeState }) => {
146
- useEffect(() => {}, []); // TODO: @akphi - remove this dummy useEffect
25
+ /** TODO: @datacube cleanup - this dummy useEffect */
26
+ useEffect(() => {}, []);
147
27
 
148
28
  return (
149
29
  <div className="h-full w-full select-none p-2">
@@ -158,60 +38,6 @@ export const DataCubeEditorCodePanel = observer(
158
38
  </div>
159
39
  <div className="flex h-[calc(100%_-_24px)] w-full"></div>
160
40
  </div>
161
- // <div className="repl__content__query">
162
- // <div className="repl__query">
163
- // <div className="repl__query__editor">
164
- // <div className="repl__query__header">
165
- // <div className="repl__query__label">Curent Query</div>
166
- // <div className="repl__query__execute-btn btn__dropdown-combo btn__dropdown-combo--primary">
167
- // <button
168
- // className="btn__dropdown-combo__label"
169
- // onClick={executeLambda}
170
- // tabIndex={-1}
171
- // >
172
- // <PlayIcon className="btn__dropdown-combo__label__icon" />
173
- // <div className="btn__dropdown-combo__label__title">
174
- // Run Query
175
- // </div>
176
- // </button>
177
- // </div>
178
- // </div>
179
- // <div className="repl__query__content">
180
- // <DataCubeCodeEditor />
181
- // </div>
182
- // </div>
183
- // </div>
184
- // {/* {dataCubeState.editor.codeEditorState.currentSubQuery !== undefined && (
185
- // <div className="repl__query">
186
- // <div className="repl__query__editor">
187
- // <div className="repl__query__header">
188
- // <div className="repl__query__label__sub__query">
189
- // Current Row Group Sub Query
190
- // </div>
191
- // <div className="repl__query__label__sub__query__read--only">
192
- // Read Only
193
- // </div>
194
- // </div>
195
- // <div className="repl__query__content">
196
- // <CodeEditor
197
- // lightTheme={
198
- // isLightTheme
199
- // ? CODE_EDITOR_THEME.BUILT_IN__VSCODE_HC_LIGHT
200
- // : CODE_EDITOR_THEME.BUILT_IN__VSCODE_HC_BLACK
201
- // }
202
- // language={CODE_EDITOR_LANGUAGE.PURE}
203
- // isReadOnly={true}
204
- // inputValue={
205
- // dataCubeState.editor.codeEditorState.currentSubQuery
206
- // }
207
- // hideActionBar={true}
208
- // hidePadding={true}
209
- // />
210
- // </div>
211
- // </div>
212
- // </div>
213
- // )} */}
214
- // </div>
215
41
  );
216
42
  },
217
43
  );
@@ -26,11 +26,9 @@ import {
26
26
  FormDropdownMenuTrigger,
27
27
  FormNumberInput,
28
28
  FormTextInput,
29
- FormBadge_WIP,
30
29
  FormDocumentation,
31
30
  } from '../../repl/Form.js';
32
31
  import {
33
- DataCubeAggregateOperator,
34
32
  DataCubeColumnDataType,
35
33
  DataCubeColumnKind,
36
34
  DataCubeColumnPinPlacement,
@@ -213,13 +211,27 @@ export const DataCubeEditorColumnPropertiesPanel = observer(
213
211
  <div className="mx-2 h-[1px] w-4 flex-shrink-0 bg-neutral-400" />
214
212
  <div className="flex h-6 items-center">
215
213
  <div className="flex h-full flex-shrink-0 items-center text-sm">
216
- Kind:
214
+ Column Kind:
215
+ <FormDocumentation
216
+ className="ml-1"
217
+ documentationKey={
218
+ DocumentationKey.DATA_CUBE_COLUMN_KINDS
219
+ }
220
+ />
217
221
  </div>
218
222
  <FormDropdownMenuTrigger
219
- className="ml-1 w-20"
223
+ className="ml-1.5 w-20"
220
224
  onClick={openKindDropdown}
221
225
  open={kindDropdownPropsOpen}
222
- disabled={true}
226
+ // disallow changing the column kind if the column is being used as pivot column
227
+ disabled={Boolean(
228
+ panel.editor.verticalPivots.selector.selectedColumns.find(
229
+ (col) => col.name === selectedColumn.name,
230
+ ) ??
231
+ panel.editor.horizontalPivots.selector.selectedColumns.find(
232
+ (col) => col.name === selectedColumn.name,
233
+ ),
234
+ )}
223
235
  >
224
236
  {selectedColumn.kind}
225
237
  </FormDropdownMenuTrigger>
@@ -231,7 +243,12 @@ export const DataCubeEditorColumnPropertiesPanel = observer(
231
243
  <FormDropdownMenuItem
232
244
  key={kind}
233
245
  onClick={() => {
234
- selectedColumn.setKind(kind);
246
+ if (kind !== selectedColumn.kind) {
247
+ selectedColumn.setKind(kind);
248
+ selectedColumn.setExcludedFromHorizontalPivot(
249
+ kind === DataCubeColumnKind.DIMENSION,
250
+ );
251
+ }
235
252
  closeKindDropdown();
236
253
  }}
237
254
  autoFocus={kind === selectedColumn.kind}
@@ -241,11 +258,6 @@ export const DataCubeEditorColumnPropertiesPanel = observer(
241
258
  ))}
242
259
  </FormDropdownMenu>
243
260
  <FormBadge_Advanced />
244
- <FormBadge_WIP />
245
- <FormDocumentation
246
- className="ml-1"
247
- documentationKey={DocumentationKey.DATA_CUBE_COLUMN_KINDS}
248
- />
249
261
  </div>
250
262
  </>
251
263
  )}
@@ -271,6 +283,55 @@ export const DataCubeEditorColumnPropertiesPanel = observer(
271
283
  />
272
284
  </div>
273
285
 
286
+ <div className="mt-2 flex h-5 w-full items-center">
287
+ <div className="flex h-full w-32 flex-shrink-0 items-center text-sm">
288
+ Aggregation:
289
+ </div>
290
+ <FormDropdownMenuTrigger
291
+ className="w-32"
292
+ onClick={openAggregationTypeDropdown}
293
+ disabled={
294
+ selectedColumn.kind === DataCubeColumnKind.DIMENSION
295
+ }
296
+ open={aggregationTypeDropdownPropsOpen}
297
+ >
298
+ {selectedColumn.aggregateOperation.operator}
299
+ </FormDropdownMenuTrigger>
300
+ <FormDropdownMenu
301
+ className="w-32"
302
+ {...aggregationTypeDropdownProps}
303
+ >
304
+ {panel.dataCube.engine.aggregateOperations
305
+ .filter((op) => op.isCompatibleWithColumn(selectedColumn))
306
+ .map((op) => (
307
+ <FormDropdownMenuItem
308
+ key={op.operator}
309
+ onClick={() => {
310
+ selectedColumn.setAggregateOperation(op);
311
+ closeAggregationTypeDropdown();
312
+ }}
313
+ autoFocus={op === selectedColumn.aggregateOperation}
314
+ >
315
+ {op.label}
316
+ </FormDropdownMenuItem>
317
+ ))}
318
+ </FormDropdownMenu>
319
+
320
+ <FormCheckbox
321
+ className="ml-3"
322
+ label="Exclude from H-Pivot"
323
+ checked={selectedColumn.excludedFromHorizontalPivot}
324
+ onChange={() =>
325
+ selectedColumn.setExcludedFromHorizontalPivot(
326
+ !selectedColumn.excludedFromHorizontalPivot,
327
+ )
328
+ }
329
+ disabled={
330
+ selectedColumn.kind === DataCubeColumnKind.DIMENSION
331
+ }
332
+ />
333
+ </div>
334
+
274
335
  {selectedColumn.dataType === DataCubeColumnDataType.NUMBER && (
275
336
  <>
276
337
  <div className="mt-2 flex h-5 w-full items-center">
@@ -349,60 +410,6 @@ export const DataCubeEditorColumnPropertiesPanel = observer(
349
410
  ))}
350
411
  </FormDropdownMenu>
351
412
  </div>
352
-
353
- <div className="mt-2 flex h-5 w-full items-center">
354
- <div className="flex h-full w-32 flex-shrink-0 items-center text-sm">
355
- Aggregation Type:
356
- </div>
357
- <FormDropdownMenuTrigger
358
- className="w-32"
359
- onClick={openAggregationTypeDropdown}
360
- disabled={true}
361
- open={aggregationTypeDropdownPropsOpen}
362
- >
363
- {selectedColumn.aggregateFunction ?? '(None)'}
364
- </FormDropdownMenuTrigger>
365
- <FormDropdownMenu
366
- className="w-32"
367
- {...aggregationTypeDropdownProps}
368
- >
369
- {[
370
- DataCubeAggregateOperator.SUM,
371
- DataCubeAggregateOperator.AVERAGE,
372
- DataCubeAggregateOperator.COUNT,
373
- DataCubeAggregateOperator.MIN,
374
- DataCubeAggregateOperator.MAX,
375
- ].map((op) => (
376
- <FormDropdownMenuItem
377
- key={op}
378
- onClick={() => {
379
- selectedColumn.setAggregateFunction(op);
380
- closeAggregationTypeDropdown();
381
- }}
382
- autoFocus={op === selectedColumn.aggregateFunction}
383
- >
384
- {op}
385
- </FormDropdownMenuItem>
386
- ))}
387
- </FormDropdownMenu>
388
- <FormBadge_WIP />
389
- </div>
390
-
391
- <div className="mt-2 flex h-5 w-full items-center">
392
- <div className="flex h-full w-32 flex-shrink-0 items-center text-sm">
393
- Exclude from HPivot?
394
- </div>
395
- <FormCheckbox
396
- checked={selectedColumn.excludedFromHorizontalPivot}
397
- onChange={() =>
398
- selectedColumn.setExcludedFromHorizontalPivot(
399
- !selectedColumn.excludedFromHorizontalPivot,
400
- )
401
- }
402
- disabled={true}
403
- />
404
- <FormBadge_WIP />
405
- </div>
406
413
  </>
407
414
  )}
408
415
 
@@ -16,16 +16,13 @@
16
16
 
17
17
  import { DataCubeIcon } from '@finos/legend-art';
18
18
  import { observer } from 'mobx-react-lite';
19
- import { useEffect } from 'react';
20
- import { FormBadge_WIP } from '../../repl/Form.js';
21
19
  import type { DataCubeState } from '../../../stores/dataCube/DataCubeState.js';
20
+ import { DataCubeEditorColumnsSelector } from './DataCubeEditorColumnsSelector.js';
22
21
 
23
22
  export const DataCubeEditorHorizontalPivotsPanel = observer(
24
23
  (props: { dataCube: DataCubeState }) => {
25
24
  const { dataCube } = props;
26
- const panel = dataCube.editor.sorts;
27
-
28
- useEffect(() => {}, [panel]); // TODO: @akphi - remove this dummy useEffect
25
+ const panel = dataCube.editor.horizontalPivots;
29
26
 
30
27
  return (
31
28
  <div className="h-full w-full select-none p-2">
@@ -35,10 +32,11 @@ export const DataCubeEditorHorizontalPivotsPanel = observer(
35
32
  </div>
36
33
  <div className="ml-1 flex h-6 items-center text-xl font-medium">
37
34
  Horizontal Pivots
38
- <FormBadge_WIP />
39
35
  </div>
40
36
  </div>
41
- <div className="flex h-[calc(100%_-_24px)] w-full"></div>
37
+ <div className="flex h-[calc(100%_-_24px)] w-full">
38
+ <DataCubeEditorColumnsSelector selector={panel.selector} />
39
+ </div>
42
40
  </div>
43
41
  );
44
42
  },
@@ -26,6 +26,7 @@ import {
26
26
  custom,
27
27
  deserialize,
28
28
  list,
29
+ optional,
29
30
  primitive,
30
31
  raw,
31
32
  serialize,
@@ -35,6 +36,7 @@ export abstract class DataCubeQuerySource {
35
36
  columns: DataCubeQueryColumn[] = [];
36
37
  query!: string;
37
38
  runtime!: string;
39
+ mapping?: string | undefined;
38
40
  }
39
41
 
40
42
  export class DataCubeQueryColumn {
@@ -60,6 +62,7 @@ export class DataCubeQuerySourceREPLExecutedQuery extends DataCubeQuerySource {
60
62
  DataCubeQuerySourceType.REPL_EXECUTED_QUERY,
61
63
  ),
62
64
  columns: list(usingModelSchema(DataCubeQueryColumn.serialization.schema)),
65
+ mapping: optional(primitive()),
63
66
  query: primitive(),
64
67
  runtime: primitive(),
65
68
  }),
@@ -116,7 +119,8 @@ export class DataCubeQuery {
116
119
 
117
120
  static readonly serialization = new SerializationFactory(
118
121
  createModelSchema(DataCubeQuery, {
119
- configuration: raw(), // TODO: @akphi - populate this once we know the shape better
122
+ /** TODO: @datacube roundtrip - populate this once we know the shape better */
123
+ configuration: raw(),
120
124
  name: primitive(),
121
125
  partialQuery: primitive(),
122
126
  query: primitive(),
@@ -44,7 +44,7 @@ export type DataCubeInfrastructureInfo = {
44
44
  };
45
45
 
46
46
  export type DataCubeGetQueryCodeInput = {
47
- query: PlainObject<V1_ValueSpecification>; // TODO: @akphi - consider if we should update this to use Lambda instead
47
+ query: PlainObject<V1_ValueSpecification>;
48
48
  pretty?: boolean;
49
49
  };
50
50
 
@@ -62,7 +62,6 @@ export class REPLServerClient {
62
62
  return this.networkClient.post(`${this.dataCube}/typeahead`, input);
63
63
  }
64
64
 
65
- // TODO: @akphi - we might need to support batch, source information offset, etc.
66
65
  async parseQuery(
67
66
  input: DataCubeParseQueryInput,
68
67
  ): Promise<PlainObject<V1_ValueSpecification>> {
@@ -30,7 +30,7 @@ import {
30
30
  type CompletionItem,
31
31
  type RelationType,
32
32
  } from '../../server/REPLEngine.js';
33
- import { guaranteeNonNullable, guaranteeType } from '@finos/legend-shared';
33
+ import { guaranteeType } from '@finos/legend-shared';
34
34
  import type { LegendREPLApplicationStore } from '../LegendREPLBaseStore.js';
35
35
  import type { REPLStore } from '../REPLStore.js';
36
36
  import { action, makeObservable, observable } from 'mobx';
@@ -61,7 +61,21 @@ import { DataCubeQueryFilterOperation__EndWithCaseInsensitive } from './core/fil
61
61
  import { DataCubeQueryFilterOperation__NotEndWith } from './core/filter/DataCubeQueryFilterOperation__NotEndWith.js';
62
62
  import { DataCubeQueryFilterOperation__IsNull } from './core/filter/DataCubeQueryFilterOperation__IsNull.js';
63
63
  import { DataCubeQueryFilterOperation__IsNotNull } from './core/filter/DataCubeQueryFilterOperation__IsNotNull.js';
64
- import type { DataCubeQueryFilterOperation } from './core/filter/DataCubeQueryFilterOperation.js';
64
+ import { getFilterOperation } from './core/filter/DataCubeQueryFilterOperation.js';
65
+ import { DataCubeQueryAggregateOperation__Sum } from './core/aggregation/DataCubeQueryAggregateOperation__Sum.js';
66
+ import { DataCubeQueryAggregateOperation__Average } from './core/aggregation/DataCubeQueryAggregateOperation__Average.js';
67
+ import { DataCubeQueryAggregateOperation__Count } from './core/aggregation/DataCubeQueryAggregateOperation__Count.js';
68
+ import { DataCubeQueryAggregateOperation__Min } from './core/aggregation/DataCubeQueryAggregateOperation__Min.js';
69
+ import { DataCubeQueryAggregateOperation__Max } from './core/aggregation/DataCubeQueryAggregateOperation__Max.js';
70
+ import { DataCubeQueryAggregateOperation__UniqueValue } from './core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js';
71
+ import { DataCubeQueryAggregateOperation__First } from './core/aggregation/DataCubeQueryAggregateOperation__First.js';
72
+ import { DataCubeQueryAggregateOperation__Last } from './core/aggregation/DataCubeQueryAggregateOperation__Last.js';
73
+ import { DataCubeQueryAggregateOperation__VariancePopulation } from './core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js';
74
+ import { DataCubeQueryAggregateOperation__VarianceSample } from './core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js';
75
+ import { DataCubeQueryAggregateOperation__StdDevPopulation } from './core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js';
76
+ import { DataCubeQueryAggregateOperation__StdDevSample } from './core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js';
77
+ import { DataCubeQueryAggregateOperation__JoinStrings } from './core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js';
78
+ import { getAggregateOperation } from './core/aggregation/DataCubeQueryAggregateOperation.js';
65
79
 
66
80
  export const DEFAULT_ENABLE_DEBUG_MODE = false;
67
81
  export const DEFAULT_GRID_CLIENT_ROW_BUFFER = 50;
@@ -106,6 +120,22 @@ export class DataCubeEngine {
106
120
  new DataCubeQueryFilterOperation__GreaterThanOrEqualColumn(),
107
121
  ];
108
122
 
123
+ readonly aggregateOperations = [
124
+ new DataCubeQueryAggregateOperation__Sum(),
125
+ new DataCubeQueryAggregateOperation__Average(),
126
+ new DataCubeQueryAggregateOperation__Count(),
127
+ new DataCubeQueryAggregateOperation__Min(),
128
+ new DataCubeQueryAggregateOperation__Max(),
129
+ new DataCubeQueryAggregateOperation__UniqueValue(),
130
+ new DataCubeQueryAggregateOperation__First(),
131
+ new DataCubeQueryAggregateOperation__Last(),
132
+ new DataCubeQueryAggregateOperation__VariancePopulation(),
133
+ new DataCubeQueryAggregateOperation__VarianceSample(),
134
+ new DataCubeQueryAggregateOperation__StdDevPopulation(),
135
+ new DataCubeQueryAggregateOperation__StdDevSample(),
136
+ new DataCubeQueryAggregateOperation__JoinStrings(),
137
+ ];
138
+
109
139
  enableDebugMode = DEFAULT_ENABLE_DEBUG_MODE;
110
140
  gridClientRowBuffer = DEFAULT_GRID_CLIENT_ROW_BUFFER;
111
141
  gridClientPurgeClosedRowNodes = DEFAULT_GRID_CLIENT_PURGE_CLOSED_ROW_NODES;
@@ -131,11 +161,12 @@ export class DataCubeEngine {
131
161
  this.client = repl.client;
132
162
  }
133
163
 
134
- getFilterOperation(operator: string): DataCubeQueryFilterOperation {
135
- return guaranteeNonNullable(
136
- this.filterOperations.find((op) => op.operator === operator),
137
- `Can't find filter operation '${operator}'`,
138
- );
164
+ getFilterOperation(operator: string) {
165
+ return getFilterOperation(operator, this.filterOperations);
166
+ }
167
+
168
+ getAggregateOperation(operator: string) {
169
+ return getAggregateOperation(operator, this.aggregateOperations);
139
170
  }
140
171
 
141
172
  setEnableDebugMode(enableDebugMode: boolean) {
@@ -38,9 +38,10 @@ import {
38
38
  type DataCubeSelectionStat,
39
39
  type DataCubeColumnPinPlacement,
40
40
  type DataCubeFontCase,
41
+ type DataCubeOperationValue,
41
42
  } from './DataCubeQueryEngine.js';
42
43
  import { SerializationFactory, usingModelSchema } from '@finos/legend-shared';
43
- import { createModelSchema, list, optional, primitive } from 'serializr';
44
+ import { createModelSchema, list, optional, primitive, raw } from 'serializr';
44
45
 
45
46
  export type DataCubeConfigurationColorKey =
46
47
  | 'normal'
@@ -89,6 +90,11 @@ export class DataCubeColumnConfiguration {
89
90
  displayAsLink = false;
90
91
  linkLabelParameter?: string | undefined;
91
92
 
93
+ aggregateOperator!: string;
94
+ aggregationParameters: DataCubeOperationValue[] = [];
95
+ excludedFromHorizontalPivot = true; // this agrees with default column kind set as Dimension
96
+ horizontalPivotSortFunction?: string | undefined;
97
+
92
98
  constructor(name: string, type: string) {
93
99
  this.name = name;
94
100
  this.type = type;
@@ -96,6 +102,8 @@ export class DataCubeColumnConfiguration {
96
102
 
97
103
  static readonly serialization = new SerializationFactory(
98
104
  createModelSchema(DataCubeColumnConfiguration, {
105
+ aggregateOperator: primitive(),
106
+ aggregationParameters: list(raw()),
99
107
  blur: primitive(),
100
108
  decimals: optional(primitive()),
101
109
  displayAsLink: primitive(),
@@ -103,6 +111,7 @@ export class DataCubeColumnConfiguration {
103
111
  displayName: optional(primitive()),
104
112
  errorBackgroundColor: optional(primitive()),
105
113
  errorForegroundColor: optional(primitive()),
114
+ excludedFromHorizontalPivot: primitive(),
106
115
  fixedWidth: optional(primitive()),
107
116
  fontBold: optional(primitive()),
108
117
  fontCase: optional(primitive()),
@@ -112,6 +121,7 @@ export class DataCubeColumnConfiguration {
112
121
  fontStrikethrough: optional(primitive()),
113
122
  fontUnderline: optional(primitive()),
114
123
  hideFromView: primitive(),
124
+ horizontalPivotSortFunction: optional(primitive()),
115
125
  kind: primitive(),
116
126
  linkLabelParameter: optional(primitive()),
117
127
  maxWidth: optional(primitive()),
@@ -20,6 +20,7 @@ import {
20
20
  DataCubeConfiguration,
21
21
  } from './DataCubeConfiguration.js';
22
22
  import {
23
+ DataCubeAggregateOperator,
23
24
  DataCubeColumnKind,
24
25
  DataCubeFontTextAlignment,
25
26
  } from './DataCubeQueryEngine.js';
@@ -40,9 +41,14 @@ export function buildDefaultColumnConfiguration(column: {
40
41
  config.displayCommas = true;
41
42
  config.negativeNumberInParens = true;
42
43
  config.textAlign = DataCubeFontTextAlignment.RIGHT; // always align number to the right
44
+ config.excludedFromHorizontalPivot = false;
45
+ config.aggregateOperator = DataCubeAggregateOperator.SUM;
43
46
  break;
44
47
  }
45
48
  default: {
49
+ config.kind = DataCubeColumnKind.DIMENSION;
50
+ config.excludedFromHorizontalPivot = true;
51
+ config.aggregateOperator = DataCubeAggregateOperator.UNIQUE;
46
52
  break;
47
53
  }
48
54
  }