@finos/legend-data-cube 0.0.41 → 0.0.43

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 (236) hide show
  1. package/lib/components/DataCube.d.ts.map +1 -1
  2. package/lib/components/DataCube.js +1 -1
  3. package/lib/components/DataCube.js.map +1 -1
  4. package/lib/components/DataCubePlaceholder.d.ts +0 -1
  5. package/lib/components/DataCubePlaceholder.d.ts.map +1 -1
  6. package/lib/components/DataCubePlaceholder.js.map +1 -1
  7. package/lib/components/core/DataCubeCodeCheckErrorAlert.d.ts.map +1 -1
  8. package/lib/components/core/DataCubeCodeCheckErrorAlert.js +5 -1
  9. package/lib/components/core/DataCubeCodeCheckErrorAlert.js.map +1 -1
  10. package/lib/components/view/extend/DataCubeColumnEditor.d.ts.map +1 -1
  11. package/lib/components/view/extend/DataCubeColumnEditor.js +5 -2
  12. package/lib/components/view/extend/DataCubeColumnEditor.js.map +1 -1
  13. package/lib/components/view/filter/DataCubeFilterEditor.d.ts.map +1 -1
  14. package/lib/components/view/filter/DataCubeFilterEditor.js +3 -3
  15. package/lib/components/view/filter/DataCubeFilterEditor.js.map +1 -1
  16. package/lib/index.css +2 -2
  17. package/lib/index.css.map +1 -1
  18. package/lib/index.d.ts +1 -0
  19. package/lib/index.d.ts.map +1 -1
  20. package/lib/index.js +1 -0
  21. package/lib/index.js.map +1 -1
  22. package/lib/package.json +4 -4
  23. package/lib/stores/core/DataCubeQueryBuilder.d.ts.map +1 -1
  24. package/lib/stores/core/DataCubeQueryBuilder.js +12 -6
  25. package/lib/stores/core/DataCubeQueryBuilder.js.map +1 -1
  26. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts +5 -5
  27. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
  28. package/lib/stores/core/DataCubeQueryBuilderUtils.js +20 -20
  29. package/lib/stores/core/DataCubeQueryBuilderUtils.js.map +1 -1
  30. package/lib/stores/core/DataCubeQueryEngine.d.ts +4 -2
  31. package/lib/stores/core/DataCubeQueryEngine.d.ts.map +1 -1
  32. package/lib/stores/core/DataCubeQueryEngine.js +13 -0
  33. package/lib/stores/core/DataCubeQueryEngine.js.map +1 -1
  34. package/lib/stores/core/DataCubeQuerySnapshot.d.ts +1 -1
  35. package/lib/stores/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  36. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts +2 -1
  37. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  38. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js +86 -53
  39. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  40. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts +37 -8
  41. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -1
  42. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js +227 -203
  43. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -1
  44. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.d.ts +3 -3
  45. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.d.ts.map +1 -1
  46. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.js +4 -8
  47. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.js.map +1 -1
  48. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts +7 -3
  49. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -1
  50. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js +16 -1
  51. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js.map +1 -1
  52. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts +1 -1
  53. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -1
  54. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js +10 -14
  55. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -1
  56. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts +1 -1
  57. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -1
  58. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +10 -14
  59. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -1
  60. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts +1 -1
  61. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -1
  62. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js +10 -14
  63. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -1
  64. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts +1 -1
  65. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -1
  66. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +10 -14
  67. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -1
  68. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts +1 -2
  69. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -1
  70. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js +15 -90
  71. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -1
  72. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts +1 -1
  73. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -1
  74. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +10 -14
  75. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -1
  76. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts +1 -1
  77. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -1
  78. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +6 -14
  79. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -1
  80. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts +1 -1
  81. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -1
  82. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +6 -14
  83. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -1
  84. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts +1 -1
  85. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -1
  86. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +14 -18
  87. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -1
  88. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts +1 -1
  89. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -1
  90. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +6 -14
  91. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -1
  92. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts +1 -1
  93. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -1
  94. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +14 -18
  95. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -1
  96. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts +1 -1
  97. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -1
  98. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +6 -14
  99. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -1
  100. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts +6 -4
  101. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -1
  102. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +15 -15
  103. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -1
  104. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts +6 -4
  105. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -1
  106. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js +10 -15
  107. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -1
  108. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts +1 -1
  109. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -1
  110. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js +14 -18
  111. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -1
  112. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts +1 -1
  113. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -1
  114. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +6 -14
  115. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -1
  116. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts +1 -1
  117. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -1
  118. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +14 -18
  119. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -1
  120. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts +1 -1
  121. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -1
  122. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +6 -14
  123. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -1
  124. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts +1 -1
  125. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -1
  126. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js +14 -14
  127. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -1
  128. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts +1 -1
  129. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -1
  130. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +14 -14
  131. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -1
  132. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts +1 -1
  133. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -1
  134. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js +19 -19
  135. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -1
  136. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts +1 -1
  137. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -1
  138. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +14 -14
  139. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -1
  140. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts +1 -1
  141. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -1
  142. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +10 -14
  143. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -1
  144. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts +1 -1
  145. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -1
  146. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +10 -14
  147. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -1
  148. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts +1 -1
  149. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -1
  150. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +14 -14
  151. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -1
  152. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts +1 -1
  153. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -1
  154. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js +10 -14
  155. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -1
  156. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts +1 -1
  157. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -1
  158. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +10 -14
  159. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -1
  160. package/lib/stores/core/model/DataCubeConfiguration.d.ts +2 -0
  161. package/lib/stores/core/model/DataCubeConfiguration.d.ts.map +1 -1
  162. package/lib/stores/core/model/DataCubeConfiguration.js +3 -1
  163. package/lib/stores/core/model/DataCubeConfiguration.js.map +1 -1
  164. package/lib/stores/view/DataCubeViewState.d.ts.map +1 -1
  165. package/lib/stores/view/DataCubeViewState.js +1 -1
  166. package/lib/stores/view/DataCubeViewState.js.map +1 -1
  167. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js +2 -2
  168. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  169. package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts.map +1 -1
  170. package/lib/stores/view/extend/DataCubeColumnEditorState.js +3 -6
  171. package/lib/stores/view/extend/DataCubeColumnEditorState.js.map +1 -1
  172. package/lib/stores/view/filter/DataCubeFilterEditorState.d.ts.map +1 -1
  173. package/lib/stores/view/filter/DataCubeFilterEditorState.js +3 -3
  174. package/lib/stores/view/filter/DataCubeFilterEditorState.js.map +1 -1
  175. package/lib/stores/view/grid/DataCubeGridClientEngine.js +1 -1
  176. package/lib/stores/view/grid/DataCubeGridClientEngine.js.map +1 -1
  177. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
  178. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js +5 -5
  179. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
  180. package/lib/stores/view/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
  181. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js +13 -5
  182. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js.map +1 -1
  183. package/lib/stores/view/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
  184. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js +8 -5
  185. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js.map +1 -1
  186. package/package.json +9 -9
  187. package/src/components/DataCube.tsx +1 -0
  188. package/src/components/DataCubePlaceholder.tsx +0 -1
  189. package/src/components/core/DataCubeCodeCheckErrorAlert.tsx +7 -3
  190. package/src/components/view/extend/DataCubeColumnEditor.tsx +7 -4
  191. package/src/components/view/filter/DataCubeFilterEditor.tsx +10 -19
  192. package/src/index.tsx +1 -0
  193. package/src/stores/core/DataCubeQueryBuilder.ts +20 -6
  194. package/src/stores/core/DataCubeQueryBuilderUtils.ts +38 -33
  195. package/src/stores/core/DataCubeQueryEngine.ts +17 -1
  196. package/src/stores/core/DataCubeQuerySnapshot.ts +1 -1
  197. package/src/stores/core/DataCubeQuerySnapshotBuilder.ts +148 -75
  198. package/src/stores/core/DataCubeQuerySnapshotBuilderUtils.ts +332 -260
  199. package/src/stores/core/filter/DataCubeQueryFilterEditorState.ts +7 -11
  200. package/src/stores/core/filter/DataCubeQueryFilterOperation.ts +28 -6
  201. package/src/stores/core/filter/DataCubeQueryFilterOperation__Contain.tsx +13 -21
  202. package/src/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +17 -21
  203. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +17 -21
  204. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +17 -21
  205. package/src/stores/core/filter/DataCubeQueryFilterOperation__Equal.tsx +13 -98
  206. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +17 -21
  207. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +13 -19
  208. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +9 -19
  209. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +17 -21
  210. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +13 -19
  211. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +17 -21
  212. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +13 -19
  213. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +24 -20
  214. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +14 -20
  215. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +17 -21
  216. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +13 -19
  217. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +17 -21
  218. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +13 -19
  219. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +20 -19
  220. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +20 -19
  221. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +20 -19
  222. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +24 -19
  223. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +25 -18
  224. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +21 -18
  225. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +24 -19
  226. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +17 -21
  227. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +17 -21
  228. package/src/stores/core/model/DataCubeConfiguration.ts +9 -1
  229. package/src/stores/view/DataCubeViewState.ts +1 -0
  230. package/src/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.ts +2 -2
  231. package/src/stores/view/extend/DataCubeColumnEditorState.tsx +2 -5
  232. package/src/stores/view/filter/DataCubeFilterEditorState.tsx +3 -7
  233. package/src/stores/view/grid/DataCubeGridClientEngine.ts +1 -1
  234. package/src/stores/view/grid/DataCubeGridConfigurationBuilder.tsx +6 -6
  235. package/src/stores/view/grid/DataCubeGridMenuBuilder.tsx +14 -5
  236. package/src/stores/view/grid/DataCubeGridQueryBuilder.ts +9 -5
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import {
17
17
  DataCubeQueryFilterOperation,
18
- generateDefaultFilterConditionPrimitiveTypeValue,
18
+ _defaultPrimitiveTypeValue,
19
19
  } from './DataCubeQueryFilterOperation.js';
