@finos/legend-application-repl 0.0.31 → 0.0.33

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 (244) 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/{dataCube/grid/menu/DataCubeGridSortsMenu.d.ts → REPLWindow.d.ts} +18 -4
  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.js +4 -4
  12. package/lib/components/dataCube/DataCube.js.map +1 -1
  13. package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -1
  14. package/lib/components/dataCube/editor/DataCubeEditor.js +14 -93
  15. package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -1
  16. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -1
  17. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js +3 -2
  18. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -1
  19. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
  20. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +161 -87
  21. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
  22. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -1
  23. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js +10 -3
  24. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js.map +1 -1
  25. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts +3 -2
  26. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts.map +1 -1
  27. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js +23 -38
  28. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js.map +1 -1
  29. package/lib/components/dataCube/editor/DataCubeEditorDeveloperPanel.d.ts.map +1 -1
  30. package/lib/components/dataCube/editor/DataCubeEditorDeveloperPanel.js +3 -2
  31. package/lib/components/dataCube/editor/DataCubeEditorDeveloperPanel.js.map +1 -1
  32. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts.map +1 -1
  33. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js +3 -2
  34. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js.map +1 -1
  35. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts.map +1 -1
  36. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js +3 -2
  37. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js.map +1 -1
  38. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +1 -1
  39. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js +96 -55
  40. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -1
  41. package/lib/components/dataCube/editor/{DataCubeEditorVPivotsPanel.d.ts → DataCubeEditorHorizontalPivotsPanel.d.ts} +2 -2
  42. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.d.ts.map +1 -0
  43. package/lib/components/dataCube/editor/{DataCubeEditorHPivotsPanel.js → DataCubeEditorHorizontalPivotsPanel.js} +5 -4
  44. package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js.map +1 -0
  45. package/lib/components/dataCube/editor/DataCubeEditorShared.d.ts +1 -0
  46. package/lib/components/dataCube/editor/DataCubeEditorShared.d.ts.map +1 -1
  47. package/lib/components/dataCube/editor/DataCubeEditorShared.js +44 -27
  48. package/lib/components/dataCube/editor/DataCubeEditorShared.js.map +1 -1
  49. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts.map +1 -1
  50. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js +7 -7
  51. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js.map +1 -1
  52. package/lib/components/dataCube/editor/{DataCubeEditorHPivotsPanel.d.ts → DataCubeEditorVerticalPivotsPanel.d.ts} +2 -2
  53. package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.d.ts.map +1 -0
  54. package/lib/components/dataCube/editor/{DataCubeEditorVPivotsPanel.js → DataCubeEditorVerticalPivotsPanel.js} +5 -6
  55. package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.js.map +1 -0
  56. package/lib/components/dataCube/grid/DataCubeGrid.d.ts +3 -0
  57. package/lib/components/dataCube/grid/DataCubeGrid.d.ts.map +1 -1
  58. package/lib/components/dataCube/grid/DataCubeGrid.js +205 -75
  59. package/lib/components/dataCube/grid/DataCubeGrid.js.map +1 -1
  60. package/lib/components/dataCube/grid/DataCubeGridShared.d.ts +1 -1
  61. package/lib/components/dataCube/grid/DataCubeGridShared.d.ts.map +1 -1
  62. package/lib/components/dataCube/grid/DataCubeGridShared.js +1 -1
  63. package/lib/components/dataCube/grid/DataCubeGridShared.js.map +1 -1
  64. package/lib/index.css +2 -2
  65. package/lib/index.css.map +1 -1
  66. package/lib/package.json +19 -15
  67. package/lib/stores/{dataCube/REPLStore.d.ts → REPLStore.d.ts} +5 -3
  68. package/lib/stores/REPLStore.d.ts.map +1 -0
  69. package/lib/stores/{dataCube/REPLStore.js → REPLStore.js} +5 -2
  70. package/lib/stores/REPLStore.js.map +1 -0
  71. package/lib/stores/dataCube/{core/DataCubeEngine.d.ts → DataCubeInfrastructure.d.ts} +20 -4
  72. package/lib/stores/dataCube/DataCubeInfrastructure.d.ts.map +1 -0
  73. package/lib/stores/dataCube/{core/DataCubeEngine.js → DataCubeInfrastructure.js} +31 -3
  74. package/lib/stores/dataCube/DataCubeInfrastructure.js.map +1 -0
  75. package/lib/stores/dataCube/DataCubeState.d.ts +4 -4
  76. package/lib/stores/dataCube/DataCubeState.d.ts.map +1 -1
  77. package/lib/stores/dataCube/DataCubeState.js +9 -10
  78. package/lib/stores/dataCube/DataCubeState.js.map +1 -1
  79. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts +44 -38
  80. package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts.map +1 -1
  81. package/lib/stores/dataCube/core/DataCubeConfiguration.js +88 -78
  82. package/lib/stores/dataCube/core/DataCubeConfiguration.js.map +1 -1
  83. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.d.ts.map +1 -1
  84. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js +2 -1
  85. package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js.map +1 -1
  86. package/lib/stores/dataCube/core/DataCubeCoreState.d.ts +1 -1
  87. package/lib/stores/dataCube/core/DataCubeCoreState.d.ts.map +1 -1
  88. package/lib/stores/dataCube/core/DataCubeCoreState.js +1 -1
  89. package/lib/stores/dataCube/core/DataCubeCoreState.js.map +1 -1
  90. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts.map +1 -1
  91. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +21 -21
  92. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -1
  93. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +68 -29
  94. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +1 -1
  95. package/lib/stores/dataCube/core/DataCubeQueryEngine.js +93 -50
  96. package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +1 -1
  97. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +5 -40
  98. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  99. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +9 -54
  100. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -1
  101. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  102. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +18 -12
  103. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  104. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts +1 -3
  105. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts.map +1 -1
  106. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js +2 -3
  107. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js.map +1 -1
  108. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts +7 -1
  109. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -1
  110. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js +29 -5
  111. package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  112. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.d.ts +45 -0
  113. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.d.ts.map +1 -0
  114. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.js +102 -0
  115. package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.js.map +1 -0
  116. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts +26 -9
  117. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts.map +1 -1
  118. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js +50 -20
  119. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js.map +1 -1
  120. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts +2 -1
  121. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts.map +1 -1
  122. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js +1 -1
  123. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js.map +1 -1
  124. package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts +2 -1
  125. package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts.map +1 -1
  126. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts +12 -13
  127. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
  128. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js +23 -70
  129. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js.map +1 -1
  130. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +18 -13
  131. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -1
  132. package/lib/stores/dataCube/editor/DataCubeEditorState.js +44 -25
  133. package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -1
  134. package/lib/stores/dataCube/editor/{DataCubeEditorHPivotPanelState.d.ts → DataCubeEditorVerticalPivotsPanelState.d.ts} +11 -4
  135. package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.d.ts.map +1 -0
  136. package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.js +62 -0
  137. package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.js.map +1 -0
  138. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts +48 -41
  139. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts.map +1 -1
  140. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js +217 -134
  141. package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js.map +1 -1
  142. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts +40 -0
  143. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  144. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +43 -1
  145. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -1
  146. package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.d.ts +31 -0
  147. package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.d.ts.map +1 -0
  148. package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js +147 -0
  149. package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js.map +1 -0
  150. package/lib/stores/dataCube/grid/{DataCubeGridQuerySnapshotAnalyzer.d.ts → DataCubeGridConfigurationBuilder.d.ts} +5 -2
  151. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -0
  152. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js +478 -0
  153. package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js.map +1 -0
  154. package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts +62 -0
  155. package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts.map +1 -0
  156. package/lib/stores/dataCube/grid/DataCubeGridControllerState.js +174 -0
  157. package/lib/stores/dataCube/grid/DataCubeGridControllerState.js.map +1 -0
  158. package/lib/{components/dataCube/grid/menu/DataCubeGridMenu.d.ts → stores/dataCube/grid/DataCubeGridMenuBuilder.d.ts} +3 -7
  159. package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.d.ts.map +1 -0
  160. package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js +462 -0
  161. package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js.map +1 -0
  162. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
  163. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +3 -3
  164. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +1 -1
  165. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts.map +1 -1
  166. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +9 -8
  167. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
  168. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +20 -2
  169. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +1 -1
  170. package/lib/stores/dataCube/grid/DataCubeGridState.js +58 -22
  171. package/lib/stores/dataCube/grid/DataCubeGridState.js.map +1 -1
  172. package/package.json +25 -21
  173. package/src/components/LegendREPLFrameworkProvider.tsx +1 -1
  174. package/src/components/REPLStoreProvider.tsx +1 -1
  175. package/src/components/REPLWindow.tsx +179 -0
  176. package/src/components/dataCube/DataCube.tsx +4 -4
  177. package/src/components/dataCube/editor/DataCubeEditor.tsx +81 -192
  178. package/src/components/dataCube/editor/DataCubeEditorCodePanel.tsx +3 -1
  179. package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +482 -283
  180. package/src/components/dataCube/editor/DataCubeEditorColumnsPanel.tsx +42 -8
  181. package/src/components/dataCube/editor/DataCubeEditorColumnsSelector.tsx +38 -80
  182. package/src/components/dataCube/editor/DataCubeEditorDeveloperPanel.tsx +3 -1
  183. package/src/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.tsx +3 -1
  184. package/src/components/dataCube/editor/DataCubeEditorFilterPanel.tsx +3 -1
  185. package/src/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.tsx +238 -175
  186. package/src/components/dataCube/editor/{DataCubeEditorHPivotsPanel.tsx → DataCubeEditorHorizontalPivotsPanel.tsx} +4 -2
  187. package/src/components/dataCube/editor/DataCubeEditorShared.tsx +69 -33
  188. package/src/components/dataCube/editor/DataCubeEditorSortsPanel.tsx +8 -10
  189. package/src/components/dataCube/editor/{DataCubeEditorVPivotsPanel.tsx → DataCubeEditorVerticalPivotsPanel.tsx} +6 -6
  190. package/src/components/dataCube/grid/DataCubeGrid.tsx +337 -149
  191. package/src/components/dataCube/grid/DataCubeGridShared.tsx +5 -1
  192. package/src/stores/{dataCube/REPLStore.ts → REPLStore.ts} +6 -3
  193. package/src/stores/dataCube/{core/DataCubeEngine.ts → DataCubeInfrastructure.ts} +40 -3
  194. package/src/stores/dataCube/DataCubeState.ts +16 -14
  195. package/src/stores/dataCube/core/DataCubeConfiguration.ts +112 -86
  196. package/src/stores/dataCube/core/DataCubeConfigurationBuilder.ts +5 -1
  197. package/src/stores/dataCube/core/DataCubeCoreState.ts +4 -1
  198. package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +27 -27
  199. package/src/stores/dataCube/core/DataCubeQueryEngine.ts +95 -49
  200. package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +19 -58
  201. package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +18 -14
  202. package/src/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.ts +6 -5
  203. package/src/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.ts +51 -5
  204. package/src/stores/dataCube/editor/DataCubeEditorColumnsPanelState.ts +162 -0
  205. package/src/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.ts +98 -23
  206. package/src/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.ts +5 -1
  207. package/src/stores/dataCube/editor/DataCubeEditorPanelState.ts +5 -1
  208. package/src/stores/dataCube/editor/DataCubeEditorSortsPanelState.ts +48 -117
  209. package/src/stores/dataCube/editor/DataCubeEditorState.ts +54 -27
  210. package/src/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.ts +105 -0
  211. package/src/stores/dataCube/editor/DataCubeMutableConfiguration.ts +263 -146
  212. package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +64 -1
  213. package/src/stores/dataCube/grid/DataCubeGridClientExportEngine.ts +170 -0
  214. package/src/stores/dataCube/grid/DataCubeGridConfigurationBuilder.tsx +668 -0
  215. package/src/stores/dataCube/grid/DataCubeGridControllerState.ts +254 -0
  216. package/src/stores/dataCube/grid/DataCubeGridMenuBuilder.tsx +535 -0
  217. package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +3 -5
  218. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +12 -10
  219. package/src/stores/dataCube/grid/DataCubeGridState.ts +81 -21
  220. package/tsconfig.json +11 -8
  221. package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.d.ts.map +0 -1
  222. package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.js.map +0 -1
  223. package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.d.ts.map +0 -1
  224. package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.js.map +0 -1
  225. package/lib/components/dataCube/grid/menu/DataCubeGridMenu.d.ts.map +0 -1
  226. package/lib/components/dataCube/grid/menu/DataCubeGridMenu.js +0 -382
  227. package/lib/components/dataCube/grid/menu/DataCubeGridMenu.js.map +0 -1
  228. package/lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.d.ts.map +0 -1
  229. package/lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.js +0 -83
  230. package/lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.js.map +0 -1
  231. package/lib/stores/dataCube/REPLStore.d.ts.map +0 -1
  232. package/lib/stores/dataCube/REPLStore.js.map +0 -1
  233. package/lib/stores/dataCube/core/DataCubeEngine.d.ts.map +0 -1
  234. package/lib/stores/dataCube/core/DataCubeEngine.js.map +0 -1
  235. package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.d.ts.map +0 -1
  236. package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.js +0 -30
  237. package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.js.map +0 -1
  238. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts.map +0 -1
  239. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js +0 -160
  240. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js.map +0 -1
  241. package/src/components/dataCube/grid/menu/DataCubeGridMenu.tsx +0 -394
  242. package/src/components/dataCube/grid/menu/DataCubeGridSortsMenu.tsx +0 -120
  243. package/src/stores/dataCube/editor/DataCubeEditorHPivotPanelState.ts +0 -43
  244. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.tsx +0 -192
