@finos/legend-data-cube 0.0.42 → 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 (353) 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/index.d.ts +1 -0
  28. package/lib/index.d.ts.map +1 -1
  29. package/lib/index.js +1 -0
  30. package/lib/index.js.map +1 -1
  31. package/lib/package.json +5 -5
  32. package/lib/stores/core/DataCubeConfigurationBuilder.d.ts +4 -3
  33. package/lib/stores/core/DataCubeConfigurationBuilder.d.ts.map +1 -1
  34. package/lib/stores/core/DataCubeConfigurationBuilder.js +59 -3
  35. package/lib/stores/core/DataCubeConfigurationBuilder.js.map +1 -1
  36. package/lib/stores/core/DataCubeEngine.d.ts +2 -0
  37. package/lib/stores/core/DataCubeEngine.d.ts.map +1 -1
  38. package/lib/stores/core/DataCubeEngine.js +1 -2
  39. package/lib/stores/core/DataCubeEngine.js.map +1 -1
  40. package/lib/stores/core/DataCubeQueryBuilder.d.ts.map +1 -1
  41. package/lib/stores/core/DataCubeQueryBuilder.js +12 -22
  42. package/lib/stores/core/DataCubeQueryBuilder.js.map +1 -1
  43. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts +6 -5
  44. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
  45. package/lib/stores/core/DataCubeQueryBuilderUtils.js +59 -30
  46. package/lib/stores/core/DataCubeQueryBuilderUtils.js.map +1 -1
  47. package/lib/stores/core/DataCubeQueryEngine.d.ts +14 -7
  48. package/lib/stores/core/DataCubeQueryEngine.d.ts.map +1 -1
  49. package/lib/stores/core/DataCubeQueryEngine.js +76 -45
  50. package/lib/stores/core/DataCubeQueryEngine.js.map +1 -1
  51. package/lib/stores/core/DataCubeQuerySnapshot.d.ts +11 -0
  52. package/lib/stores/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  53. package/lib/stores/core/DataCubeQuerySnapshot.js.map +1 -1
  54. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts +2 -3
  55. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  56. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js +226 -128
  57. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  58. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts +36 -7
  59. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -1
  60. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js +359 -126
  61. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -1
  62. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts +10 -2
  63. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts.map +1 -1
  64. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.js +15 -6
  65. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.js.map +1 -1
  66. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts +6 -2
  67. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts.map +1 -1
  68. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.js +13 -3
  69. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.js.map +1 -1
  70. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts +6 -2
  71. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts.map +1 -1
  72. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.js +13 -3
  73. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.js.map +1 -1
  74. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts +6 -2
  75. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts.map +1 -1
  76. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.js +13 -3
  77. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.js.map +1 -1
  78. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts +6 -2
  79. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts.map +1 -1
  80. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js +23 -10
  81. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js.map +1 -1
  82. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts +6 -2
  83. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts.map +1 -1
  84. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.js +13 -3
  85. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.js.map +1 -1
  86. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts +6 -2
  87. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts.map +1 -1
  88. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.js +13 -3
  89. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.js.map +1 -1
  90. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts +6 -2
  91. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts.map +1 -1
  92. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.js +13 -3
  93. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.js.map +1 -1
  94. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts +6 -2
  95. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts.map +1 -1
  96. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js +13 -3
  97. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js.map +1 -1
  98. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts +6 -2
  99. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts.map +1 -1
  100. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js +13 -3
  101. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js.map +1 -1
  102. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts +6 -2
  103. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts.map +1 -1
  104. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.js +14 -3
  105. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.js.map +1 -1
  106. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts +6 -2
  107. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts.map +1 -1
  108. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js +13 -3
  109. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js.map +1 -1
  110. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts +6 -2
  111. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts.map +1 -1
  112. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js +13 -3
  113. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js.map +1 -1
  114. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts +6 -2
  115. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts.map +1 -1
  116. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js +13 -3
  117. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js.map +1 -1
  118. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts +0 -2
  119. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -1
  120. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js +1 -30
  121. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js.map +1 -1
  122. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -1
  123. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js +8 -7
  124. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -1
  125. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -1
  126. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +10 -10
  127. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -1
  128. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -1
  129. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js +8 -7
  130. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -1
  131. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -1
  132. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +10 -10
  133. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -1
  134. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -1
  135. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js +5 -6
  136. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -1
  137. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -1
  138. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +10 -10
  139. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -1
  140. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -1
  141. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +6 -7
  142. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -1
  143. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -1
  144. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +6 -7
  145. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -1
  146. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -1
  147. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +5 -6
  148. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -1
  149. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -1
  150. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +6 -7
  151. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -1
  152. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -1
  153. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +5 -6
  154. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -1
  155. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -1
  156. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +6 -7
  157. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -1
  158. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -1
  159. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +2 -6
  160. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -1
  161. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -1
  162. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js +2 -2
  163. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -1
  164. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -1
  165. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js +5 -6
  166. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -1
  167. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -1
  168. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +6 -7
  169. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -1
  170. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -1
  171. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +5 -6
  172. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -1
  173. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -1
  174. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +6 -7
  175. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -1
  176. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -1
  177. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js +8 -11
  178. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -1
  179. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -1
  180. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +8 -11
  181. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -1
  182. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -1
  183. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js +6 -10
  184. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -1
  185. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -1
  186. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +10 -14
  187. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -1
  188. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -1
  189. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +6 -11
  190. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -1
  191. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -1
  192. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +6 -11
  193. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -1
  194. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -1
  195. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +8 -11
  196. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -1
  197. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -1
  198. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js +8 -7
  199. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -1
  200. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -1
  201. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +10 -10
  202. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -1
  203. package/lib/stores/core/model/DataCubeColumn.d.ts +1 -1
  204. package/lib/stores/core/model/DataCubeColumn.d.ts.map +1 -1
  205. package/lib/stores/core/model/DataCubeColumn.js.map +1 -1
  206. package/lib/stores/core/model/DataCubeConfiguration.d.ts +4 -3
  207. package/lib/stores/core/model/DataCubeConfiguration.d.ts.map +1 -1
  208. package/lib/stores/core/model/DataCubeConfiguration.js +4 -0
  209. package/lib/stores/core/model/DataCubeConfiguration.js.map +1 -1
  210. package/lib/stores/services/DataCubeQuerySnapshotService.d.ts.map +1 -1
  211. package/lib/stores/services/DataCubeQuerySnapshotService.js +2 -2
  212. package/lib/stores/services/DataCubeQuerySnapshotService.js.map +1 -1
  213. package/lib/stores/services/DataCubeSettingService.d.ts.map +1 -1
  214. package/lib/stores/services/DataCubeSettingService.js +8 -0
  215. package/lib/stores/services/DataCubeSettingService.js.map +1 -1
  216. package/lib/stores/view/DataCubeViewState.d.ts.map +1 -1
  217. package/lib/stores/view/DataCubeViewState.js +1 -1
  218. package/lib/stores/view/DataCubeViewState.js.map +1 -1
  219. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -1
  220. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js +3 -2
  221. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  222. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts +7 -0
  223. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts.map +1 -1
  224. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js +20 -3
  225. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js.map +1 -1
  226. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.d.ts.map +1 -1
  227. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js +2 -2
  228. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js.map +1 -1
  229. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts +4 -4
  230. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts.map +1 -1
  231. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js +14 -8
  232. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js.map +1 -1
  233. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts +1 -5
  234. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts.map +1 -1
  235. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js +2 -6
  236. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js.map +1 -1
  237. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts +1 -7
  238. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
  239. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js +4 -19
  240. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js.map +1 -1
  241. package/lib/stores/view/editor/DataCubeEditorState.d.ts.map +1 -1
  242. package/lib/stores/view/editor/DataCubeEditorState.js +2 -2
  243. package/lib/stores/view/editor/DataCubeEditorState.js.map +1 -1
  244. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.d.ts.map +1 -1
  245. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js +4 -4
  246. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js.map +1 -1
  247. package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts.map +1 -1
  248. package/lib/stores/view/extend/DataCubeColumnEditorState.js +2 -1
  249. package/lib/stores/view/extend/DataCubeColumnEditorState.js.map +1 -1
  250. package/lib/stores/view/extend/DataCubeExtendManagerState.d.ts.map +1 -1
  251. package/lib/stores/view/extend/DataCubeExtendManagerState.js +12 -12
  252. package/lib/stores/view/extend/DataCubeExtendManagerState.js.map +1 -1
  253. package/lib/stores/view/filter/DataCubeFilterEditorState.d.ts.map +1 -1
  254. package/lib/stores/view/filter/DataCubeFilterEditorState.js +2 -1
  255. package/lib/stores/view/filter/DataCubeFilterEditorState.js.map +1 -1
  256. package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  257. package/lib/stores/view/grid/DataCubeGridClientEngine.js +11 -14
  258. package/lib/stores/view/grid/DataCubeGridClientEngine.js.map +1 -1
  259. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
  260. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js +48 -12
  261. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
  262. package/lib/stores/view/grid/DataCubeGridControllerState.d.ts +1 -1
  263. package/lib/stores/view/grid/DataCubeGridControllerState.d.ts.map +1 -1
  264. package/lib/stores/view/grid/DataCubeGridControllerState.js +20 -20
  265. package/lib/stores/view/grid/DataCubeGridControllerState.js.map +1 -1
  266. package/lib/stores/view/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
  267. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js +8 -12
  268. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js.map +1 -1
  269. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js +1 -1
  270. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js.map +1 -1
  271. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js +1 -1
  272. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
  273. package/package.json +8 -8
  274. package/src/__lib__/DataCubeSetting.ts +1 -0
  275. package/src/components/view/editor/DataCubeEditorColumnPropertiesPanel.tsx +40 -17
  276. package/src/components/view/editor/DataCubeEditorColumnSelector.tsx +75 -1
  277. package/src/components/view/editor/DataCubeEditorColumnsPanel.tsx +3 -6
  278. package/src/components/view/editor/DataCubeEditorHorizontalPivotsPanel.tsx +5 -12
  279. package/src/components/view/editor/DataCubeEditorSortsPanel.tsx +12 -80
  280. package/src/components/view/filter/DataCubeFilterEditor.tsx +2 -3
  281. package/src/index.tsx +1 -0
  282. package/src/stores/core/DataCubeConfigurationBuilder.ts +80 -5
  283. package/src/stores/core/DataCubeEngine.tsx +10 -2
  284. package/src/stores/core/DataCubeQueryBuilder.ts +36 -37
  285. package/src/stores/core/DataCubeQueryBuilderUtils.ts +74 -41
  286. package/src/stores/core/DataCubeQueryEngine.ts +120 -60
  287. package/src/stores/core/DataCubeQuerySnapshot.ts +13 -0
  288. package/src/stores/core/DataCubeQuerySnapshotBuilder.ts +379 -157
  289. package/src/stores/core/DataCubeQuerySnapshotBuilderUtils.ts +597 -157
  290. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation.ts +39 -16
  291. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.tsx +26 -4
  292. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.tsx +26 -4
  293. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__First.tsx +26 -4
  294. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.tsx +41 -26
  295. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.tsx +26 -4
  296. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.tsx +26 -4
  297. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.tsx +26 -4
  298. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.tsx +29 -6
  299. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.tsx +30 -4
  300. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.tsx +26 -4
  301. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.tsx +26 -4
  302. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.tsx +26 -4
  303. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.tsx +26 -4
  304. package/src/stores/core/filter/DataCubeQueryFilterOperation.ts +1 -52
  305. package/src/stores/core/filter/DataCubeQueryFilterOperation__Contain.tsx +12 -9
  306. package/src/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +10 -13
  307. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +9 -10
  308. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +10 -13
  309. package/src/stores/core/filter/DataCubeQueryFilterOperation__Equal.tsx +5 -8
  310. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +10 -13
  311. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +6 -8
  312. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +5 -7
  313. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +6 -9
  314. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +6 -8
  315. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +6 -9
  316. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +6 -8
  317. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +6 -8
  318. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +6 -2
  319. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +6 -9
  320. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +6 -8
  321. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +6 -9
  322. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +6 -8
  323. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +12 -15
  324. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +12 -15
  325. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +10 -14
  326. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +11 -20
  327. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +7 -19
  328. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +9 -17
  329. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +10 -17
  330. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +9 -10
  331. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +10 -13
  332. package/src/stores/core/model/DataCubeColumn.ts +1 -1
  333. package/src/stores/core/model/DataCubeConfiguration.ts +7 -1
  334. package/src/stores/services/DataCubeQuerySnapshotService.ts +2 -1
  335. package/src/stores/services/DataCubeSettingService.tsx +8 -0
  336. package/src/stores/view/DataCubeViewState.ts +2 -3
  337. package/src/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.ts +3 -2
  338. package/src/stores/view/editor/DataCubeEditorColumnSelectorState.ts +31 -6
  339. package/src/stores/view/editor/DataCubeEditorColumnsPanelState.ts +2 -7
  340. package/src/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.ts +33 -10
  341. package/src/stores/view/editor/DataCubeEditorMutableConfiguration.ts +4 -20
  342. package/src/stores/view/editor/DataCubeEditorSortsPanelState.ts +6 -29
  343. package/src/stores/view/editor/DataCubeEditorState.tsx +2 -3
  344. package/src/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.ts +6 -7
  345. package/src/stores/view/extend/DataCubeColumnEditorState.tsx +2 -3
  346. package/src/stores/view/extend/DataCubeExtendManagerState.tsx +14 -13
  347. package/src/stores/view/filter/DataCubeFilterEditorState.tsx +2 -4
  348. package/src/stores/view/grid/DataCubeGridClientEngine.ts +21 -20
  349. package/src/stores/view/grid/DataCubeGridConfigurationBuilder.tsx +64 -15
  350. package/src/stores/view/grid/DataCubeGridControllerState.ts +35 -34
  351. package/src/stores/view/grid/DataCubeGridMenuBuilder.tsx +17 -23
  352. package/src/stores/view/grid/DataCubeGridQueryBuilder.ts +1 -1
  353. package/src/stores/view/grid/DataCubeGridQuerySnapshotBuilder.ts +1 -1
