@finos/legend-application-repl 0.0.53 → 0.0.55

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 (412) hide show
  1. package/lib/components/dataCube/DataCube.d.ts.map +1 -1
  2. package/lib/components/dataCube/DataCube.js +3 -2
  3. package/lib/components/dataCube/DataCube.js.map +1 -1
  4. package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -1
  5. package/lib/components/dataCube/editor/DataCubeEditor.js +9 -4
  6. package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -1
  7. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -1
  8. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js +3 -167
  9. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -1
  10. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
  11. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +39 -18
  12. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
  13. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -1
  14. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js +13 -9
  15. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js.map +1 -1
  16. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts +6 -2
  17. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts.map +1 -1
  18. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js +13 -17
  19. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js.map +1 -1
  20. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.d.ts.map +1 -1
  21. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js +3 -5
  22. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js.map +1 -1
  23. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js +1 -1
  24. package/lib/components/dataCube/{editor/DataCubeEditorExtendedColumnsPanel.d.ts → extend/DataCubeColumnEditor.d.ts} +4 -4
  25. package/lib/components/dataCube/extend/DataCubeColumnEditor.d.ts.map +1 -0
  26. package/lib/components/dataCube/extend/DataCubeColumnEditor.js +165 -0
  27. package/lib/components/dataCube/extend/DataCubeColumnEditor.js.map +1 -0
  28. package/lib/components/dataCube/filter/{DataCubeEditorFilter.d.ts → DataCubeFilterEditor.d.ts} +1 -1
  29. package/lib/components/dataCube/filter/DataCubeFilterEditor.d.ts.map +1 -0
  30. package/lib/components/dataCube/filter/{DataCubeEditorFilter.js → DataCubeFilterEditor.js} +1 -1
  31. package/lib/components/dataCube/filter/{DataCubeEditorFilter.js.map → DataCubeFilterEditor.js.map} +1 -1
  32. package/lib/components/repl/PureCodeEditor.d.ts +22 -0
  33. package/lib/components/repl/PureCodeEditor.d.ts.map +1 -0
  34. package/lib/components/repl/PureCodeEditor.js +64 -0
  35. package/lib/components/repl/PureCodeEditor.js.map +1 -0
  36. package/lib/index.css +1 -1
  37. package/lib/package.json +4 -4
  38. package/lib/server/DataCubeQuery.d.ts +1 -0
  39. package/lib/server/DataCubeQuery.d.ts.map +1 -1
  40. package/lib/server/DataCubeQuery.js +5 -2
  41. package/lib/server/DataCubeQuery.js.map +1 -1
  42. package/lib/server/REPLEngine.d.ts +27 -17
  43. package/lib/server/REPLEngine.d.ts.map +1 -1
  44. package/lib/server/REPLEngine.js +3 -31
  45. package/lib/server/REPLEngine.js.map +1 -1
  46. package/lib/server/REPLServerClient.d.ts +3 -2
  47. package/lib/server/REPLServerClient.d.ts.map +1 -1
  48. package/lib/server/REPLServerClient.js +4 -2
  49. package/lib/server/REPLServerClient.js.map +1 -1
  50. package/lib/stores/LayoutManagerState.d.ts +1 -1
  51. package/lib/stores/LayoutManagerState.d.ts.map +1 -1
  52. package/lib/stores/LayoutManagerState.js +2 -2
  53. package/lib/stores/LayoutManagerState.js.map +1 -1
  54. package/lib/stores/REPLStore.d.ts +3 -3
  55. package/lib/stores/REPLStore.d.ts.map +1 -1
  56. package/lib/stores/REPLStore.js +4 -4
  57. package/lib/stores/REPLStore.js.map +1 -1
  58. package/lib/stores/dataCube/DataCubeEngine.d.ts +20 -4
  59. package/lib/stores/dataCube/DataCubeEngine.d.ts.map +1 -1
  60. package/lib/stores/dataCube/DataCubeEngine.js +48 -4
  61. package/lib/stores/dataCube/DataCubeEngine.js.map +1 -1
  62. package/lib/stores/dataCube/DataCubeState.d.ts +7 -4
  63. package/lib/stores/dataCube/DataCubeState.d.ts.map +1 -1
  64. package/lib/stores/dataCube/DataCubeState.js +12 -9
  65. package/lib/stores/dataCube/DataCubeState.js.map +1 -1
  66. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts +5 -1
  67. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts.map +1 -1
  68. package/lib/stores/dataCube/core/DataCubeConfiguration.js +9 -1
  69. package/lib/stores/dataCube/core/DataCubeConfiguration.js.map +1 -1
  70. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.d.ts.map +1 -1
  71. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js +6 -1
  72. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js.map +1 -1
  73. package/lib/stores/dataCube/core/{DataCubeStaticContentDisplayState.d.ts → DataCubeInfoState.d.ts} +9 -4
  74. package/lib/stores/dataCube/core/DataCubeInfoState.d.ts.map +1 -0
  75. package/lib/stores/dataCube/core/{DataCubeStaticContentDisplayState.js → DataCubeInfoState.js} +11 -6
  76. package/lib/stores/dataCube/core/DataCubeInfoState.js.map +1 -0
  77. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts +3 -2
  78. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts.map +1 -1
  79. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +27 -20
  80. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -1
  81. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts +7 -5
  82. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
  83. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js +61 -50
  84. package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js.map +1 -1
  85. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +19 -12
  86. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +1 -1
  87. package/lib/stores/dataCube/core/DataCubeQueryEngine.js +26 -15
  88. package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +1 -1
  89. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +5 -8
  90. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  91. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +7 -7
  92. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -1
  93. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  94. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +38 -25
  95. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  96. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts +1 -2
  97. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -1
  98. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js +9 -26
  99. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -1
  100. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.d.ts +28 -0
  101. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.d.ts.map +1 -0
  102. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.js +25 -0
  103. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.js.map +1 -0
  104. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts +27 -0
  105. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts.map +1 -0
  106. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.js +39 -0
  107. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.js.map +1 -0
  108. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts +27 -0
  109. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts.map +1 -0
  110. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.js +47 -0
  111. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.js.map +1 -0
  112. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts +27 -0
  113. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts.map +1 -0
  114. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.js +44 -0
  115. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.js.map +1 -0
  116. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts +27 -0
  117. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts.map +1 -0
  118. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js +53 -0
  119. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js.map +1 -0
  120. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts +27 -0
  121. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts.map +1 -0
  122. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.js +44 -0
  123. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.js.map +1 -0
  124. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts +27 -0
  125. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts.map +1 -0
  126. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.js +39 -0
  127. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.js.map +1 -0
  128. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts +27 -0
  129. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts.map +1 -0
  130. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.js +39 -0
  131. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.js.map +1 -0
  132. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts +27 -0
  133. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts.map +1 -0
  134. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js +39 -0
  135. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js.map +1 -0
  136. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts +27 -0
  137. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts.map +1 -0
  138. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js +39 -0
  139. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js.map +1 -0
  140. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts +27 -0
  141. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts.map +1 -0
  142. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.js +39 -0
  143. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.js.map +1 -0
  144. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts +27 -0
  145. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts.map +1 -0
  146. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js +44 -0
  147. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js.map +1 -0
  148. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts +27 -0
  149. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts.map +1 -0
  150. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js +39 -0
  151. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js.map +1 -0
  152. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts +27 -0
  153. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts.map +1 -0
  154. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js +39 -0
  155. package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js.map +1 -0
  156. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts +1 -1
  157. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -1
  158. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js +3 -19
  159. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js.map +1 -1
  160. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -1
  161. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js +5 -5
  162. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -1
  163. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -1
  164. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +5 -5
  165. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -1
  166. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -1
  167. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js +5 -5
  168. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -1
  169. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -1
  170. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +5 -5
  171. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -1
  172. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -1
  173. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js +15 -5
  174. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -1
  175. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -1
  176. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +5 -5
  177. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -1
  178. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -1
  179. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +4 -4
  180. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -1
  181. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -1
  182. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +9 -4
  183. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -1
  184. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -1
  185. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +13 -5
  186. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -1
  187. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -1
  188. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +8 -4
  189. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -1
  190. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -1
  191. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +13 -5
  192. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -1
  193. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -1
  194. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +8 -4
  195. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -1
  196. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -1
  197. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +15 -5
  198. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -1
  199. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -1
  200. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js +15 -5
  201. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -1
  202. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -1
  203. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js +13 -5
  204. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -1
  205. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -1
  206. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +8 -4
  207. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -1
  208. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -1
  209. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +13 -5
  210. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -1
  211. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -1
  212. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +8 -4
  213. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -1
  214. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -1
  215. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js +5 -5
  216. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -1
  217. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -1
  218. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +5 -5
  219. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -1
  220. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -1
  221. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js +15 -5
  222. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -1
  223. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -1
  224. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +5 -5
  225. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -1
  226. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -1
  227. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +4 -4
  228. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -1
  229. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -1
  230. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +9 -4
  231. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -1
  232. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -1
  233. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +5 -5
  234. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -1
  235. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -1
  236. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js +5 -5
  237. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -1
  238. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -1
  239. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +5 -5
  240. package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -1
  241. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts +6 -7
  242. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -1
  243. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js +11 -41
  244. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  245. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.d.ts +18 -2
  246. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.d.ts.map +1 -1
  247. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.js +83 -24
  248. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.js.map +1 -1
  249. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts +0 -8
  250. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts.map +1 -1
  251. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js +2 -23
  252. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js.map +1 -1
  253. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts +3 -3
  254. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts.map +1 -1
  255. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js +3 -3
  256. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js.map +1 -1
  257. package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts +34 -0
  258. package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts.map +1 -0
  259. package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.js +57 -0
  260. package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.js.map +1 -0
  261. package/lib/stores/dataCube/editor/{DataCubeMutableConfiguration.d.ts → DataCubeEditorMutableConfiguration.d.ts} +12 -13
  262. package/lib/stores/dataCube/editor/DataCubeEditorMutableConfiguration.d.ts.map +1 -0
  263. package/lib/stores/dataCube/editor/{DataCubeMutableConfiguration.js → DataCubeEditorMutableConfiguration.js} +24 -26
  264. package/lib/stores/dataCube/editor/DataCubeEditorMutableConfiguration.js.map +1 -0
  265. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
  266. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js +4 -1
  267. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js.map +1 -1
  268. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +18 -3
  269. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -1
  270. package/lib/stores/dataCube/editor/DataCubeEditorState.js +44 -4
  271. package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -1
  272. package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.d.ts.map +1 -1
  273. package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.js +5 -15
  274. package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.js.map +1 -1
  275. package/lib/stores/dataCube/extend/DataCubeColumnEditorState.d.ts +61 -0
  276. package/lib/stores/dataCube/extend/DataCubeColumnEditorState.d.ts.map +1 -0
  277. package/lib/stores/dataCube/extend/DataCubeColumnEditorState.js +262 -0
  278. package/lib/stores/dataCube/extend/DataCubeColumnEditorState.js.map +1 -0
  279. package/lib/stores/dataCube/extend/DataCubeExtendManagerState.d.ts +45 -0
  280. package/lib/stores/dataCube/extend/DataCubeExtendManagerState.d.ts.map +1 -0
  281. package/lib/stores/dataCube/extend/DataCubeExtendManagerState.js +115 -0
  282. package/lib/stores/dataCube/extend/DataCubeExtendManagerState.js.map +1 -0
  283. package/lib/stores/dataCube/filter/DataCubeFilterEditorState.d.ts +6 -2
  284. package/lib/stores/dataCube/filter/DataCubeFilterEditorState.d.ts.map +1 -1
  285. package/lib/stores/dataCube/filter/DataCubeFilterEditorState.js +18 -5
  286. package/lib/stores/dataCube/filter/DataCubeFilterEditorState.js.map +1 -1
  287. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +2 -3
  288. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -1
  289. package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js +1 -1
  290. package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js.map +1 -1
  291. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
  292. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js +13 -9
  293. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
  294. package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts +16 -10
  295. package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts.map +1 -1
  296. package/lib/stores/dataCube/grid/DataCubeGridControllerState.js +28 -16
  297. package/lib/stores/dataCube/grid/DataCubeGridControllerState.js.map +1 -1
  298. package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
  299. package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js +34 -20
  300. package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js.map +1 -1
  301. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts +2 -1
  302. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
  303. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +5 -13
  304. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +1 -1
  305. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts +1 -3
  306. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts.map +1 -1
  307. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +6 -18
  308. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
  309. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +15 -0
  310. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +1 -1
  311. package/lib/stores/dataCube/grid/DataCubeGridState.js +15 -0
  312. package/lib/stores/dataCube/grid/DataCubeGridState.js.map +1 -1
  313. package/package.json +10 -10
  314. package/src/components/dataCube/DataCube.tsx +4 -1
  315. package/src/components/dataCube/editor/DataCubeEditor.tsx +10 -3
  316. package/src/components/dataCube/editor/DataCubeEditorCodePanel.tsx +2 -176
  317. package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +160 -90
  318. package/src/components/dataCube/editor/DataCubeEditorColumnsPanel.tsx +58 -12
  319. package/src/components/dataCube/editor/DataCubeEditorColumnsSelector.tsx +38 -34
  320. package/src/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.tsx +5 -7
  321. package/src/components/dataCube/editor/DataCubeEditorSortsPanel.tsx +1 -1
  322. package/src/components/dataCube/extend/DataCubeColumnEditor.tsx +362 -0
  323. package/src/components/repl/PureCodeEditor.tsx +91 -0
  324. package/src/server/DataCubeQuery.ts +5 -1
  325. package/src/server/REPLEngine.ts +33 -43
  326. package/src/server/REPLServerClient.ts +11 -2
  327. package/src/stores/LayoutManagerState.ts +2 -2
  328. package/src/stores/REPLStore.tsx +8 -10
  329. package/src/stores/dataCube/DataCubeEngine.ts +59 -9
  330. package/src/stores/dataCube/DataCubeState.ts +13 -9
  331. package/src/stores/dataCube/core/DataCubeConfiguration.ts +11 -1
  332. package/src/stores/dataCube/core/DataCubeConfigurationBuilder.ts +6 -0
  333. package/src/stores/dataCube/core/{DataCubeStaticContentDisplayState.ts → DataCubeInfoState.ts} +12 -7
  334. package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +50 -23
  335. package/src/stores/dataCube/core/DataCubeQueryBuilderUtils.ts +87 -77
  336. package/src/stores/dataCube/core/DataCubeQueryEngine.ts +31 -17
  337. package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +21 -13
  338. package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +37 -27
  339. package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.ts +20 -34
  340. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.ts +47 -0
  341. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.tsx +52 -0
  342. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.tsx +61 -0
  343. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.tsx +57 -0
  344. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.tsx +81 -0
  345. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.tsx +57 -0
  346. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.tsx +52 -0
  347. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.tsx +52 -0
  348. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.tsx +55 -0
  349. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.tsx +52 -0
  350. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.tsx +52 -0
  351. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.tsx +57 -0
  352. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.tsx +52 -0
  353. package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.tsx +52 -0
  354. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation.ts +12 -21
  355. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.tsx +5 -4
  356. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +5 -4
  357. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +5 -4
  358. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +5 -4
  359. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.tsx +15 -4
  360. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +5 -4
  361. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +5 -6
  362. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +10 -6
  363. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +13 -4
  364. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +9 -6
  365. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +13 -4
  366. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +9 -6
  367. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +16 -7
  368. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +16 -7
  369. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +13 -4
  370. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +9 -6
  371. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +13 -4
  372. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +9 -6
  373. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +5 -4
  374. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +5 -4
  375. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +15 -4
  376. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +5 -4
  377. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +5 -6
  378. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +10 -6
  379. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +5 -4
  380. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +5 -4
  381. package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +5 -4
  382. package/src/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.ts +23 -54
  383. package/src/stores/dataCube/editor/DataCubeEditorColumnsPanelState.ts +145 -36
  384. package/src/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.ts +2 -40
  385. package/src/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.ts +4 -4
  386. package/src/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.ts +99 -0
  387. package/src/stores/dataCube/editor/{DataCubeMutableConfiguration.ts → DataCubeEditorMutableConfiguration.ts} +42 -30
  388. package/src/stores/dataCube/editor/DataCubeEditorSortsPanelState.ts +9 -1
  389. package/src/stores/dataCube/editor/DataCubeEditorState.tsx +59 -5
  390. package/src/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.ts +9 -23
  391. package/src/stores/dataCube/extend/DataCubeColumnEditorState.tsx +365 -0
  392. package/src/stores/dataCube/extend/DataCubeExtendManagerState.tsx +171 -0
  393. package/src/stores/dataCube/filter/DataCubeFilterEditorState.tsx +21 -10
  394. package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +2 -2
  395. package/src/stores/dataCube/grid/DataCubeGridClientExportEngine.ts +1 -1
  396. package/src/stores/dataCube/grid/DataCubeGridConfigurationBuilder.tsx +21 -11
  397. package/src/stores/dataCube/grid/DataCubeGridControllerState.ts +37 -28
  398. package/src/stores/dataCube/grid/DataCubeGridMenuBuilder.tsx +36 -20
  399. package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +10 -16
  400. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +6 -34
  401. package/src/stores/dataCube/grid/DataCubeGridState.ts +15 -0
  402. package/tsconfig.json +23 -4
  403. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts.map +0 -1
  404. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js +0 -27
  405. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js.map +0 -1
  406. package/lib/components/dataCube/filter/DataCubeEditorFilter.d.ts.map +0 -1
  407. package/lib/stores/dataCube/core/DataCubeStaticContentDisplayState.d.ts.map +0 -1
  408. package/lib/stores/dataCube/core/DataCubeStaticContentDisplayState.js.map +0 -1
  409. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts.map +0 -1
  410. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js.map +0 -1
  411. package/src/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.tsx +0 -45
  412. /package/src/components/dataCube/filter/{DataCubeEditorFilter.tsx → DataCubeFilterEditor.tsx} +0 -0
