@finos/legend-data-cube 0.0.43 → 0.0.44

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 (348) hide show
  1. package/docs/column-configuration.kind.md +2 -0
  2. package/lib/__lib__/DataCubeSetting.d.ts +1 -0
  3. package/lib/__lib__/DataCubeSetting.d.ts.map +1 -1
  4. package/lib/__lib__/DataCubeSetting.js +1 -0
  5. package/lib/__lib__/DataCubeSetting.js.map +1 -1
  6. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
  7. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js +12 -6
  8. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
  9. package/lib/components/view/editor/DataCubeEditorColumnSelector.d.ts +7 -1
  10. package/lib/components/view/editor/DataCubeEditorColumnSelector.d.ts.map +1 -1
  11. package/lib/components/view/editor/DataCubeEditorColumnSelector.js +23 -1
  12. package/lib/components/view/editor/DataCubeEditorColumnSelector.js.map +1 -1
  13. package/lib/components/view/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -1
  14. package/lib/components/view/editor/DataCubeEditorColumnsPanel.js +2 -1
  15. package/lib/components/view/editor/DataCubeEditorColumnsPanel.js.map +1 -1
  16. package/lib/components/view/editor/DataCubeEditorHorizontalPivotsPanel.d.ts.map +1 -1
  17. package/lib/components/view/editor/DataCubeEditorHorizontalPivotsPanel.js +2 -4
  18. package/lib/components/view/editor/DataCubeEditorHorizontalPivotsPanel.js.map +1 -1
  19. package/lib/components/view/editor/DataCubeEditorSortsPanel.d.ts.map +1 -1
  20. package/lib/components/view/editor/DataCubeEditorSortsPanel.js +4 -25
  21. package/lib/components/view/editor/DataCubeEditorSortsPanel.js.map +1 -1
  22. package/lib/components/view/filter/DataCubeFilterEditor.d.ts.map +1 -1
  23. package/lib/components/view/filter/DataCubeFilterEditor.js +2 -1
  24. package/lib/components/view/filter/DataCubeFilterEditor.js.map +1 -1
  25. package/lib/index.css +2 -2
  26. package/lib/index.css.map +1 -1
  27. package/lib/package.json +5 -5
  28. package/lib/stores/core/DataCubeConfigurationBuilder.d.ts +4 -3
  29. package/lib/stores/core/DataCubeConfigurationBuilder.d.ts.map +1 -1
  30. package/lib/stores/core/DataCubeConfigurationBuilder.js +59 -3
  31. package/lib/stores/core/DataCubeConfigurationBuilder.js.map +1 -1
  32. package/lib/stores/core/DataCubeEngine.d.ts +2 -0
  33. package/lib/stores/core/DataCubeEngine.d.ts.map +1 -1
  34. package/lib/stores/core/DataCubeEngine.js +1 -2
  35. package/lib/stores/core/DataCubeEngine.js.map +1 -1
  36. package/lib/stores/core/DataCubeQueryBuilder.d.ts.map +1 -1
  37. package/lib/stores/core/DataCubeQueryBuilder.js +12 -22
  38. package/lib/stores/core/DataCubeQueryBuilder.js.map +1 -1
  39. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts +6 -5
  40. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
  41. package/lib/stores/core/DataCubeQueryBuilderUtils.js +59 -30
  42. package/lib/stores/core/DataCubeQueryBuilderUtils.js.map +1 -1
  43. package/lib/stores/core/DataCubeQueryEngine.d.ts +14 -7
  44. package/lib/stores/core/DataCubeQueryEngine.d.ts.map +1 -1
  45. package/lib/stores/core/DataCubeQueryEngine.js +76 -45
  46. package/lib/stores/core/DataCubeQueryEngine.js.map +1 -1
  47. package/lib/stores/core/DataCubeQuerySnapshot.d.ts +11 -0
  48. package/lib/stores/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  49. package/lib/stores/core/DataCubeQuerySnapshot.js.map +1 -1
  50. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts +2 -3
  51. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  52. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js +226 -128
  53. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  54. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts +36 -7
  55. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -1
  56. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js +359 -126
  57. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -1
  58. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts +10 -2
  59. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts.map +1 -1
  60. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.js +15 -6
  61. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.js.map +1 -1
  62. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts +6 -2
  63. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts.map +1 -1
  64. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.js +13 -3
  65. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.js.map +1 -1
  66. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts +6 -2
  67. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts.map +1 -1
  68. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.js +13 -3
  69. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.js.map +1 -1
  70. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts +6 -2
  71. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts.map +1 -1
  72. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.js +13 -3
  73. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.js.map +1 -1
  74. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts +6 -2
  75. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts.map +1 -1
  76. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js +23 -10
  77. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js.map +1 -1
  78. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts +6 -2
  79. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts.map +1 -1
  80. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.js +13 -3
  81. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.js.map +1 -1
  82. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts +6 -2
  83. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts.map +1 -1
  84. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.js +13 -3
  85. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.js.map +1 -1
  86. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts +6 -2
  87. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts.map +1 -1
  88. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.js +13 -3
  89. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.js.map +1 -1
  90. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts +6 -2
  91. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts.map +1 -1
  92. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js +13 -3
  93. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js.map +1 -1
  94. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts +6 -2
  95. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts.map +1 -1
  96. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js +13 -3
  97. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js.map +1 -1
  98. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts +6 -2
  99. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts.map +1 -1
  100. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.js +14 -3
  101. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.js.map +1 -1
  102. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts +6 -2
  103. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts.map +1 -1
  104. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js +13 -3
  105. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js.map +1 -1
  106. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts +6 -2
  107. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts.map +1 -1
  108. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js +13 -3
  109. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js.map +1 -1
  110. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts +6 -2
  111. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts.map +1 -1
  112. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js +13 -3
  113. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js.map +1 -1
  114. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts +0 -2
  115. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -1
  116. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js +1 -30
  117. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js.map +1 -1
  118. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -1
  119. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js +8 -7
  120. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -1
  121. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -1
  122. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +10 -10
  123. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -1
  124. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -1
  125. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js +8 -7
  126. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -1
  127. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -1
  128. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +10 -10
  129. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -1
  130. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -1
  131. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js +5 -6
  132. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -1
  133. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -1
  134. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +10 -10
  135. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -1
  136. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -1
  137. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +6 -7
  138. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -1
  139. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -1
  140. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +6 -7
  141. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -1
  142. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -1
  143. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +5 -6
  144. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -1
  145. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -1
  146. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +6 -7
  147. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -1
  148. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -1
  149. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +5 -6
  150. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -1
  151. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -1
  152. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +6 -7
  153. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -1
  154. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -1
  155. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +2 -6
  156. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -1
  157. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -1
  158. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js +2 -2
  159. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -1
  160. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -1
  161. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js +5 -6
  162. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -1
  163. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -1
  164. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +6 -7
  165. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -1
  166. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -1
  167. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +5 -6
  168. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -1
  169. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -1
  170. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +6 -7
  171. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -1
  172. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -1
  173. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js +8 -11
  174. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -1
  175. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -1
  176. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +8 -11
  177. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -1
  178. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -1
  179. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js +6 -10
  180. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -1
  181. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -1
  182. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +10 -14
  183. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -1
  184. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -1
  185. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +6 -11
  186. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -1
  187. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -1
  188. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +6 -11
  189. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -1
  190. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -1
  191. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +8 -11
  192. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -1
  193. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -1
  194. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js +8 -7
  195. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -1
  196. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -1
  197. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +10 -10
  198. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -1
  199. package/lib/stores/core/model/DataCubeColumn.d.ts +1 -1
  200. package/lib/stores/core/model/DataCubeColumn.d.ts.map +1 -1
  201. package/lib/stores/core/model/DataCubeColumn.js.map +1 -1
  202. package/lib/stores/core/model/DataCubeConfiguration.d.ts +4 -3
  203. package/lib/stores/core/model/DataCubeConfiguration.d.ts.map +1 -1
  204. package/lib/stores/core/model/DataCubeConfiguration.js +4 -0
  205. package/lib/stores/core/model/DataCubeConfiguration.js.map +1 -1
  206. package/lib/stores/services/DataCubeQuerySnapshotService.d.ts.map +1 -1
  207. package/lib/stores/services/DataCubeQuerySnapshotService.js +2 -2
  208. package/lib/stores/services/DataCubeQuerySnapshotService.js.map +1 -1
  209. package/lib/stores/services/DataCubeSettingService.d.ts.map +1 -1
  210. package/lib/stores/services/DataCubeSettingService.js +8 -0
  211. package/lib/stores/services/DataCubeSettingService.js.map +1 -1
  212. package/lib/stores/view/DataCubeViewState.d.ts.map +1 -1
  213. package/lib/stores/view/DataCubeViewState.js +1 -1
  214. package/lib/stores/view/DataCubeViewState.js.map +1 -1
  215. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -1
  216. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js +3 -2
  217. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  218. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts +7 -0
  219. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts.map +1 -1
  220. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js +20 -3
  221. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js.map +1 -1
  222. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.d.ts.map +1 -1
  223. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js +2 -2
  224. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js.map +1 -1
  225. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts +4 -4
  226. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts.map +1 -1
  227. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js +14 -8
  228. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js.map +1 -1
  229. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts +1 -5
  230. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts.map +1 -1
  231. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js +2 -6
  232. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js.map +1 -1
  233. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts +1 -7
  234. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
  235. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js +4 -19
  236. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js.map +1 -1
  237. package/lib/stores/view/editor/DataCubeEditorState.d.ts.map +1 -1
  238. package/lib/stores/view/editor/DataCubeEditorState.js +2 -2
  239. package/lib/stores/view/editor/DataCubeEditorState.js.map +1 -1
  240. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.d.ts.map +1 -1
  241. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js +4 -4
  242. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js.map +1 -1
  243. package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts.map +1 -1
  244. package/lib/stores/view/extend/DataCubeColumnEditorState.js +2 -1
  245. package/lib/stores/view/extend/DataCubeColumnEditorState.js.map +1 -1
  246. package/lib/stores/view/extend/DataCubeExtendManagerState.d.ts.map +1 -1
  247. package/lib/stores/view/extend/DataCubeExtendManagerState.js +12 -12
  248. package/lib/stores/view/extend/DataCubeExtendManagerState.js.map +1 -1
  249. package/lib/stores/view/filter/DataCubeFilterEditorState.d.ts.map +1 -1
  250. package/lib/stores/view/filter/DataCubeFilterEditorState.js +2 -1
  251. package/lib/stores/view/filter/DataCubeFilterEditorState.js.map +1 -1
  252. package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  253. package/lib/stores/view/grid/DataCubeGridClientEngine.js +11 -14
  254. package/lib/stores/view/grid/DataCubeGridClientEngine.js.map +1 -1
  255. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
  256. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js +48 -12
  257. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
  258. package/lib/stores/view/grid/DataCubeGridControllerState.d.ts +1 -1
  259. package/lib/stores/view/grid/DataCubeGridControllerState.d.ts.map +1 -1
  260. package/lib/stores/view/grid/DataCubeGridControllerState.js +20 -20
  261. package/lib/stores/view/grid/DataCubeGridControllerState.js.map +1 -1
  262. package/lib/stores/view/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
  263. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js +8 -12
  264. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js.map +1 -1
  265. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js +1 -1
  266. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js.map +1 -1
  267. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js +1 -1
  268. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
  269. package/package.json +8 -8
  270. package/src/__lib__/DataCubeSetting.ts +1 -0
  271. package/src/components/view/editor/DataCubeEditorColumnPropertiesPanel.tsx +40 -17
  272. package/src/components/view/editor/DataCubeEditorColumnSelector.tsx +75 -1
  273. package/src/components/view/editor/DataCubeEditorColumnsPanel.tsx +3 -6
  274. package/src/components/view/editor/DataCubeEditorHorizontalPivotsPanel.tsx +5 -12
  275. package/src/components/view/editor/DataCubeEditorSortsPanel.tsx +12 -80
  276. package/src/components/view/filter/DataCubeFilterEditor.tsx +2 -3
  277. package/src/stores/core/DataCubeConfigurationBuilder.ts +80 -5
  278. package/src/stores/core/DataCubeEngine.tsx +10 -2
  279. package/src/stores/core/DataCubeQueryBuilder.ts +36 -37
  280. package/src/stores/core/DataCubeQueryBuilderUtils.ts +74 -41
  281. package/src/stores/core/DataCubeQueryEngine.ts +120 -60
  282. package/src/stores/core/DataCubeQuerySnapshot.ts +13 -0
  283. package/src/stores/core/DataCubeQuerySnapshotBuilder.ts +379 -157
  284. package/src/stores/core/DataCubeQuerySnapshotBuilderUtils.ts +597 -157
  285. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation.ts +39 -16
  286. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.tsx +26 -4
  287. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.tsx +26 -4
  288. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__First.tsx +26 -4
  289. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.tsx +41 -26
  290. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.tsx +26 -4
  291. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.tsx +26 -4
  292. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.tsx +26 -4
  293. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.tsx +29 -6
  294. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.tsx +30 -4
  295. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.tsx +26 -4
  296. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.tsx +26 -4
  297. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.tsx +26 -4
  298. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.tsx +26 -4
  299. package/src/stores/core/filter/DataCubeQueryFilterOperation.ts +1 -52
  300. package/src/stores/core/filter/DataCubeQueryFilterOperation__Contain.tsx +12 -9
  301. package/src/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +10 -13
  302. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +9 -10
  303. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +10 -13
  304. package/src/stores/core/filter/DataCubeQueryFilterOperation__Equal.tsx +5 -8
  305. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +10 -13
  306. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +6 -8
  307. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +5 -7
  308. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +6 -9
  309. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +6 -8
  310. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +6 -9
  311. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +6 -8
  312. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +6 -8
  313. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +6 -2
  314. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +6 -9
  315. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +6 -8
  316. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +6 -9
  317. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +6 -8
  318. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +12 -15
  319. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +12 -15
  320. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +10 -14
  321. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +11 -20
  322. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +7 -19
  323. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +9 -17
  324. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +10 -17
  325. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +9 -10
  326. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +10 -13
  327. package/src/stores/core/model/DataCubeColumn.ts +1 -1
  328. package/src/stores/core/model/DataCubeConfiguration.ts +7 -1
  329. package/src/stores/services/DataCubeQuerySnapshotService.ts +2 -1
  330. package/src/stores/services/DataCubeSettingService.tsx +8 -0
  331. package/src/stores/view/DataCubeViewState.ts +2 -3
  332. package/src/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.ts +3 -2
  333. package/src/stores/view/editor/DataCubeEditorColumnSelectorState.ts +31 -6
  334. package/src/stores/view/editor/DataCubeEditorColumnsPanelState.ts +2 -7
  335. package/src/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.ts +33 -10
  336. package/src/stores/view/editor/DataCubeEditorMutableConfiguration.ts +4 -20
  337. package/src/stores/view/editor/DataCubeEditorSortsPanelState.ts +6 -29
  338. package/src/stores/view/editor/DataCubeEditorState.tsx +2 -3
  339. package/src/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.ts +6 -7
  340. package/src/stores/view/extend/DataCubeColumnEditorState.tsx +2 -3
  341. package/src/stores/view/extend/DataCubeExtendManagerState.tsx +14 -13
  342. package/src/stores/view/filter/DataCubeFilterEditorState.tsx +2 -4
  343. package/src/stores/view/grid/DataCubeGridClientEngine.ts +21 -20
  344. package/src/stores/view/grid/DataCubeGridConfigurationBuilder.tsx +64 -15
  345. package/src/stores/view/grid/DataCubeGridControllerState.ts +35 -34
  346. package/src/stores/view/grid/DataCubeGridMenuBuilder.tsx +17 -23
  347. package/src/stores/view/grid/DataCubeGridQueryBuilder.ts +1 -1
  348. package/src/stores/view/grid/DataCubeGridQuerySnapshotBuilder.ts +1 -1
