@finos/legend-data-cube 0.0.43 → 0.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/docs/column-configuration.kind.md +2 -0
  2. package/lib/__lib__/DataCubeSetting.d.ts +1 -0
  3. package/lib/__lib__/DataCubeSetting.d.ts.map +1 -1
  4. package/lib/__lib__/DataCubeSetting.js +1 -0
  5. package/lib/__lib__/DataCubeSetting.js.map +1 -1
  6. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
  7. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js +12 -6
  8. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
  9. package/lib/components/view/editor/DataCubeEditorColumnSelector.d.ts +7 -1
  10. package/lib/components/view/editor/DataCubeEditorColumnSelector.d.ts.map +1 -1
  11. package/lib/components/view/editor/DataCubeEditorColumnSelector.js +23 -1
  12. package/lib/components/view/editor/DataCubeEditorColumnSelector.js.map +1 -1
  13. package/lib/components/view/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -1
  14. package/lib/components/view/editor/DataCubeEditorColumnsPanel.js +2 -1
  15. package/lib/components/view/editor/DataCubeEditorColumnsPanel.js.map +1 -1
  16. package/lib/components/view/editor/DataCubeEditorHorizontalPivotsPanel.d.ts.map +1 -1
  17. package/lib/components/view/editor/DataCubeEditorHorizontalPivotsPanel.js +2 -4
  18. package/lib/components/view/editor/DataCubeEditorHorizontalPivotsPanel.js.map +1 -1
  19. package/lib/components/view/editor/DataCubeEditorSortsPanel.d.ts.map +1 -1
  20. package/lib/components/view/editor/DataCubeEditorSortsPanel.js +4 -25
  21. package/lib/components/view/editor/DataCubeEditorSortsPanel.js.map +1 -1
  22. package/lib/components/view/filter/DataCubeFilterEditor.d.ts.map +1 -1
  23. package/lib/components/view/filter/DataCubeFilterEditor.js +2 -1
  24. package/lib/components/view/filter/DataCubeFilterEditor.js.map +1 -1
  25. package/lib/index.css +2 -2
  26. package/lib/index.css.map +1 -1
  27. package/lib/package.json +5 -5
  28. package/lib/stores/core/DataCubeConfigurationBuilder.d.ts +4 -3
  29. package/lib/stores/core/DataCubeConfigurationBuilder.d.ts.map +1 -1
  30. package/lib/stores/core/DataCubeConfigurationBuilder.js +59 -3
  31. package/lib/stores/core/DataCubeConfigurationBuilder.js.map +1 -1
  32. package/lib/stores/core/DataCubeEngine.d.ts +2 -0
  33. package/lib/stores/core/DataCubeEngine.d.ts.map +1 -1
  34. package/lib/stores/core/DataCubeEngine.js +1 -2
  35. package/lib/stores/core/DataCubeEngine.js.map +1 -1
  36. package/lib/stores/core/DataCubeQueryBuilder.d.ts.map +1 -1
  37. package/lib/stores/core/DataCubeQueryBuilder.js +12 -22
  38. package/lib/stores/core/DataCubeQueryBuilder.js.map +1 -1
  39. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts +6 -5
  40. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
  41. package/lib/stores/core/DataCubeQueryBuilderUtils.js +59 -30
  42. package/lib/stores/core/DataCubeQueryBuilderUtils.js.map +1 -1
  43. package/lib/stores/core/DataCubeQueryEngine.d.ts +14 -7
  44. package/lib/stores/core/DataCubeQueryEngine.d.ts.map +1 -1
  45. package/lib/stores/core/DataCubeQueryEngine.js +76 -45
  46. package/lib/stores/core/DataCubeQueryEngine.js.map +1 -1
  47. package/lib/stores/core/DataCubeQuerySnapshot.d.ts +11 -0
  48. package/lib/stores/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  49. package/lib/stores/core/DataCubeQuerySnapshot.js.map +1 -1
  50. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts +2 -3
  51. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  52. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js +226 -128
  53. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  54. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts +36 -7
  55. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -1
  56. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js +359 -126
  57. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -1
  58. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts +10 -2
  59. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts.map +1 -1
  60. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.js +15 -6
  61. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.js.map +1 -1
  62. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts +6 -2
  63. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts.map +1 -1
  64. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.js +13 -3
  65. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.js.map +1 -1
  66. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts +6 -2
  67. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts.map +1 -1
  68. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.js +13 -3
  69. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.js.map +1 -1
  70. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts +6 -2
  71. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts.map +1 -1
  72. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.js +13 -3
  73. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.js.map +1 -1
  74. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts +6 -2
  75. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts.map +1 -1
  76. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js +23 -10
  77. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js.map +1 -1
  78. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts +6 -2
  79. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts.map +1 -1
  80. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.js +13 -3
  81. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.js.map +1 -1
  82. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts +6 -2
  83. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts.map +1 -1
  84. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.js +13 -3
  85. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.js.map +1 -1
  86. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts +6 -2
  87. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts.map +1 -1
  88. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.js +13 -3
  89. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.js.map +1 -1
  90. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts +6 -2
  91. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts.map +1 -1
  92. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js +13 -3
  93. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js.map +1 -1
  94. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts +6 -2
  95. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts.map +1 -1
  96. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js +13 -3
  97. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js.map +1 -1
  98. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts +6 -2
  99. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts.map +1 -1
  100. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.js +14 -3
  101. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.js.map +1 -1
  102. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts +6 -2
  103. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts.map +1 -1
  104. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js +13 -3
  105. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js.map +1 -1
  106. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts +6 -2
  107. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts.map +1 -1
  108. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js +13 -3
  109. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js.map +1 -1
  110. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts +6 -2
  111. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts.map +1 -1
  112. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js +13 -3
  113. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js.map +1 -1
  114. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts +0 -2
  115. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -1
  116. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js +1 -30
  117. package/lib/stores/core/filter/DataCubeQueryFilterOperation.js.map +1 -1
  118. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -1
  119. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js +8 -7
  120. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -1
  121. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -1
  122. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +10 -10
  123. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -1
  124. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -1
  125. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js +8 -7
  126. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -1
  127. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -1
  128. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +10 -10
  129. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -1
  130. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -1
  131. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js +5 -6
  132. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -1
  133. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -1
  134. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +10 -10
  135. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -1
  136. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -1
  137. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +6 -7
  138. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -1
  139. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -1
  140. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +6 -7
  141. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -1
  142. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -1
  143. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +5 -6
  144. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -1
  145. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -1
  146. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +6 -7
  147. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -1
  148. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -1
  149. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +5 -6
  150. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -1
  151. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -1
  152. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +6 -7
  153. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -1
  154. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -1
  155. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +2 -6
  156. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -1
  157. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -1
  158. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js +2 -2
  159. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -1
  160. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -1
  161. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js +5 -6
  162. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -1
  163. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -1
  164. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +6 -7
  165. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -1
  166. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -1
  167. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +5 -6
  168. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -1
  169. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -1
  170. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +6 -7
  171. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -1
  172. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -1
  173. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js +8 -11
  174. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -1
  175. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -1
  176. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +8 -11
  177. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -1
  178. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -1
  179. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js +6 -10
  180. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -1
  181. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -1
  182. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +10 -14
  183. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -1
  184. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -1
  185. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +6 -11
  186. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -1
  187. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -1
  188. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +6 -11
  189. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -1
  190. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -1
  191. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +8 -11
  192. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -1
  193. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -1
  194. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js +8 -7
  195. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -1
  196. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -1
  197. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +10 -10
  198. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -1
  199. package/lib/stores/core/model/DataCubeColumn.d.ts +1 -1
  200. package/lib/stores/core/model/DataCubeColumn.d.ts.map +1 -1
  201. package/lib/stores/core/model/DataCubeColumn.js.map +1 -1
  202. package/lib/stores/core/model/DataCubeConfiguration.d.ts +4 -3
  203. package/lib/stores/core/model/DataCubeConfiguration.d.ts.map +1 -1
  204. package/lib/stores/core/model/DataCubeConfiguration.js +4 -0
  205. package/lib/stores/core/model/DataCubeConfiguration.js.map +1 -1
  206. package/lib/stores/services/DataCubeQuerySnapshotService.d.ts.map +1 -1
  207. package/lib/stores/services/DataCubeQuerySnapshotService.js +2 -2
  208. package/lib/stores/services/DataCubeQuerySnapshotService.js.map +1 -1
  209. package/lib/stores/services/DataCubeSettingService.d.ts.map +1 -1
  210. package/lib/stores/services/DataCubeSettingService.js +8 -0
  211. package/lib/stores/services/DataCubeSettingService.js.map +1 -1
  212. package/lib/stores/view/DataCubeViewState.d.ts.map +1 -1
  213. package/lib/stores/view/DataCubeViewState.js +1 -1
  214. package/lib/stores/view/DataCubeViewState.js.map +1 -1
  215. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -1
  216. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js +3 -2
  217. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  218. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts +7 -0
  219. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts.map +1 -1
  220. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js +20 -3
  221. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js.map +1 -1
  222. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.d.ts.map +1 -1
  223. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js +2 -2
  224. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js.map +1 -1
  225. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts +4 -4
  226. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts.map +1 -1
  227. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js +14 -8
  228. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js.map +1 -1
  229. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts +1 -5
  230. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts.map +1 -1
  231. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js +2 -6
  232. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js.map +1 -1
  233. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts +1 -7
  234. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
  235. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js +4 -19
  236. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js.map +1 -1
  237. package/lib/stores/view/editor/DataCubeEditorState.d.ts.map +1 -1
  238. package/lib/stores/view/editor/DataCubeEditorState.js +2 -2
  239. package/lib/stores/view/editor/DataCubeEditorState.js.map +1 -1
  240. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.d.ts.map +1 -1
  241. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js +4 -4
  242. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js.map +1 -1
  243. package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts.map +1 -1
  244. package/lib/stores/view/extend/DataCubeColumnEditorState.js +2 -1
  245. package/lib/stores/view/extend/DataCubeColumnEditorState.js.map +1 -1
  246. package/lib/stores/view/extend/DataCubeExtendManagerState.d.ts.map +1 -1
  247. package/lib/stores/view/extend/DataCubeExtendManagerState.js +12 -12
  248. package/lib/stores/view/extend/DataCubeExtendManagerState.js.map +1 -1
  249. package/lib/stores/view/filter/DataCubeFilterEditorState.d.ts.map +1 -1
  250. package/lib/stores/view/filter/DataCubeFilterEditorState.js +2 -1
  251. package/lib/stores/view/filter/DataCubeFilterEditorState.js.map +1 -1
  252. package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  253. package/lib/stores/view/grid/DataCubeGridClientEngine.js +11 -14
  254. package/lib/stores/view/grid/DataCubeGridClientEngine.js.map +1 -1
  255. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
  256. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js +48 -12
  257. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
  258. package/lib/stores/view/grid/DataCubeGridControllerState.d.ts +1 -1
  259. package/lib/stores/view/grid/DataCubeGridControllerState.d.ts.map +1 -1
  260. package/lib/stores/view/grid/DataCubeGridControllerState.js +20 -20
  261. package/lib/stores/view/grid/DataCubeGridControllerState.js.map +1 -1
  262. package/lib/stores/view/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
  263. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js +8 -12
  264. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js.map +1 -1
  265. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js +1 -1
  266. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js.map +1 -1
  267. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js +1 -1
  268. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
  269. package/package.json +8 -8
  270. package/src/__lib__/DataCubeSetting.ts +1 -0
  271. package/src/components/view/editor/DataCubeEditorColumnPropertiesPanel.tsx +40 -17
  272. package/src/components/view/editor/DataCubeEditorColumnSelector.tsx +75 -1
  273. package/src/components/view/editor/DataCubeEditorColumnsPanel.tsx +3 -6
  274. package/src/components/view/editor/DataCubeEditorHorizontalPivotsPanel.tsx +5 -12
  275. package/src/components/view/editor/DataCubeEditorSortsPanel.tsx +12 -80
  276. package/src/components/view/filter/DataCubeFilterEditor.tsx +2 -3
  277. package/src/stores/core/DataCubeConfigurationBuilder.ts +80 -5
  278. package/src/stores/core/DataCubeEngine.tsx +10 -2
  279. package/src/stores/core/DataCubeQueryBuilder.ts +36 -37
  280. package/src/stores/core/DataCubeQueryBuilderUtils.ts +74 -41
  281. package/src/stores/core/DataCubeQueryEngine.ts +120 -60
  282. package/src/stores/core/DataCubeQuerySnapshot.ts +13 -0
  283. package/src/stores/core/DataCubeQuerySnapshotBuilder.ts +379 -157
  284. package/src/stores/core/DataCubeQuerySnapshotBuilderUtils.ts +597 -157
  285. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation.ts +39 -16
  286. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.tsx +26 -4
  287. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.tsx +26 -4
  288. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__First.tsx +26 -4
  289. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.tsx +41 -26
  290. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.tsx +26 -4
  291. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.tsx +26 -4
  292. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.tsx +26 -4
  293. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.tsx +29 -6
  294. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.tsx +30 -4
  295. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.tsx +26 -4
  296. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.tsx +26 -4
  297. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.tsx +26 -4
  298. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.tsx +26 -4
  299. package/src/stores/core/filter/DataCubeQueryFilterOperation.ts +1 -52
  300. package/src/stores/core/filter/DataCubeQueryFilterOperation__Contain.tsx +12 -9
  301. package/src/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +10 -13
  302. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +9 -10
  303. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +10 -13
  304. package/src/stores/core/filter/DataCubeQueryFilterOperation__Equal.tsx +5 -8
  305. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +10 -13
  306. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +6 -8
  307. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +5 -7
  308. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +6 -9
  309. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +6 -8
  310. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +6 -9
  311. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +6 -8
  312. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +6 -8
  313. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +6 -2
  314. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +6 -9
  315. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +6 -8
  316. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +6 -9
  317. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +6 -8
  318. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +12 -15
  319. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +12 -15
  320. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +10 -14
  321. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +11 -20
  322. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +7 -19
  323. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +9 -17
  324. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +10 -17
  325. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +9 -10
  326. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +10 -13
  327. package/src/stores/core/model/DataCubeColumn.ts +1 -1
  328. package/src/stores/core/model/DataCubeConfiguration.ts +7 -1
  329. package/src/stores/services/DataCubeQuerySnapshotService.ts +2 -1
  330. package/src/stores/services/DataCubeSettingService.tsx +8 -0
  331. package/src/stores/view/DataCubeViewState.ts +2 -3
  332. package/src/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.ts +3 -2
  333. package/src/stores/view/editor/DataCubeEditorColumnSelectorState.ts +31 -6
  334. package/src/stores/view/editor/DataCubeEditorColumnsPanelState.ts +2 -7
  335. package/src/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.ts +33 -10
  336. package/src/stores/view/editor/DataCubeEditorMutableConfiguration.ts +4 -20
  337. package/src/stores/view/editor/DataCubeEditorSortsPanelState.ts +6 -29
  338. package/src/stores/view/editor/DataCubeEditorState.tsx +2 -3
  339. package/src/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.ts +6 -7
  340. package/src/stores/view/extend/DataCubeColumnEditorState.tsx +2 -3
  341. package/src/stores/view/extend/DataCubeExtendManagerState.tsx +14 -13
  342. package/src/stores/view/filter/DataCubeFilterEditorState.tsx +2 -4
  343. package/src/stores/view/grid/DataCubeGridClientEngine.ts +21 -20
  344. package/src/stores/view/grid/DataCubeGridConfigurationBuilder.tsx +64 -15
  345. package/src/stores/view/grid/DataCubeGridControllerState.ts +35 -34
  346. package/src/stores/view/grid/DataCubeGridMenuBuilder.tsx +17 -23
  347. package/src/stores/view/grid/DataCubeGridQueryBuilder.ts +1 -1
  348. package/src/stores/view/grid/DataCubeGridQuerySnapshotBuilder.ts +1 -1
