@finos/legend-application-repl 0.0.30 → 0.0.32

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 (229) hide show
  1. package/lib/components/LegendREPLFrameworkProvider.js +1 -1
  2. package/lib/components/LegendREPLFrameworkProvider.js.map +1 -1
  3. package/lib/components/REPLStoreProvider.d.ts +1 -1
  4. package/lib/components/REPLStoreProvider.d.ts.map +1 -1
  5. package/lib/components/REPLStoreProvider.js +1 -1
  6. package/lib/components/REPLStoreProvider.js.map +1 -1
  7. package/lib/components/REPLWindow.d.ts +33 -0
  8. package/lib/components/REPLWindow.d.ts.map +1 -0
  9. package/lib/components/REPLWindow.js +117 -0
  10. package/lib/components/REPLWindow.js.map +1 -0
  11. package/lib/components/dataCube/DataCube.d.ts.map +1 -1
  12. package/lib/components/dataCube/DataCube.js +13 -9
  13. package/lib/components/dataCube/DataCube.js.map +1 -1
  14. package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -1
  15. package/lib/components/dataCube/editor/DataCubeEditor.js +13 -90
  16. package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -1
  17. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -1
  18. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js +3 -2
  19. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -1
  20. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
  21. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +237 -6
  22. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
  23. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js +2 -2
  24. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js.map +1 -1
  25. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts +5 -0
  26. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts.map +1 -1
  27. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js +130 -48
  28. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js.map +1 -1
  29. package/lib/{stores/dataCube/DataCubeDefaultConfig.d.ts → components/dataCube/editor/DataCubeEditorDeveloperPanel.d.ts} +4 -2
  30. package/lib/components/dataCube/editor/DataCubeEditorDeveloperPanel.d.ts.map +1 -0
  31. package/lib/components/dataCube/editor/DataCubeEditorDeveloperPanel.js +28 -0
  32. package/lib/components/dataCube/editor/DataCubeEditorDeveloperPanel.js.map +1 -0
  33. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts.map +1 -1
  34. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js +3 -2
  35. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js.map +1 -1
  36. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts.map +1 -1
  37. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js +3 -2
  38. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js.map +1 -1
  39. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +1 -1
  40. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js +145 -5
  41. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -1
  42. package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.d.ts.map +1 -1
  43. package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.js +3 -2
  44. package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.js.map +1 -1
  45. package/lib/components/dataCube/editor/DataCubeEditorShared.d.ts +47 -0
  46. package/lib/components/dataCube/editor/DataCubeEditorShared.d.ts.map +1 -0
  47. package/lib/components/dataCube/editor/DataCubeEditorShared.js +188 -0
  48. package/lib/components/dataCube/editor/DataCubeEditorShared.js.map +1 -0
  49. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts.map +1 -1
  50. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js +36 -3
  51. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js.map +1 -1
  52. package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.d.ts.map +1 -1
  53. package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.js +3 -2
  54. package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.js.map +1 -1
  55. package/lib/components/dataCube/grid/DataCubeGrid.d.ts +3 -0
  56. package/lib/components/dataCube/grid/DataCubeGrid.d.ts.map +1 -1
  57. package/lib/components/dataCube/grid/DataCubeGrid.js +190 -63
  58. package/lib/components/dataCube/grid/DataCubeGrid.js.map +1 -1
  59. package/lib/{stores/dataCube/DataCubeDefaultConfig.js → components/dataCube/grid/DataCubeGridShared.d.ts} +3 -2
  60. package/lib/components/dataCube/grid/DataCubeGridShared.d.ts.map +1 -0
  61. package/lib/components/dataCube/grid/DataCubeGridShared.js +25 -0
  62. package/lib/components/dataCube/grid/DataCubeGridShared.js.map +1 -0
  63. package/lib/components/dataCube/grid/menu/DataCubeGridMenu.d.ts +23 -0
  64. package/lib/components/dataCube/grid/menu/DataCubeGridMenu.d.ts.map +1 -0
  65. package/lib/components/dataCube/grid/menu/DataCubeGridMenu.js +413 -0
  66. package/lib/components/dataCube/grid/menu/DataCubeGridMenu.js.map +1 -0
  67. package/{src/stores/dataCube/DataCubeDefaultConfig.ts → lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.d.ts} +4 -2
  68. package/lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.d.ts.map +1 -0
  69. package/lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.js +83 -0
  70. package/lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.js.map +1 -0
  71. package/lib/index.css +2 -2
  72. package/lib/index.css.map +1 -1
  73. package/lib/package.json +14 -12
  74. package/lib/server/models/DataCubeQuery.d.ts +3 -5
  75. package/lib/server/models/DataCubeQuery.d.ts.map +1 -1
  76. package/lib/server/models/DataCubeQuery.js +0 -2
  77. package/lib/server/models/DataCubeQuery.js.map +1 -1
  78. package/lib/stores/{dataCube/REPLStore.d.ts → REPLStore.d.ts} +6 -4
  79. package/lib/stores/REPLStore.d.ts.map +1 -0
  80. package/lib/stores/{dataCube/REPLStore.js → REPLStore.js} +8 -5
  81. package/lib/stores/REPLStore.js.map +1 -0
  82. package/lib/stores/dataCube/{core/DataCubeEngine.d.ts → DataCubeInfrastructure.d.ts} +20 -4
  83. package/lib/stores/dataCube/DataCubeInfrastructure.d.ts.map +1 -0
  84. package/lib/stores/dataCube/{core/DataCubeEngine.js → DataCubeInfrastructure.js} +31 -3
  85. package/lib/stores/dataCube/DataCubeInfrastructure.js.map +1 -0
  86. package/lib/stores/dataCube/DataCubeState.d.ts +14 -5
  87. package/lib/stores/dataCube/DataCubeState.d.ts.map +1 -1
  88. package/lib/stores/dataCube/DataCubeState.js +37 -9
  89. package/lib/stores/dataCube/DataCubeState.js.map +1 -1
  90. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts +93 -0
  91. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts.map +1 -0
  92. package/lib/stores/dataCube/core/DataCubeConfiguration.js +167 -0
  93. package/lib/stores/dataCube/core/DataCubeConfiguration.js.map +1 -0
  94. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.d.ts +25 -0
  95. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.d.ts.map +1 -0
  96. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js +45 -0
  97. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js.map +1 -0
  98. package/lib/stores/dataCube/core/DataCubeCoreState.d.ts +1 -1
  99. package/lib/stores/dataCube/core/DataCubeCoreState.d.ts.map +1 -1
  100. package/lib/stores/dataCube/core/DataCubeCoreState.js +4 -4
  101. package/lib/stores/dataCube/core/DataCubeCoreState.js.map +1 -1
  102. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +12 -12
  103. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -1
  104. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +99 -4
  105. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +1 -1
  106. package/lib/stores/dataCube/core/DataCubeQueryEngine.js +149 -3
  107. package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +1 -1
  108. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +19 -5
  109. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  110. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +36 -6
  111. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -1
  112. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  113. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +42 -23
  114. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  115. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts.map +1 -1
  116. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js +6 -2
  117. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js.map +1 -1
  118. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts +1 -3
  119. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts.map +1 -1
  120. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js +2 -3
  121. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js.map +1 -1
  122. package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.d.ts +3 -1
  123. package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.d.ts.map +1 -1
  124. package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.js +4 -2
  125. package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.js.map +1 -1
  126. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts +36 -0
  127. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -0
  128. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js +66 -0
  129. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -0
  130. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts +3 -0
  131. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts.map +1 -1
  132. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js +10 -0
  133. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js.map +1 -1
  134. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts +8 -3
  135. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts.map +1 -1
  136. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js +20 -24
  137. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js.map +1 -1
  138. package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.d.ts +27 -0
  139. package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.d.ts.map +1 -0
  140. package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.js +30 -0
  141. package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.js.map +1 -0
  142. package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts +1 -1
  143. package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts.map +1 -1
  144. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts +13 -6
  145. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
  146. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js +64 -19
  147. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js.map +1 -1
  148. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +8 -4
  149. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -1
  150. package/lib/stores/dataCube/editor/DataCubeEditorState.js +26 -17
  151. package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -1
  152. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts +100 -0
  153. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts.map +1 -0
  154. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js +450 -0
  155. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js.map +1 -0
  156. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts +39 -2
  157. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  158. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +63 -3
  159. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -1
  160. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
  161. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +0 -9
  162. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +1 -1
  163. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts +4 -1
  164. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts.map +1 -1
  165. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js +330 -38
  166. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js.map +1 -1
  167. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts.map +1 -1
  168. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +16 -28
  169. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
  170. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +16 -2
  171. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +1 -1
  172. package/lib/stores/dataCube/grid/DataCubeGridState.js +51 -21
  173. package/lib/stores/dataCube/grid/DataCubeGridState.js.map +1 -1
  174. package/package.json +20 -18
  175. package/src/components/LegendREPLFrameworkProvider.tsx +1 -1
  176. package/src/components/REPLStoreProvider.tsx +1 -1
  177. package/src/components/REPLWindow.tsx +179 -0
  178. package/src/components/dataCube/DataCube.tsx +44 -23
  179. package/src/components/dataCube/editor/DataCubeEditor.tsx +80 -186
  180. package/src/components/dataCube/editor/DataCubeEditorCodePanel.tsx +4 -2
  181. package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +1044 -13
  182. package/src/components/dataCube/editor/DataCubeEditorColumnsPanel.tsx +2 -2
  183. package/src/components/dataCube/editor/DataCubeEditorColumnsSelector.tsx +264 -51
  184. package/src/components/dataCube/editor/DataCubeEditorDeveloperPanel.tsx +43 -0
  185. package/src/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.tsx +4 -2
  186. package/src/components/dataCube/editor/DataCubeEditorFilterPanel.tsx +4 -2
  187. package/src/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.tsx +743 -13
  188. package/src/components/dataCube/editor/DataCubeEditorHPivotsPanel.tsx +4 -2
  189. package/src/components/dataCube/editor/DataCubeEditorShared.tsx +484 -0
  190. package/src/components/dataCube/editor/DataCubeEditorSortsPanel.tsx +103 -4
  191. package/src/components/dataCube/editor/DataCubeEditorVPivotsPanel.tsx +4 -2
  192. package/src/components/dataCube/grid/DataCubeGrid.tsx +314 -120
  193. package/src/components/dataCube/grid/DataCubeGridShared.tsx +45 -0
  194. package/src/components/dataCube/grid/menu/DataCubeGridMenu.tsx +441 -0
  195. package/src/components/dataCube/grid/menu/DataCubeGridSortsMenu.tsx +119 -0
  196. package/src/server/models/DataCubeQuery.ts +2 -6
  197. package/src/stores/{dataCube/REPLStore.ts → REPLStore.ts} +9 -6
  198. package/src/stores/dataCube/{core/DataCubeEngine.ts → DataCubeInfrastructure.ts} +40 -3
  199. package/src/stores/dataCube/DataCubeState.ts +44 -10
  200. package/src/stores/dataCube/core/DataCubeConfiguration.ts +220 -0
  201. package/src/stores/dataCube/core/DataCubeConfigurationBuilder.ts +60 -0
  202. package/src/stores/dataCube/core/DataCubeCoreState.ts +7 -4
  203. package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +18 -18
  204. package/src/stores/dataCube/core/DataCubeQueryEngine.ts +157 -4
  205. package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +43 -6
  206. package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +49 -29
  207. package/src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts +9 -2
  208. package/src/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.ts +6 -5
  209. package/src/stores/dataCube/editor/DataCubeEditorCodePanelState.ts +5 -2
  210. package/src/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.ts +96 -0
  211. package/src/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.ts +12 -0
  212. package/src/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.ts +31 -28
  213. package/src/stores/dataCube/editor/DataCubeEditorHPivotPanelState.ts +43 -0
  214. package/src/stores/dataCube/editor/DataCubeEditorPanelState.ts +1 -1
  215. package/src/stores/dataCube/editor/DataCubeEditorSortsPanelState.ts +92 -25
  216. package/src/stores/dataCube/editor/DataCubeEditorState.ts +32 -18
  217. package/src/stores/dataCube/editor/DataCubeMutableConfiguration.ts +641 -0
  218. package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +88 -3
  219. package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +0 -10
  220. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.tsx +494 -45
  221. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +16 -36
  222. package/src/stores/dataCube/grid/DataCubeGridState.ts +73 -20
  223. package/tsconfig.json +13 -3
  224. package/lib/stores/dataCube/DataCubeDefaultConfig.d.ts.map +0 -1
  225. package/lib/stores/dataCube/DataCubeDefaultConfig.js.map +0 -1
  226. package/lib/stores/dataCube/REPLStore.d.ts.map +0 -1
  227. package/lib/stores/dataCube/REPLStore.js.map +0 -1
  228. package/lib/stores/dataCube/core/DataCubeEngine.d.ts.map +0 -1
  229. package/lib/stores/dataCube/core/DataCubeEngine.js.map +0 -1