@@ -14,24 +14,11 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { guaranteeNonNullable } from '@finos/legend-shared';
18
17
  import type { DataCubeColumn } from '../model/DataCubeColumn.js';
19
18
  import { type V1_ColSpec } from '@finos/legend-graph';
20
19
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
21
-
22
- // --------------------------------- UTILITIES ---------------------------------
23
-
24
- export function getAggregateOperation(
25
- operator: string,
26
- aggregateOperations: DataCubeQueryAggregateOperation[],
27
- ) {
28
- return guaranteeNonNullable(
29
- aggregateOperations.find((op) => op.operator === operator),
30
- `Can't find aggregate operation '${operator}'`,
31
- );
32
- }
33
-
34
- // --------------------------------- CONTRACT ---------------------------------
20
+ import type { DataCubeOperationValue } from '../DataCubeQueryEngine.js';
21
+ import type { DataCubeQuerySnapshotAggregateColumn } from '../DataCubeQuerySnapshot.js';
35
22
 
36
23
  export abstract class DataCubeQueryAggregateOperation {
37
24
  abstract get label(): React.ReactNode;
@@ -40,8 +27,44 @@ export abstract class DataCubeQueryAggregateOperation {
40
27
  abstract get operator(): string;
41
28
 
42
29
  abstract isCompatibleWithColumn(column: DataCubeColumn): boolean;
30
+ abstract isCompatibleWithParameterValues(
31
+ values: DataCubeOperationValue[],
32
+ ): boolean;
33
+ abstract generateDefaultParameterValues(
34
+ column: DataCubeColumn,
35
+ ): DataCubeOperationValue[];
36
+
37
+ abstract buildAggregateColumnSnapshot(
38
+ colSpec: V1_ColSpec,
39
+ columnGetter: (name: string) => DataCubeColumn,
40
+ ): DataCubeQuerySnapshotAggregateColumn | undefined;
41
+
42
+ protected _finalizeAggregateColumnSnapshot(
43
+ data:
44
+ | {
45
+ column: DataCubeColumn;
46
+ paramterValues: DataCubeOperationValue[];
47
+ }
48
+ | undefined,
49
+ ): DataCubeQuerySnapshotAggregateColumn | undefined {
50
+ if (!data) {
51
+ return undefined;
52
+ }
53
+ const { column, paramterValues } = data;
54
+ if (
55
+ !this.isCompatibleWithColumn(column) ||
56
+ !this.isCompatibleWithParameterValues(paramterValues)
57
+ ) {
58
+ return undefined;
59
+ }
60
+ return {
61
+ ...column,
62
+ operator: this.operator,
63
+ parameterValues: paramterValues,
64
+ };
65
+ }
43
66
 
44
- abstract buildAggregateColumn(
67
+ abstract buildAggregateColumnExpression(
45
68
  column: DataCubeColumnConfiguration,
46
69
  ): V1_ColSpec | undefined;
47
70
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import type { V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__Average extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,11 +45,30 @@ export class DataCubeQueryAggregateOperation__Average extends DataCubeQueryAggre
42
45
  return DataCubeQueryAggregateOperator.AVERAGE;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [DataCubeColumnDataType.NUMBER]);
47
50
  }
48
51
 
49
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
50
- return _aggCol_basic(column, DataCubeFunction.AVERAGE);
52
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
53
+ return !values.length;
54
+ }
55
+
56
+ override generateDefaultParameterValues(
57
+ column: DataCubeColumn,
58
+ ): DataCubeOperationValue[] {
59
+ return [];
60
+ }
61
+
62
+ override buildAggregateColumnSnapshot(
63
+ colSpec: V1_ColSpec,
64
+ columnGetter: (name: string) => DataCubeColumn,
65
+ ) {
66
+ return this._finalizeAggregateColumnSnapshot(
67
+ _agg_base(colSpec, DataCubeFunction.AVERAGE, columnGetter),
68
+ );
69
+ }
70
+
71
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
72
+ return _aggCol_base(column, DataCubeFunction.AVERAGE);
51
73
  }