@@ -0,0 +1,174 @@
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
+ import { guaranteeNonNullable, isNonNullable } from '@finos/legend-shared';
17
+ import { DataCubeConfiguration } from '../core/DataCubeConfiguration.js';
18
+ import { DataCubeQuerySnapshotSubscriber } from '../core/DataCubeQuerySnapshotSubscriber.js';
19
+ import { DataCubeColumnKind, } from '../core/DataCubeQueryEngine.js';
20
+ import { generateMenuBuilder } from './DataCubeGridMenuBuilder.js';
21
+ /**
22
+ * This state is responsible for capturing edition to the data cube query
23
+ * caused by interaction with the grid which is not captured by the server-side row model
24
+ * datasource, e.g. column pinning, column visibility changes, etc.
25
+ *
26
+ * NOTE: since typically, each grid action causes a new snapshot to be created,
27
+ * we MUST NEVER use the editor here, as it could potentially create illegal state
28
+ * while the editor is still in the middle of a modification that has not been applied.
29
+ */
30
+ export class DataCubeGridControllerState extends DataCubeQuerySnapshotSubscriber {
31
+ configuration = new DataCubeConfiguration();
32
+ selectableColumns = [];
33
+ selectColumns = [];
34
+ verticalPivotableColumns = [];
35
+ verticalPivotedColumns = [];
36
+ sortableColumns = [];
37
+ sortColumns = [];
38
+ menuBuilder;
39
+ getColumnConfiguration(colName) {
40
+ return this.configuration.columns.find((col) => col.name === colName);
41
+ }
42
+ pinColumn(colName, placement) {
43
+ const columnConfiguration = this.getColumnConfiguration(colName);
44
+ if (columnConfiguration) {
45
+ columnConfiguration.pinned = placement;
46
+ this.applyChanges();
47
+ }
48
+ }
49
+ rearrangeColumns(columnByNames) {
50
+ this.configuration.columns = columnByNames
51
+ .map((colName) => this.getColumnConfiguration(colName))
52
+ .filter(isNonNullable);
53
+ this.selectColumns = this.configuration.columns
54
+ .map((column) => this.selectColumns.find((col) => col.name === column.name))
55
+ .filter(isNonNullable);
56
+ this.applyChanges();
57
+ }
58
+ removeAllPins() {
59
+ this.configuration.columns.forEach((col) => (col.pinned = undefined));
60
+ this.applyChanges();
61
+ }
62
+ showColumn(colName, isVisible) {
63
+ const columnConfiguration = this.getColumnConfiguration(colName);
64
+ if (columnConfiguration) {
65
+ columnConfiguration.hideFromView = !isVisible;
66
+ this.applyChanges();
67
+ }
68
+ }
69
+ setVerticalPivotOnColumn(colName) {
70
+ const column = this.verticalPivotableColumns.find((col) => col.name === colName);
71
+ if (column) {
72
+ this.verticalPivotedColumns = [column];
73
+ this.applyChanges();
74
+ }
75
+ }
76
+ addVerticalPivotOnColumn(colName) {
77
+ const column = this.verticalPivotableColumns.find((col) => col.name === colName);
78
+ if (column) {
79
+ this.verticalPivotedColumns = [...this.verticalPivotedColumns, column];
80
+ this.applyChanges();
81
+ }
82
+ }
83
+ removeVerticalPivotOnColumn(colName) {
84
+ this.verticalPivotedColumns = this.verticalPivotedColumns.filter((col) => col.name === colName);
85
+ this.applyChanges();
86
+ }
87
+ clearAllVerticalPivots() {
88
+ this.verticalPivotedColumns = [];
89
+ this.applyChanges();
90
+ }
91
+ getActionableSortColumn(colName, operation) {
92
+ const column = this.sortableColumns.find((col) => col.name === colName);
93
+ if (!column) {
94
+ return undefined;
95
+ }
96
+ const sortColumn = this.sortColumns.find((col) => col.name === colName);
97
+ if (sortColumn && sortColumn.operation !== operation) {
98
+ return sortColumn;
99
+ }
100
+ if (!sortColumn) {
101
+ return { ...column, operation };
102
+ }
103
+ return undefined;
104
+ }
105
+ setSortByColumn(colName, operation) {
106
+ const column = this.getActionableSortColumn(colName, operation);
107
+ if (!column) {
108
+ return;
109
+ }
110
+ column.operation = operation;
111
+ this.sortColumns = [column];
112
+ this.applyChanges();
113
+ }
114
+ addSortByColumn(colName, operation) {
115
+ const column = this.getActionableSortColumn(colName, operation);
116
+ if (!column) {
117
+ return;
118
+ }
119
+ column.operation = operation;
120
+ this.sortColumns = [...this.sortColumns, column];
121
+ this.applyChanges();
122
+ }
123
+ clearSortByColumn(colName) {
124
+ this.sortColumns = this.sortColumns.filter((col) => col.name !== colName);
125
+ this.applyChanges();
126
+ }
127
+ clearAllSorts() {
128
+ this.sortColumns = [];
129
+ this.applyChanges();
130
+ }
131
+ applyChanges() {
132
+ const baseSnapshot = guaranteeNonNullable(this.getLatestSnapshot());
133
+ const snapshot = baseSnapshot.clone();
134
+ snapshot.data.selectColumns = this.selectColumns;
135
+ snapshot.data.sortColumns = this.sortColumns;
136
+ snapshot.data.configuration = DataCubeConfiguration.serialization.toJson(this.configuration);
137
+ snapshot.data.groupBy = this.verticalPivotedColumns.length
138
+ ? {
139
+ columns: this.verticalPivotedColumns,
140
+ aggColumns: this.configuration.columns
141
+ .filter((column) => column.kind === DataCubeColumnKind.MEASURE &&
142
+ column.aggregateFunction !== undefined &&
143
+ !this.verticalPivotedColumns.find((col) => col.name === column.name))
144
+ .map((column) => ({
145
+ name: column.name,
146
+ type: column.type,
147
+ function: guaranteeNonNullable(column.aggregateFunction),
148
+ })),
149
+ }
150
+ : undefined;
151
+ snapshot.finalize();
152
+ if (snapshot.hashCode !== baseSnapshot.hashCode) {
153
+ this.publishSnapshot(snapshot);
154
+ }
155
+ }
156
+ async applySnapshot(snapshot, previousSnapshot) {
157
+ const newSnapshot = snapshot.clone();
158
+ this.configuration = DataCubeConfiguration.serialization.fromJson(snapshot.data.configuration);
159
+ this.selectableColumns = newSnapshot.stageCols('select');
160
+ this.selectColumns = newSnapshot.data.selectColumns;
161
+ this.sortableColumns = newSnapshot.stageCols('sort');
162
+ this.sortColumns = newSnapshot.data.sortColumns;
163
+ this.verticalPivotableColumns = newSnapshot
164
+ .stageCols('aggregation')
165
+ .filter((column) => this.getColumnConfiguration(column.name)?.kind ===
166
+ DataCubeColumnKind.DIMENSION);
167
+ this.verticalPivotedColumns = newSnapshot.data.groupBy?.columns ?? [];
168
+ this.menuBuilder = generateMenuBuilder(this);
169
+ }
170
+ async initialize() {
171
+ // do nothing
172
+ }
173
+ }
174
+ //# sourceMappingURL=DataCubeGridControllerState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCubeGridControllerState.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridControllerState.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { GetContextMenuItemsParams, GetMainMenuItemsParams, MenuItemDef } from '@ag-grid-community/core';
17
- import type { DataCubeState } from '../../../../stores/dataCube/DataCubeState.js';
18
- export declare function buildGridMenu(params: GetContextMenuItemsParams<unknown, {
19
- dataCube: DataCubeState;
20
- }> | GetMainMenuItemsParams<unknown, {
21
- dataCube: DataCubeState;
22
- }>): (string | MenuItemDef)[];
23
- //# sourceMappingURL=DataCubeGridMenu.d.ts.map
17
+ import type { DataCubeGridControllerState } from './DataCubeGridControllerState.js';
18
+ export declare function generateMenuBuilder(controller: DataCubeGridControllerState): (params: GetContextMenuItemsParams | GetMainMenuItemsParams) => (string | MenuItemDef)[];
19
+ //# sourceMappingURL=DataCubeGridMenuBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataCubeGridMenuBuilder.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridMenuBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EACtB,WAAW,EACZ,MAAM,yBAAyB,CAAC;AASjC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAGpF,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,2BAA2B,GACtC,CACD,MAAM,EAAE,yBAAyB,GAAG,sBAAsB,KACvD,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAkf5B"}
@@ -0,0 +1,462 @@
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
+ import { WIP_GridMenuItem } from '../../../components/dataCube/grid/DataCubeGridShared.js';
17
+ import { DataCubeQuerySortOperation, DataCubeColumnPinPlacement, DEFAULT_COLUMN_MIN_WIDTH, DataCubeColumnKind, } from '../core/DataCubeQueryEngine.js';
18
+ import { isNonNullable } from '@finos/legend-shared';
19
+ import { DataCubeGridClientExportFormat } from './DataCubeGridClientEngine.js';
20
+ export function generateMenuBuilder(controller) {
21
+ const dataCube = controller.dataCube;
22
+ const editor = dataCube.editor;
23
+ return (params) => {
24
+ const column = params.column ?? undefined;
25
+ const columnName = column?.getColId();
26
+ const columnConfiguration = controller.getColumnConfiguration(columnName);
27
+ const value = 'value' in params ? params.value : undefined;
28
+ const sortMenu = [
29
+ {
30
+ name: 'Sort',
31
+ subMenu: [
32
+ ...(column && columnName
33
+ ? [
34
+ {
35
+ name: 'Ascending',
36
+ action: () => controller.setSortByColumn(columnName, DataCubeQuerySortOperation.ASCENDING),
37
+ },
38
+ {
39
+ name: 'Ascending Absolute',
40
+ menuItem: WIP_GridMenuItem,
41
+ cssClasses: ['!opacity-100'],
42
+ disabled: true,
43
+ },
44
+ {
45
+ name: 'Descending',
46
+ action: () => controller.setSortByColumn(columnName, DataCubeQuerySortOperation.DESCENDING),
47
+ },
48
+ {
49
+ name: 'Descending Absolute',
50
+ menuItem: WIP_GridMenuItem,
51
+ cssClasses: ['!opacity-100'],
52
+ disabled: true,
53
+ },
54
+ {
55
+ name: 'Clear Sort',
56
+ disabled: !controller.sortColumns.find((col) => col.name === columnName),
57
+ action: () => controller.clearSortByColumn(columnName),
58
+ },
59
+ 'separator',
60
+ {
61
+ name: 'Add Ascending',
62
+ disabled: Boolean(controller.sortColumns.find((col) => col.name === columnName &&
63
+ col.operation === DataCubeQuerySortOperation.ASCENDING)),
64
+ action: () => controller.addSortByColumn(columnName, DataCubeQuerySortOperation.ASCENDING),
65
+ },
66
+ {
67
+ name: 'Add Ascending Absolute',
68
+ menuItem: WIP_GridMenuItem,
69
+ cssClasses: ['!opacity-100'],
70
+ disabled: true,
71
+ },
72
+ {
73
+ name: 'Add Descending',
74
+ disabled: Boolean(controller.sortColumns.find((col) => col.name === columnName &&
75
+ col.operation === DataCubeQuerySortOperation.DESCENDING)),
76
+ action: () => controller.addSortByColumn(columnName, DataCubeQuerySortOperation.DESCENDING),
77
+ },
78
+ {
79
+ name: 'Add Descending Absolute',
80
+ menuItem: WIP_GridMenuItem,
81
+ cssClasses: ['!opacity-100'],
82
+ disabled: true,
83
+ },
84
+ 'separator',
85
+ ]
86
+ : []),
87
+ {
88
+ name: 'Clear All Sorts',
89
+ disabled: controller.sortColumns.length === 0,
90
+ action: () => controller.clearAllSorts(),
91
+ },
92
+ ],
93
+ },
94
+ ];
95
+ return [
96
+ {
97
+ name: 'Export',
98
+ subMenu: [
99
+ {
100
+ name: 'HTML',
101
+ menuItem: WIP_GridMenuItem,
102
+ cssClasses: ['!opacity-100'],
103
+ disabled: true,
104
+ },
105
+ {
106
+ name: 'Plain Text',
107
+ menuItem: WIP_GridMenuItem,
108
+ cssClasses: ['!opacity-100'],
109
+ disabled: true,
110
+ },
111
+ {
112
+ name: 'PDF',
113
+ menuItem: WIP_GridMenuItem,
114
+ cssClasses: ['!opacity-100'],
115
+ disabled: true,
116
+ },
117
+ {
118
+ name: 'Excel',
119
+ action: () => dataCube.grid.exportEngine.exportFile(DataCubeGridClientExportFormat.EXCEL),
120
+ },
121
+ {
122
+ name: 'CSV',
123
+ action: () => dataCube.grid.exportEngine.exportFile(DataCubeGridClientExportFormat.CSV),
124
+ },
125
+ 'separator',
126
+ {
127
+ name: 'DataCube Specification',
128
+ menuItem: WIP_GridMenuItem,
129
+ cssClasses: ['!opacity-100'],
130
+ disabled: true,
131
+ },
132
+ ],
133
+ },
134
+ {
135
+ name: 'Email',
136
+ subMenu: [
137
+ {
138
+ name: 'HTML',
139
+ menuItem: WIP_GridMenuItem,
140
+ cssClasses: ['!opacity-100'],
141
+ disabled: true,
142
+ },
143
+ {
144
+ name: 'Plain Text',
145
+ menuItem: WIP_GridMenuItem,
146
+ cssClasses: ['!opacity-100'],
147
+ disabled: true,
148
+ },
149
+ 'separator',
150
+ {
151
+ name: 'HTML Attachment',
152
+ menuItem: WIP_GridMenuItem,
153
+ cssClasses: ['!opacity-100'],
154
+ disabled: true,
155
+ },
156
+ {
157
+ name: 'Plain Text Attachment',
158
+ menuItem: WIP_GridMenuItem,
159
+ cssClasses: ['!opacity-100'],
160
+ disabled: true,
161
+ },
162
+ {
163
+ name: 'PDF Attachment',
164
+ menuItem: WIP_GridMenuItem,
165
+ cssClasses: ['!opacity-100'],
166
+ disabled: true,
167
+ },
168
+ {
169
+ name: 'Excel Attachment',
170
+ action: () => {
171
+ dataCube.grid.exportEngine
172
+ .exportEmail(DataCubeGridClientExportFormat.EXCEL)
173
+ .catch(dataCube.application.logUnhandledError);
174
+ },
175
+ },
176
+ {
177
+ name: 'CSV Attachment',
178
+ action: () => {
179
+ dataCube.grid.exportEngine
180
+ .exportEmail(DataCubeGridClientExportFormat.CSV)
181
+ .catch(dataCube.application.logUnhandledError);
182
+ },
183
+ },
184
+ {
185
+ name: 'DataCube Specification Attachment',
186
+ menuItem: WIP_GridMenuItem,
187
+ cssClasses: ['!opacity-100'],
188
+ disabled: true,
189
+ },
190
+ ],
191
+ },
192
+ {
193
+ name: 'Copy',
194
+ menuItem: WIP_GridMenuItem,
195
+ cssClasses: ['!opacity-100'],
196
+ subMenu: [
197
+ {
198
+ name: 'Plain Text',
199
+ menuItem: WIP_GridMenuItem,
200
+ cssClasses: ['!opacity-100'],
201
+ disabled: true,
202
+ },
203
+ {
204
+ name: 'Selected Row(s) as Plain Text',
205
+ menuItem: WIP_GridMenuItem,
206
+ cssClasses: ['!opacity-100'],
207
+ disabled: true,
208
+ },
209
+ {
210
+ name: 'Selected Column as Plain Text',
211
+ menuItem: WIP_GridMenuItem,
212
+ cssClasses: ['!opacity-100'],
213
+ disabled: true,
214
+ },
215
+ ],
216
+ },
217
+ 'separator',
218
+ ...sortMenu,
219
+ {
220
+ name: 'Filter',
221
+ menuItem: WIP_GridMenuItem,
222
+ disabled: true,
223
+ cssClasses: ['!opacity-100'],
224
+ subMenu: [
225
+ ...(column && value
226
+ ? [
227
+ {
228
+ name: `Add Filter: ${column.getColId()} = {value}`,
229
+ menuItem: WIP_GridMenuItem,
230
+ cssClasses: ['!opacity-100'],
231
+ disabled: true,
232
+ },
233
+ {
234
+ name: `More Filters on ${column.getColId()}...`,
235
+ menuItem: WIP_GridMenuItem,
236
+ cssClasses: ['!opacity-100'],
237
+ disabled: true,
238
+ subMenu: [], // TODO
239
+ },
240
+ 'separator',
241
+ ]
242
+ : []),
243
+ {
244
+ name: 'Filters...',
245
+ },
246
+ {
247
+ name: 'Clear All Filters',
248
+ },
249
+ ],
250
+ },
251
+ {
252
+ name: 'Pivot',
253
+ subMenu: [
254
+ ...(column &&
255
+ columnName &&
256
+ columnConfiguration?.kind === DataCubeColumnKind.DIMENSION
257
+ ? [
258
+ {
259
+ name: `Vertical Pivot on ${column.getColId()}`,
260
+ action: () => controller.setVerticalPivotOnColumn(columnName),
261
+ },
262
+ {
263
+ name: `Add Vertical Pivot on ${column.getColId()}`,
264
+ disabled: Boolean(controller.verticalPivotedColumns.find((col) => col.name === columnName)),
265
+ action: () => controller.addVerticalPivotOnColumn(columnName),
266
+ },
267
+ {
268
+ name: `Remove Vertical Pivot on ${column.getColId()}`,
269
+ disabled: !controller.verticalPivotedColumns.find((col) => col.name === columnName),
270
+ action: () => controller.removeVerticalPivotOnColumn(columnName),
271
+ },
272
+ 'separator',
273
+ ]
274
+ : []),
275
+ {
276
+ name: `Clear All Vertical Pivots`,
277
+ disabled: controller.verticalPivotedColumns.length === 0,
278
+ action: () => controller.clearAllVerticalPivots(),
279
+ },
280
+ ],
281
+ },
282
+ {
283
+ name: 'Heatmap',
284
+ menuItem: WIP_GridMenuItem,
285
+ cssClasses: ['!opacity-100'],
286
+ disabled: !column,
287
+ subMenu: column
288
+ ? [
289
+ {
290
+ name: `Add to ${column.getColId()}`,
291
+ menuItem: WIP_GridMenuItem,
292
+ cssClasses: ['!opacity-100'],
293
+ disabled: true,
294
+ },
295
+ {
296
+ name: `Remove from ${column.getColId()}`,
297
+ menuItem: WIP_GridMenuItem,
298
+ cssClasses: ['!opacity-100'],
299
+ disabled: true,
300
+ },
301
+ ]
302
+ : [],
303
+ },
304
+ {
305
+ name: 'Extended Columns',
306
+ menuItem: WIP_GridMenuItem,
307
+ cssClasses: ['!opacity-100'],
308
+ disabled: true,
309
+ subMenu: [
310
+ {
311
+ name: `Add New Column...`,
312
+ menuItem: WIP_GridMenuItem,
313
+ cssClasses: ['!opacity-100'],
314
+ disabled: true,
315
+ },
316
+ {
317
+ name: `Edit {column}`,
318
+ menuItem: WIP_GridMenuItem,
319
+ cssClasses: ['!opacity-100'],
320
+ disabled: true,
321
+ },
322
+ {
323
+ name: `Remove {column}`,
324
+ menuItem: WIP_GridMenuItem,
325
+ cssClasses: ['!opacity-100'],
326
+ disabled: true,
327
+ },
328
+ ],
329
+ },
330
+ {
331
+ name: 'Custom Groupings',
332
+ menuItem: WIP_GridMenuItem,
333
+ cssClasses: ['!opacity-100'],
334
+ disabled: true,
335
+ subMenu: [
336
+ {
337
+ name: `Add New Grouping...`,
338
+ menuItem: WIP_GridMenuItem,
339
+ cssClasses: ['!opacity-100'],
340
+ disabled: true,
341
+ },
342
+ {
343
+ name: `Edit {column}`,
344
+ menuItem: WIP_GridMenuItem,
345
+ cssClasses: ['!opacity-100'],
346
+ disabled: true,
347
+ },
348
+ {
349
+ name: `Remove {column}`,
350
+ menuItem: WIP_GridMenuItem,
351
+ cssClasses: ['!opacity-100'],
352
+ disabled: true,
353
+ },
354
+ ],
355
+ },
356
+ 'separator',
357
+ {
358
+ name: 'Resize',
359
+ subMenu: [
360
+ {
361
+ name: `Auto-size to Fit Content`,
362
+ action: () => params.api.autoSizeColumns([column?.getColId()].filter(isNonNullable)),
363
+ disabled: !column,
364
+ },
365
+ {
366
+ name: `Minimize Column`,
367
+ action: () => {
368
+ if (column) {
369
+ params.api.setColumnWidths([
370
+ {
371
+ key: column.getColId(),
372
+ newWidth: controller.getColumnConfiguration(columnName)?.minWidth ??
373
+ DEFAULT_COLUMN_MIN_WIDTH,
374
+ },
375
+ ]);
376
+ }
377
+ },
378
+ disabled: !column,
379
+ },
380
+ 'separator',
381
+ {
382
+ name: `Auto-size All Columns`,
383
+ action: () => params.api.autoSizeAllColumns(),
384
+ },
385
+ {
386
+ name: `Minimize All Columns`,
387
+ action: () => {
388
+ params.api.setColumnWidths(
389
+ // TODO: take care of pivot columns
390
+ controller.configuration.columns.map((col) => ({
391
+ key: col.name,
392
+ newWidth: controller.getColumnConfiguration(columnName)?.minWidth ??
393
+ DEFAULT_COLUMN_MIN_WIDTH,
394
+ })));
395
+ },
396
+ },
397
+ {
398
+ name: `Size Grid to Fit Screen`,
399
+ action: () => params.api.sizeColumnsToFit(),
400
+ },
401
+ ],
402
+ },
403
+ {
404
+ name: 'Pin',
405
+ subMenu: [
406
+ {
407
+ name: `Pin Left`,
408
+ disabled: !column || column.isPinnedLeft(),
409
+ checked: Boolean(column?.isPinnedLeft()),
410
+ action: () => controller.pinColumn(columnName, DataCubeColumnPinPlacement.LEFT),
411
+ },
412
+ {
413
+ name: `Pin Right`,
414
+ disabled: !column || column.isPinnedRight(),
415
+ checked: Boolean(column?.isPinnedRight()),
416
+ action: () => controller.pinColumn(columnName, DataCubeColumnPinPlacement.RIGHT),
417
+ },
418
+ {
419
+ name: `Unpin`,
420
+ disabled: !column?.isPinned(),
421
+ action: () => controller.pinColumn(columnName, undefined),
422
+ },
423
+ 'separator',
424
+ {
425
+ name: `Remove All Pinnings`,
426
+ disabled: controller.configuration.columns.every((col) => col.pinned === undefined),
427
+ action: () => controller.removeAllPins(),
428
+ },
429
+ ],
430
+ },
431
+ {
432
+ name: 'Hide',
433
+ disabled: !column,
434
+ action: () => controller.showColumn(columnName, false),
435
+ },
436
+ 'separator',
437
+ {
438
+ name: 'Show Plot...',
439
+ menuItem: WIP_GridMenuItem,
440
+ cssClasses: ['!opacity-100'],
441
+ disabled: true,
442
+ },
443
+ {
444
+ name: 'Show TreeMap...',
445
+ menuItem: WIP_GridMenuItem,
446
+ cssClasses: ['!opacity-100'],
447
+ disabled: true,
448
+ },
449
+ 'separator',
450
+ {
451
+ name: 'Properties...',
452
+ disabled: editor.isPanelOpen,
453
+ action: () => {
454
+ if (!editor.isPanelOpen) {
455
+ editor.openPanel();
456
+ }
457
+ },
458
+ },
459
+ ];
460
+ };
461
+ }
462
+ //# sourceMappingURL=DataCubeGridMenuBuilder.js.map