@@ -24,13 +24,12 @@ import { type V1_ValueSpecification } from '@finos/legend-graph';
24
24
  import type { DataCubeQuery } from './model/DataCubeQuery.js';
25
25
  import { DataCubeQuerySnapshot } from './DataCubeQuerySnapshot.js';
26
26
  import type { DataCubeSource } from './model/DataCubeSource.js';
27
- import type { DataCubeQueryFilterOperation } from './filter/DataCubeQueryFilterOperation.js';
28
- import type { DataCubeQueryAggregateOperation } from './aggregation/DataCubeQueryAggregateOperation.js';
27
+ import type { DataCubeEngine } from './DataCubeEngine.js';
29
28
  /**
30
29
  * Analyze the partial query to build a query snapshot.
31
30
  *
32
31
  * Implementation-wise, this extracts the function call sequence, then walk the
33
32
  * sequence in order to fill in the information for the snapshot.
34
33
  */
35
- export declare function validateAndBuildQuerySnapshot(partialQuery: V1_ValueSpecification, source: DataCubeSource, baseQuery: DataCubeQuery, filterOperations: DataCubeQueryFilterOperation[], aggregateOperations: DataCubeQueryAggregateOperation[]): DataCubeQuerySnapshot;
34
+ export declare function validateAndBuildQuerySnapshot(partialQuery: V1_ValueSpecification, source: DataCubeSource, baseQuery: DataCubeQuery, engine: DataCubeEngine): Promise<DataCubeQuerySnapshot>;
36
35
  //# sourceMappingURL=DataCubeQuerySnapshotBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeQuerySnapshotBuilder.d.ts","sourceRoot":"","sources":["../../../src/stores/core/DataCubeQuerySnapshotBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;yFAMyF;AAEzF,OAAO,EAML,KAAK,qBAAqB,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAoBnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kDAAkD,CAAC;AAuPxG;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,qBAAqB,EACnC,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,aAAa,EACxB,gBAAgB,EAAE,4BAA4B,EAAE,EAChD,mBAAmB,EAAE,+BAA+B,EAAE,yBA2MvD"}