20
20
  import type { DataCubeQuerySnapshotFilterCondition } from '../DataCubeQuerySnapshot.js';
21
21
  import type { DataCubeColumn } from '../model/DataCubeColumn.js';
@@ -23,6 +23,7 @@ import {
23
23
  DataCubeColumnDataType,
24
24
  DataCubeFunction,
25
25
  DataCubeQueryFilterOperator,
26
+ isPrimitiveType,
26
27
  ofDataType,
27
28
  type DataCubeOperationValue,
28
29
  } from '../DataCubeQueryEngine.js';
@@ -33,15 +34,11 @@ import {
33
34
  _property,
34
35
  _value,
35
36
  } from '../DataCubeQueryBuilderUtils.js';
36
- import { guaranteeNonNullable } from '@finos/legend-shared';
37
+ import { guaranteeNonNullable, returnUndefOnError } from '@finos/legend-shared';
38
+ import { type V1_AppliedFunction } from '@finos/legend-graph';
37
39
  import {
38
- V1_PrimitiveValueSpecification,
39
- type V1_AppliedFunction,
40
- type V1_AppliedProperty,
41
- } from '@finos/legend-graph';
42
- import {
43
- _buildConditionSnapshotProperty,
44
- _dataCubeOperationValue,
40
+ _unwrapNotFilterCondition,
41
+ _baseFilterCondition,
45
42
  } from '../DataCubeQuerySnapshotBuilderUtils.js';