52
74
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import type { V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__Count extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,7 +45,7 @@ export class DataCubeQueryAggregateOperation__Count extends DataCubeQueryAggrega
42
45
  return DataCubeQueryAggregateOperator.COUNT;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [
47
50
  // NOTE: technically all data types are suported,
48
51
  // but we can't because we must preserve the type
@@ -55,7 +58,26 @@ export class DataCubeQueryAggregateOperation__Count extends DataCubeQueryAggrega
55
58
  ]);
56
59
  }
57
60
 
58
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
59
- return _aggCol_basic(column, DataCubeFunction.COUNT);
61
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
62
+ return !values.length;
63
+ }
64
+
65
+ override generateDefaultParameterValues(
66
+ column: DataCubeColumn,
67
+ ): DataCubeOperationValue[] {
68
+ return [];
69
+ }
70
+
71
+ override buildAggregateColumnSnapshot(
72
+ colSpec: V1_ColSpec,
73
+ columnGetter: (name: string) => DataCubeColumn,
74
+ ) {
75
+ return this._finalizeAggregateColumnSnapshot(
76
+ _agg_base(colSpec, DataCubeFunction.COUNT, columnGetter),
77
+ );
78
+ }
79
+
80
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
81
+ return _aggCol_base(column, DataCubeFunction.COUNT);
60
82
  }