1
+ {"version":3,"file":"DataCubeQuerySnapshotBuilder.d.ts","sourceRoot":"","sources":["../../../src/stores/core/DataCubeQuerySnapshotBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;yFAMyF;AAEzF,OAAO,EAKL,KAAK,qBAAqB,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,qBAAqB,EAItB,MAAM,4BAA4B,CAAC;AAkCpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAoR1D;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,qBAAqB,EACnC,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,cAAc,kCAiQvB"}
@@ -20,16 +20,24 @@
20
20
  * executable query. This is needed when we initialize the engine by loading a
21
21
  * persisted query.
22
22
  ***************************************************************************************/
23
- import { V1_AppliedFunction, V1_CInteger, V1_Collection, extractElementNameFromPath as _name, matchFunctionName, V1_Lambda, } from '@finos/legend-graph';
24
- import { DataCubeQuerySnapshot } from './DataCubeQuerySnapshot.js';
25
- import { _toCol } from './model/DataCubeColumn.js';
26
- import { assertTrue, at, guaranteeNonNullable } from '@finos/legend-shared';
27
- import { DataCubeQuerySortDirection, DataCubeFunction, } from './DataCubeQueryEngine.js';
28
- import { buildDefaultConfiguration } from './DataCubeConfigurationBuilder.js';
29
- import { _colSpecArrayParam, _colSpecParam, _funcMatch, _param, _extractExtendedColumns, _filter, _relationType, _genericTypeParam, _packageableType, } from './DataCubeQuerySnapshotBuilderUtils.js';
23
+ import { V1_AppliedFunction, V1_CInteger, extractElementNameFromPath as _name, matchFunctionName, V1_Lambda, } from '@finos/legend-graph';
24
+ import { DataCubeQuerySnapshot, } from './DataCubeQuerySnapshot.js';
25
+ import { _findCol, _toCol, } from './model/DataCubeColumn.js';
26
+ import { assertTrue, at, guaranteeNonNullable, isNonNullable, } from '@finos/legend-shared';
27
+ import { DataCubeFunction, } from './DataCubeQueryEngine.js';
28
+ import { newConfiguration } from './DataCubeConfigurationBuilder.js';
29
+ import { _colSpecArrayParam, _param, _extractExtendedColumns, _filter, _relationType, _genericTypeParam, _packageableType, _aggCol, _sort, _unwrapLambda, _pivotSort, _groupBySort, _validatePivot, _checkDuplicateColumns, _validateGroupBy, } from './DataCubeQuerySnapshotBuilderUtils.js';
30
+ import { _deserializeValueSpecification, _serializeValueSpecification, } from './DataCubeQueryBuilderUtils.js';
30
31
  // --------------------------------- BUILDING BLOCKS ---------------------------------
31
32
  const _SUPPORTED_TOP_LEVEL_FUNCTIONS = [
32
- { func: DataCubeFunction.EXTEND, parameters: 2 }, // TODO: support both signatures of extend()
33
+ {
34
+ func: DataCubeFunction.EXTEND,
35
+ parameters: 1,
36
+ // handle OLAP form where first parameter is over() expression used to construct the window
37
+ stopCondition: (_func) => matchFunctionName(_func.function, DataCubeFunction.EXTEND) &&
38
+ _func.parameters[0] instanceof V1_AppliedFunction &&
39
+ matchFunctionName(_func.parameters[0].function, DataCubeFunction.OVER),
40
+ },
33
41
  { func: DataCubeFunction.FILTER, parameters: 1 },
34
42
  { func: DataCubeFunction.SELECT, parameters: 1 },
35
43
  { func: DataCubeFunction.GROUP_BY, parameters: 2 },
@@ -54,13 +62,6 @@ var _FUNCTION_SEQUENCE_COMPOSITION_PART;
54
62
  _FUNCTION_SEQUENCE_COMPOSITION_PART["SORT"] = "sort";
55
63
  _FUNCTION_SEQUENCE_COMPOSITION_PART["LIMIT"] = "limit";
56
64
  })(_FUNCTION_SEQUENCE_COMPOSITION_PART || (_FUNCTION_SEQUENCE_COMPOSITION_PART = {}));
57
- // function isFunctionInValidSequence(
58
- // value: string,
59
- // ): value is _FUNCTION_SEQUENCE_COMPOSITION_PART {
60
- // return Object.values(_FUNCTION_SEQUENCE_COMPOSITION_PART).includes(
61
- // value as _FUNCTION_SEQUENCE_COMPOSITION_PART,
62
- // );
63
- // }
64
65
  // This corresponds to the function sequence that we currently support:
65
66
  //
66
67
  // ->extend()*