@@ -0,0 +1,365 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { action, computed, makeObservable, observable } from 'mobx';
18
+ import type { DataCubeState } from '../DataCubeState.js';
19
+ import { DisplayState } from '../../LayoutManagerState.js';
20
+ import { DataCubeColumnCreator } from '../../../components/dataCube/extend/DataCubeColumnEditor.js';
21
+ import { editor as monacoEditorAPI, Uri } from 'monaco-editor';
22
+ import {
23
+ ActionState,
24
+ assertErrorThrown,
25
+ guaranteeNonNullable,
26
+ HttpStatus,
27
+ NetworkClientError,
28
+ uuid,
29
+ } from '@finos/legend-shared';
30
+ import { buildExecutableQuery } from '../core/DataCubeQueryBuilder.js';
31
+ import {
32
+ DataCubeColumnDataType,
33
+ DataCubeColumnKind,
34
+ DataCubeExtendedColumnType,
35
+ DEFAULT_LAMBDA_VARIABLE_NAME,
36
+ getDataType,
37
+ } from '../core/DataCubeQueryEngine.js';
38
+ import {
39
+ clearMarkers,
40
+ CODE_EDITOR_LANGUAGE,
41
+ setErrorMarkers,
42
+ } from '@finos/legend-lego/code-editor';
43
+ import type { DataCubeQueryBuilderError } from '../../../server/REPLEngine.js';
44
+ import type { DataCubeExtendManagerState } from './DataCubeExtendManagerState.js';
45
+ import {
46
+ PRIMITIVE_TYPE,
47
+ V1_Lambda,
48
+ V1_serializeValueSpecification,
49
+ type V1_ValueSpecification,
50
+ } from '@finos/legend-graph';
51
+ import type { DataCubeColumnConfiguration } from '../core/DataCubeConfiguration.js';
52
+
53
+ export class DataCubeNewColumnState {
54
+ readonly uuid = uuid();
55
+ readonly dataCube: DataCubeState;
56
+ readonly manager: DataCubeExtendManagerState;
57
+
58
+ // NOTE: use UUID in the column name to prevent collision
59
+ // when parsing/compiling the expression
60
+ private readonly _name = `col_${this.uuid.replaceAll('-', '_')}`;
61
+ readonly display: DisplayState;
62
+ readonly validationState = ActionState.create();
63
+ readonly finalizationState = ActionState.create();
64
+
65
+ name: string;
66
+ expectedType: string;
67
+ isGroupLevel: boolean;
68
+ columnKind?: DataCubeColumnKind | undefined;
69
+
70
+ code: string;
71
+ codePrefix: string;
72
+ codeSuffix: string;
73
+
74
+ editor?: monacoEditorAPI.IStandaloneCodeEditor | undefined;
75
+ readonly editorModel: monacoEditorAPI.ITextModel;
76
+ readonly editorModelUri: Uri;
77
+ codeError?: DataCubeQueryBuilderError | undefined;
78
+ returnType?: string | undefined;
79
+
80
+ constructor(
81
+ manager: DataCubeExtendManagerState,
82
+ referenceColumn?: DataCubeColumnConfiguration | undefined,
83
+ ) {
84
+ makeObservable(this, {
85
+ name: observable,
86
+ setName: action,
87
+ isNameValid: computed,
88
+
89
+ expectedType: observable,
90
+ setExpectedType: action,
91
+ isTypeValid: computed,
92
+
93
+ isGroupLevel: observable,
94
+ columnKind: observable,
95
+ setColumnKind: action,
96
+
97
+ editor: observable.ref,
98
+ setEditor: action,
99
+
100
+ codeError: observable.ref,
101
+ showError: action,
102
+ clearError: action,
103
+
104
+ returnType: observable,
105
+ setReturnType: action,
106
+ });
107
+
108
+ this.manager = manager;
109
+ this.dataCube = manager.dataCube;
110
+ this.display = new DisplayState(
111
+ this.dataCube.repl.layout,
112
+ 'Add New Column',
113
+ () => <DataCubeColumnCreator state={this} />,
114
+ );
115
+ this.display.configuration.window = {
116
+ x: 50,
117
+ y: 50,
118
+ width: 500,
119
+ height: 300,
120
+ minWidth: 300,
121
+ minHeight: 200,
122
+ center: false,
123
+ };
124
+
125
+ this.name = `col_${manager.allColumnNames.length + 1}`;
126
+ this.expectedType = DataCubeColumnDataType.NUMBER;
127
+ this.isGroupLevel = false;
128
+ this.columnKind = DataCubeColumnKind.MEASURE;
129
+
130
+ this.code = `${DEFAULT_LAMBDA_VARIABLE_NAME}|`;
131
+ this.codePrefix = `->extend(~${this._name}:`;
132
+ this.codeSuffix = `)`;
133
+
134
+ if (referenceColumn) {
135
+ this.expectedType = getDataType(referenceColumn.type);
136
+ this.columnKind = referenceColumn.kind;
137
+ this.code = `${DEFAULT_LAMBDA_VARIABLE_NAME}|$${DEFAULT_LAMBDA_VARIABLE_NAME}.${referenceColumn.name}`;
138
+ }
139
+
140
+ this.editorModelUri = Uri.file(`/${this.uuid}.pure`);
141
+ this.editorModel = monacoEditorAPI.createModel(
142
+ this.code,
143
+ CODE_EDITOR_LANGUAGE.PURE,
144
+ this.editorModelUri,
145
+ );
146
+ }
147
+
148
+ setName(value: string) {
149
+ this.name = value;
150
+ }
151
+
152
+ get isNameValid(): boolean {
153
+ return !this.manager.allColumnNames.includes(this.name);
154
+ }
155
+
156
+ setExpectedType(value: string) {
157
+ this.expectedType = value;
158
+ }
159
+
160
+ get isTypeValid() {
161
+ return (
162
+ this.returnType !== undefined &&
163
+ this.expectedType === getDataType(this.returnType)
164
+ );
165
+ }
166
+
167
+ setColumnKind(
168
+ isGroupLevel: boolean,
169
+ columnKind: DataCubeColumnKind | undefined,
170
+ ) {
171
+ this.isGroupLevel = isGroupLevel;
172
+ this.columnKind = columnKind;
173
+ }
174
+
175
+ setCode(value: string) {
176
+ this.code = value;
177
+ }
178
+
179
+ setEditor(editor: monacoEditorAPI.IStandaloneCodeEditor) {
180
+ this.editor = editor;
181
+ }
182
+
183
+ setReturnType(value: string | undefined) {
184
+ this.returnType = value;
185
+ }
186
+
187
+ showError(error: DataCubeQueryBuilderError) {
188
+ this.codeError = error;
189
+ if (error.sourceInformation) {
190
+ setErrorMarkers(
191
+ this.editorModel,
192
+ [
193
+ {
194
+ message: error.message,
195
+ startLineNumber: error.sourceInformation.startLine,
196
+ startColumn: error.sourceInformation.startColumn,
197
+ endLineNumber: error.sourceInformation.endLine,
198
+ endColumn: error.sourceInformation.endColumn,
199
+ },
200
+ ],
201
+ this.uuid,
202
+ );
203
+ }
204
+ }
205
+
206
+ clearError() {
207
+ this.codeError = undefined;
208
+ clearMarkers(this.uuid);
209
+ }
210
+
211
+ buildExtendBaseQuery() {
212
+ const currentSnapshot = guaranteeNonNullable(
213
+ this.manager.getLatestSnapshot(),
214
+ );
215
+ const snapshot = currentSnapshot.clone();
216
+ if (!this.isGroupLevel) {
217
+ snapshot.data.leafExtendedColumns = [];
218
+ snapshot.data.selectColumns = [];
219
+ snapshot.data.filter = undefined;
220
+ snapshot.data.groupBy = undefined;
221
+ snapshot.data.pivot = undefined;
222
+ }
223
+ snapshot.data.groupExtendedColumns = [];
224
+ snapshot.data.sortColumns = [];
225
+ snapshot.data.limit = undefined;
226
+ return buildExecutableQuery(
227
+ snapshot,
228
+ this.manager.dataCube.engine.filterOperations,
229
+ this.manager.dataCube.engine.aggregateOperations,
230
+ );
231
+ }
232
+
233
+ async getReturnType() {
234
+ const baseQuery = this.buildExtendBaseQuery();
235
+ this.validationState.inProgress();
236
+
237
+ // properly reset the error state before revalidating
238
+ this.clearError();
239
+ this.setReturnType(undefined);
240
+
241
+ try {
242
+ const returnRelationType =
243
+ await this.dataCube.engine.getQueryCodeRelationReturnType(
244
+ this.codePrefix + this.code + this.codeSuffix,
245
+ baseQuery,
246
+ );
247
+ let returnType = returnRelationType.columns.find(
248
+ (col) => col.name === this._name,
249
+ )?.type;
250
+ returnType =
251
+ returnType &&
252
+ (Object.values(PRIMITIVE_TYPE) as string[]).includes(returnType)
253
+ ? returnType
254
+ : undefined;
255
+ this.setReturnType(returnType);
256
+ return returnType;
257
+ } catch (err) {
258
+ assertErrorThrown(err);
259
+ if (
260
+ err instanceof NetworkClientError &&
261
+ err.response.status === HttpStatus.BAD_REQUEST
262
+ ) {
263
+ this.validationState.fail();
264
+ // correct the source information since we added prefix to the code
265
+ // and reveal error in the editor
266
+ const error = err.payload as DataCubeQueryBuilderError;
267
+ if (error.sourceInformation) {
268
+ error.sourceInformation.startColumn -=
269
+ error.sourceInformation.startLine === 1
270
+ ? this.codePrefix.length
271
+ : 0;
272
+ error.sourceInformation.endColumn -=
273
+ error.sourceInformation.endLine === 1 ? this.codePrefix.length : 0;
274
+ const fullRange = this.editorModel.getFullModelRange();
275
+ if (
276
+ error.sourceInformation.startLine < 1 ||
277
+ (error.sourceInformation.startLine === 1 &&
278
+ error.sourceInformation.startColumn < 1) ||
279
+ error.sourceInformation.endLine > fullRange.endLineNumber ||
280
+ (error.sourceInformation.endLine === fullRange.endLineNumber &&
281
+ error.sourceInformation.endColumn > fullRange.endColumn)
282
+ ) {
283
+ error.sourceInformation.startColumn = fullRange.startColumn;
284
+ error.sourceInformation.startLine = fullRange.startLineNumber;
285
+ error.sourceInformation.endColumn = fullRange.endColumn;
286
+ error.sourceInformation.endLine = fullRange.endLineNumber;
287
+ }
288
+ }
289
+ this.showError(err.payload as DataCubeQueryBuilderError);
290
+ return undefined;
291
+ }
292
+ this.dataCube.repl.alertError(err, {
293
+ message: `Expression Validation Failure: ${err.message}`,
294
+ });
295
+ } finally {
296
+ this.validationState.complete();
297
+ }
298
+
299
+ return undefined;
300
+ }
301
+
302
+ async applyChanges() {
303
+ if (
304
+ !this.validationState.hasCompleted ||
305
+ !this.isNameValid ||
306
+ !this.isTypeValid
307
+ ) {
308
+ return;
309
+ }
310
+
311
+ this.finalizationState.inProgress();
312
+
313
+ let query: V1_ValueSpecification;
314
+ let returnType: string | undefined;
315
+ try {
316
+ [query, returnType] = await Promise.all([
317
+ this.dataCube.engine.parseQuery(this.code, false),
318
+ this.getReturnType(), // recompile to get the return type
319
+ ]);
320
+ } catch (error) {
321
+ assertErrorThrown(error);
322
+ this.dataCube.repl.alertError(error, {
323
+ message: `Expression Validation Failure: ${error.message}`,
324
+ });
325
+ return;
326
+ } finally {
327
+ this.finalizationState.complete();
328
+ }
329
+
330
+ if (!(query instanceof V1_Lambda)) {
331
+ this.dataCube.repl.alertError(new Error(), {
332
+ message: `Expression Validation Failure: Expression must be a lambda.`,
333
+ });
334
+ return;
335
+ }
336
+
337
+ if (!returnType) {
338
+ this.dataCube.repl.alertError(new Error(), {
339
+ message: `Expression Validation Failure: Can't compute expression return type.`,
340
+ });
341
+ return;
342
+ }
343
+
344
+ this.manager.addNewColumn(
345
+ {
346
+ _type: DataCubeExtendedColumnType.SIMPLE,
347
+ name: this.name,
348
+ type: returnType,
349
+ lambda: V1_serializeValueSpecification(query, []),
350
+ },
351
+ this.isGroupLevel,
352
+ this.columnKind,
353
+ );
354
+
355
+ this.close();
356
+ }
357
+
358
+ close() {
359
+ // dispose the editor and its model to avoid memory leak
360
+ this.editorModel.dispose();
361
+ this.editor?.dispose();
362
+
363
+ this.display.close();
364
+ }
365
+ }
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { action, computed, makeObservable, observable } from 'mobx';
18
+ import type {
19
+ DataCubeQuerySnapshot,
20
+ DataCubeQuerySnapshotColumn,
21
+ DataCubeQuerySnapshotExtendedColumn,
22
+ } from '../core/DataCubeQuerySnapshot.js';
23
+ import { guaranteeNonNullable } from '@finos/legend-shared';
24
+ import type { DataCubeState } from '../DataCubeState.js';
25
+ import { DataCubeQuerySnapshotController } from '../core/DataCubeQuerySnapshotManager.js';
26
+ import {
27
+ type DataCubeColumnConfiguration,
28
+ DataCubeConfiguration,
29
+ } from '../core/DataCubeConfiguration.js';
30
+ import { DataCubeNewColumnState } from './DataCubeColumnEditorState.js';
31
+ import { DataCubeColumnKind } from '../core/DataCubeQueryEngine.js';
32
+ import { buildDefaultColumnConfiguration } from '../core/DataCubeConfigurationBuilder.js';
33
+
34
+ export class DataCubeQueryExtendedColumnState {
35
+ name: string;
36
+ type: string;
37
+ data: DataCubeQuerySnapshotExtendedColumn;
38
+
39
+ constructor(data: DataCubeQuerySnapshotExtendedColumn) {
40
+ makeObservable(this, {
41
+ name: observable,
42
+ type: observable,
43
+ });
44
+
45
+ this.name = data.name;
46
+ this.type = data.type;
47
+ this.data = data;
48
+ }
49
+ }
50
+
51
+ /**
52
+ * This query editor state backs the form editor for extend columns, i.e. creating new columns.
53
+ */
54
+ export class DataCubeExtendManagerState extends DataCubeQuerySnapshotController {
55
+ configuration = new DataCubeConfiguration();
56
+ columnConfigurations: DataCubeColumnConfiguration[] = [];
57
+
58
+ sourceColumns: DataCubeQuerySnapshotColumn[] = [];
59
+ leafExtendedColumns: DataCubeQueryExtendedColumnState[] = [];
60
+ groupExtendedColumns: DataCubeQueryExtendedColumnState[] = [];
61
+ newColumnEditors: DataCubeNewColumnState[] = [];
62
+ // TODO: existingColumnEditors
63
+
64
+ constructor(dataCube: DataCubeState) {
65
+ super(dataCube);
66
+
67
+ makeObservable(this, {
68
+ sourceColumns: observable.ref,
69
+ columnConfigurations: observable.struct,
70
+ leafExtendedColumns: observable,
71
+ groupExtendedColumns: observable,
72
+
73
+ allColumnNames: computed,
74
+
75
+ addNewColumn: action,
76
+
77
+ applySnapshot: action,
78
+ });
79
+ }
80
+
81
+ get allColumnNames(): string[] {
82
+ return [
83
+ ...this.sourceColumns,
84
+ ...this.leafExtendedColumns,
85
+ ...this.groupExtendedColumns,
86
+ ].map((col) => col.name);
87
+ }
88
+
89
+ openNewColumnEditor(
90
+ referenceColumn?: DataCubeColumnConfiguration | undefined,
91
+ ) {
92
+ const editor = new DataCubeNewColumnState(this, referenceColumn);
93
+ this.newColumnEditors.push(editor);
94
+ editor.display.open();
95
+ }
96
+
97
+ addNewColumn<T extends DataCubeQuerySnapshotExtendedColumn>(
98
+ column: T,
99
+ isGroupLevel: boolean,
100
+ columnKind: DataCubeColumnKind | undefined,
101
+ ) {
102
+ (isGroupLevel ? this.groupExtendedColumns : this.leafExtendedColumns).push(
103
+ new DataCubeQueryExtendedColumnState(column),
104
+ );
105
+
106
+ const columnConfiguration = buildDefaultColumnConfiguration(column);
107
+ if (columnKind) {
108
+ columnConfiguration.kind = columnKind;
109
+ columnConfiguration.excludedFromHorizontalPivot =
110
+ columnKind === DataCubeColumnKind.DIMENSION;
111
+ }
112
+
113
+ this.columnConfigurations.push(columnConfiguration);
114
+ this.applyChanges();
115
+ }
116
+
117
+ override async applySnapshot(
118
+ snapshot: DataCubeQuerySnapshot,
119
+ previousSnapshot: DataCubeQuerySnapshot | undefined,
120
+ ): Promise<void> {
121
+ this.configuration = DataCubeConfiguration.serialization.fromJson(
122
+ snapshot.data.configuration,
123
+ );
124
+ this.columnConfigurations = this.configuration.columns;
125
+ this.sourceColumns = snapshot.data.sourceColumns;
126
+ this.leafExtendedColumns = snapshot.data.leafExtendedColumns.map(
127
+ (col) => new DataCubeQueryExtendedColumnState(col),
128
+ );
129
+ this.groupExtendedColumns = snapshot.data.groupExtendedColumns.map(
130
+ (col) => new DataCubeQueryExtendedColumnState(col),
131
+ );
132
+ }
133
+
134
+ applyChanges() {
135
+ const baseSnapshot = guaranteeNonNullable(this.getLatestSnapshot());
136
+ const newSnapshot = baseSnapshot.clone();
137
+
138
+ newSnapshot.data.configuration = {
139
+ ...baseSnapshot.data.configuration,
140
+ columns: this.columnConfigurations,
141
+ };
142
+
143
+ newSnapshot.data.leafExtendedColumns = this.leafExtendedColumns.map(
144
+ (col) => col.data,
145
+ );
146
+ newSnapshot.data.groupExtendedColumns = this.groupExtendedColumns.map(
147
+ (col) => col.data,
148
+ );
149
+ // update the selected columns
150
+ // NOTE: group-level extended columns cannot be selected!
151
+ newSnapshot.data.selectColumns = this.columnConfigurations
152
+ .map((col) => ({
153
+ name: col.name,
154
+ type: col.type,
155
+ }))
156
+ .filter(
157
+ (col) =>
158
+ !newSnapshot.data.groupExtendedColumns.find(
159
+ (c) => c.name === col.name,
160
+ ),
161
+ );
162
+
163
+ // TODO: support edition, so v-pivots/h-pivots or column configuration that
164
+ // depends on columns with name/type changed should be updated
165
+
166
+ newSnapshot.finalize();
167
+ if (newSnapshot.hashCode !== baseSnapshot.hashCode) {
168
+ this.publishSnapshot(newSnapshot);
169
+ }
170
+ }
171
+ }
@@ -39,11 +39,15 @@ import {
39
39
  DataCubeConfiguration,
40
40
  type DataCubeColumnConfiguration,
41
41
  } from '../core/DataCubeConfiguration.js';