61
83
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import type { V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__First extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,7 +45,7 @@ export class DataCubeQueryAggregateOperation__First extends DataCubeQueryAggrega
42
45
  return DataCubeQueryAggregateOperator.FIRST;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [
47
50
  DataCubeColumnDataType.TEXT,
48
51
  DataCubeColumnDataType.NUMBER,
@@ -51,7 +54,26 @@ export class DataCubeQueryAggregateOperation__First extends DataCubeQueryAggrega
51
54
  ]);
52
55
  }
53
56
 
54
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
55
- return _aggCol_basic(column, DataCubeFunction.FIRST);
57
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
58
+ return !values.length;
59
+ }
60
+
61
+ override generateDefaultParameterValues(
62
+ column: DataCubeColumn,
63
+ ): DataCubeOperationValue[] {
64
+ return [];
65
+ }
66
+
67
+ override buildAggregateColumnSnapshot(
68
+ colSpec: V1_ColSpec,
69
+ columnGetter: (name: string) => DataCubeColumn,
70
+ ) {
71
+ return this._finalizeAggregateColumnSnapshot(
72
+ _agg_base(colSpec, DataCubeFunction.FIRST, columnGetter),
73
+ );
74
+ }
75
+
76
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
77
+ return _aggCol_base(column, DataCubeFunction.FIRST);
56
78
  }