@@ -30,16 +30,11 @@ import {
30
30
  _not,
31
31
  _property,
32
32
  _value,
33
- _var,
34
33
  } from '../DataCubeQueryBuilderUtils.js';
35
- import {
36
- guaranteeNonNullable,
37
- isString,
38
- returnUndefOnError,
39
- } from '@finos/legend-shared';
34
+ import { isString, returnUndefOnError } from '@finos/legend-shared';
40
35
  import { type V1_AppliedFunction } from '@finos/legend-graph';
41
36
  import {
42
- _caseSensitiveBaseFilterCondition,
37
+ _filterCondition_caseSensitive,
43
38
  _unwrapNotFilterCondition,
44
39
  } from '../DataCubeQuerySnapshotBuilderUtils.js';
45
40
 
@@ -83,30 +78,23 @@ export class DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn extends
83
78
  expression: V1_AppliedFunction,
84
79
  columnGetter: (name: string) => DataCubeColumn,
85
80
  ) {
86
- const unwrapped = returnUndefOnError(() =>
87
- _unwrapNotFilterCondition(expression),
88
- );
89
- if (!unwrapped) {
90
- return undefined;
91
- }
92
81
  return this._finalizeConditionSnapshot(
93
- _caseSensitiveBaseFilterCondition(
94
- unwrapped,
95
- columnGetter,
82
+ _filterCondition_caseSensitive(
83
+ returnUndefOnError(() => _unwrapNotFilterCondition(expression)),
96
84
  DataCubeFunction.EQUAL,
85
+ columnGetter,
97
86
  ),
98
87
  );
99
88
  }
100
89
 
101
90
  buildConditionExpression(condition: DataCubeQuerySnapshotFilterCondition) {
102
- const variable = _var();
103
91
  return _not(
104
92
  _function(_functionName(DataCubeFunction.EQUAL), [
105
93
  _function(_functionName(DataCubeFunction.TO_LOWERCASE), [
106
- _property(condition.name, variable),
94
+ _property(condition.name),
107
95
  ]),
108
96
  _function(_functionName(DataCubeFunction.TO_LOWERCASE), [
109
- _value(guaranteeNonNullable(condition.value), variable),
97
+ _value(condition.value),
110
98
  ]),
111
99
  ]),
112
100
  );
@@ -30,16 +30,11 @@ import {
30
30
  _not,
31
31
  _property,
32
32
  _value,
33
- _var,
34
33
  } from '../DataCubeQueryBuilderUtils.js';
35
- import {
36
- guaranteeNonNullable,
37
- isString,
38
- returnUndefOnError,
39
- } from '@finos/legend-shared';
34
+ import { isString, returnUndefOnError } from '@finos/legend-shared';
40
35
  import { type V1_AppliedFunction } from '@finos/legend-graph';
41
36
  import {
42
- _baseFilterCondition,
37
+ _filterCondition_base,
43
38
  _unwrapNotFilterCondition,
44
39
  } from '../DataCubeQuerySnapshotBuilderUtils.js';
45
40
 
@@ -88,23 +83,20 @@ export class DataCubeQueryFilterOperation__NotEqualColumn extends DataCubeQueryF
88
83
  expression: V1_AppliedFunction,
89
84
  columnGetter: (name: string) => DataCubeColumn,
90
85
  ) {
91
- const unwrapped = returnUndefOnError(() =>
92
- _unwrapNotFilterCondition(expression),
93
- );
94
- if (!unwrapped) {
95
- return undefined;
96
- }
97
86
  return this._finalizeConditionSnapshot(
98
- _baseFilterCondition(unwrapped, columnGetter, DataCubeFunction.EQUAL),
87
+ _filterCondition_base(
88
+ returnUndefOnError(() => _unwrapNotFilterCondition(expression)),
89
+ DataCubeFunction.EQUAL,
90
+ columnGetter,
91
+ ),
99
92
  );
100
93
  }
101
94
 
102
95
  buildConditionExpression(condition: DataCubeQuerySnapshotFilterCondition) {
103
- const variable = _var();
104
96
  return _not(
105
97
  _function(_functionName(DataCubeFunction.EQUAL), [
106
- _property(condition.name, variable),
107
- _value(guaranteeNonNullable(condition.value), variable),
98
+ _property(condition.name),
99
+ _value(condition.value),
108
100
  ]),
109
101
  );
110
102
  }
@@ -13,10 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import {
17
- DataCubeQueryFilterOperation,
18
- _defaultPrimitiveTypeValue,
19
- } from './DataCubeQueryFilterOperation.js';
16
+ import { DataCubeQueryFilterOperation } from './DataCubeQueryFilterOperation.js';
20
17
  import type { DataCubeQuerySnapshotFilterCondition } from '../DataCubeQuerySnapshot.js';
21
18
  import type { DataCubeColumn } from '../model/DataCubeColumn.js';
22
19
  import {
@@ -25,6 +22,7 @@ import {
25
22
  DataCubeQueryFilterOperator,
26
23
  isPrimitiveType,
27
24
  ofDataType,
25
+ _defaultPrimitiveTypeValue,
28
26
  type DataCubeOperationValue,
29
27
  } from '../DataCubeQueryEngine.js';
30
28
  import {
@@ -34,11 +32,11 @@ import {
34
32
  _property,
35
33
  _value,
36
34
  } from '../DataCubeQueryBuilderUtils.js';
37
- import { guaranteeNonNullable, returnUndefOnError } from '@finos/legend-shared';
35
+ import { isString, returnUndefOnError } from '@finos/legend-shared';
38
36
  import { type V1_AppliedFunction } from '@finos/legend-graph';
39
37
  import {
40
38
  _unwrapNotFilterCondition,
41
- _baseFilterCondition,
39
+ _filterCondition_base,
42
40
  } from '../DataCubeQuerySnapshotBuilderUtils.js';
43
41
 
44
42
  export class DataCubeQueryFilterOperation__NotStartWith extends DataCubeQueryFilterOperation {
@@ -67,7 +65,8 @@ export class DataCubeQueryFilterOperation__NotStartWith extends DataCubeQueryFil
67
65
  value.value !== undefined &&
68
66
  isPrimitiveType(value.type) &&
69
67
  ofDataType(value.type, [DataCubeColumnDataType.TEXT]) &&
70
- !Array.isArray(value.value)
68
+ !Array.isArray(value.value) &&
69
+ isString(value.value)
71
70
  );
72
71
  }
73
72
 
@@ -82,17 +81,11 @@ export class DataCubeQueryFilterOperation__NotStartWith extends DataCubeQueryFil
82
81
  expression: V1_AppliedFunction,
83
82
  columnGetter: (name: string) => DataCubeColumn,
84
83
  ) {
85
- const unwrapped = returnUndefOnError(() =>
86
- _unwrapNotFilterCondition(expression),
87
- );
88
- if (!unwrapped) {
89
- return undefined;
90
- }
91
84
  return this._finalizeConditionSnapshot(
92
- _baseFilterCondition(
93
- unwrapped,
94
- columnGetter,
85
+ _filterCondition_base(
86
+ returnUndefOnError(() => _unwrapNotFilterCondition(expression)),
95
87
  DataCubeFunction.STARTS_WITH,
88
+ columnGetter,
96
89
  ),
97
90
  );
98
91
  }
@@ -101,7 +94,7 @@ export class DataCubeQueryFilterOperation__NotStartWith extends DataCubeQueryFil
101
94
  return _not(
102
95
  _function(_functionName(DataCubeFunction.STARTS_WITH), [
103
96
  _property(condition.name),
104
- _value(guaranteeNonNullable(condition.value)),
97
+ _value(condition.value),
105
98
  ]),
106
99
  );
107
100
  }
@@ -13,10 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import {
17
- DataCubeQueryFilterOperation,
18
- _defaultPrimitiveTypeValue,
19
- } from './DataCubeQueryFilterOperation.js';
16
+ import { DataCubeQueryFilterOperation } from './DataCubeQueryFilterOperation.js';
20
17
  import type { DataCubeQuerySnapshotFilterCondition } from '../DataCubeQuerySnapshot.js';
21
18
  import type { DataCubeColumn } from '../model/DataCubeColumn.js';
22
19
  import {
@@ -25,6 +22,7 @@ import {
25
22
  DataCubeQueryFilterOperator,
26
23
  isPrimitiveType,
27
24
  ofDataType,
25
+ _defaultPrimitiveTypeValue,
28
26
  type DataCubeOperationValue,
29
27
  } from '../DataCubeQueryEngine.js';
30
28
  import {
@@ -33,9 +31,9 @@ import {
33
31
  _property,
34
32
  _value,
35
33
  } from '../DataCubeQueryBuilderUtils.js';
36
- import { guaranteeNonNullable } from '@finos/legend-shared';
37
34
  import { type V1_AppliedFunction } from '@finos/legend-graph';
38
- import { _baseFilterCondition } from '../DataCubeQuerySnapshotBuilderUtils.js';
35
+ import { _filterCondition_base } from '../DataCubeQuerySnapshotBuilderUtils.js';
36
+ import { isString } from '@finos/legend-shared';
39
37
 
40
38
  export class DataCubeQueryFilterOperation__StartWith extends DataCubeQueryFilterOperation {
41
39
  override get label() {
@@ -63,7 +61,8 @@ export class DataCubeQueryFilterOperation__StartWith extends DataCubeQueryFilter
63
61
  value.value !== undefined &&
64
62
  isPrimitiveType(value.type) &&
65
63
  ofDataType(value.type, [DataCubeColumnDataType.TEXT]) &&
66
- !Array.isArray(value.value)
64
+ !Array.isArray(value.value) &&
65
+ isString(value.value)
67
66
  );
68
67
  }
69
68
 
@@ -79,10 +78,10 @@ export class DataCubeQueryFilterOperation__StartWith extends DataCubeQueryFilter
79
78
  columnGetter: (name: string) => DataCubeColumn,
80
79
  ) {
81
80
  return this._finalizeConditionSnapshot(
82
- _baseFilterCondition(
81
+ _filterCondition_base(
83
82
  expression,
84
- columnGetter,
85
83
  DataCubeFunction.STARTS_WITH,
84
+ columnGetter,
86
85
  ),
87
86
  );
88
87
  }
@@ -90,7 +89,7 @@ export class DataCubeQueryFilterOperation__StartWith extends DataCubeQueryFilter
90
89
  buildConditionExpression(condition: DataCubeQuerySnapshotFilterCondition) {
91
90
  return _function(_functionName(DataCubeFunction.STARTS_WITH), [
92
91
  _property(condition.name),
93
- _value(guaranteeNonNullable(condition.value)),
92
+ _value(condition.value),
94
93
  ]);
95
94
  }
96
95
  }
@@ -13,10 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import {
17
- DataCubeQueryFilterOperation,
18
- _defaultPrimitiveTypeValue,
19
- } from './DataCubeQueryFilterOperation.js';
16
+ import { DataCubeQueryFilterOperation } from './DataCubeQueryFilterOperation.js';
20
17
  import type { DataCubeQuerySnapshotFilterCondition } from '../DataCubeQuerySnapshot.js';
21
18
  import type { DataCubeColumn } from '../model/DataCubeColumn.js';
22
19
  import {
@@ -25,6 +22,7 @@ import {
25
22
  DataCubeQueryFilterOperator,
26
23
  isPrimitiveType,
27
24
  ofDataType,
25
+ _defaultPrimitiveTypeValue,
28
26
  type DataCubeOperationValue,
29
27
  } from '../DataCubeQueryEngine.js';
30
28
  import {
@@ -32,11 +30,10 @@ import {
32
30
  _functionName,
33
31
  _property,
34
32
  _value,
35
- _var,
36
33
  } from '../DataCubeQueryBuilderUtils.js';
37
- import { guaranteeNonNullable } from '@finos/legend-shared';
38
34
  import { type V1_AppliedFunction } from '@finos/legend-graph';
39
- import { _caseSensitiveBaseFilterCondition } from '../DataCubeQuerySnapshotBuilderUtils.js';
35
+ import { _filterCondition_caseSensitive } from '../DataCubeQuerySnapshotBuilderUtils.js';
36
+ import { isString } from '@finos/legend-shared';
40
37
 
41
38
  export class DataCubeQueryFilterOperation__StartWithCaseInsensitive extends DataCubeQueryFilterOperation {
42
39
  override get label() {
@@ -64,7 +61,8 @@ export class DataCubeQueryFilterOperation__StartWithCaseInsensitive extends Data
64
61
  value.value !== undefined &&
65
62
  isPrimitiveType(value.type) &&
66
63
  ofDataType(value.type, [DataCubeColumnDataType.TEXT]) &&
67
- !Array.isArray(value.value)
64
+ !Array.isArray(value.value) &&
65
+ isString(value.value)
68
66
  );
69
67
  }
70
68
 
@@ -80,22 +78,21 @@ export class DataCubeQueryFilterOperation__StartWithCaseInsensitive extends Data
80
78
  columnGetter: (name: string) => DataCubeColumn,
81
79
  ) {
82
80
  return this._finalizeConditionSnapshot(
83
- _caseSensitiveBaseFilterCondition(
81
+ _filterCondition_caseSensitive(
84
82
  expression,
85
- columnGetter,
86
83
  DataCubeFunction.STARTS_WITH,
84
+ columnGetter,
87
85
  ),
88
86
  );
89
87
  }
90
88
 
91
89
  buildConditionExpression(condition: DataCubeQuerySnapshotFilterCondition) {
92
- const variable = _var();
93
90
  return _function(_functionName(DataCubeFunction.STARTS_WITH), [
94
91
  _function(_functionName(DataCubeFunction.TO_LOWERCASE), [
95
- _property(condition.name, variable),
92
+ _property(condition.name),
96
93
  ]),
97
94
  _function(_functionName(DataCubeFunction.TO_LOWERCASE), [
98
- _value(guaranteeNonNullable(condition.value), variable),
95
+ _value(condition.value),
99
96
  ]),
100
97
  ]);
101
98
  }
@@ -21,7 +21,7 @@ export type DataCubeColumn = {
21
21
 
22
22
  export function _findCol<T extends DataCubeColumn>(
23
23
  cols: T[] | undefined,
24
- name: string,
24
+ name: string | undefined,
25
25
  ): T | undefined {
26
26
  return cols?.find((c) => c.name === name);
27
27
  }
@@ -41,6 +41,7 @@ import {
41
41
  DEFAULT_PIVOT_STATISTIC_COLUMN_NAME,
42
42
  DEFAULT_TREE_COLUMN_SORT_DIRECTION,
43
43
  DEFAULT_REPORT_NAME,
44
+ type DataCubeQuerySortDirection,
44
45
  } from '../DataCubeQueryEngine.js';
45
46
  import {
46
47
  SerializationFactory,
@@ -48,6 +49,7 @@ import {
48
49
  uuid,
49
50
  } from '@finos/legend-shared';
50
51
  import { createModelSchema, list, optional, primitive, raw } from 'serializr';
52
+ import { _findCol } from './DataCubeColumn.js';
51
53
 
52
54
  export type DataCubeConfigurationColorKey =
53
55
  | 'normal'
@@ -114,7 +116,7 @@ export class DataCubeColumnConfiguration {
114
116
  aggregateOperator!: string;
115
117
  aggregationParameters: DataCubeOperationValue[] = [];
116
118
  excludedFromPivot = true; // this agrees with default column kind set as Dimension
117
- pivotSortDirection?: string | undefined;
119
+ pivotSortDirection?: DataCubeQuerySortDirection | undefined;
118
120
  pivotStatisticColumnFunction?: string | undefined;
119
121
 
120
122
  constructor(name: string, type: string) {
@@ -277,6 +279,10 @@ export class DataCubeConfiguration {
277
279
  }),
278
280
  );
279
281
 
282
+ getColumn(name: string) {
283
+ return _findCol(this.columns, name);
284
+ }
285
+
280
286
  serialize() {
281
287
  return DataCubeConfiguration.serialization.toJson(this);
282
288
  }
@@ -18,6 +18,7 @@ import type { DataCubeQuerySnapshot } from '../core/DataCubeQuerySnapshot.js';
18
18
  import {
19
19
  IllegalStateError,
20
20
  assertErrorThrown,
21
+ at,
21
22
  deepDiff,
22
23
  guaranteeNonNullable,
23
24
  } from '@finos/legend-shared';
@@ -112,7 +113,7 @@ export class DataCubeQuerySnapshotService {
112
113
  }
113
114
 
114
115
  get currentSnapshot() {
115
- return guaranteeNonNullable(this._snapshots[this._snapshots.length - 1]);
116
+ return at(this._snapshots, this._snapshots.length - 1);
116
117
  }
117
118
 
118
119
  registerSubscriber(subscriber: DataCubeQuerySnapshotSubscriber) {
@@ -144,6 +144,14 @@ export class DataCubeSettingService {
144
144
  type: DataCubeSettingType.BOOLEAN,
145
145
  defaultValue: false,
146
146
  } satisfies DataCubeSetting<boolean>,
147
+ {
148
+ key: DataCubeSettingKey.DEBUGGER__USE_DEV_CLIENT_PROTOCOL_VERSION,
149
+ title: `Use development client protocol version: Enabled`,
150
+ description: `Specifies if development client protocol version (vX_X_X) should be used for execution`,
151
+ group: DataCubeSettingGroup.DEBUG,
152
+ type: DataCubeSettingType.BOOLEAN,
153
+ defaultValue: false,
154
+ } satisfies DataCubeSetting<boolean>,
147
155
  {
148
156
  key: DataCubeSettingKey.DEBUGGER__ACTION__RELOAD,
149
157
  title: `Reload`,
@@ -134,12 +134,11 @@ export class DataCubeViewState {
134
134
  const partialQuery = await this.engine.parseValueSpecification(
135
135
  query.query,
136
136
  );
137
- const initialSnapshot = validateAndBuildQuerySnapshot(
137
+ const initialSnapshot = await validateAndBuildQuerySnapshot(
138
138
  partialQuery,
139
139
  source,
140
140
  query,
141
- this.engine.filterOperations,
142
- this.engine.aggregateOperations,
141
+ this.engine,
143
142
  );
144
143
  this.snapshotService.broadcastSnapshot(initialSnapshot);
145
144
  this.dataCube.options?.onViewInitialized?.({
@@ -26,6 +26,7 @@ import {
26
26
  type PlainObject,
27
27
  } from '@finos/legend-shared';
28
28
  import type { DataCubeConfiguration } from '../../core/model/DataCubeConfiguration.js';
29
+ import { _findCol } from '../../core/model/DataCubeColumn.js';
29
30
 
30
31
  export class DataCubeEditorColumnPropertiesPanelState
31
32
  implements DataCubeQueryEditorPanelState
@@ -56,7 +57,7 @@ export class DataCubeEditorColumnPropertiesPanelState
56
57
 
57
58
  getColumnConfiguration(colName: string | undefined) {
58
59
  return guaranteeNonNullable(
59
- this.columns.find((col) => col.name === colName),
60
+ _findCol(this.columns, colName),
60
61
  `Can't find configuration for column '${colName}'`,
61
62
  );
62
63
  }
@@ -70,7 +71,7 @@ export class DataCubeEditorColumnPropertiesPanelState
70
71
  }
71
72
 
72
73
  get selectedColumn() {
73
- return this.columns.find((col) => col.name === this.selectedColumnName);
74
+ return _findCol(this.columns, this.selectedColumnName);
74
75
  }
75
76
 
76
77
  setShowAdvancedSettings(val: boolean) {
@@ -17,7 +17,8 @@
17
17
  import { makeObservable, observable, action, computed } from 'mobx';
18
18
  import type { DataCubeEditorState } from './DataCubeEditorState.js';
19
19
  import { guaranteeNonNullable } from '@finos/legend-shared';
20
- import { _sortByColName } from '../../core/model/DataCubeColumn.js';
20
+ import { _findCol, _sortByColName } from '../../core/model/DataCubeColumn.js';
21
+ import type { DataCubeQuerySortDirection } from '../../core/DataCubeQueryEngine.js';
21
22
 
22
23
  export class DataCubeEditorColumnSelectorColumnState {
23
24
  readonly name: string;
@@ -74,10 +75,7 @@ export abstract class DataCubeEditorColumnSelectorState<
74
75
 
75
76
  get availableColumnsForDisplay(): T[] {
76
77
  return this.availableColumns
77
- .filter(
78
- (column) =>
79
- !this.selectedColumns.find((col) => column.name === col.name),
80
- )
78
+ .filter((column) => !_findCol(this.selectedColumns, column.name))
81
79
  .sort(_sortByColName);
82
80
  }
83
81
 
@@ -103,10 +101,37 @@ export abstract class DataCubeEditorColumnSelectorState<
103
101
 
104
102
  getColumn(colName: string): T {
105
103
  return guaranteeNonNullable(
106
- this.availableColumns.find((col) => col.name === colName),
104
+ _findCol(this.availableColumns, colName),
107
105
  `Can't find column '${colName}'`,
108
106
  );
109
107
  }
110
108
 
111
109
  protected abstract cloneColumn(column: T): T;
112
110
  }
111
+
112
+ export class DataCubeEditorSortColumnState extends DataCubeEditorColumnSelectorColumnState {
113
+ readonly onChange?: (() => void) | undefined;
114
+ direction: DataCubeQuerySortDirection;
115
+
116
+ constructor(
117
+ name: string,
118
+ type: string,
119
+ direction: DataCubeQuerySortDirection,
120
+ onChange?: (() => void) | undefined,
121
+ ) {
122
+ super(name, type);
123
+
124
+ makeObservable(this, {
125
+ direction: observable,
126
+ setDirection: action,
127
+ });
128
+
129
+ this.direction = direction;
130
+ this.onChange = onChange;
131
+ }
132
+
133
+ setDirection(val: DataCubeQuerySortDirection) {
134
+ this.direction = val;
135
+ this.onChange?.();
136
+ }
137
+ }
@@ -16,7 +16,7 @@
16
16
 
17
17
  import { action, makeObservable, observable, override } from 'mobx';
18
18
  import { type DataCubeQuerySnapshot } from '../../core/DataCubeQuerySnapshot.js';
19
- import { _toCol } from '../../core/model/DataCubeColumn.js';
19
+ import { _findCol, _toCol } from '../../core/model/DataCubeColumn.js';
20
20
  import type { DataCubeQueryEditorPanelState } from './DataCubeEditorPanelState.js';
21
21
  import {
22
22
  DataCubeEditorColumnSelectorColumnState,
@@ -183,12 +183,7 @@ export class DataCubeEditorColumnsPanelState
183
183
  // by each extended column.
184
184
  newSnapshot.data.selectColumns = this.selector.selectedColumns
185
185
  // filter out group-level extended columns since these columns are technically not selectable
186
- .filter(
187
- (col) =>
188
- !this._editor.groupExtendColumns.find(
189
- (column) => column.name === col.name,
190
- ),
191
- )
186
+ .filter((col) => !_findCol(this._editor.groupExtendColumns, col.name))
192
187
  .map(_toCol);
193
188
  }
194
189
  }
@@ -18,28 +18,32 @@ import { action, computed, makeObservable, observable } from 'mobx';
18
18
  import type { DataCubeConfiguration } from '../../core/model/DataCubeConfiguration.js';
19
19
  import {
20
20
  DataCubeColumnKind,
21
+ DataCubeQuerySortDirection,
21
22
  isPivotResultColumnName,
22
23
  } from '../../core/DataCubeQueryEngine.js';
23
24
  import { type DataCubeQuerySnapshot } from '../../core/DataCubeQuerySnapshot.js';
24
25
  import {
26
+ _findCol,
25
27
  _toCol,
26
28
  type DataCubeColumn,
27
29
  } from '../../core/model/DataCubeColumn.js';
28
30
  import {
29
- DataCubeEditorColumnSelectorColumnState,
30
31
  DataCubeEditorColumnSelectorState,
32
+ DataCubeEditorSortColumnState,
31
33
  } from './DataCubeEditorColumnSelectorState.js';
32
34
  import type { DataCubeQueryEditorPanelState } from './DataCubeEditorPanelState.js';
33
35
  import type { DataCubeEditorState } from './DataCubeEditorState.js';
34
36
  import { uniqBy } from '@finos/legend-shared';
35
37
 
36
- export class DataCubeEditorHorizontalPivotColumnSelectorState extends DataCubeEditorColumnSelectorState<DataCubeEditorColumnSelectorColumnState> {
38
+ export class DataCubeEditorHorizontalPivotColumnSelectorState extends DataCubeEditorColumnSelectorState<DataCubeEditorSortColumnState> {
37
39
  override cloneColumn(
38
- column: DataCubeEditorColumnSelectorColumnState,
39
- ): DataCubeEditorColumnSelectorColumnState {
40
- return new DataCubeEditorColumnSelectorColumnState(
40
+ column: DataCubeEditorSortColumnState,
41
+ ): DataCubeEditorSortColumnState {
42
+ return new DataCubeEditorSortColumnState(
41
43
  column.name,
42
44
  column.type,
45
+ column.direction,
46
+ column.onChange,
43
47
  );
44
48
  }
45
49
 
@@ -49,13 +53,16 @@ export class DataCubeEditorHorizontalPivotColumnSelectorState extends DataCubeEd
49
53
  (col) =>
50
54
  col.kind === DataCubeColumnKind.DIMENSION &&
51
55
  // exclude group-level extended columns
52
- !this._editor.groupExtendColumns.find(
53
- (column) => column.name === col.name,
54
- ),
56
+ !_findCol(this._editor.groupExtendColumns, col.name),
55
57
  )
56
58
  .map(
57
59
  (col) =>
58
- new DataCubeEditorColumnSelectorColumnState(col.name, col.type),
60
+ new DataCubeEditorSortColumnState(
61
+ col.name,
62
+ col.type,
63
+ DataCubeQuerySortDirection.ASCENDING,
64
+ () => this.onChange?.(this),
65
+ ),
59
66
  );
60
67
  }
61
68
  }
@@ -81,6 +88,16 @@ export class DataCubeEditorHorizontalPivotsPanelState
81
88
  this._editor = editor;
82
89
  this.selector = new DataCubeEditorHorizontalPivotColumnSelectorState(
83
90
  editor,
91
+ {
92
+ onChange: (selector) => {
93
+ // update selection config in column configurations
94
+ this._editor.columnProperties.columns.forEach((col) =>
95
+ col.setPivotSortDirection(
96
+ _findCol(selector.selectedColumns, col.name)?.direction,
97
+ ),
98
+ );
99
+ },
100
+ },
84
101
  );
85
102
  }
86
103
 
@@ -106,7 +123,13 @@ export class DataCubeEditorHorizontalPivotsPanelState
106
123
  this.selector.setSelectedColumns(
107
124
  (snapshot.data.pivot?.columns ?? []).map(
108
125
  (col) =>
109
- new DataCubeEditorColumnSelectorColumnState(col.name, col.type),
126
+ new DataCubeEditorSortColumnState(
127
+ col.name,
128
+ col.type,
129
+ _findCol(configuration.columns, col.name)?.pivotSortDirection ??
130
+ DataCubeQuerySortDirection.ASCENDING,
131
+ () => this.selector.onChange?.(this.selector),
132
+ ),
110
133
  ),
111
134
  );
112
135
  this.setCastColumns(snapshot.data.pivot?.castColumns ?? []);
@@ -15,8 +15,9 @@
15
15
  */
16
16
 
17
17
  import {
18
- type DataCubeColumnKind,
19
18
  getDataType,
19
+ getAggregateOperation,
20
+ type DataCubeColumnKind,
20
21
  type DataCubeFont,
21
22
  type DataCubeOperationValue,
22
23
  type DataCubeNumberScale,
@@ -46,12 +47,8 @@ import {
46
47
  DataCubeConfiguration,
47
48
  DataCubePivotLayoutConfiguration,
48
49
  } from '../../core/model/DataCubeConfiguration.js';
49
- import { buildDefaultColumnConfiguration } from '../../core/DataCubeConfigurationBuilder.js';
50
50
  import { type DataCubeQuerySnapshot } from '../../core/DataCubeQuerySnapshot.js';
51
- import {
52
- getAggregateOperation,
53
- type DataCubeQueryAggregateOperation,
54
- } from '../../core/aggregation/DataCubeQueryAggregateOperation.js';
51
+ import { type DataCubeQueryAggregateOperation } from '../../core/aggregation/DataCubeQueryAggregateOperation.js';
55
52
 
56
53
  export class DataCubeEditorMutableColumnConfiguration extends DataCubeColumnConfiguration {
57
54
  readonly dataType!: DataCubeColumnDataType;
@@ -197,19 +194,6 @@ export class DataCubeEditorMutableColumnConfiguration extends DataCubeColumnConf
197
194
  return configuration;
198
195
  }
199
196
 
200
- static createDefault(
201
- column: { name: string; type: string },
202
- aggregateOperations: DataCubeQueryAggregateOperation[],
203
- ) {
204
- return DataCubeEditorMutableColumnConfiguration.create(
205
- DataCubeColumnConfiguration.serialization.toJson(
206
- buildDefaultColumnConfiguration(column),
207
- ),
208
- undefined,
209
- aggregateOperations,
210
- );
211
- }
212
-
213
197
  get isUsingDefaultStyling() {
214
198
  return (
215
199
  this.fontFamily === undefined &&
@@ -393,7 +377,7 @@ export class DataCubeEditorMutableColumnConfiguration extends DataCubeColumnConf
393
377
  this.excludedFromPivot = value;
394
378
  }
395
379
 
396
- setPivotSortDirection(value: string | undefined) {
380
+ setPivotSortDirection(value: DataCubeQuerySortDirection | undefined) {
397
381
  this.pivotSortDirection = value;
398
382
  }
399
383