@@ -143,9 +144,9 @@ const _FUNCTION_SEQUENCE_COMPOSITION_PATTERN = [
143
144
  const _FUNCTION_SEQUENCE_COMPOSITION_PATTERN_REGEXP = new RegExp(`^${_FUNCTION_SEQUENCE_COMPOSITION_PATTERN
144
145
  .map((node) => 'funcs' in node
145
146
  ? `(${node.funcs
146
- .map((childNode) => `(?<${childNode.name}><${_name(childNode.func)}>____\\d+)${childNode.repeat ? '*' : !childNode.required ? '?' : ''}`)
147
+ .map((childNode) => `(?<${childNode.name}>${childNode.repeat ? `(?:<${_name(childNode.func)}>____\\d+)*` : `<${_name(childNode.func)}>____\\d+`})${childNode.repeat ? '' : !childNode.required ? '?' : ''}`)
147
148
  .join('')})${node.repeat ? '*' : !node.required ? '?' : ''}`
148
- : `(?<${node.name}><${_name(node.func)}>____\\d+)${node.repeat ? '*' : !node.required ? '?' : ''}`)
149
+ : `(?<${node.name}>${node.repeat ? `(?:<${_name(node.func)}>____\\d+)*` : `<${_name(node.func)}>____\\d+`})${node.repeat ? '' : !node.required ? '?' : ''}`)
149
150
  .join('')}$`);
150
151
  /**
151
152
  * Turn the function sequence into a map of available functions
@@ -154,7 +155,7 @@ const _FUNCTION_SEQUENCE_COMPOSITION_PATTERN_REGEXP = new RegExp(`^${_FUNCTION_S
154
155
  function extractFunctionMap(query) {
155
156
  // Make sure this is a sequence of function calls
156
157
  if (!(query instanceof V1_AppliedFunction)) {
157
- throw new Error(`Can't process expression: Expected a function expression`);
158
+ throw new Error(`Can't process expression: expected a function expression`);
158
159
  }
159
160
  const sequence = [];
160
161
  let currentFunc = query;
@@ -162,16 +163,21 @@ function extractFunctionMap(query) {
162
163
  const supportedFunc = _SUPPORTED_TOP_LEVEL_FUNCTIONS.find((spec) => matchFunctionName(currentFunc.function, spec.func));
163
164
  // Check that all functions in sequence are supported (matching name and number of parameters)
164
165
  if (!supportedFunc) {
165
- throw new Error(`Can't process expression: Found unsupported function ${currentFunc.function}()`);
166
+ throw new Error(`Can't process expression: found unsupported function ${currentFunc.function}()`);
166
167
  }
167
168
  // recursively unwrap the nested function expression to build the function sequence,
168
169
  // i.e. if we have the expression x(y(z(t(...)))), we need to unwrap them and build the sequence
169
170
  // t(...)->z()->y()->x() and simultaneously, remove the first parameter from each function for
170
171
  // simplicity, except for the innermost function
171
172
  if (currentFunc.parameters.length > supportedFunc.parameters) {
173
+ // if stop condition is fulfilled, no more function sequence drilling is needed
174
+ if (supportedFunc.stopCondition?.(currentFunc)) {
175
+ sequence.unshift(currentFunc);
176
+ break;
177
+ }
172
178
  // assert that the supported function has the expected number of parameters
173
- assertTrue(currentFunc.parameters.length === supportedFunc.parameters + 1, `Can't process ${_name(currentFunc.function)}() expression: Expected at most ${supportedFunc.parameters + 1} parameters provided, got ${currentFunc.parameters.length}`);
174
- const func = _param(currentFunc, 0, V1_AppliedFunction, `Can't process expression: Expected a sequence of function calls (e.g. x()->y()->z())`);
179
+ assertTrue(currentFunc.parameters.length === supportedFunc.parameters + 1, `Can't process ${_name(currentFunc.function)}() expression: expected at most ${supportedFunc.parameters + 1} parameters provided, got ${currentFunc.parameters.length}`);
180
+ const func = _param(currentFunc, 0, V1_AppliedFunction, `Can't process expression: expected a sequence of function calls (e.g. x()->y()->z())`);
175
181
  currentFunc.parameters = currentFunc.parameters.slice(1);
176
182
  sequence.unshift(currentFunc);
177
183
  currentFunc = func;
@@ -187,32 +193,40 @@ function extractFunctionMap(query) {
187
193
  .join('');
188
194
  const matchResult = sequenceFormText.match(_FUNCTION_SEQUENCE_COMPOSITION_PATTERN_REGEXP);
189
195
  if (!matchResult) {
190
- throw new Error(`Can't process expression: Unsupported function composition ${sequence.map((fn) => `${_name(fn.function)}()`).join('->')} (supported composition: ${_FUNCTION_SEQUENCE_COMPOSITION_PATTERN.map((node) => `${'funcs' in node ? `[${node.funcs.map((childNode) => `${_name(childNode.func)}()`).join('->')}]` : `${_name(node.func)}()`}`).join('->')})`);
196
+ throw new Error(`Can't process expression: unsupported function composition ${sequence.map((fn) => `${_name(fn.function)}()`).join('->')} (supported composition: ${_FUNCTION_SEQUENCE_COMPOSITION_PATTERN.map((node) => `${'funcs' in node ? `[${node.funcs.map((childNode) => `${_name(childNode.func)}()`).join('->')}]` : `${_name(node.func)}()`}`).join('->')})`);
191
197
  }
192
198
  const _process = (key) => {
193
199
  const match = matchResult.groups?.[key];
194
- if (!match || match.indexOf('____') === -1) {
200
+ if (!match) {
195
201
  return undefined;
196
202
  }
197
- const idx = Number(match.split('____')[1]);
198
- if (isNaN(idx) || idx >= sequence.length) {
203
+ const funcMatches = match.match(/\<.*?\>____\d+/g);
204
+ if (!funcMatches?.length) {
199
205
  return undefined;
200
206
  }
201
- const func = at(sequence, idx);
202
- return func;
207
+ return funcMatches
208
+ .map((funcMatch) => {
209
+ const idx = Number(funcMatch.split('____')[1]);
210
+ if (isNaN(idx) || idx >= sequence.length) {
211
+ return undefined;
212
+ }
213
+ const func = at(sequence, idx);
214
+ return func;
215
+ })
216
+ .filter(isNonNullable);
203
217
  };
204
218
  return {
205
219
  leafExtend: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.LEAF_EXTEND),
206
- select: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.SELECT),
207
- filter: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.FILTER),
208
- pivotSort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT_SORT),
209
- pivot: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT),
210
- pivotCast: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT_CAST),
211
- groupBy: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_BY),
212
- groupBySort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_BY_SORT),
220
+ select: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.SELECT)?.[0],
221
+ filter: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.FILTER)?.[0],
222
+ pivotSort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT_SORT)?.[0],
223
+ pivot: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT)?.[0],
224
+ pivotCast: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT_CAST)?.[0],
225
+ groupBy: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_BY)?.[0],
226
+ groupBySort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_BY_SORT)?.[0],
213
227
  groupExtend: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_EXTEND),
214
- sort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.SORT),
215
- limit: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.LIMIT),
228
+ sort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.SORT)?.[0],
229
+ limit: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.LIMIT)?.[0],
216
230
  };
217
231
  }
218
232
  // --------------------------------- MAIN ---------------------------------
@@ -222,24 +236,26 @@ function extractFunctionMap(query) {
222
236
  * Implementation-wise, this extracts the function call sequence, then walk the
223
237
  * sequence in order to fill in the information for the snapshot.
224
238
  */
225
- export function validateAndBuildQuerySnapshot(partialQuery, source, baseQuery, filterOperations, aggregateOperations) {
239
+ export async function validateAndBuildQuerySnapshot(partialQuery, source, baseQuery, engine) {
226
240
  // --------------------------------- BASE ---------------------------------
227
241
  // Build the function call sequence and the function map to make the
228
242
  // analysis more ergonomic
229
- const funcMap = extractFunctionMap(partialQuery);
243
+ // Clone the query since we will mutate it during the process
244
+ const query = _deserializeValueSpecification(_serializeValueSpecification(partialQuery));
245
+ const funcMap = extractFunctionMap(query);
230
246
  const snapshot = DataCubeQuerySnapshot.create({});
231
247
  const data = snapshot.data;
232
- const columnNames = new Set();
248
+ const registeredColumns = new Map();
233
249
  /**
234
250
  * We want to make sure all columns, either from source or created, e.g. extended columns,
235
251
  * have unique names. This is to simplify the logic within DataCube so different components
236
252
  * can easily refer to columns by name without having to worry about conflicts.
237
253
  */
238
254
  const _checkColName = (col, message) => {
239
- if (columnNames.has(col.name)) {
255
+ if (registeredColumns.has(col.name)) {
240
256
  throw new Error(message);
241
257
  }
242
- columnNames.add(col.name);
258
+ registeredColumns.set(col.name, col);
243
259
  };
244
260
  const colsMap = new Map();
245
261
  const _getCol = (colName) => {
@@ -247,130 +263,212 @@ export function validateAndBuildQuerySnapshot(partialQuery, source, baseQuery, f
247
263
  return _toCol(column);
248
264
  };
249
265
  const _setCol = (col) => colsMap.set(col.name, col);
250
- // const _unsetCol = (col: DataCubeColumn) => colsMap.delete(col.name);
251
266
  // -------------------------------- SOURCE --------------------------------
252
267
  data.sourceColumns = source.columns;
268
+ // validate
269
+ _checkDuplicateColumns(data.sourceColumns, (colName) => `Can't process source: found duplicate source columns '${colName}'`);
270
+ data.sourceColumns.forEach((col) => _checkColName(col, `Can't process source: another column with name '${col.name}' is already registered`));
253
271
  data.sourceColumns.forEach((col) => _setCol(col));
254
- data.sourceColumns.forEach((col) => _checkColName(col, `Can't process source column '${col.name}': another column with the same name is already registered`));
255
272
  // --------------------------- LEAF-LEVEL EXTEND ---------------------------
256
- if (funcMap.leafExtend) {
257
- // TODO: get column types (call engine to get the type)
258
- data.leafExtendedColumns = _extractExtendedColumns(funcMap.leafExtend);
259
- // TODO: populate the column types
273
+ if (funcMap.leafExtend?.length) {
274
+ data.leafExtendedColumns = await _extractExtendedColumns(funcMap.leafExtend, Array.from(colsMap.values()), engine);
275
+ // validate
276
+ // NOTE: these duplication checks might not be necessary since compiler would catch these
277
+ // issues anyway, but we leave them here to be defensive
278
+ _checkDuplicateColumns(data.leafExtendedColumns, (colName) => `Can't process extend() expression: found duplicate extended columns '${colName}'`);
279
+ data.leafExtendedColumns.forEach((col) => _checkColName(col, `Can't process extend() expression: another column with name '${col.name}' is already registered`));
260
280
  data.leafExtendedColumns.forEach((col) => _setCol(col));
261
- data.leafExtendedColumns.forEach((col) => _checkColName(col, `Can't process leaf-level extended column '${col.name}': another column with the same name is already registered`));
262
281
  }
263
282
  // --------------------------------- FILTER ---------------------------------
264
283
  if (funcMap.filter) {
265
- // TODO: verify column presence
266
- // TODO: verify column types
267
- const lambda = _param(funcMap.filter, 0, V1_Lambda, `Can't process filter() expression: Expected parameter at index 0 to be a lambda expression`);
268
- assertTrue(lambda.body.length === 1, `Can't process filter() expression: Expected lambda body to have exactly 1 expression`);
269
- data.filter = _filter(guaranteeNonNullable(lambda.body[0]), _getCol, filterOperations);
284
+ const lambda = _param(funcMap.filter, 0, V1_Lambda, `Can't process filter() expression: expected parameter at index 0 to be a lambda expression`);
285
+ data.filter = _filter(_unwrapLambda(lambda, `Can't process filter() expression`), _getCol, engine.filterOperations);
270
286
  }
271
287
  // --------------------------------- SELECT ---------------------------------
272
288
  if (funcMap.select) {
273
289
  data.selectColumns = _colSpecArrayParam(funcMap.select, 0).colSpecs.map((colSpec) => _getCol(colSpec.name));
274
- // TODO: remove columns that are not selected from colsMap
290
+ // validate
291
+ _checkDuplicateColumns(data.selectColumns, (colName) => `Can't process select() expression: found duplicate select columns '${colName}'`);
292
+ // restrict the set of available columns to only selected columns
293
+ colsMap.clear();
294
+ data.selectColumns.forEach((col) => _setCol(col));
295
+ }
296
+ else {
297
+ // mandate that if select() expression is not present, we consider this
298
+ // as no-column is selected
299
+ colsMap.clear();
275
300
  }
276
301
  // --------------------------------- PIVOT ---------------------------------
277
- if (funcMap.pivot && funcMap.pivotCast) {
278
- // TODO: verify column presence
279
- // TODO: verify column types
302
+ let pivotAggColumns = [];
303
+ let pivotSortColumns = [];
304
+ if (funcMap.pivot && funcMap.pivotCast && funcMap.pivotSort) {
305
+ const pivotColumns = _colSpecArrayParam(funcMap.pivot, 0).colSpecs.map((colSpec) => _getCol(colSpec.name));
306
+ const castColumns = _relationType(_genericTypeParam(funcMap.pivotCast, 0).genericType).columns.map((column) => ({
307
+ name: column.name,
308
+ type: _packageableType(column.genericType).fullPath,
309
+ }));
280
310
  data.pivot = {
281
- columns: _colSpecArrayParam(funcMap.pivot, 0).colSpecs.map((colSpec) => _getCol(colSpec.name)),
282
- castColumns: _relationType(_genericTypeParam(funcMap.pivotCast, 0).genericType).columns.map((column) => ({
283
- name: column.name,
284
- type: _packageableType(column.genericType).fullPath,
285
- })),
311
+ columns: pivotColumns,
312
+ castColumns: castColumns,
286
313
  };
314
+ // process aggregate columns
315
+ pivotAggColumns = _colSpecArrayParam(funcMap.pivot, 1).colSpecs.map((colSpec) => _aggCol(colSpec, _getCol, engine.aggregateOperations));
316
+ // process sort columns
317
+ pivotSortColumns = _pivotSort(funcMap.pivotSort, pivotColumns, _getCol);
318
+ // validate
319
+ _validatePivot(data.pivot, pivotAggColumns, Array.from(colsMap.values()));
320
+ // restrict the set of available columns to only casted columns
321
+ colsMap.clear();
322
+ castColumns.forEach((col) => _setCol(col));
287
323
  }
288
- // TODO: verify groupBy agg columns, pivot agg columns and configuration agree
289
324
  // --------------------------------- GROUP BY ---------------------------------
290
- if (funcMap.groupBy) {
291
- // TODO: verify column presence
292
- // TODO: verify column types
325
+ let groupByAggColumns = [];
326
+ let groupBySortColumns = [];
327
+ if (funcMap.groupBy && funcMap.groupBySort) {
328
+ const groupByColumns = _colSpecArrayParam(funcMap.groupBy, 0).colSpecs.map((colSpec) => _getCol(colSpec.name));
293
329
  data.groupBy = {
294
- columns: _colSpecArrayParam(funcMap.groupBy, 0).colSpecs.map((colSpec) => _getCol(colSpec.name)),
330
+ columns: groupByColumns,
295
331
  };
296
- // TODO: verify groupBy agg columns, pivot agg columns and configuration agree
297
- // TODO: verify sort columns
298
- // TODO: use configuration information present in the baseQuery configuration?
332
+ // process aggregate columns
333
+ groupByAggColumns = _colSpecArrayParam(funcMap.groupBy, 1).colSpecs.map((colSpec) => _aggCol(colSpec, _getCol, engine.aggregateOperations));
334
+ // process sort columns
335
+ groupBySortColumns = _groupBySort(funcMap.groupBySort, groupByColumns, _getCol);
336
+ // validate
337
+ _validateGroupBy(data.groupBy, groupByAggColumns, data.pivot, pivotAggColumns, Array.from(colsMap.values()));
299
338
  }
300
339
  // --------------------------- GROUP-LEVEL EXTEND ---------------------------
301
- if (funcMap.groupExtend) {
302
- // TODO: get column types (call engine to get the type)
303
- data.groupExtendedColumns = _extractExtendedColumns(funcMap.groupExtend);
304
- // TODO: populate the column types
340
+ if (funcMap.groupExtend?.length) {
341
+ data.groupExtendedColumns = await _extractExtendedColumns(funcMap.groupExtend, Array.from(colsMap.values()), engine);
342
+ // validate
343
+ // NOTE: these duplication checks might not be necessary since compiler would catch these
344
+ // issues anyway, but we leave them here to be defensive
345
+ _checkDuplicateColumns(data.groupExtendedColumns, (colName) => `Can't process extend() expression: found duplicate extended columns '${colName}'`);
346
+ data.groupExtendedColumns.forEach((col) => _checkColName(col, `Can't process extend() expression: another column with name '${col.name}' is already registered`));
305
347
  data.groupExtendedColumns.forEach((col) => _setCol(col));
306
- data.groupExtendedColumns.forEach((col) => _checkColName(col, `Can't process group-level extended column '${col.name}': another column with the same name is already registered`));
307
348
  }
308
349
  // --------------------------------- SORT ---------------------------------
309
350
  if (funcMap.sort) {
310
- data.sortColumns = _param(funcMap.sort, 0, V1_Collection).values.map((value) => {
311
- const sortColFunc = _funcMatch(value, [
312
- DataCubeFunction.ASCENDING,
313
- DataCubeFunction.DESCENDING,
314
- ]);
315
- return {
316
- ..._getCol(_colSpecParam(sortColFunc, 0).name),
317
- direction: matchFunctionName(sortColFunc.function, DataCubeFunction.ASCENDING)
318
- ? DataCubeQuerySortDirection.ASCENDING
319
- : DataCubeQuerySortDirection.DESCENDING,
320
- };
321
- });
351
+ data.sortColumns = _sort(funcMap.sort, _getCol);
352
+ // validate
353
+ _checkDuplicateColumns(data.sortColumns, (colName) => `Can't process sort() expression: found duplicate sort columns '${colName}'`);
322
354
  }
323
355
  // --------------------------------- LIMIT ---------------------------------
324
356
  if (funcMap.limit) {
325
- const value = _param(funcMap.limit, 0, V1_CInteger, `Can't process limit() expression: Expected parameter at index 0 to be an integer instance value`);
357
+ // NOTE: negative number -10 is parsed as minus(10) so this check will also
358
+ // reject negative number
359
+ const value = _param(funcMap.limit, 0, V1_CInteger, `Can't process limit() expression: expected limit to be a non-negative integer value`);
326
360
  data.limit = value.value;
327
361
  }
328
362
  // --------------------------------- CONFIGURATION ---------------------------------
329
- //
330
- // A data-cube conceptually consists of a data query, in form of a Pure query, instead
331
- // of a particular specification object format, and this configuration, that holds mostly
332
- // layout and styling customization. But there are overlaps, i.e. certain "meta" query
333
- // configuration are stored in this configuration, e.g. column aggregation type, because
334
- // a column aggregation's preference needs to be specified even when there's no aggregation
335
- // specified over that column in the data query.
336
- //
337
- // But in the example above, if the column is part of an aggregation, we have to ensure
338
- // the configuration is consistent with the query. Conflicts can happen, for example:
339
- // - column kind and type conflict with aggregation
340
- // - column kind and type conflict with the column configuration
341
- //
342
- // In those cases, we need to reconcile to make sure the query and the configuration to agree.
343
- // The query will take precedence when conflicts happen, and if the conflict cannot be resolved
344
- // somehow, we will throw a validation error. We decide so because in certain cases, configuration
345
- // needs to be generated from default presets, such as for use cases where the query comes from a
346
- // different source, such as Studio or Query, or another part of Engine, where the layout
347
- // configuration is not specified.
348
- //
349
- // ----------------------------------------------------------------------------------
350
- const configuration = validateAndBuildConfiguration(snapshot, funcMap, baseQuery);
363
+ const configuration = validateAndBuildConfiguration({
364
+ snapshot,
365
+ groupByAggColumns,
366
+ groupBySortColumns,
367
+ pivotAggColumns,
368
+ pivotSortColumns,
369
+ }, baseQuery, engine);
351
370
  data.configuration = configuration.serialize();
352
371
  return snapshot.finalize();
353
372
  }
354
373
  /**
355
- * TODO: @datacube roundtrip - implement the logic to reconcile the configuration with the query
356
- * - [ ] columns (missing/extra columns - remove or generate default column configuration)
357
- * - [ ] base off the type and kind, check the settings to see if it's compatible
358
- * - [ ] verify groupBy agg columns, pivot agg columns and configuration agree
359
- * - [ ] verify groupBy sort columns and tree column sort direction configuration agree
374
+ * Builds and/or validates the configuration.
375
+ *
376
+ * TL;DR;
377
+ * If not provided, generate a default configuration based off the metadata extracted
378
+ * when processing the query in previous steps.
379
+ * If provided, check if the configuration aggree with the query processing metadata.
380
+ *
381
+ * CONTEXT:
382
+ * A data-cube conceptually consists of a data query, in form of a Pure query, instead
383
+ * of a particular specification object format, and this configuration, that holds mostly
384
+ * layout and styling customization. But there are overlaps, i.e. certain _meta_ query
385
+ * configuration are stored in this configuration, e.g. column aggregation type, because
386
+ * a column aggregation's preference needs to be specified even when there's no aggregation
387
+ * specified over that column in the data query.
388
+ *
389
+ * But in the example above, if the column is part of an aggregation, we have to ensure
390
+ * the configuration is consistent with the query. Conflicts can happen, for example:
391
+ * - column kind and type conflict with aggregation
392
+ * - column kind and type conflict with the column configuration
393
+ *
394
+ * In those cases, we need to make sure the query and the configuration to agree.
395
+ * If a config is provided, we will need to validate that config. If none is provided,
396
+ * we will generate a config from the query processing metadata, in which case, no
397
+ * validation is needed. The latter case comes up quite often where the query comes from a
398
+ * different source, such as Studio or Query, or another part of Engine, and the layout
399
+ * configuration is not specified.
360
400
  */
361
- function validateAndBuildConfiguration(snapshot, funcMap, baseQuery) {
362
- const data = snapshot.data;
363
- const configuration = baseQuery.configuration?.clone() ??
364
- buildDefaultConfiguration([
365
- ...data.sourceColumns,
366
- ...data.leafExtendedColumns,
367
- ...data.groupExtendedColumns,
368
- ]);
369
- // column selection
370
- configuration.columns.forEach((column) => {
371
- column.isSelected = Boolean(data.groupExtendedColumns.find((col) => col.name === column.name) ??
372
- data.selectColumns.find((col) => col.name === column.name));
401
+ function validateAndBuildConfiguration(context, baseQuery, engine) {
402
+ const data = context.snapshot.data;
403
+ const config = baseQuery.configuration;
404
+ // generate a default configuration anyway to be used to compare with the
405
+ // provided configuration for validation purpose
406
+ const _config = newConfiguration(context);
407
+ if (!config) {
408
+ return _config;
409
+ }
410
+ // check tree column sort direction (only relevant if groupBy is present)
411
+ if (data.groupBy) {
412
+ assertTrue(config.treeColumnSortDirection === _config.treeColumnSortDirection, `Can't process configuration: tree column sort direction mismatch (expected: '${_config.treeColumnSortDirection.toLowerCase()}', found: '${config.treeColumnSortDirection.toLowerCase()}')`);
413
+ }
414
+ // check columns
415
+ const columns = config.columns;
416
+ const _columns = _config.columns;
417
+ const columnNames = new Set();
418
+ // check for duplicate columns
419
+ columns.forEach((col) => {
420
+ if (columnNames.has(col.name)) {
421
+ throw new Error(`Can't process configuration: found duplicate columns '${col.name}'`);
422
+ }
423
+ else {
424
+ columnNames.add(col.name);
425
+ }
426
+ });
427
+ // check for extra columns
428
+ columns.forEach((col) => {
429
+ if (!_findCol(_columns, col.name)) {
430
+ throw new Error(`Can't process configuration: found extra column '${col.name}'`);
431
+ }
432
+ });
433
+ // check for missing columns
434
+ _columns.forEach((col) => {
435
+ if (!_findCol(columns, col.name)) {
436
+ throw new Error(`Can't process configuration: missing column '${col.name}'`);
437
+ }
438
+ });
439
+ // check for columns ordering
440
+ const columnsOrdering = [
441
+ ...data.selectColumns,
442
+ ...data.groupExtendedColumns,
443
+ ...[...data.sourceColumns, ...data.leafExtendedColumns].filter((col) => !_findCol(data.selectColumns, col.name)),
444
+ ];
445
+ columnsOrdering.forEach((_col, idx) => {
446
+ const col = at(columns, idx);
447
+ assertTrue(_col.name === col.name, `Can't process configuration: column ordering mismatch at index ${idx} (expected: '${_col.name}', found: '${col.name})', expected ordering: ${columnsOrdering.map((c) => c.name).join(', ')}`);
448
+ });
449
+ columns.forEach((column) => {
450
+ const _column = guaranteeNonNullable(_findCol(_columns, column.name));
451
+ // check type
452
+ assertTrue(column.type === _column.type, `Can't process configuration: type mismatch for column '${column.name}' (expected: '${_column.type}', found: '${column.type}')`);
453
+ // check selection
454
+ assertTrue(column.isSelected === _column.isSelected, `Can't process configuration: selection mismatch for column '${column.name}' (expected: '${_column.isSelected}', found: '${column.isSelected}')`);
455
+ // check kind (only relevant if aggregation is present)
456
+ if (data.pivot ?? data.groupBy) {
457
+ assertTrue(column.kind === _column.kind, `Can't process configuration: kind mismatch for column '${column.name}' (expected: '${_column.kind.toLowerCase()}', found: '${column.kind.toLowerCase()}')`);
458
+ }
459
+ // check aggregation (only relevant if aggregation is present)
460
+ if (data.pivot ?? data.groupBy) {
461
+ assertTrue(column.aggregateOperator === _column.aggregateOperator, `Can't process configuration: aggregation operator mismatch for column '${column.name}' (expected: '${_column.aggregateOperator}', found: '${column.aggregateOperator}')`);
462
+ assertTrue(engine
463
+ .getAggregateOperation(column.aggregateOperator)
464
+ .isCompatibleWithParameterValues(column.aggregationParameters), `Can't process configuration: incompatible aggregation parameter values for column '${column.name}' (operator: '${column.aggregateOperator}')`);
465
+ }
466
+ // check pivot sort direction and exclusion (only relevant if pivot is present)
467
+ if (data.pivot) {
468
+ assertTrue(column.excludedFromPivot === _column.excludedFromPivot, `Can't process configuration: pivot exclusion mismatch for column '${column.name}' (expected: '${_column.excludedFromPivot}', found: '${column.excludedFromPivot}')`);
469
+ assertTrue(column.pivotSortDirection === _column.pivotSortDirection, `Can't process configuration: pivot sort direction mismatch for column '${column.name}' (expected: '${_column.pivotSortDirection?.toLowerCase() ?? 'none'}', found: '${column.pivotSortDirection?.toLowerCase() ?? 'none'}')`);
470
+ }
373
471
  });
374
- return configuration;
472
+ return config;
375
473
  }
376
474
  //# sourceMappingURL=DataCubeQuerySnapshotBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeQuerySnapshotBuilder.js","sourceRoot":"","sources":["../../../src/stores/core/DataCubeQuerySnapshotBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;yFAMyF;AAEzF,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,0BAA0B,IAAI,KAAK,EACnC,iBAAiB,EAEjB,SAAS,GACV,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAuB,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,MAAM,EACN,uBAAuB,EACvB,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,wCAAwC,CAAC;AAKhD,sFAAsF;AAEtF,MAAM,8BAA8B,GAG9B;IACJ,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,4CAA4C;IAC9F,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE;IAChD,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE;IAChD,EAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE;IAClD,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE;IAC/C,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;IAC9C,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;IAC9C,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE;CAChD,CAAC;AAgBF,IAAK,mCAcJ;AAdD,WAAK,mCAAmC;IACtC,kEAA2B,CAAA;IAC3B,wDAAiB,CAAA;IACjB,wDAAiB,CAAA;IACjB,oEAA6B,CAAA;IAC7B,gEAAyB,CAAA;IACzB,sDAAe,CAAA;IACf,gEAAyB,CAAA;IACzB,0EAAmC,CAAA;IACnC,4DAAqB,CAAA;IACrB,sEAA+B,CAAA;IAC/B,oEAA6B,CAAA;IAC7B,oDAAa,CAAA;IACb,sDAAe,CAAA;AACjB,CAAC,EAdI,mCAAmC,KAAnC,mCAAmC,QAcvC;AAED,sCAAsC;AACtC,mBAAmB;AACnB,oDAAoD;AACpD,wEAAwE;AACxE,oDAAoD;AACpD,OAAO;AACP,IAAI;AAEJ,uEAAuE;AACvE,EAAE;AACF,cAAc;AACd,aAAa;AACb,aAAa;AACb,4BAA4B;AAC5B,sBAAsB;AACtB,cAAc;AACd,WAAW;AACX,YAAY;AACZ,EAAE;AACF,MAAM,sCAAsC,GAGtC;IACJ;QACE,oBAAoB;QACpB,IAAI,EAAE,mCAAmC,CAAC,WAAW;QACrD,IAAI,EAAE,gBAAgB,CAAC,MAAM;QAC7B,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,mCAAmC,CAAC,MAAM;QAChD,IAAI,EAAE,gBAAgB,CAAC,MAAM;KAC9B;IACD;QACE,IAAI,EAAE,mCAAmC,CAAC,MAAM;QAChD,IAAI,EAAE,gBAAgB,CAAC,MAAM;KAC9B;IACD;QACE,IAAI,EAAE,mCAAmC,CAAC,YAAY;QACtD,KAAK,EAAE;YACL;gBACE,wCAAwC;gBACxC,IAAI,EAAE,mCAAmC,CAAC,UAAU;gBACpD,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,mCAAmC,CAAC,KAAK;gBAC/C,IAAI,EAAE,gBAAgB,CAAC,KAAK;gBAC5B,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,+DAA+D;gBAC/D,IAAI,EAAE,mCAAmC,CAAC,UAAU;gBACpD,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD;QACE,IAAI,EAAE,mCAAmC,CAAC,eAAe;QACzD,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,mCAAmC,CAAC,QAAQ;gBAClD,IAAI,EAAE,gBAAgB,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,qCAAqC;gBACrC,IAAI,EAAE,mCAAmC,CAAC,aAAa;gBACvD,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD;QACE,qBAAqB;QACrB,IAAI,EAAE,mCAAmC,CAAC,YAAY;QACtD,IAAI,EAAE,gBAAgB,CAAC,MAAM;QAC7B,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,mCAAmC,CAAC,IAAI;QAC9C,IAAI,EAAE,gBAAgB,CAAC,IAAI;KAC5B;IACD;QACE,IAAI,EAAE,mCAAmC,CAAC,KAAK;QAC/C,IAAI,EAAE,gBAAgB,CAAC,KAAK;KAC7B;CACF,CAAC;AACF,MAAM,6CAA6C,GAAG,IAAI,MAAM,CAC9D,IAAI,sCAAsC;KACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,OAAO,IAAI,IAAI;IACb,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK;SACX,GAAG,CACF,CAAC,SAAS,EAAE,EAAE,CACZ,MAAM,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvH;SACA,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IAChE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrG;KACA,IAAI,CAAC,EAAE,CAAC,GAAG,CACf,CAAC;AAEF;;;GAGG;AACH,SAAS,kBAAkB,CACzB,KAA4B;IAE5B,iDAAiD;IACjD,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,OAAO,WAAW,YAAY,kBAAkB,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACjE,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CACnD,CAAC;QAEF,8FAA8F;QAC9F,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,wDAAwD,WAAW,CAAC,QAAQ,IAAI,CACjF,CAAC;QACJ,CAAC;QAED,oFAAoF;QACpF,gGAAgG;QAChG,8FAA8F;QAC9F,gDAAgD;QAChD,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC;YAC7D,2EAA2E;YAC3E,UAAU,CACR,WAAW,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa,CAAC,UAAU,GAAG,CAAC,EAC9D,iBAAiB,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,mCAAmC,aAAa,CAAC,UAAU,GAAG,CAAC,6BAA6B,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CACxK,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,CACjB,WAAW,EACX,CAAC,EACD,kBAAkB,EAClB,sFAAsF,CACvF,CAAC;YACF,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzD,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9B,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9B,MAAM;QACR,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,MAAM,gBAAgB,GAAG,QAAQ;SAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;SACzD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CACxC,6CAA6C,CAC9C,CAAC;IACF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,8DAA8D,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,sCAAsC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACvV,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAkC,EAAE;QAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,mCAAmC,CAAC,WAAW,CAAC;QACrE,MAAM,EAAE,QAAQ,CAAC,mCAAmC,CAAC,MAAM,CAAC;QAC5D,MAAM,EAAE,QAAQ,CAAC,mCAAmC,CAAC,MAAM,CAAC;QAC5D,SAAS,EAAE,QAAQ,CAAC,mCAAmC,CAAC,UAAU,CAAC;QACnE,KAAK,EAAE,QAAQ,CAAC,mCAAmC,CAAC,KAAK,CAAC;QAC1D,SAAS,EAAE,QAAQ,CAAC,mCAAmC,CAAC,UAAU,CAAC;QACnE,OAAO,EAAE,QAAQ,CAAC,mCAAmC,CAAC,QAAQ,CAAC;QAC/D,WAAW,EAAE,QAAQ,CAAC,mCAAmC,CAAC,aAAa,CAAC;QACxE,WAAW,EAAE,QAAQ,CAAC,mCAAmC,CAAC,YAAY,CAAC;QACvE,IAAI,EAAE,QAAQ,CAAC,mCAAmC,CAAC,IAAI,CAAC;QACxD,KAAK,EAAE,QAAQ,CAAC,mCAAmC,CAAC,KAAK,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,2EAA2E;AAE3E;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,YAAmC,EACnC,MAAsB,EACtB,SAAwB,EACxB,gBAAgD,EAChD,mBAAsD;IAEtD,2EAA2E;IAC3E,oEAAoE;IACpE,0BAA0B;IAE1B,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC;;;;OAIG;IACH,MAAM,aAAa,GAAG,CAAC,GAAmB,EAAE,OAAe,EAAE,EAAE;QAC7D,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,oBAAoB,CACjC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EACpB,sBAAsB,OAAO,GAAG,CACjC,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,GAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpE,uEAAuE;IAEvE,2EAA2E;IAE3E,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;IACpC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACjC,aAAa,CACX,GAAG,EACH,gCAAgC,GAAG,CAAC,IAAI,4DAA4D,CACrG,CACF,CAAC;IAEF,4EAA4E;IAE5E,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,uDAAuD;QACvD,IAAI,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvE,kCAAkC;QAClC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACvC,aAAa,CACX,GAAG,EACH,6CAA6C,GAAG,CAAC,IAAI,4DAA4D,CAClH,CACF,CAAC;IACJ,CAAC;IAED,6EAA6E;IAE7E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,+BAA+B;QAC/B,4BAA4B;QAC5B,MAAM,MAAM,GAAG,MAAM,CACnB,OAAO,CAAC,MAAM,EACd,CAAC,EACD,SAAS,EACT,4FAA4F,CAC7F,CAAC;QACF,UAAU,CACR,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EACxB,sFAAsF,CACvF,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,CACnB,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACpC,OAAO,EACP,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED,6EAA6E;IAE7E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CACrE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CACnC,CAAC;QACF,0DAA0D;IAC5D,CAAC;IAED,4EAA4E;IAE5E,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACvC,+BAA+B;QAC/B,4BAA4B;QAC5B,IAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACrE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CACtB;YACD,WAAW,EAAE,aAAa,CACxB,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,WAAW,CACpD,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ;aACpD,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IACD,8EAA8E;IAE9E,+EAA+E;IAE/E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,+BAA+B;QAC/B,4BAA4B;QAC5B,IAAI,CAAC,OAAO,GAAG;YACb,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACvE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CACtB;SACF,CAAC;QACF,8EAA8E;QAC9E,4BAA4B;QAC5B,8EAA8E;IAChF,CAAC;IAED,6EAA6E;IAE7E,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,uDAAuD;QACvD,IAAI,CAAC,oBAAoB,GAAG,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzE,kCAAkC;QAClC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACxC,aAAa,CACX,GAAG,EACH,8CAA8C,GAAG,CAAC,IAAI,4DAA4D,CACnH,CACF,CAAC;IACJ,CAAC;IAED,2EAA2E;IAE3E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAClE,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,EAAE;gBACpC,gBAAgB,CAAC,SAAS;gBAC1B,gBAAgB,CAAC,UAAU;aAC5B,CAAC,CAAC;YACH,OAAO;gBACL,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9C,SAAS,EAAE,iBAAiB,CAC1B,WAAW,CAAC,QAAQ,EACpB,gBAAgB,CAAC,SAAS,CAC3B;oBACC,CAAC,CAAC,0BAA0B,CAAC,SAAS;oBACtC,CAAC,CAAC,0BAA0B,CAAC,UAAU;aAC1C,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED,4EAA4E;IAE5E,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,CAClB,OAAO,CAAC,KAAK,EACb,CAAC,EACD,WAAW,EACX,iGAAiG,CAClG,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,oFAAoF;IACpF,EAAE;IACF,sFAAsF;IACtF,yFAAyF;IACzF,sFAAsF;IACtF,wFAAwF;IACxF,2FAA2F;IAC3F,gDAAgD;IAChD,EAAE;IACF,uFAAuF;IACvF,qFAAqF;IACrF,mDAAmD;IACnD,gEAAgE;IAChE,EAAE;IACF,8FAA8F;IAC9F,+FAA+F;IAC/F,kGAAkG;IAClG,iGAAiG;IACjG,yFAAyF;IACzF,kCAAkC;IAClC,EAAE;IACF,qFAAqF;IAErF,MAAM,aAAa,GAAG,6BAA6B,CACjD,QAAQ,EACR,OAAO,EACP,SAAS,CACV,CAAC;IACF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;IAE/C,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,6BAA6B,CACpC,QAA+B,EAC/B,OAAiC,EACjC,SAAwB;IAExB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,aAAa,GACjB,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE;QAChC,yBAAyB,CAAC;YACxB,GAAG,IAAI,CAAC,aAAa;YACrB,GAAG,IAAI,CAAC,mBAAmB;YAC3B,GAAG,IAAI,CAAC,oBAAoB;SAC7B,CAAC,CAAC;IAEL,mBAAmB;IACnB,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACvC,MAAM,CAAC,UAAU,GAAG,OAAO,CACzB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;YAC/D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"DataCubeQuerySnapshotBuilder.js","sourceRoot":"","sources":["../../../src/stores/core/DataCubeQuerySnapshotBuilder.ts"],"names":[],"mappings":"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"}