57
79
  }
@@ -15,24 +15,19 @@
15
15
  */
16
16
 
17
17
  import type { DataCubeColumn } from '../model/DataCubeColumn.js';
18
- import { PRIMITIVE_TYPE } from '@finos/legend-graph';
18
+ import { PRIMITIVE_TYPE, type V1_ColSpec } from '@finos/legend-graph';
19
19
  import { DataCubeQueryAggregateOperation } from './DataCubeQueryAggregateOperation.js';
20
20
  import {
21
21
  DataCubeQueryAggregateOperator,
22
22
  DataCubeColumnDataType,
23
23
  DataCubeFunction,
24
24
  ofDataType,
25
+ type DataCubeOperationValue,
25
26
  } from '../DataCubeQueryEngine.js';
26
- import {
27
- _colSpec,
28
- _function,
29
- _functionName,
30
- _lambda,
31
- _primitiveValue,
32
- _property,
33
- _var,
34
- } from '../DataCubeQueryBuilderUtils.js';
35
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
30
+ import { isString } from '@finos/legend-shared';
36
31
 
37
32
  export class DataCubeQueryAggregateOperation__JoinStrings extends DataCubeQueryAggregateOperation {
38
33
  override get label() {
@@ -51,7 +46,7 @@ export class DataCubeQueryAggregateOperation__JoinStrings extends DataCubeQueryA
51
46
  return DataCubeQueryAggregateOperator.JOIN_STRINGS;
52
47
  }
53
48
 
54
- isCompatibleWithColumn(column: DataCubeColumn) {
49
+ override isCompatibleWithColumn(column: DataCubeColumn) {
55
50
  return ofDataType(column.type, [
56
51
  // NOTE: technically all data types should be suported,
57
52
  // i.e. we can use meta::pure::functions::string::makeString
@@ -61,21 +56,41 @@ export class DataCubeQueryAggregateOperation__JoinStrings extends DataCubeQueryA
61
56
  ]);
62
57
  }
63
58
 
64
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
65
- const variable = _var();
66
- return _colSpec(
67
- column.name,
68
- _lambda([variable], [_property(column.name, variable)]),
69
- _lambda(
70
- [variable],
71
- [
72
- _function(_functionName(DataCubeFunction.JOIN_STRINGS), [
73
- variable,
74
- // TODO: we might want to support customizing the delimiter in this case
75
- _primitiveValue(PRIMITIVE_TYPE.STRING, ','),
76
- ]),
77
- ],
78
- ),
59
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
60
+ return (
61
+ values.length === 1 &&
62
+ values[0] !== undefined &&
63
+ ofDataType(values[0].type, [DataCubeColumnDataType.TEXT]) &&
64
+ !Array.isArray(values[0].value) &&
65
+ isString(values[0].value)
66
+ );
67
+ }
68
+
69
+ override generateDefaultParameterValues(
70
+ column: DataCubeColumn,
71
+ ): DataCubeOperationValue[] {
72
+ return [
73
+ {
74
+ type: PRIMITIVE_TYPE.STRING,
75
+ value: '',
76
+ },
77
+ ];
78
+ }
79
+
80
+ override buildAggregateColumnSnapshot(
81
+ colSpec: V1_ColSpec,
82
+ columnGetter: (name: string) => DataCubeColumn,
83
+ ) {
84
+ return this._finalizeAggregateColumnSnapshot(
85
+ _agg_base(colSpec, DataCubeFunction.JOIN_STRINGS, columnGetter),
86
+ );
87
+ }
88
+
89
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
90
+ return _aggCol_base(
91
+ column,
92
+ DataCubeFunction.JOIN_STRINGS,
93
+ column.aggregationParameters,
79
94
  );
80
95
  }
81
96
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import type { V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__Last extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,7 +45,7 @@ export class DataCubeQueryAggregateOperation__Last extends DataCubeQueryAggregat
42
45
  return DataCubeQueryAggregateOperator.LAST;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [
47
50
  DataCubeColumnDataType.TEXT,
48
51
  DataCubeColumnDataType.NUMBER,
@@ -51,7 +54,26 @@ export class DataCubeQueryAggregateOperation__Last extends DataCubeQueryAggregat
51
54
  ]);
52
55
  }