42
- import { SingletonModeDisplayState } from '../../LayoutManagerState.js';
43
- import { DataCubeFilterEditor } from '../../../components/dataCube/filter/DataCubeEditorFilter.js';
42
+ import { DisplayState } from '../../LayoutManagerState.js';
43
+ import { DataCubeFilterEditor } from '../../../components/dataCube/filter/DataCubeFilterEditor.js';
44
44
 
45
+ /**
46
+ * This query editor state backs the form editor for filter. It batches changes made
47
+ * to the filter in the form editor.
48
+ */
45
49
  export class DataCubeFilterEditorState extends DataCubeQuerySnapshotController {
46
- readonly display: SingletonModeDisplayState;
50
+ readonly display: DisplayState;
47
51
 
48
52
  tree: DataCubeFilterEditorTree;
49
53
  selectedNode?: DataCubeFilterEditorTreeNode | undefined;
@@ -57,7 +61,7 @@ export class DataCubeFilterEditorState extends DataCubeQuerySnapshotController {
57
61
  initializeTree: action,
58
62
  refreshTree: action,
59
63
 
60
- columns: observable,
64
+ columns: observable.struct,
61
65
 
62
66
  applySnapshot: action,
63
67
 
@@ -69,11 +73,18 @@ export class DataCubeFilterEditorState extends DataCubeQuerySnapshotController {
69
73
  layerFilterNode: action,
70
74
  });
71
75
 
72
- this.display = new SingletonModeDisplayState(
73
- this.dataCube.repl.layout,
74
- 'Filter',
75
- () => <DataCubeFilterEditor dataCube={this.dataCube} />,
76
- );
76
+ this.display = new DisplayState(this.dataCube.repl.layout, 'Filter', () => (
77
+ <DataCubeFilterEditor dataCube={this.dataCube} />
78
+ ));
79
+ this.display.configuration.window = {
80
+ x: -50,
81
+ y: 50,
82
+ width: 600,
83
+ height: 400,
84
+ minWidth: 300,
85
+ minHeight: 200,
86
+ center: false,
87
+ };
77
88
 
78
89
  this.tree = {
79
90
  nodes: new Map<string, DataCubeFilterEditorTreeNode>(),
@@ -278,7 +289,7 @@ export class DataCubeFilterEditorState extends DataCubeQuerySnapshotController {
278
289
  const configuration = DataCubeConfiguration.serialization.fromJson(
279
290
  snapshot.data.configuration,
280
291
  );
281
- // NOTE: filtering group extended columns is not supported
292
+ // NOTE: filtering group-level extended columns is not supported
282
293
  this.columns = configuration.columns.filter(
283
294
  (column) =>
284
295
  !snapshot.data.groupExtendedColumns.find(
@@ -218,6 +218,7 @@ export class DataCubeGridClientServerSideDataSource
218
218
  const executableQuery = buildExecutableQuery(
219
219
  syncedSnapshot,
220
220
  this.grid.dataCube.engine.filterOperations,
221
+ this.grid.dataCube.engine.aggregateOperations,
221
222
  {
222
223
  postProcessor:
223
224
  generateRowGroupingDrilldownExecutableQueryPostProcessor(
@@ -319,8 +320,7 @@ export class DataCubeGridClientServerSideDataSource
319
320
  } catch (error) {
320
321
  assertErrorThrown(error);
321
322
  this.grid.dataCube.repl.alertError(error, {
322
- message: `Data fetch failure: ${error.message}`,
323
- text: error.stack,
323
+ message: `Data Fetch Failure: ${error.message}`,
324
324
  });
325
325
  params.fail();
326
326
  } finally {
@@ -90,7 +90,7 @@ export class DataCubeGridClientExportEngine {
90
90
  }
91
91
 
92
92
  private generateFileName() {
93
- return `${this.dataCube.staticContent.name} - ${formatDate(new Date(), 'EEE MMM dd yyyy HH_mm_ss')}`;
93
+ return `${this.dataCube.info.name} - ${formatDate(new Date(), 'EEE MMM dd yyyy HH_mm_ss')}`;
94
94
  }
95
95
 
96
96
  exportFile(format: DataCubeGridClientExportFormat) {
@@ -380,21 +380,26 @@ function _rowGroupSpec(columnData: ColumnData) {
380
380
  const { snapshot, column } = columnData;
381
381
  const data = snapshot.data;
382
382
  const groupByCol = _findCol(data.groupBy?.columns, column.name);
383
+ const isGroupExtendedColumn = Boolean(
384
+ _findCol(data.groupExtendedColumns, column.name),
385
+ );
383
386
  return {
384
- enableRowGroup: column.kind === DataCubeColumnKind.DIMENSION,
387
+ enableRowGroup:
388
+ !isGroupExtendedColumn && column.kind === DataCubeColumnKind.DIMENSION,
385
389
  enableValue: false, // disable GUI interactions to modify this column's aggregate function
386
390
  allowedAggFuncs: [], // disable GUI for options of the agg functions
387
- rowGroup: Boolean(groupByCol),
388
- rowGroupIndex: groupByCol
389
- ? (data.groupBy?.columns.indexOf(groupByCol) ?? null)
390
- : null,
391
+ rowGroup: !isGroupExtendedColumn && Boolean(groupByCol),
392
+ rowGroupIndex:
393
+ !isGroupExtendedColumn && groupByCol
394
+ ? (data.groupBy?.columns.indexOf(groupByCol) ?? null)
395
+ : null,
391
396
  // NOTE: we don't quite care about populating these accurately
392
397
  // since ag-grid aggregation does not support parameters, so
393
398
  // its set of supported aggregators will never match that specified
394
399
  // in the editor.
395
400
  // But we need to set this to make sure sorting works when row grouping
396
401
  // is used, so we use a dummy value here.
397
- aggFunc: () => 0,
402
+ aggFunc: !isGroupExtendedColumn ? () => 0 : null,
398
403
  } satisfies ColDef;
399
404
  }
400
405
 
@@ -476,6 +481,12 @@ export function generateBaseGridOptions(dataCube: DataCubeState): GridOptions {
476
481
  // a desired behavior, so we hide the popup menu immediately
477
482
  onColumnMenuVisibleChanged: (event) => {
478
483
  if (!event.column) {
484
+ const menuElement = document.querySelector(
485
+ `.${INTERNAL__GridClientUtilityCssClassName.ROOT} .ag-popup .ag-menu`,
486
+ ) as HTMLElement | undefined;
487
+ if (menuElement) {
488
+ menuElement.style.display = 'none';
489
+ }
479
490
  event.api.hidePopupMenu();
480
491
  }
481
492
  },
@@ -596,6 +607,8 @@ export function generateGridOptionsFromSnapshot(
596
607
  headerName: '',
597
608
  colId: INTERNAL__GRID_CLIENT_TREE_COLUMN_ID,
598
609
  cellRenderer: 'agGroupCellRenderer',
610
+ // TODO: display: coloring, text, etc.
611
+ // TODO: tooltip
599
612
  // cellRendererParams: {
600
613
  // innerRenderer: (params: ICellRendererParams) => (
601
614
  // <>
@@ -623,11 +636,8 @@ export function generateGridOptionsFromSnapshot(
623
636
  },
624
637
  cellDataType: 'text',
625
638
  flex: 1,
626
- // TODO: display: coloring, text, etc.
627
- // TODO: pinning (should we pin this left by default?)
628
- // TODO: tooltip
629
639
  loadingCellRenderer: DataCubeGridLoadingCellRenderer,
630
- // TODO: @akphi - we can support this in the configuration (support sorting by tree-column?)
640
+ // TODO: we can support this in the configuration (support sorting by tree-column?)
631
641
  // sortable: false,
632
642
  } satisfies ColDef,
633
643
  // NOTE: Internal column used for programatically trigger data fetch when filter is modified
@@ -649,7 +659,7 @@ export function generateGridOptionsFromSnapshot(
649
659
  configuration,
650
660
  };
651
661
  return {
652
- headerName: column.name,
662
+ headerName: column.displayName ?? column.name,
653
663
  field: column.name,
654
664
  menuTabs: [],
655
665