46
43
 
47
44
  export class DataCubeQueryFilterOperation__NotStartWith extends DataCubeQueryFilterOperation {
@@ -67,8 +64,9 @@ export class DataCubeQueryFilterOperation__NotStartWith extends DataCubeQueryFil
67
64
 
68
65
  isCompatibleWithValue(value: DataCubeOperationValue) {
69
66
  return (
70
- ofDataType(value.type, [DataCubeColumnDataType.TEXT]) &&
71
67
  value.value !== undefined &&
68
+ isPrimitiveType(value.type) &&
69
+ ofDataType(value.type, [DataCubeColumnDataType.TEXT]) &&
72
70
  !Array.isArray(value.value)
73
71
  );
74
72
  }
@@ -76,20 +74,27 @@ export class DataCubeQueryFilterOperation__NotStartWith extends DataCubeQueryFil
76
74
  generateDefaultValue(column: DataCubeColumn) {
77
75
  return {
78
76
  type: column.type,
79
- value: generateDefaultFilterConditionPrimitiveTypeValue(column.type),
77
+ value: _defaultPrimitiveTypeValue(column.type),
80
78
  };
81
79
  }
82
80
 
83
- buildConditionSnapshot(expression: V1_AppliedFunction) {
84
- const value = expression.parameters[1];
85
- const filterConditionSnapshot = _buildConditionSnapshotProperty(
86
- expression.parameters[0] as V1_AppliedProperty,
87
- this.operator,
81
+ buildConditionSnapshot(
82
+ expression: V1_AppliedFunction,
83
+ columnGetter: (name: string) => DataCubeColumn,
84
+ ) {
85
+ const unwrapped = returnUndefOnError(() =>
86
+ _unwrapNotFilterCondition(expression),
88
87
  );
89
- if (value instanceof V1_PrimitiveValueSpecification) {
90
- filterConditionSnapshot.value = _dataCubeOperationValue(value);
88
+ if (!unwrapped) {
89
+ return undefined;
91
90
  }
92
- return filterConditionSnapshot satisfies DataCubeQuerySnapshotFilterCondition;
91
+ return this._finalizeConditionSnapshot(
92
+ _baseFilterCondition(
93
+ unwrapped,
94
+ columnGetter,
95
+ DataCubeFunction.STARTS_WITH,
96
+ ),
97
+ );
93
98
  }
94
99
 
95
100
  buildConditionExpression(condition: DataCubeQuerySnapshotFilterCondition) {
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import {
17
17
  DataCubeQueryFilterOperation,
18
- generateDefaultFilterConditionPrimitiveTypeValue,
18
+ _defaultPrimitiveTypeValue,
19
19
  } from './DataCubeQueryFilterOperation.js';
20
20
  import type { DataCubeQuerySnapshotFilterCondition } from '../DataCubeQuerySnapshot.js';
21
21
  import type { DataCubeColumn } from '../model/DataCubeColumn.js';
@@ -23,6 +23,7 @@ import {
23
23
  DataCubeColumnDataType,
24
24
  DataCubeFunction,
25
25
  DataCubeQueryFilterOperator,
26
+ isPrimitiveType,
26
27
  ofDataType,
27
28
  type DataCubeOperationValue,
28
29
  } from '../DataCubeQueryEngine.js';
@@ -33,15 +34,8 @@ import {
33
34
  _value,
34
35
  } from '../DataCubeQueryBuilderUtils.js';
35
36
  import { guaranteeNonNullable } from '@finos/legend-shared';
36
- import {
37
- V1_PrimitiveValueSpecification,
38
- type V1_AppliedFunction,
39
- type V1_AppliedProperty,
40
- } from '@finos/legend-graph';
41
- import {
42
- _buildConditionSnapshotProperty,
43
- _dataCubeOperationValue,
44
- } from '../DataCubeQuerySnapshotBuilderUtils.js';
37
+ import { type V1_AppliedFunction } from '@finos/legend-graph';
38
+ import { _baseFilterCondition } from '../DataCubeQuerySnapshotBuilderUtils.js';
45
39
 
46
40
  export class DataCubeQueryFilterOperation__StartWith extends DataCubeQueryFilterOperation {
47
41
  override get label() {
@@ -66,8 +60,9 @@ export class DataCubeQueryFilterOperation__StartWith extends DataCubeQueryFilter
66
60
 
67
61
  isCompatibleWithValue(value: DataCubeOperationValue) {
68
62
  return (
69
- ofDataType(value.type, [DataCubeColumnDataType.TEXT]) &&
70
63
  value.value !== undefined &&
64
+ isPrimitiveType(value.type) &&
65
+ ofDataType(value.type, [DataCubeColumnDataType.TEXT]) &&
71
66
  !Array.isArray(value.value)
72
67
  );
73
68
  }
@@ -75,20 +70,21 @@ export class DataCubeQueryFilterOperation__StartWith extends DataCubeQueryFilter
75
70
  generateDefaultValue(column: DataCubeColumn) {
76
71
  return {
77
72
  type: column.type,
78
- value: generateDefaultFilterConditionPrimitiveTypeValue(column.type),
73
+ value: _defaultPrimitiveTypeValue(column.type),
79
74
  };
80
75
  }
81
76
 
82
- buildConditionSnapshot(expression: V1_AppliedFunction) {
83
- const value = expression.parameters[1];
84
- const filterConditionSnapshot = _buildConditionSnapshotProperty(
85
- expression.parameters[0] as V1_AppliedProperty,
86
- this.operator,
77
+ buildConditionSnapshot(
78
+ expression: V1_AppliedFunction,
79
+ columnGetter: (name: string) => DataCubeColumn,
80
+ ) {
81
+ return this._finalizeConditionSnapshot(
82
+ _baseFilterCondition(
83
+ expression,
84
+ columnGetter,
85
+ DataCubeFunction.STARTS_WITH,
86
+ ),
87
87
  );
88
- if (value instanceof V1_PrimitiveValueSpecification) {
89
- filterConditionSnapshot.value = _dataCubeOperationValue(value);
90
- }
91
- return filterConditionSnapshot satisfies DataCubeQuerySnapshotFilterCondition;
92
88
  }
93
89
 
94
90
  buildConditionExpression(condition: DataCubeQuerySnapshotFilterCondition) {
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import {
17
17
  DataCubeQueryFilterOperation,
18
- generateDefaultFilterConditionPrimitiveTypeValue,
18
+ _defaultPrimitiveTypeValue,
19
19
  } from './DataCubeQueryFilterOperation.js';
20
20
  import type { DataCubeQuerySnapshotFilterCondition } from '../DataCubeQuerySnapshot.js';
21
21
  import type { DataCubeColumn } from '../model/DataCubeColumn.js';
@@ -23,6 +23,7 @@ import {
23
23
  DataCubeColumnDataType,
24
24
  DataCubeFunction,
25
25
  DataCubeQueryFilterOperator,
26
+ isPrimitiveType,
26
27
  ofDataType,
27
28
  type DataCubeOperationValue,
28
29
  } from '../DataCubeQueryEngine.js';
@@ -34,15 +35,8 @@ import {
34
35
  _var,
35
36
  } from '../DataCubeQueryBuilderUtils.js';
36
37
  import { guaranteeNonNullable } from '@finos/legend-shared';
37
- import {
38
- V1_PrimitiveValueSpecification,
39
- type V1_AppliedFunction,
40
- type V1_AppliedProperty,
41
- } from '@finos/legend-graph';
42
- import {
43
- _buildConditionSnapshotProperty,
44
- _dataCubeOperationValue,
45
- } from '../DataCubeQuerySnapshotBuilderUtils.js';
38
+ import { type V1_AppliedFunction } from '@finos/legend-graph';
39
+ import { _caseSensitiveBaseFilterCondition } from '../DataCubeQuerySnapshotBuilderUtils.js';
46
40
 
47
41
  export class DataCubeQueryFilterOperation__StartWithCaseInsensitive extends DataCubeQueryFilterOperation {
48
42
  override get label() {
@@ -67,8 +61,9 @@ export class DataCubeQueryFilterOperation__StartWithCaseInsensitive extends Data
67
61
 
68
62
  isCompatibleWithValue(value: DataCubeOperationValue) {
69
63
  return (
70
- ofDataType(value.type, [DataCubeColumnDataType.TEXT]) &&
71
64
  value.value !== undefined &&
65
+ isPrimitiveType(value.type) &&
66
+ ofDataType(value.type, [DataCubeColumnDataType.TEXT]) &&
72
67
  !Array.isArray(value.value)
73
68
  );
74
69
  }
@@ -76,20 +71,21 @@ export class DataCubeQueryFilterOperation__StartWithCaseInsensitive extends Data
76
71
  generateDefaultValue(column: DataCubeColumn) {
77
72
  return {
78
73
  type: column.type,
79
- value: generateDefaultFilterConditionPrimitiveTypeValue(column.type),
74
+ value: _defaultPrimitiveTypeValue(column.type),
80
75
  };
81
76
  }
82
77
 
83
- buildConditionSnapshot(expression: V1_AppliedFunction) {
84
- const value = expression.parameters[1];
85
- const filterConditionSnapshot = _buildConditionSnapshotProperty(
86
- expression.parameters[0] as V1_AppliedProperty,
87
- this.operator,
78
+ buildConditionSnapshot(
79
+ expression: V1_AppliedFunction,
80
+ columnGetter: (name: string) => DataCubeColumn,
81
+ ) {
82
+ return this._finalizeConditionSnapshot(
83
+ _caseSensitiveBaseFilterCondition(
84
+ expression,
85
+ columnGetter,
86
+ DataCubeFunction.STARTS_WITH,
87
+ ),
88
88
  );
89
- if (value instanceof V1_PrimitiveValueSpecification) {
90
- filterConditionSnapshot.value = _dataCubeOperationValue(value);
91
- }
92
- return filterConditionSnapshot satisfies DataCubeQuerySnapshotFilterCondition;
93
89
  }
94
90
 
95
91
  buildConditionExpression(condition: DataCubeQuerySnapshotFilterCondition) {
@@ -42,7 +42,11 @@ import {
42
42
  DEFAULT_TREE_COLUMN_SORT_DIRECTION,
43
43
  DEFAULT_REPORT_NAME,
44
44
  } from '../DataCubeQueryEngine.js';
45
- import { SerializationFactory, usingModelSchema } from '@finos/legend-shared';
45
+ import {
46
+ SerializationFactory,
47
+ usingModelSchema,
48
+ uuid,
49
+ } from '@finos/legend-shared';
46
50
  import { createModelSchema, list, optional, primitive, raw } from 'serializr';
47
51
 
48
52
  export type DataCubeConfigurationColorKey =
@@ -52,6 +56,8 @@ export type DataCubeConfigurationColorKey =
52
56
  | 'error';
53
57
 
54
58
  export class DataCubeColumnConfiguration {
59
+ readonly uuid = uuid();
60
+
55
61
  name: string;
56
62
  type: string;
57
63
 
@@ -181,6 +187,8 @@ export class DataCubePivotLayoutConfiguration {
181
187
  }
182
188
 
183
189
  export class DataCubeConfiguration {
190
+ readonly uuid = uuid();
191
+
184
192
  name = DEFAULT_REPORT_NAME;
185
193
  description?: string | undefined;
186
194
  columns: DataCubeColumnConfiguration[] = [];
@@ -139,6 +139,7 @@ export class DataCubeViewState {
139
139
  source,
140
140
  query,
141
141
  this.engine.filterOperations,
142
+ this.engine.aggregateOperations,
142
143
  );
143
144
  this.snapshotService.broadcastSnapshot(initialSnapshot);
144
145
  this.dataCube.options?.onViewInitialized?.({
@@ -21,7 +21,7 @@ import type { DataCubeQueryEditorPanelState } from './DataCubeEditorPanelState.j
21
21
  import type { DataCubeEditorState } from './DataCubeEditorState.js';
22
22
  import { DataCubeEditorMutableColumnConfiguration } from './DataCubeEditorMutableConfiguration.js';
23
23
  import {
24
- getNonNullableEntry,
24
+ at,
25
25
  guaranteeNonNullable,
26
26
  type PlainObject,
27
27
  } from '@finos/legend-shared';
@@ -93,7 +93,7 @@ export class DataCubeEditorColumnPropertiesPanelState
93
93
  );
94
94
 
95
95
  if (!this.selectedColumn && this.columns.length) {
96
- this.setSelectedColumnName(getNonNullableEntry(this.columns, 0).name);
96
+ this.setSelectedColumnName(at(this.columns, 0).name);
97
97
  }
98
98
  }
99
99
 
@@ -32,6 +32,7 @@ import {
32
32
  DataCubeColumnKind,
33
33
  DEFAULT_LAMBDA_VARIABLE_NAME,
34
34
  getDataType,
35
+ isPrimitiveType,
35
36
  } from '../../core/DataCubeQueryEngine.js';
36
37
  import {
37
38
  clearMarkers,
@@ -41,7 +42,6 @@ import {
41
42
  import type { DataCubeExtendManagerState } from './DataCubeExtendManagerState.js';
42
43
  import {
43
44
  EngineError,
44
- PRIMITIVE_TYPE,
45
45
  V1_Lambda,
46
46
  type V1_ValueSpecification,
47
47
  } from '@finos/legend-graph';
@@ -248,10 +248,7 @@ export abstract class DataCubeColumnBaseEditorState {
248
248
  (col) => col.name === this._name,
249
249
  )?.type;
250
250
  returnType =
251
- returnType &&
252
- (Object.values(PRIMITIVE_TYPE) as string[]).includes(returnType)
253
- ? returnType
254
- : undefined;
251
+ returnType && isPrimitiveType(returnType) ? returnType : undefined;
255
252
  this.setReturnType(returnType);
256
253
  return returnType;
257
254
  } catch (error) {
@@ -20,11 +20,7 @@ import {
20
20
  DataCubeQueryFilterOperator,
21
21
  } from '../../core/DataCubeQueryEngine.js';
22
22
  import type { DataCubeQuerySnapshot } from '../../core/DataCubeQuerySnapshot.js';
23
- import {
24
- deepClone,
25
- getNonNullableEntry,
26
- guaranteeNonNullable,
27
- } from '@finos/legend-shared';
23
+ import { deepClone, at, guaranteeNonNullable } from '@finos/legend-shared';
28
24
  import type { DataCubeViewState } from '../DataCubeViewState.js';
29
25
  import {
30
26
  type DataCubeFilterEditorTree,
@@ -141,7 +137,7 @@ export class DataCubeFilterEditorState extends DataCubeQuerySnapshotController {
141
137
  );
142
138
  } else if (baseNode instanceof DataCubeFilterEditorConditionGroupTreeNode) {
143
139
  if (this.columns.length !== 0) {
144
- const columnConfig = getNonNullableEntry(this.columns, 0);
140
+ const columnConfig = at(this.columns, 0);
145
141
  const column = {
146
142
  name: columnConfig.name,
147
143
  type: columnConfig.type,
@@ -222,7 +218,7 @@ export class DataCubeFilterEditorState extends DataCubeQuerySnapshotController {
222
218
  // flattening means completely remove the filter tree
223
219
  if (parentNode.children.length === 1) {
224
220
  if (parentNode !== this.tree.root) {
225
- const childNode = getNonNullableEntry(parentNode.children, 0);
221
+ const childNode = at(parentNode.children, 0);
226
222
  const grandParentNode = guaranteeNonNullable(parentNode.parent);
227
223
 
228
224
  parentNode.removeChild(childNode);
@@ -370,7 +370,7 @@ export class DataCubeGridClientServerSideDataSource
370
370
 
371
371
  // NOTE: if h-pivot is enabled, update the cast columns
372
372
  // and panels which might be affected by this (e.g. sorts)
373
- // Because is an expensive operation in certain case, we only
373
+ // Because this can be an expensive operation, we will only
374
374
  // recompute when it's not a drilldown or paging request,
375
375
  // but we could still optimize further if needed.
376
376
  if (!this._grid.isPaginationEnabled || request.startRow === 0) {
@@ -57,8 +57,8 @@ import {
57
57
  INTERNAL__GRID_CLIENT_ROOT_AGGREGATION_COLUMN_ID,
58
58
  } from './DataCubeGridClientEngine.js';
59
59
  import {
60
- getNonNullableEntry,
61
- getNullableLastEntry,
60
+ at,
61
+ last,
62
62
  getQueryParameters,
63
63
  getQueryParameterValue,
64
64
  guaranteeNonNullable,
@@ -681,10 +681,10 @@ function generateDefinitionForPivotResultColumns(
681
681
  let leaf: ColDef | undefined = undefined;
682
682
  let id = '';
683
683
  for (let i = 0; i < col.values.length; i++) {
684
- const value = getNonNullableEntry(col.values, i);
684
+ const value = at(col.values, i);
685
685
  id =
686
686
  id === ''
687
- ? getNonNullableEntry(col.values, i)
687
+ ? at(col.values, i)
688
688
  : `${id}${PIVOT_COLUMN_NAME_VALUE_SEPARATOR}${value}`;
689
689
 
690
690
  if (i !== col.values.length - 1) {
@@ -756,13 +756,13 @@ function generateDefinitionForPivotResultColumns(
756
756
 
757
757
  // sort the leaf level columns based on the order of selected/configuration columns
758
758
  (currentCollection as ColDef[]).sort((a, b) => {
759
- const colAName = getNullableLastEntry(
759
+ const colAName = last(
760
760
  a.colId?.split(PIVOT_COLUMN_NAME_VALUE_SEPARATOR) ?? [],
761
761
  );
762
762
  const colAConf = colAName
763
763
  ? _findCol(configuration.columns, colAName)
764
764
  : undefined;
765
- const colBName = getNullableLastEntry(
765
+ const colBName = last(
766
766
  b.colId?.split(PIVOT_COLUMN_NAME_VALUE_SEPARATOR) ?? [],
767
767
  );
768
768
  const colBConf = colBName
@@ -30,6 +30,7 @@ import {
30
30
  DataCubeQueryFilterOperator,
31
31
  isPivotResultColumnName,
32
32
  getPivotResultColumnBaseColumnName,
33
+ DataCubeOperationAdvancedValueType,
33
34
  } from '../../core/DataCubeQueryEngine.js';
34
35
  import {
35
36
  guaranteeIsNumber,
@@ -134,12 +135,12 @@ function getColumnFilterOperations(
134
135
  function buildNewFilterConditionMenuItem(
135
136
  columnConfiguration: DataCubeColumnConfiguration,
136
137
  operator: string,
137
- value: { label: string; value: DataCubeOperationValue } | undefined,
138
+ value: { label?: string | undefined; value: DataCubeOperationValue },
138
139
  controller: DataCubeGridControllerState,
139
140
  ): MenuItemDef {
140
141
  const operation = controller.view.engine.getFilterOperation(operator);
141
142
  return {
142
- name: `Add Filter: ${columnConfiguration.name} ${operation.textLabel}${value ? ` ${value.label}` : ''}`,
143
+ name: `Add Filter: ${columnConfiguration.name} ${operation.textLabel}${value.label ? ` ${value.label}` : ''}`,
143
144
  action: () => {
144
145
  controller.addNewFilterCondition(
145
146
  new DataCubeFilterEditorConditionTreeNode(
@@ -149,7 +150,7 @@ function buildNewFilterConditionMenuItem(
149
150
  type: columnConfiguration.type,
150
151
  },
151
152
  operation,
152
- value?.value,
153
+ value.value,
153
154
  undefined,
154
155
  ),
155
156
  );
@@ -324,13 +325,21 @@ export function generateMenuBuilder(
324
325
  buildNewFilterConditionMenuItem(
325
326
  _columnConfiguration,
326
327
  DataCubeQueryFilterOperator.IS_NULL,
327
- undefined,
328
+ {
329
+ value: {
330
+ type: DataCubeOperationAdvancedValueType.VOID,
331
+ },
332
+ },
328
333
  controller,
329
334
  ),
330
335
  buildNewFilterConditionMenuItem(
331
336
  _columnConfiguration,
332
337
  DataCubeQueryFilterOperator.IS_NOT_NULL,
333
- undefined,
338
+ {
339
+ value: {
340
+ type: DataCubeOperationAdvancedValueType.VOID,
341
+ },
342
+ },
334
343
  controller,
335
344
  ),
336
345
  ];
@@ -32,6 +32,7 @@ import {
32
32
  isPivotResultColumnName,
33
33
  PIVOT_COLUMN_NAME_VALUE_SEPARATOR,
34
34
  DataCubeQuerySortDirection,
35
+ DataCubeOperationAdvancedValueType,
35
36
  } from '../../core/DataCubeQueryEngine.js';
36
37
  import {
37
38
  guaranteeNonNullable,
@@ -234,13 +235,14 @@ function generateGridDataFetchExecutableQueryPostProcessor(
234
235
  return {
235
236
  ...groupByColumn,
236
237
  operator: DataCubeQueryFilterOperator.IS_NULL,
237
- value: undefined,
238
+ value: {
239
+ type: DataCubeOperationAdvancedValueType.VOID,
240
+ },
238
241
  };
239
242
  }
240
243
  const condition = {
241
244
  ...groupByColumn,
242
245
  operator: DataCubeQueryFilterOperator.EQUAL,
243
- value: undefined,
244
246
  };
245
247
  switch (groupByColumn.type) {
246
248
  case PRIMITIVE_TYPE.BOOLEAN:
@@ -291,11 +293,13 @@ function generateGridDataFetchExecutableQueryPostProcessor(
291
293
  );
292
294
  }
293
295
 
296
+ // if pivot is present, populate the count aggregation columns
297
+ // by modifying pivot and pivot cast function expressions
298
+ const countAggColumns: V1_ColSpec[] = [];
299
+ _addCountAggColumnToPivot(funcMap, countAggColumns);
300
+
294
301
  // modify groupBy() based off the current drilldown level
295
302
  if (request.groupKeys.length < groupBy.columns.length) {
296
- const countAggColumns: V1_ColSpec[] = [];
297
- _addCountAggColumnToPivot(funcMap, countAggColumns);
298
-
299
303
  const groupByIdx = sequence.indexOf(funcMap.groupBy);
300
304
  const groupByColumns = groupBy.columns.slice(
301
305
  0,