53
56
 
54
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
55
- return _aggCol_basic(column, DataCubeFunction.LAST);
57
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
58
+ return !values.length;
59
+ }
60
+
61
+ override generateDefaultParameterValues(
62
+ column: DataCubeColumn,
63
+ ): DataCubeOperationValue[] {
64
+ return [];
65
+ }
66
+
67
+ override buildAggregateColumnSnapshot(
68
+ colSpec: V1_ColSpec,
69
+ columnGetter: (name: string) => DataCubeColumn,
70
+ ) {
71
+ return this._finalizeAggregateColumnSnapshot(
72
+ _agg_base(colSpec, DataCubeFunction.LAST, columnGetter),
73
+ );
74
+ }
75
+
76
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
77
+ return _aggCol_base(column, DataCubeFunction.LAST);
56
78
  }
57
79
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import type { V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__Max extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,11 +45,30 @@ export class DataCubeQueryAggregateOperation__Max extends DataCubeQueryAggregate
42
45
  return DataCubeQueryAggregateOperator.MAX;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [DataCubeColumnDataType.NUMBER]);
47
50
  }
48
51
 
49
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
50
- return _aggCol_basic(column, DataCubeFunction.MAX);
52
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
53
+ return !values.length;
54
+ }
55
+
56
+ override generateDefaultParameterValues(
57
+ column: DataCubeColumn,
58
+ ): DataCubeOperationValue[] {
59
+ return [];
60
+ }
61
+
62
+ override buildAggregateColumnSnapshot(
63
+ colSpec: V1_ColSpec,
64
+ columnGetter: (name: string) => DataCubeColumn,
65
+ ) {
66
+ return this._finalizeAggregateColumnSnapshot(
67
+ _agg_base(colSpec, DataCubeFunction.MAX, columnGetter),
68
+ );
69
+ }
70
+
71
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
72
+ return _aggCol_base(column, DataCubeFunction.MAX);
51
73
  }