@@ -20,11 +20,43 @@ import { APPLICATION_EVENT } from '@finos/legend-application';
20
20
  import { buildQuerySnapshot } from './DataCubeGridQuerySnapshotBuilder.js';
21
21
  import { generateRowGroupingDrilldownExecutableQueryPostProcessor } from './DataCubeGridQueryBuilder.js';
22
22
  import { makeObservable, observable, runInAction } from 'mobx';
23
+ export var INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME;
24
+ (function (INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME) {
25
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["ROOT"] = "data-cube-grid.ag-theme-balham";
26
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["HIGHLIGHT_ROW"] = "data-cube-grid__utility--highlight-row";
27
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["SHOW_VERTICAL_GRID_LINES"] = "data-cube-grid__utility--show-vertical-grid-lines";
28
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["SHOW_HORIZONTAL_GRID_LINES"] = "data-cube-grid__utility--show-horizontal-grid-lines";
29
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["BLUR"] = "data-cube-grid__utility--blur";
30
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_FAMILY_PREFIX"] = "data-cube-grid__utility--font-family-";
31
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_SIZE_PREFIX"] = "data-cube-grid__utility--font-size-";
32
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_BOLD"] = "data-cube-grid__utility--font-style-bold";
33
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_ITALIC"] = "data-cube-grid__utility--font-style-italic";
34
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_UNDERLINE_PREFIX"] = "data-cube-grid__utility--font-style-underline-";
35
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_STRIKETHROUGH"] = "data-cube-grid__utility--font-style-strikethrough";
36
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_CASE_PREFIX"] = "data-cube-grid__utility--font-style-case-";
37
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["TEXT_ALIGN_PREFIX"] = "data-cube-grid__utility--text-align-";
38
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["TEXT_COLOR_PREFIX"] = "data-cube-grid__utility--text-color-";
39
+ INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["BACKGROUND_COLOR_PREFIX"] = "data-cube-grid__utility--background-color-";
40
+ })(INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME || (INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME = {}));
41
+ export const generateFontFamilyUtilityClassName = (fontFamily) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_FAMILY_PREFIX}${fontFamily.replaceAll(' ', '-')}`;
42
+ export const generateFontSizeUtilityClassName = (fontSize) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_SIZE_PREFIX}${fontSize}`;
43
+ export const generateFontUnderlineUtilityClassName = (variant) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_UNDERLINE_PREFIX}${variant ?? 'none'}`;
44
+ export const generateFontCaseUtilityClassName = (fontCase) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_CASE_PREFIX}${fontCase ?? 'none'}`;
45
+ export const generateTextAlignUtilityClassName = (alignment) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.TEXT_ALIGN_PREFIX}${alignment}`;
46
+ export const generateTextColorUtilityClassName = (color, key) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.TEXT_COLOR_PREFIX}${key}-${color.substring(1)}`;
47
+ export const generateBackgroundColorUtilityClassName = (color, key) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.BACKGROUND_COLOR_PREFIX}${key}-${color.substring(1)}`;
48
+ export const INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH = 50;
23
49
  export const INTERNAL__GRID_CLIENT_HEADER_HEIGHT = 24;
24
50
  export const INTERNAL__GRID_CLIENT_ROW_HEIGHT = 20;
25
- export const INTERNAL__GRID_CLIENT_ROW_BUFFER = 50;
51
+ export const INTERNAL__GRID_CLIENT_TOOLTIP_SHOW_DELAY = 1000;
52
+ export const INTERNAL__GRID_CLIENT_AUTO_RESIZE_PADDING = 10;
26
53
  export const INTERNAL__GRID_CLIENT_TREE_COLUMN_ID = 'INTERNAL__tree';
27
54
  export const INTERNAL__GRID_CLIENT_ROW_GROUPING_COUNT_AGG_COLUMN_ID = 'INTERNAL__count';
55
+ export var GridClientPinnedAlignement;
56
+ (function (GridClientPinnedAlignement) {
57
+ GridClientPinnedAlignement["LEFT"] = "left";
58
+ GridClientPinnedAlignement["RIGHT"] = "right";
59
+ })(GridClientPinnedAlignement || (GridClientPinnedAlignement = {}));
28
60
  export var GridClientSortDirection;
29
61
  (function (GridClientSortDirection) {
30
62
  GridClientSortDirection["ASCENDING"] = "asc";
@@ -38,6 +70,28 @@ export var GridClientAggregateOperation;
38
70
  GridClientAggregateOperation["MIN"] = "min";
39
71
  GridClientAggregateOperation["AVERAGE"] = "avg";
40
72
  })(GridClientAggregateOperation || (GridClientAggregateOperation = {}));
73
+ export function getDataForAllNodes(client) {
74
+ const rows = [];
75
+ client.forEachNode((node) => {
76
+ if (node.data) {
77
+ rows.push(node.data);
78
+ }
79
+ });
80
+ return rows;
81
+ }
82
+ /**
83
+ * NOTE: this method does not work for server-side row model.
84
+ * It only works when client-side filter is being applied
85
+ */
86
+ export function getDataForAllFilteredNodes(client) {
87
+ const rows = [];
88
+ client.forEachNodeAfterFilter((node) => {
89
+ if (node.data) {
90
+ rows.push(node.data);
91
+ }
92
+ });
93
+ return rows;
94
+ }
41
95
  function TDStoRowData(tds) {
42
96
  return tds.rows.map((_row, rowIdx) => {
43
97
  const row = {};
@@ -61,6 +115,7 @@ export class DataCubeGridClientServerSideDataSource {
61
115
  this.grid = grid;
62
116
  }
63
117
  async fetchRows(params) {
118
+ const task = this.grid.dataCube.newTask('Fetching data');
64
119
  // ------------------------------ GRID OPTIONS ------------------------------
65
120
  // Here, we make adjustments to the grid display in response to the new
66
121
  // request, in case the grid action has not impacted the layout in an
@@ -74,8 +129,10 @@ export class DataCubeGridClientServerSideDataSource {
74
129
  }
75
130
  // ------------------------------ SNAPSHOT ------------------------------
76
131
  const currentSnapshot = guaranteeNonNullable(this.grid.getLatestSnapshot());
132
+ // TODO: when we support pivoting, we should make a quick call to check for columns
133
+ // created by pivots and specify them as cast columns when pivot is activated
77
134
  const syncedSnapshot = buildQuerySnapshot(params.request, currentSnapshot);
78
- if (syncedSnapshot.uuid !== currentSnapshot.uuid) {
135
+ if (syncedSnapshot.hashCode !== currentSnapshot.hashCode) {
79
136
  this.grid.publishSnapshot(syncedSnapshot);
80
137
  }
81
138
  // ------------------------------ DATA ------------------------------
@@ -93,7 +150,7 @@ export class DataCubeGridClientServerSideDataSource {
93
150
  });
94
151
  const lambda = new V1_Lambda();
95
152
  lambda.body.push(executableQuery);
96
- const result = await this.grid.dataCube.engine.executeQuery(lambda);
153
+ const result = await this.grid.dataCube.infrastructure.engine.executeQuery(lambda);
97
154
  const rowData = TDStoRowData(result.result);
98
155
  if (this.grid.isPaginationEnabled) {
99
156
  params.success({ rowData });
@@ -124,6 +181,9 @@ export class DataCubeGridClientServerSideDataSource {
124
181
  this.grid.dataCube.application.notificationService.notifyError(error);
125
182
  params.fail();
126
183
  }
184
+ finally {
185
+ this.grid.dataCube.endTask(task);
186
+ }
127
187
  }
128
188
  getRows(params) {
129
189
  this.fetchRows(params).catch((error) => {
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeGridClientEngine.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridClientEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataCubeGridClientEngine.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridClientEngine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeGridQueryBuilder.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAC;AAmCxC,wBAAgB,wDAAwD,CACtE,eAAe,EAAE,MAAM,EAAE,cAGb,qBAAqB,YACrB,kBAAkB,EAAE,WACrB,wBAAwB,UAoFpC"}
1
+ {"version":3,"file":"DataCubeGridQueryBuilder.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAC;AAmCxC,wBAAgB,wDAAwD,CACtE,eAAe,EAAE,MAAM,EAAE,cAGb,qBAAqB,YACrB,kBAAkB,EAAE,WACrB,wBAAwB,UA0EpC"}
@@ -88,15 +88,6 @@ export function generateRowGroupingDrilldownExecutableQueryPostProcessor(drilldo
88
88
  }
89
89
  // --------------------------------- PIVOT ---------------------------------
90
90
  // TODO: @akphi - implement this and CAST
91
- // --------------------------------- SELECT ---------------------------------
92
- if (funcMap.select && drilldownValues.length < groupBy.columns.length) {
93
- funcMap.select.parameters = [
94
- _cols([
95
- ...data.selectColumns.map((col) => _colSpec(col.name)),
96
- _colSpec(INTERNAL__GRID_CLIENT_ROW_GROUPING_COUNT_AGG_COLUMN_ID),
97
- ]),
98
- ];
99
- }
100
91
  }
101
92
  };
102
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeGridQueryBuilder.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataCubeGridQueryBuilder.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,8 @@
21
21
  ***************************************************************************************/
22
22
  import { type DataCubeQuerySnapshot } from '../core/DataCubeQuerySnapshot.js';
23
23
  import type { GridOptions } from '@ag-grid-community/core';
24
- export declare function generateGridOptionsFromSnapshot(snapshot: DataCubeQuerySnapshot): GridOptions;
24
+ import type { DataCubeConfiguration } from '../core/DataCubeConfiguration.js';
25
+ import type { DataCubeState } from '../DataCubeState.js';
26
+ export declare function generateBaseGridOptions(dataCube: DataCubeState): GridOptions;
27
+ export declare function generateGridOptionsFromSnapshot(snapshot: DataCubeQuerySnapshot, configuration: DataCubeConfiguration, dataCube: DataCubeState): GridOptions;
25
28
  //# sourceMappingURL=DataCubeGridQuerySnapshotAnalyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeGridQuerySnapshotAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;yFAKyF;AAEzF,OAAO,EAIL,KAAK,qBAAqB,EAE3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsGhF,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,qBAAqB,GAC9B,WAAW,CAwDb"}
1
+ {"version":3,"file":"DataCubeGridQuerySnapshotAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;yFAKyF;AAEzF,OAAO,EAIL,KAAK,qBAAqB,EAE3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAGV,WAAW,EAEZ,MAAM,yBAAyB,CAAC;AA8BjC,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,kCAAkC,CAAC;AAW1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA4WzD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,WAAW,CAmF5E;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,QAAQ,EAAE,aAAa,GACtB,WAAW,CA2Gb"}
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  /**
2
3
  * Copyright (c) 2020-present, Goldman Sachs
3
4
  *
@@ -19,11 +20,31 @@
19
20
  * These are utilities used to build the configuration for the grid client,
20
21
  * AG Grid, from the query snapshot.
21
22
  ***************************************************************************************/
22
- import { DataCubeQuerySnapshotAggregateFunction, DataCubeQuerySnapshotSortDirection, _findCol, } from '../core/DataCubeQuerySnapshot.js';
23
- import { INTERNAL__GRID_CLIENT_TREE_COLUMN_ID, GridClientAggregateOperation, GridClientSortDirection, } from './DataCubeGridClientEngine.js';
23
+ import { DataCubeQuerySnapshotAggregateFunction, DataCubeQuerySnapshotSortOperation, _findCol, } from '../core/DataCubeQuerySnapshot.js';
24
+ import { INTERNAL__GRID_CLIENT_TREE_COLUMN_ID, GridClientAggregateOperation, GridClientSortDirection, INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH, INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME, generateFontFamilyUtilityClassName, generateFontSizeUtilityClassName, generateFontUnderlineUtilityClassName, generateTextAlignUtilityClassName, generateTextColorUtilityClassName, generateBackgroundColorUtilityClassName, generateFontCaseUtilityClassName, GridClientPinnedAlignement, INTERNAL__GRID_CLIENT_ROW_HEIGHT, INTERNAL__GRID_CLIENT_AUTO_RESIZE_PADDING, INTERNAL__GRID_CLIENT_HEADER_HEIGHT, INTERNAL__GRID_CLIENT_TOOLTIP_SHOW_DELAY, } from './DataCubeGridClientEngine.js';
24
25
  import { PRIMITIVE_TYPE } from '@finos/legend-graph';
25
- import { IllegalStateError } from '@finos/legend-shared';
26
+ import { getQueryParameters, getQueryParameterValue, guaranteeNonNullable, IllegalStateError, isNonNullable, isNumber, isValidUrl, } from '@finos/legend-shared';
27
+ import { DataCubeColumnDataType, DataCubeColumnPinPlacement, DataCubeNumberScale, DEFAULT_ROW_BUFFER, DEFAULT_URL_LABEL_QUERY_PARAM, getDataType, } from '../core/DataCubeQueryEngine.js';
28
+ import { DataCubeIcon } from '@finos/legend-art';
29
+ import { buildGridMenu } from '../../../components/dataCube/grid/menu/DataCubeGridMenu.js';
26
30
  // --------------------------------- UTILITIES ---------------------------------
31
+ // See https://www.ag-grid.com/javascript-data-grid/cell-data-types/
32
+ function _cellDataType(column) {
33
+ switch (column.type) {
34
+ case PRIMITIVE_TYPE.NUMBER:
35
+ case PRIMITIVE_TYPE.DECIMAL:
36
+ case PRIMITIVE_TYPE.INTEGER:
37
+ case PRIMITIVE_TYPE.FLOAT:
38
+ return 'number';
39
+ case PRIMITIVE_TYPE.DATE:
40
+ case PRIMITIVE_TYPE.DATETIME:
41
+ case PRIMITIVE_TYPE.STRICTDATE:
42
+ return 'dateString';
43
+ case PRIMITIVE_TYPE.STRING:
44
+ default:
45
+ return 'text';
46
+ }
47
+ }
27
48
  function _allowedAggFuncs(column) {
28
49
  switch (column.type) {
29
50
  case PRIMITIVE_TYPE.STRING:
@@ -63,51 +84,311 @@ function _aggFunc(func) {
63
84
  throw new IllegalStateError(`Unsupported aggregate function '${func}'`);
64
85
  }
65
86
  }
66
- // --------------------------------- BUILDING BLOCKS ---------------------------------
67
- function _sortSpec(snapshot, colName) {
68
- const sortColumns = snapshot.data.sortColumns;
69
- const sortCol = _findCol(sortColumns, colName);
70
- if (!sortCol) {
71
- return {
72
- sort: null,
73
- sortIndex: null,
87
+ function scaleNumber(value, type) {
88
+ switch (type) {
89
+ case DataCubeNumberScale.PERCENT:
90
+ return { value: value * 1e2, unit: '%' };
91
+ case DataCubeNumberScale.BASIS_POINT:
92
+ return { value: value * 1e4, unit: 'bp' };
93
+ case DataCubeNumberScale.THOUSANDS:
94
+ return { value: value / 1e3, unit: 'k' };
95
+ case DataCubeNumberScale.MILLIONS:
96
+ return { value: value / 1e6, unit: 'm' };
97
+ case DataCubeNumberScale.BILLIONS:
98
+ return { value: value / 1e9, unit: 'b' };
99
+ case DataCubeNumberScale.TRILLIONS:
100
+ return { value: value / 1e12, unit: 't' };
101
+ case DataCubeNumberScale.AUTO:
102
+ return scaleNumber(value, value >= 1e12
103
+ ? DataCubeNumberScale.TRILLIONS
104
+ : value >= 1e9
105
+ ? DataCubeNumberScale.BILLIONS
106
+ : value >= 1e6
107
+ ? DataCubeNumberScale.MILLIONS
108
+ : value >= 1e3
109
+ ? DataCubeNumberScale.THOUSANDS
110
+ : undefined);
111
+ default:
112
+ return { value, unit: undefined };
113
+ }
114
+ }
115
+ function DataCubeGridLoadingCellRenderer(props) {
116
+ if (props.node.failedLoad) {
117
+ return _jsx("span", { className: "inline-flex items-center", children: "#ERR" });
118
+ }
119
+ return (_jsxs("span", { className: "inline-flex items-center", children: [_jsx(DataCubeIcon.Loader, { className: "mr-1 animate-spin stroke-2" }), "Loading"] }));
120
+ }
121
+ function getCellRenderer(columnData) {
122
+ const { column, configuration } = columnData;
123
+ const dataType = getDataType(column.type);
124
+ if (dataType === DataCubeColumnDataType.TEXT && configuration.displayAsLink) {
125
+ return function LinkRenderer(params) {
126
+ const isUrl = isValidUrl(params.value);
127
+ if (!isUrl) {
128
+ return params.value;
129
+ }
130
+ const url = params.value;
131
+ const label = getQueryParameterValue(configuration.linkLabelParameter ?? DEFAULT_URL_LABEL_QUERY_PARAM, getQueryParameters(url, true));
132
+ return (_jsx("a", { href: url, target: "_blank", rel: "noreferrer", className: "text-blue-600 underline", children: label ?? url }));
74
133
  };
75
134
  }
135
+ return null;
136
+ }
137
+ function _displaySpec(columnData) {
138
+ const { column, configuration, gridConfiguration } = columnData;
139
+ const dataType = getDataType(column.type);
140
+ const fontFamily = configuration.fontFamily ?? gridConfiguration.fontFamily;
141
+ const fontSize = configuration.fontSize ?? gridConfiguration.fontSize;
142
+ const fontBold = configuration.fontBold ?? gridConfiguration.fontBold;
143
+ const fontItalic = configuration.fontItalic ?? gridConfiguration.fontItalic;
144
+ const fontStrikethrough = configuration.fontStrikethrough ?? gridConfiguration.fontStrikethrough;
145
+ const fontUnderline = configuration.fontUnderline ?? gridConfiguration.fontUnderline;
146
+ const fontCase = configuration.fontCase ?? gridConfiguration.fontCase;
147
+ const textAlign = configuration.textAlign ?? gridConfiguration.textAlign;
148
+ const normalForegroundColor = configuration.normalForegroundColor ??
149
+ gridConfiguration.normalForegroundColor;
150
+ const normalBackgroundColor = configuration.normalBackgroundColor ??
151
+ gridConfiguration.normalBackgroundColor;
152
+ const negativeForegroundColor = configuration.negativeForegroundColor ??
153
+ gridConfiguration.negativeForegroundColor;
154
+ const negativeBackgroundColor = configuration.negativeBackgroundColor ??
155
+ gridConfiguration.negativeBackgroundColor;
156
+ const zeroForegroundColor = configuration.zeroForegroundColor ?? gridConfiguration.zeroForegroundColor;
157
+ const zeroBackgroundColor = configuration.zeroBackgroundColor ?? gridConfiguration.zeroBackgroundColor;
158
+ const errorForegroundColor = configuration.errorForegroundColor ??
159
+ gridConfiguration.errorForegroundColor;
160
+ const errorBackgroundColor = configuration.errorBackgroundColor ??
161
+ gridConfiguration.errorBackgroundColor;
162
+ const cellRenderer = getCellRenderer(columnData);
163
+ return {
164
+ // setting the cell data type might helps guide the grid to render the cell properly
165
+ // and optimize the grid performance slightly by avoiding unnecessary type inference
166
+ cellDataType: _cellDataType(column),
167
+ valueFormatter: dataType === DataCubeColumnDataType.NUMBER
168
+ ? (params) => {
169
+ const value = params.value;
170
+ if (value === null || value === undefined) {
171
+ return null;
172
+ }
173
+ const showNegativeNumberInParens = configuration.negativeNumberInParens && value < 0;
174
+ // 1. apply the number scale
175
+ const scaledNumber = scaleNumber(value, configuration.numberScale);
176
+ // 2. apply the number formatter
177
+ const formattedValue = (showNegativeNumberInParens
178
+ ? Math.abs(scaledNumber.value)
179
+ : scaledNumber.value).toLocaleString(undefined, {
180
+ useGrouping: configuration.displayCommas,
181
+ ...(configuration.decimals !== undefined
182
+ ? {
183
+ minimumFractionDigits: configuration.decimals,
184
+ maximumFractionDigits: configuration.decimals,
185
+ }
186
+ : {}),
187
+ });
188
+ // 3. add the parentheses (and then the unit)
189
+ return ((showNegativeNumberInParens
190
+ ? `(${formattedValue})`
191
+ : formattedValue) +
192
+ (scaledNumber.unit ? ` ${scaledNumber.unit}` : ''));
193
+ }
194
+ : (params) => params.value,
195
+ loadingCellRenderer: DataCubeGridLoadingCellRenderer,
196
+ cellClassRules: {
197
+ [generateFontFamilyUtilityClassName(fontFamily)]: () => true,
198
+ [generateFontSizeUtilityClassName(fontSize)]: () => true,
199
+ [INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_BOLD]: () => fontBold,
200
+ [INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_ITALIC]: () => fontItalic,
201
+ [INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_STRIKETHROUGH]: () => fontStrikethrough,
202
+ [generateFontUnderlineUtilityClassName(fontUnderline)]: () => Boolean(fontUnderline),
203
+ [generateFontCaseUtilityClassName(fontCase)]: (params) => dataType === DataCubeColumnDataType.TEXT && Boolean(fontCase),
204
+ [generateTextAlignUtilityClassName(textAlign)]: () => true,
205
+ [generateTextColorUtilityClassName(normalForegroundColor, 'normal')]: () => true,
206
+ [generateBackgroundColorUtilityClassName(normalBackgroundColor, 'normal')]: () => true,
207
+ [generateTextColorUtilityClassName(zeroForegroundColor, 'zero')]: (params) => dataType === DataCubeColumnDataType.NUMBER &&
208
+ isNumber(params.value) &&
209
+ params.value === 0,
210
+ [generateBackgroundColorUtilityClassName(zeroBackgroundColor, 'zero')]: (params) => dataType === DataCubeColumnDataType.NUMBER &&
211
+ isNumber(params.value) &&
212
+ params.value === 0,
213
+ [generateTextColorUtilityClassName(negativeForegroundColor, 'negative')]: (params) => dataType === DataCubeColumnDataType.NUMBER &&
214
+ isNumber(params.value) &&
215
+ params.value < 0,
216
+ [generateBackgroundColorUtilityClassName(negativeBackgroundColor, 'negative')]: (params) => dataType === DataCubeColumnDataType.NUMBER &&
217
+ isNumber(params.value) &&
218
+ params.value < 0,
219
+ [generateTextColorUtilityClassName(errorForegroundColor, 'error')]: (params) => params.node.failedLoad,
220
+ [generateBackgroundColorUtilityClassName(errorBackgroundColor, 'error')]: (params) => params.node.failedLoad,
221
+ [INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.BLUR]: () => configuration.blur,
222
+ },
223
+ cellRenderer: cellRenderer,
224
+ pinned: configuration.pinned !== undefined
225
+ ? configuration.pinned === DataCubeColumnPinPlacement.RIGHT
226
+ ? GridClientPinnedAlignement.RIGHT
227
+ : GridClientPinnedAlignement.LEFT
228
+ : null,
229
+ tooltipValueGetter: (params) => isNonNullable(params.value)
230
+ ? `Value = ${params.value === '' ? "''" : params.value === true ? 'TRUE' : params.value === false ? 'FALSE' : params.value}`
231
+ : `Missing Value`,
232
+ };
233
+ }
234
+ function _sizeSpec(columnData) {
235
+ const { configuration } = columnData;
76
236
  return {
77
- sort: sortCol.direction === DataCubeQuerySnapshotSortDirection.ASCENDING
78
- ? GridClientSortDirection.ASCENDING
79
- : GridClientSortDirection.DESCENDING,
80
- sortIndex: sortColumns.indexOf(sortCol),
237
+ // NOTE: there is a problem with ag-grid when scrolling horizontally, the header row
238
+ // lags behind the data, it seems to be caused by synchronizing scroll not working properly
239
+ // There is currently, no way around this
240
+ // See https://github.com/ag-grid/ag-grid/issues/5233
241
+ // See https://github.com/ag-grid/ag-grid/issues/7620
242
+ // See https://github.com/ag-grid/ag-grid/issues/6292
243
+ // See https://issues.chromium.org/issues/40890343#comment11
244
+ //
245
+ // TODO: if we support column resize to fit content, should we disable this behavior?
246
+ resizable: configuration.fixedWidth === undefined,
247
+ // suppressAutoSize: columnConfiguration.fixedWidth !== undefined,
248
+ width: configuration.fixedWidth,
249
+ minWidth: Math.max(configuration.minWidth ?? INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH, INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH),
250
+ maxWidth: configuration.maxWidth,
81
251
  };
82
252
  }
83
- function _rowGroupSpec(snapshot, colName) {
253
+ function _sortSpec(columnData) {
254
+ const { snapshot, column } = columnData;
255
+ const sortColumns = snapshot.data.sortColumns;
256
+ const sortCol = _findCol(sortColumns, column.name);
257
+ return {
258
+ sortable: true, // if this is pivot column, no sorting is allowed
259
+ sort: sortCol
260
+ ? sortCol.operation === DataCubeQuerySnapshotSortOperation.ASCENDING
261
+ ? GridClientSortDirection.ASCENDING
262
+ : GridClientSortDirection.DESCENDING
263
+ : null,
264
+ sortIndex: sortCol ? sortColumns.indexOf(sortCol) : null,
265
+ };
266
+ }
267
+ function _rowGroupSpec(columnData) {
268
+ const { snapshot, column } = columnData;
84
269
  const data = snapshot.data;
85
270
  const columns = snapshot.stageCols('aggregation');
86
- const column = _findCol(columns, colName);
87
- const groupByCol = _findCol(data.groupBy?.columns, colName);
88
- const aggCol = _findCol(data.groupBy?.aggColumns, colName);
271
+ const rowGroupColumn = _findCol(columns, column.name);
272
+ const groupByCol = _findCol(data.groupBy?.columns, column.name);
273
+ const aggCol = _findCol(data.groupBy?.aggColumns, column.name);
89
274
  return {
275
+ enableRowGroup: true,
276
+ enableValue: true,
90
277
  rowGroup: Boolean(groupByCol),
91
278
  // TODO: @akphi - add this from configuration object
92
279
  aggFunc: aggCol
93
280
  ? _aggFunc(aggCol.function)
94
- : column
281
+ : rowGroupColumn
95
282
  ? [
96
283
  PRIMITIVE_TYPE.NUMBER,
97
284
  PRIMITIVE_TYPE.DECIMAL,
98
285
  PRIMITIVE_TYPE.FLOAT,
99
286
  PRIMITIVE_TYPE.INTEGER,
100
- ].includes(column.type)
287
+ ].includes(rowGroupColumn.type)
101
288
  ? GridClientAggregateOperation.SUM
102
289
  : null
103
290
  : null,
104
291
  // TODO: @akphi - add this from configuration object
105
- allowedAggFuncs: column ? _allowedAggFuncs(column) : [],
292
+ allowedAggFuncs: rowGroupColumn ? _allowedAggFuncs(rowGroupColumn) : [],
293
+ };
294
+ }
295
+ // --------------------------------- MAIN ---------------------------------
296
+ export function generateBaseGridOptions(dataCube) {
297
+ const grid = dataCube.grid;
298
+ return {
299
+ // -------------------------------------- README --------------------------------------
300
+ // NOTE: we observe performance degradataion when configuring the grid via React component
301
+ // props when the options is non-static, i.e. changed when the query configuration changes.
302
+ // As such, we must ONLY ADD STATIC CONFIGURATION HERE, and dynamic configuration should be
303
+ // programatically updated when the query is modified.
304
+ //
305
+ //
306
+ // -------------------------------------- ROW GROUPING --------------------------------------
307
+ rowGroupPanelShow: 'always',
308
+ groupDisplayType: 'custom', // keeps the column set stable even when row grouping is used
309
+ suppressRowGroupHidesColumns: true, // keeps the column set stable even when row grouping is used
310
+ suppressAggFuncInHeader: true, // keeps the columns stable when aggregation is used
311
+ // -------------------------------------- PIVOT --------------------------------------
312
+ // pivotPanelShow: "always"
313
+ // pivotMode:true,
314
+ // -------------------------------------- SORT --------------------------------------
315
+ // Force multi-sorting since this is what the query supports anyway
316
+ alwaysMultiSort: true,
317
+ // -------------------------------------- DISPLAY --------------------------------------
318
+ rowHeight: INTERNAL__GRID_CLIENT_ROW_HEIGHT,
319
+ headerHeight: INTERNAL__GRID_CLIENT_HEADER_HEIGHT,
320
+ suppressBrowserResizeObserver: true,
321
+ noRowsOverlayComponent: () => (_jsxs("div", { className: "flex items-center border-[1.5px] border-neutral-300 p-2 font-medium text-neutral-400", children: [_jsx("div", { children: _jsx(DataCubeIcon.WarningCircle, { className: "mr-1 stroke-2 text-lg" }) }), "0 rows"] })),
322
+ loadingOverlayComponent: () => (_jsxs("div", { className: "flex items-center border-[1.5px] border-neutral-300 p-2 font-medium text-neutral-400", children: [_jsx("div", { children: _jsx(DataCubeIcon.Loader, { className: "mr-1 animate-spin stroke-2 text-lg" }) }), "Loading..."] })),
323
+ // Show cursor position when scrolling
324
+ onBodyScroll: (event) => {
325
+ const rowCount = event.api.getDisplayedRowCount();
326
+ const range = event.api.getVerticalPixelRange();
327
+ const start = Math.max(1, Math.ceil(range.top / INTERNAL__GRID_CLIENT_ROW_HEIGHT) + 1);
328
+ const end = Math.min(rowCount, Math.floor(range.bottom / INTERNAL__GRID_CLIENT_ROW_HEIGHT));
329
+ grid.setScrollHintText(`${start}-${end}/${rowCount}`);
330
+ event.api.hidePopupMenu(); // hide context-menu while scrolling
331
+ },
332
+ onBodyScrollEnd: () => grid.setScrollHintText(''),
333
+ // -------------------------------------- CONTEXT MENU --------------------------------------
334
+ preventDefaultOnContextMenu: true, // prevent showing the browser's context menu
335
+ columnMenu: 'new', // ensure context menu works on header
336
+ getContextMenuItems: buildGridMenu,
337
+ getMainMenuItems: buildGridMenu,
338
+ // -------------------------------------- COLUMN SIZING --------------------------------------
339
+ autoSizePadding: INTERNAL__GRID_CLIENT_AUTO_RESIZE_PADDING,
340
+ autoSizeStrategy: {
341
+ // resize to fit content initially
342
+ type: 'fitCellContents',
343
+ },
344
+ // -------------------------------------- TOOLTIP --------------------------------------
345
+ tooltipShowDelay: INTERNAL__GRID_CLIENT_TOOLTIP_SHOW_DELAY,
346
+ tooltipInteraction: true,
347
+ // -------------------------------------- COLUMN MOVING --------------------------------------
348
+ suppressDragLeaveHidesColumns: true,
349
+ // -------------------------------------- SERVER SIDE ROW MODEL --------------------------------------
350
+ suppressScrollOnNewData: true,
351
+ suppressServerSideFullWidthLoadingRow: true, // make sure each column has its own loading indicator instead of the whole row
352
+ // -------------------------------------- SELECTION --------------------------------------
353
+ enableRangeSelection: true,
354
+ // -------------------------------------- PERFORMANCE --------------------------------------
355
+ animateRows: false, // improve performance
356
+ suppressColumnMoveAnimation: true, // improve performance
106
357
  };
107
358
  }
108
- export function generateGridOptionsFromSnapshot(snapshot) {
359
+ export function generateGridOptionsFromSnapshot(snapshot, configuration, dataCube) {
109
360
  const data = snapshot.data;
110
361
  const gridOptions = {
362
+ /**
363
+ * NOTE: there is a strange issue where if we put dynamic configuration directly
364
+ * such as rowClassRules which depends on some changing state (e.g. alternateRows)
365
+ * as the grid component's props, the grid performance will be heavily compromised
366
+ * while if we programatically set it like this, it does not seem so taxing to the
367
+ * performance; perhaps something to do with React component rendering on props change
368
+ * so in general for grid options which are not static, we must configure them here
369
+ */
370
+ rowClassRules: configuration.alternateRows
371
+ ? {
372
+ [INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.HIGHLIGHT_ROW]: (params) => params.rowIndex % (configuration.alternateRowsCount * 2) >=
373
+ configuration.alternateRowsCount,
374
+ }
375
+ : null,
376
+ rowBuffer: DEFAULT_ROW_BUFFER,
377
+ // -------------------------------------- EVENT HANDLERS --------------------------------------
378
+ onColumnPinned: (event) => {
379
+ if (event.column) {
380
+ const column = event.column;
381
+ const columnConfiguration = dataCube.editor.columnProperties.getColumnConfiguration(column.getColId());
382
+ const pinned = column.getPinned();
383
+ columnConfiguration?.setPinned(pinned === null
384
+ ? undefined
385
+ : pinned === GridClientPinnedAlignement.LEFT
386
+ ? DataCubeColumnPinPlacement.LEFT
387
+ : DataCubeColumnPinPlacement.RIGHT);
388
+ dataCube.editor.applyChanges();
389
+ }
390
+ },
391
+ // -------------------------------------- COLUMNS --------------------------------------
111
392
  columnDefs: [
112
393
  {
113
394
  headerName: '',
@@ -132,26 +413,37 @@ export function generateGridOptionsFromSnapshot(snapshot) {
132
413
  hide: !snapshot.data.groupBy,
133
414
  lockPinned: true,
134
415
  lockPosition: true,
416
+ pinned: GridClientPinnedAlignement.LEFT,
135
417
  cellStyle: {
136
418
  flex: 1,
137
- 'justify-content': 'space-between',
419
+ justifyContent: 'space-between',
138
420
  display: 'flex',
139
421
  },
422
+ // TODO: display: coloring, text, etc.
423
+ // TODO: pinning (should we pin this left by default?)
424
+ // TODO: tooltip
425
+ loadingCellRenderer: DataCubeGridLoadingCellRenderer,
426
+ sortable: false, // TODO: @akphi - we can support this in the configuration
140
427
  },
141
- ...data.selectColumns.map((col) => ({
142
- headerName: col.name,
143
- field: col.name,
144
- // TODO: configure
145
- flex: 1, // when the column supposed to fill the remainig space of the grid
146
- resizable: true,
147
- minWidth: 50,
148
- sortable: true, // if this is pivot column, no sorting is allowed
149
- enableRowGroup: true,
150
- enableValue: true,
151
- menuTabs: ['generalMenuTab', 'columnsMenuTab'],
152
- ..._sortSpec(snapshot, col.name),
153
- ..._rowGroupSpec(snapshot, col.name),
154
- })),
428
+ // TODO: handle pivot and column grouping
429
+ ...data.selectColumns.map((column) => {
430
+ const columnData = {
431
+ snapshot,
432
+ column,
433
+ configuration: guaranteeNonNullable(configuration.columns.find((col) => col.name === column.name)),
434
+ gridConfiguration: configuration,
435
+ };
436
+ return {
437
+ headerName: column.name,
438
+ field: column.name,
439
+ menuTabs: [],
440
+ suppressMovable: true,
441
+ ..._displaySpec(columnData),
442
+ ..._sizeSpec(columnData),
443
+ ..._sortSpec(columnData),
444
+ ..._rowGroupSpec(columnData),
445
+ };
446
+ }),
155
447
  ],
156
448
  };
157
449
  return gridOptions;