@finos/legend-data-cube 0.0.41 → 0.0.42

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 (231) 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/package.json +4 -4
  19. package/lib/stores/core/DataCubeQueryBuilder.d.ts.map +1 -1
  20. package/lib/stores/core/DataCubeQueryBuilder.js +12 -6
  21. package/lib/stores/core/DataCubeQueryBuilder.js.map +1 -1
  22. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts +5 -5
  23. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
  24. package/lib/stores/core/DataCubeQueryBuilderUtils.js +20 -20
  25. package/lib/stores/core/DataCubeQueryBuilderUtils.js.map +1 -1
  26. package/lib/stores/core/DataCubeQueryEngine.d.ts +4 -2
  27. package/lib/stores/core/DataCubeQueryEngine.d.ts.map +1 -1
  28. package/lib/stores/core/DataCubeQueryEngine.js +13 -0
  29. package/lib/stores/core/DataCubeQueryEngine.js.map +1 -1
  30. package/lib/stores/core/DataCubeQuerySnapshot.d.ts +1 -1
  31. package/lib/stores/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  32. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts +2 -1
  33. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  34. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js +86 -53
  35. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  36. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts +37 -8
  37. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -1
  38. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js +227 -203
  39. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -1
  40. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.d.ts +3 -3
  41. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.d.ts.map +1 -1
  42. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.js +4 -8
  43. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.js.map +1 -1
  44. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts +7 -3
  45. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -1
  46. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js +16 -1
  47. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js.map +1 -1
  48. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts +1 -1
  49. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -1
  50. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js +10 -14
  51. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -1
  52. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts +1 -1
  53. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -1
  54. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +10 -14
  55. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -1
  56. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts +1 -1
  57. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -1
  58. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js +10 -14
  59. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -1
  60. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts +1 -1
  61. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -1
  62. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +10 -14
  63. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -1
  64. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts +1 -2
  65. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -1
  66. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js +15 -90
  67. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -1
  68. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts +1 -1
  69. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -1
  70. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +10 -14
  71. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -1
  72. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts +1 -1
  73. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -1
  74. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +6 -14
  75. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -1
  76. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts +1 -1
  77. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -1
  78. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +6 -14
  79. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -1
  80. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts +1 -1
  81. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -1
  82. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +14 -18
  83. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -1
  84. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts +1 -1
  85. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -1
  86. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +6 -14
  87. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -1
  88. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts +1 -1
  89. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -1
  90. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +14 -18
  91. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -1
  92. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts +1 -1
  93. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -1
  94. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +6 -14
  95. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -1
  96. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts +6 -4
  97. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -1
  98. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +15 -15
  99. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -1
  100. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts +6 -4
  101. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -1
  102. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js +10 -15
  103. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -1
  104. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts +1 -1
  105. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -1
  106. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js +14 -18
  107. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -1
  108. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts +1 -1
  109. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -1
  110. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +6 -14
  111. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -1
  112. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts +1 -1
  113. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -1
  114. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +14 -18
  115. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -1
  116. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts +1 -1
  117. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -1
  118. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +6 -14
  119. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -1
  120. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts +1 -1
  121. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -1
  122. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js +14 -14
  123. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -1
  124. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts +1 -1
  125. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -1
  126. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +14 -14
  127. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -1
  128. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts +1 -1
  129. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -1
  130. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js +19 -19
  131. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -1
  132. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts +1 -1
  133. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -1
  134. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +14 -14
  135. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -1
  136. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts +1 -1
  137. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -1
  138. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +10 -14
  139. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -1
  140. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts +1 -1
  141. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -1
  142. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +10 -14
  143. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -1
  144. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts +1 -1
  145. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -1
  146. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +14 -14
  147. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -1
  148. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts +1 -1
  149. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -1
  150. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js +10 -14
  151. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -1
  152. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts +1 -1
  153. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -1
  154. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +10 -14
  155. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -1
  156. package/lib/stores/core/model/DataCubeConfiguration.d.ts +2 -0
  157. package/lib/stores/core/model/DataCubeConfiguration.d.ts.map +1 -1
  158. package/lib/stores/core/model/DataCubeConfiguration.js +3 -1
  159. package/lib/stores/core/model/DataCubeConfiguration.js.map +1 -1
  160. package/lib/stores/view/DataCubeViewState.d.ts.map +1 -1
  161. package/lib/stores/view/DataCubeViewState.js +1 -1
  162. package/lib/stores/view/DataCubeViewState.js.map +1 -1
  163. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js +2 -2
  164. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  165. package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts.map +1 -1
  166. package/lib/stores/view/extend/DataCubeColumnEditorState.js +3 -6
  167. package/lib/stores/view/extend/DataCubeColumnEditorState.js.map +1 -1
  168. package/lib/stores/view/filter/DataCubeFilterEditorState.d.ts.map +1 -1
  169. package/lib/stores/view/filter/DataCubeFilterEditorState.js +3 -3
  170. package/lib/stores/view/filter/DataCubeFilterEditorState.js.map +1 -1
  171. package/lib/stores/view/grid/DataCubeGridClientEngine.js +1 -1
  172. package/lib/stores/view/grid/DataCubeGridClientEngine.js.map +1 -1
  173. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
  174. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js +5 -5
  175. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
  176. package/lib/stores/view/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
  177. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js +13 -5
  178. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js.map +1 -1
  179. package/lib/stores/view/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
  180. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js +8 -5
  181. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js.map +1 -1
  182. package/package.json +9 -9
  183. package/src/components/DataCube.tsx +1 -0
  184. package/src/components/DataCubePlaceholder.tsx +0 -1
  185. package/src/components/core/DataCubeCodeCheckErrorAlert.tsx +7 -3
  186. package/src/components/view/extend/DataCubeColumnEditor.tsx +7 -4
  187. package/src/components/view/filter/DataCubeFilterEditor.tsx +10 -19
  188. package/src/stores/core/DataCubeQueryBuilder.ts +20 -6
  189. package/src/stores/core/DataCubeQueryBuilderUtils.ts +38 -33
  190. package/src/stores/core/DataCubeQueryEngine.ts +17 -1
  191. package/src/stores/core/DataCubeQuerySnapshot.ts +1 -1
  192. package/src/stores/core/DataCubeQuerySnapshotBuilder.ts +148 -75
  193. package/src/stores/core/DataCubeQuerySnapshotBuilderUtils.ts +332 -260
  194. package/src/stores/core/filter/DataCubeQueryFilterEditorState.ts +7 -11
  195. package/src/stores/core/filter/DataCubeQueryFilterOperation.ts +28 -6
  196. package/src/stores/core/filter/DataCubeQueryFilterOperation__Contain.tsx +13 -21
  197. package/src/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +17 -21
  198. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +17 -21
  199. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +17 -21
  200. package/src/stores/core/filter/DataCubeQueryFilterOperation__Equal.tsx +13 -98
  201. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +17 -21
  202. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +13 -19
  203. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +9 -19
  204. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +17 -21
  205. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +13 -19
  206. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +17 -21
  207. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +13 -19
  208. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +24 -20
  209. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +14 -20
  210. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +17 -21
  211. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +13 -19
  212. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +17 -21
  213. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +13 -19
  214. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +20 -19
  215. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +20 -19
  216. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +20 -19
  217. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +24 -19
  218. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +25 -18
  219. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +21 -18
  220. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +24 -19
  221. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +17 -21
  222. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +17 -21
  223. package/src/stores/core/model/DataCubeConfiguration.ts +9 -1
  224. package/src/stores/view/DataCubeViewState.ts +1 -0
  225. package/src/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.ts +2 -2
  226. package/src/stores/view/extend/DataCubeColumnEditorState.tsx +2 -5
  227. package/src/stores/view/filter/DataCubeFilterEditorState.tsx +3 -7
  228. package/src/stores/view/grid/DataCubeGridClientEngine.ts +1 -1
  229. package/src/stores/view/grid/DataCubeGridConfigurationBuilder.tsx +6 -6
  230. package/src/stores/view/grid/DataCubeGridMenuBuilder.tsx +14 -5
  231. package/src/stores/view/grid/DataCubeGridQueryBuilder.ts +9 -5