52
74
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import type { V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__Min extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,11 +45,30 @@ export class DataCubeQueryAggregateOperation__Min extends DataCubeQueryAggregate
42
45
  return DataCubeQueryAggregateOperator.MIN;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [DataCubeColumnDataType.NUMBER]);
47
50
  }
48
51
 
49
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
50
- return _aggCol_basic(column, DataCubeFunction.MIN);
52
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
53
+ return !values.length;
54
+ }
55
+
56
+ override generateDefaultParameterValues(
57
+ column: DataCubeColumn,
58
+ ): DataCubeOperationValue[] {
59
+ return [];
60
+ }
61
+
62
+ override buildAggregateColumnSnapshot(
63
+ colSpec: V1_ColSpec,
64
+ columnGetter: (name: string) => DataCubeColumn,
65
+ ) {
66
+ return this._finalizeAggregateColumnSnapshot(
67
+ _agg_base(colSpec, DataCubeFunction.MIN, columnGetter),
68
+ );
69
+ }
70
+
71
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
72
+ return _aggCol_base(column, DataCubeFunction.MIN);
51
73
  }
52
74
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import type { V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__StdDevPopulation extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,14 +45,34 @@ export class DataCubeQueryAggregateOperation__StdDevPopulation extends DataCubeQ
42
45
  return DataCubeQueryAggregateOperator.STANDARD_DEVIATION_POPULATION;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [DataCubeColumnDataType.NUMBER]);
47
50
  }
48
51
 
49
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
50
- return _aggCol_basic(
51
- column,
52
- DataCubeFunction.STANDARD_DEVIATION_POPULATION,
52
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
53
+ return !values.length;
54
+ }
55
+
56
+ override generateDefaultParameterValues(
57
+ column: DataCubeColumn,
58
+ ): DataCubeOperationValue[] {
59
+ return [];
60
+ }
61
+
62
+ override buildAggregateColumnSnapshot(
63
+ colSpec: V1_ColSpec,
64
+ columnGetter: (name: string) => DataCubeColumn,
65
+ ) {
66
+ return this._finalizeAggregateColumnSnapshot(
67
+ _agg_base(
68
+ colSpec,
69
+ DataCubeFunction.STANDARD_DEVIATION_POPULATION,
70
+ columnGetter,
71
+ ),
53
72
  );
54
73
  }
74
+
75
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
76
+ return _aggCol_base(column, DataCubeFunction.STANDARD_DEVIATION_POPULATION);
77
+ }
55
78
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import type { V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__StdDevSample extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,11 +45,34 @@ export class DataCubeQueryAggregateOperation__StdDevSample extends DataCubeQuery
42
45
  return DataCubeQueryAggregateOperator.STANDARD_DEVIATION_SAMPLE;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [DataCubeColumnDataType.NUMBER]);
47
50
  }
48
51
 
49
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
50
- return _aggCol_basic(column, DataCubeFunction.STANDARD_DEVIATION_SAMPLE);
52
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
53
+ return !values.length;
54
+ }
55
+
56
+ override generateDefaultParameterValues(
57
+ column: DataCubeColumn,
58
+ ): DataCubeOperationValue[] {
59
+ return [];
60
+ }
61
+
62
+ override buildAggregateColumnSnapshot(
63
+ colSpec: V1_ColSpec,
64
+ columnGetter: (name: string) => DataCubeColumn,
65
+ ) {
66
+ return this._finalizeAggregateColumnSnapshot(
67
+ _agg_base(
68
+ colSpec,
69
+ DataCubeFunction.STANDARD_DEVIATION_SAMPLE,
70
+ columnGetter,
71
+ ),
72
+ );
73
+ }
74
+
75
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
76
+ return _aggCol_base(column, DataCubeFunction.STANDARD_DEVIATION_SAMPLE);
51
77
  }
52
78
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import { type V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__Sum extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,11 +45,30 @@ export class DataCubeQueryAggregateOperation__Sum extends DataCubeQueryAggregate
42
45
  return DataCubeQueryAggregateOperator.SUM;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [DataCubeColumnDataType.NUMBER]);
47
50
  }
48
51
 
49
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
50
- return _aggCol_basic(column, DataCubeFunction.SUM);
52
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
53
+ return !values.length;
54
+ }
55
+
56
+ override generateDefaultParameterValues(
57
+ column: DataCubeColumn,
58
+ ): DataCubeOperationValue[] {
59
+ return [];
60
+ }
61
+
62
+ override buildAggregateColumnSnapshot(
63
+ colSpec: V1_ColSpec,
64
+ columnGetter: (name: string) => DataCubeColumn,
65
+ ) {
66
+ return this._finalizeAggregateColumnSnapshot(
67
+ _agg_base(colSpec, DataCubeFunction.SUM, columnGetter),
68
+ );
69
+ }
70
+
71
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
72
+ return _aggCol_base(column, DataCubeFunction.SUM);
51
73
  }
52
74
  }
@@ -21,9 +21,12 @@ import {
21
21
  DataCubeColumnDataType,
22
22
  DataCubeFunction,
23
23
  ofDataType,
24
+ type DataCubeOperationValue,
24
25
  } from '../DataCubeQueryEngine.js';
25
- import { _aggCol_basic } from '../DataCubeQueryBuilderUtils.js';
26
+ import { _aggCol_base } from '../DataCubeQueryBuilderUtils.js';
26
27
  import type { DataCubeColumnConfiguration } from '../model/DataCubeConfiguration.js';
28
+ import type { V1_ColSpec } from '@finos/legend-graph';
29
+ import { _agg_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
27
30
 
28
31
  export class DataCubeQueryAggregateOperation__UniqueValue extends DataCubeQueryAggregateOperation {
29
32
  override get label() {
@@ -42,7 +45,7 @@ export class DataCubeQueryAggregateOperation__UniqueValue extends DataCubeQueryA
42
45
  return DataCubeQueryAggregateOperator.UNIQUE;
43
46
  }
44
47
 
45
- isCompatibleWithColumn(column: DataCubeColumn) {
48
+ override isCompatibleWithColumn(column: DataCubeColumn) {
46
49
  return ofDataType(column.type, [
47
50
  DataCubeColumnDataType.TEXT,
48
51
  DataCubeColumnDataType.NUMBER,
@@ -51,7 +54,26 @@ export class DataCubeQueryAggregateOperation__UniqueValue extends DataCubeQueryA
51
54
  ]);
52
55
  }
53
56
 
54
- buildAggregateColumn(column: DataCubeColumnConfiguration) {
55
- return _aggCol_basic(column, DataCubeFunction.UNIQUE_VALUE_ONLY);
57
+ override isCompatibleWithParameterValues(values: DataCubeOperationValue[]) {
58
+ return !values.length;
59
+ }
60
+
61
+ override generateDefaultParameterValues(
62
+ column: DataCubeColumn,
63
+ ): DataCubeOperationValue[] {
64
+ return [];
65
+ }
66
+
67
+ override buildAggregateColumnSnapshot(
68
+ colSpec: V1_ColSpec,
69
+ columnGetter: (name: string) => DataCubeColumn,
70
+ ) {
71
+ return this._finalizeAggregateColumnSnapshot(
72
+ _agg_base(colSpec, DataCubeFunction.UNIQUE_VALUE_ONLY, columnGetter),
73
+ );
74
+ }
75
+
76
+ override buildAggregateColumnExpression(column: DataCubeColumnConfiguration) {
77
+ return _aggCol_base(column, DataCubeFunction.UNIQUE_VALUE_ONLY);
56
78
  }
57
79
  }