@@ -64,13 +64,13 @@ export abstract class DataCubeFilterEditorTreeNode {
64
64
  export class DataCubeFilterEditorConditionTreeNode extends DataCubeFilterEditorTreeNode {
65
65
  column: DataCubeColumn;
66
66
  operation: DataCubeQueryFilterOperation;
67
- value: DataCubeOperationValue | undefined;
67
+ value!: DataCubeOperationValue;
68
68
 
69
69
  constructor(
70
70
  parent: DataCubeFilterEditorConditionGroupTreeNode | undefined,
71
71
  column: DataCubeColumn,
72
72
  operation: DataCubeQueryFilterOperation,
73
- value: DataCubeOperationValue | undefined,
73
+ value: DataCubeOperationValue,
74
74
  not: boolean | undefined,
75
75
  ) {
76
76
  super(parent, not);
@@ -100,18 +100,14 @@ export class DataCubeFilterEditorConditionTreeNode extends DataCubeFilterEditorT
100
100
  this.operation = operation;
101
101
  }
102
102
 
103
- setValue(value: DataCubeOperationValue | undefined) {
104
- this.value = value
105
- ? isObservable(value)
106
- ? value
107
- : makeObservable(value, { value: observable })
108
- : undefined;
103
+ setValue(value: DataCubeOperationValue) {
104
+ this.value = isObservable(value)
105
+ ? value
106
+ : makeObservable(value, { value: observable });
109
107
  }
110
108
 
111
109
  updateValue(value: unknown) {
112
- if (this.value) {
113
- this.value.value = value;
114
- }
110
+ this.value.value = value;
115
111
  }
116
112
  }
117
113
 
@@ -31,9 +31,7 @@ import {
31
31
 
32
32
  // --------------------------------- UTILITIES ---------------------------------
33
33
 
34
- export function generateDefaultFilterConditionPrimitiveTypeValue(
35
- type: string,
36
- ): unknown {
34
+ export function _defaultPrimitiveTypeValue(type: string): unknown {
37
35
  switch (type) {
38
36
  case PRIMITIVE_TYPE.STRING:
39
37
  return '';
@@ -80,14 +78,38 @@ export abstract class DataCubeQueryFilterOperation {
80
78
  abstract isCompatibleWithColumn(column: DataCubeColumn): boolean;
81
79
  abstract isCompatibleWithValue(value: DataCubeOperationValue): boolean;
82
80
 
83
- abstract generateDefaultValue(
84
- column: DataCubeColumn,
85
- ): DataCubeOperationValue | undefined;
81
+ abstract generateDefaultValue(column: DataCubeColumn): DataCubeOperationValue;
86
82
 
87
83
  abstract buildConditionSnapshot(
88
84
  expression: V1_AppliedFunction,
85
+ columnGetter: (name: string) => DataCubeColumn,
89
86
  ): DataCubeQuerySnapshotFilterCondition | undefined;
90
87
 
88
+ protected _finalizeConditionSnapshot(
89
+ data:
90
+ | {
91
+ column: DataCubeColumn;
92
+ value: DataCubeOperationValue;
93
+ }
94
+ | undefined,
95
+ ): DataCubeQuerySnapshotFilterCondition | undefined {
96
+ if (!data) {
97
+ return undefined;
98
+ }
99
+ const { column, value } = data;
100
+ if (
101
+ !this.isCompatibleWithColumn(column) ||
102
+ !this.isCompatibleWithValue(value)
103
+ ) {
104
+ return undefined;
105
+ }
106
+ return {
107
+ ...column,
108
+ operator: this.operator,
109
+ value,
110
+ };
111
+ }
112
+
91
113
  abstract buildConditionExpression(
92
114
  condition: DataCubeQuerySnapshotFilterCondition,
93
115
  ): V1_AppliedFunction | undefined;
@@ -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__Contain extends DataCubeQueryFilterOperation {
47
41
  override get label() {
@@ -66,8 +60,9 @@ export class DataCubeQueryFilterOperation__Contain extends DataCubeQueryFilterOp
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,17 @@ export class DataCubeQueryFilterOperation__Contain extends DataCubeQueryFilterOp
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(expression, columnGetter, DataCubeFunction.CONTAINS),
87
83
  );
88
- if (value instanceof V1_PrimitiveValueSpecification) {
89
- filterConditionSnapshot.value = _dataCubeOperationValue(value);
90
- }
91
- return filterConditionSnapshot satisfies DataCubeQuerySnapshotFilterCondition;
92
84
  }
93
85
 
94
86
  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__ContainCaseInsensitive extends DataCubeQueryFilterOperation {
48
42
  override get label() {
@@ -67,8 +61,9 @@ export class DataCubeQueryFilterOperation__ContainCaseInsensitive extends DataCu
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__ContainCaseInsensitive extends DataCu
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.CONTAINS,
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) {
@@ -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__EndWith extends DataCubeQueryFilterOperation {
47
41
  override get label() {
@@ -66,8 +60,9 @@ export class DataCubeQueryFilterOperation__EndWith extends DataCubeQueryFilterOp
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__EndWith extends DataCubeQueryFilterOp
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.ENDS_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__EndWithCaseInsensitive extends DataCubeQueryFilterOperation {
48
42
  override get label() {
@@ -67,8 +61,9 @@ export class DataCubeQueryFilterOperation__EndWithCaseInsensitive extends DataCu
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__EndWithCaseInsensitive extends DataCu
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.ENDS_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) {
@@ -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__Equal extends DataCubeQueryFilterOperation {
47
41
  override get label() {
@@ -71,13 +65,14 @@ export class DataCubeQueryFilterOperation__Equal extends DataCubeQueryFilterOper
71
65
 
72
66
  isCompatibleWithValue(value: DataCubeOperationValue) {
73
67
  return (
68
+ value.value !== undefined &&
69
+ isPrimitiveType(value.type) &&
74
70
  ofDataType(value.type, [
75
71
  DataCubeColumnDataType.TEXT,
76
72
  DataCubeColumnDataType.NUMBER,
77
73
  DataCubeColumnDataType.DATE,
78
74
  DataCubeColumnDataType.TIME,
79
75
  ]) &&
80
- value.value !== undefined &&
81
76
  !Array.isArray(value.value)
82
77
  );
83
78
  }
@@ -85,97 +80,17 @@ export class DataCubeQueryFilterOperation__Equal extends DataCubeQueryFilterOper
85
80
  generateDefaultValue(column: DataCubeColumn) {
86
81
  return {
87
82
  type: column.type,
88
- value: generateDefaultFilterConditionPrimitiveTypeValue(column.type),
83
+ value: _defaultPrimitiveTypeValue(column.type),
89
84
  };
90
85
  }
91
86
 
92
- // buildConditionSnapshot(expression: V1_AppliedFunction) {
93
- /** TODO: @datacube roundtrip */
94
- // export const buildPostFilterConditionState = (
95
- // postFilterState: QueryBuilderPostFilterState,
96
- // expression: FunctionExpression,
97
- // operatorFunctionFullPath | undefined,
98
- // operator: QueryBuilderPostFilterOperator,
99
- // ): PostFilterConditionState | undefined => {
100
- // let postConditionState: PostFilterConditionState | undefined;
101
- // const tdsColumnGetter = operator.getTDSColumnGetter();
102
- // if (
103
- // tdsColumnGetter &&
104
- // expression instanceof AbstractPropertyExpression &&
105
- // expression.func.value.name === tdsColumnGetter
106
- // ) {
107
- // const columnState = findProjectionColumnState(expression, postFilterState);
108
- // postConditionState = new PostFilterConditionState(
109
- // postFilterState,
110
- // columnState,
111
- // operator,
112
- // );
113
- // return postConditionState;
114
- // } else if (
115
- // operatorFunctionFullPath &&
116
- // matchFunctionName(expression.functionName, operatorFunctionFullPath)
117
- // ) {
118
- // assertTrue(
119
- // expression.parametersValues.length === 2,
120
- // `Can't process ${extractElementNameFromPath(
121
- // operatorFunctionFullPath,
122
- // )}() expression: ${extractElementNameFromPath(
123
- // operatorFunctionFullPath,
124
- // )}() expects '1 argument'`,
125
- // );
126
-
127
- // // get projection column
128
- // const tdsColumnPropertyExpression = guaranteeType(
129
- // expression.parametersValues[0],
130
- // AbstractPropertyExpression,
131
- // `Can't process ${extractElementNameFromPath(
132
- // operatorFunctionFullPath,
133
- // )}() expression: expects property expression in lambda body`,
134
- // );
135
- // const columnState = findProjectionColumnState(
136
- // tdsColumnPropertyExpression,
137
- // postFilterState,
138
- // );
139
-
140
- // // get operation value specification
141
- // const rightSide = expression.parametersValues[1];
142
-
143
- // // create state
144
- // postConditionState = new PostFilterConditionState(
145
- // postFilterState,
146
- // columnState,
147
- // operator,
148
- // );
149
-
150
- // buildPostFilterConditionValueState(rightSide, postConditionState);
151
-
152
- // //post checks
153
- // assertTrue(
154
- // operator.isCompatibleWithPostFilterColumn(postConditionState),
155
- // `Can't process ${extractElementNameFromPath(
156
- // operatorFunctionFullPath,
157
- // )}() expression: property is not compatible with post-filter operator`,
158
- // );
159
- // assertTrue(
160
- // operator.isCompatibleWithConditionValue(postConditionState),
161
- // `Operator '${operator.getLabel()}' not compatible with value specification ${rightSide?.toString()}`,
162
- // );
163
- // }
164
- // return postConditionState;
165
- // };
166
- // return undefined;
167
- // }
168
-
169
- buildConditionSnapshot(expression: V1_AppliedFunction) {
170
- const value = expression.parameters[1];
171
- const filterConditionSnapshot = _buildConditionSnapshotProperty(
172
- expression.parameters[0] as V1_AppliedProperty,
173
- this.operator,
87
+ buildConditionSnapshot(
88
+ expression: V1_AppliedFunction,
89
+ columnGetter: (name: string) => DataCubeColumn,
90
+ ) {
91
+ return this._finalizeConditionSnapshot(
92
+ _baseFilterCondition(expression, columnGetter, DataCubeFunction.EQUAL),
174
93
  );
175
- if (value instanceof V1_PrimitiveValueSpecification) {
176
- filterConditionSnapshot.value = _dataCubeOperationValue(value);
177
- }
178
- return filterConditionSnapshot satisfies DataCubeQuerySnapshotFilterCondition;
179
94
  }
180
95
 
181
96
  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__EqualCaseInsensitive extends DataCubeQueryFilterOperation {
48
42
  override get label() {
@@ -67,8 +61,9 @@ export class DataCubeQueryFilterOperation__EqualCaseInsensitive extends DataCube
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__EqualCaseInsensitive extends DataCube
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.EQUAL,
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) {