@finos/legend-data-cube 0.0.37 → 0.0.38

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 (480) hide show
  1. package/lib/__lib__/DataCubeDocumentation.d.ts +7 -7
  2. package/lib/__lib__/DataCubeDocumentation.d.ts.map +1 -1
  3. package/lib/__lib__/DataCubeDocumentation.js +9 -9
  4. package/lib/__lib__/DataCubeDocumentation.js.map +1 -1
  5. package/lib/__lib__/DataCubeSetting.d.ts +24 -0
  6. package/lib/__lib__/DataCubeSetting.d.ts.map +1 -0
  7. package/lib/{stores/core → __lib__}/DataCubeSetting.js +5 -16
  8. package/lib/__lib__/DataCubeSetting.js.map +1 -0
  9. package/lib/components/DataCube.d.ts +1 -1
  10. package/lib/components/DataCube.d.ts.map +1 -1
  11. package/lib/components/DataCube.js +30 -38
  12. package/lib/components/DataCube.js.map +1 -1
  13. package/lib/components/DataCubePlaceholder.d.ts +40 -0
  14. package/lib/components/DataCubePlaceholder.d.ts.map +1 -0
  15. package/lib/components/DataCubePlaceholder.js +34 -0
  16. package/lib/components/DataCubePlaceholder.js.map +1 -0
  17. package/lib/components/DataCubeStatusBar.d.ts +24 -0
  18. package/lib/components/DataCubeStatusBar.d.ts.map +1 -0
  19. package/lib/components/DataCubeStatusBar.js +30 -0
  20. package/lib/components/DataCubeStatusBar.js.map +1 -0
  21. package/lib/components/DataCubeTitleBar.d.ts +24 -0
  22. package/lib/components/DataCubeTitleBar.d.ts.map +1 -0
  23. package/lib/components/DataCubeTitleBar.js +36 -0
  24. package/lib/components/DataCubeTitleBar.js.map +1 -0
  25. package/lib/components/DataCubeView.d.ts.map +1 -1
  26. package/lib/components/DataCubeView.js +10 -12
  27. package/lib/components/DataCubeView.js.map +1 -1
  28. package/lib/components/core/DataCubeAlert.d.ts +1 -22
  29. package/lib/components/core/DataCubeAlert.d.ts.map +1 -1
  30. package/lib/components/core/DataCubeAlert.js +2 -55
  31. package/lib/components/core/DataCubeAlert.js.map +1 -1
  32. package/lib/components/core/DataCubeDocumentationPanel.js +1 -1
  33. package/lib/components/core/DataCubeDocumentationPanel.js.map +1 -1
  34. package/lib/components/core/DataCubeFormUtils.d.ts.map +1 -1
  35. package/lib/components/core/DataCubeFormUtils.js +8 -8
  36. package/lib/components/core/DataCubeFormUtils.js.map +1 -1
  37. package/lib/components/core/{DataCubeLayoutManager.d.ts → DataCubeLayout.d.ts} +5 -5
  38. package/lib/components/core/DataCubeLayout.d.ts.map +1 -0
  39. package/lib/components/core/{DataCubeLayoutManager.js → DataCubeLayout.js} +14 -5
  40. package/lib/components/core/DataCubeLayout.js.map +1 -0
  41. package/lib/components/core/DataCubePureCodeEditorUtils.d.ts +3 -2
  42. package/lib/components/core/DataCubePureCodeEditorUtils.d.ts.map +1 -1
  43. package/lib/components/core/DataCubePureCodeEditorUtils.js +2 -2
  44. package/lib/components/core/DataCubePureCodeEditorUtils.js.map +1 -1
  45. package/lib/components/core/DataCubeSettingsPanel.js +8 -8
  46. package/lib/components/core/DataCubeSettingsPanel.js.map +1 -1
  47. package/lib/components/view/editor/DataCubeEditor.d.ts.map +1 -1
  48. package/lib/components/view/editor/DataCubeEditor.js +5 -3
  49. package/lib/components/view/editor/DataCubeEditor.js.map +1 -1
  50. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
  51. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js +15 -14
  52. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
  53. package/lib/components/view/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -1
  54. package/lib/components/view/editor/DataCubeEditorColumnsPanel.js +6 -5
  55. package/lib/components/view/editor/DataCubeEditorColumnsPanel.js.map +1 -1
  56. package/lib/components/view/editor/DataCubeEditorGeneralPropertiesPanel.js +2 -2
  57. package/lib/components/view/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -1
  58. package/lib/components/view/extend/DataCubeColumnEditor.d.ts.map +1 -1
  59. package/lib/components/view/extend/DataCubeColumnEditor.js +13 -11
  60. package/lib/components/view/extend/DataCubeColumnEditor.js.map +1 -1
  61. package/lib/components/view/filter/DataCubeFilterEditor.d.ts.map +1 -1
  62. package/lib/components/view/filter/DataCubeFilterEditor.js +4 -2
  63. package/lib/components/view/filter/DataCubeFilterEditor.js.map +1 -1
  64. package/lib/index.css +1 -1
  65. package/lib/index.d.ts +14 -11
  66. package/lib/index.d.ts.map +1 -1
  67. package/lib/index.js +14 -11
  68. package/lib/index.js.map +1 -1
  69. package/lib/package.json +1 -1
  70. package/lib/stores/DataCubeAPI.d.ts +36 -3
  71. package/lib/stores/DataCubeAPI.d.ts.map +1 -1
  72. package/lib/stores/DataCubeAPI.js +29 -1
  73. package/lib/stores/DataCubeAPI.js.map +1 -1
  74. package/lib/stores/DataCubeOptions.d.ts +83 -9
  75. package/lib/stores/DataCubeOptions.d.ts.map +1 -1
  76. package/lib/stores/DataCubeState.d.ts +25 -22
  77. package/lib/stores/DataCubeState.d.ts.map +1 -1
  78. package/lib/stores/DataCubeState.js +55 -62
  79. package/lib/stores/DataCubeState.js.map +1 -1
  80. package/lib/stores/core/DataCubeConfigurationBuilder.d.ts +2 -2
  81. package/lib/stores/core/DataCubeConfigurationBuilder.d.ts.map +1 -1
  82. package/lib/stores/core/DataCubeConfigurationBuilder.js +1 -1
  83. package/lib/stores/core/DataCubeConfigurationBuilder.js.map +1 -1
  84. package/lib/stores/core/DataCubeEngine.d.ts +12 -36
  85. package/lib/stores/core/DataCubeEngine.d.ts.map +1 -1
  86. package/lib/stores/core/DataCubeEngine.js +14 -86
  87. package/lib/stores/core/DataCubeEngine.js.map +1 -1
  88. package/lib/stores/core/DataCubeQueryBuilder.d.ts +2 -2
  89. package/lib/stores/core/DataCubeQueryBuilder.d.ts.map +1 -1
  90. package/lib/stores/core/DataCubeQueryBuilder.js +1 -1
  91. package/lib/stores/core/DataCubeQueryBuilder.js.map +1 -1
  92. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts +2 -2
  93. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
  94. package/lib/stores/core/DataCubeQueryBuilderUtils.js +2 -2
  95. package/lib/stores/core/DataCubeQueryBuilderUtils.js.map +1 -1
  96. package/lib/stores/core/DataCubeQueryEngine.d.ts +26 -26
  97. package/lib/stores/core/DataCubeQueryEngine.d.ts.map +1 -1
  98. package/lib/stores/core/DataCubeQuerySnapshot.d.ts +2 -2
  99. package/lib/stores/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  100. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts +2 -2
  101. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  102. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js +11 -10
  103. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  104. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts +1 -1
  105. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -1
  106. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js +5 -5
  107. package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -1
  108. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts +2 -2
  109. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts.map +1 -1
  110. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts +2 -2
  111. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts.map +1 -1
  112. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts +2 -2
  113. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts.map +1 -1
  114. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts +2 -2
  115. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts.map +1 -1
  116. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts +2 -2
  117. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts.map +1 -1
  118. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts +2 -2
  119. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts.map +1 -1
  120. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts +2 -2
  121. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts.map +1 -1
  122. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts +2 -2
  123. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts.map +1 -1
  124. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts +2 -2
  125. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts.map +1 -1
  126. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts +2 -2
  127. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts.map +1 -1
  128. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts +2 -2
  129. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts.map +1 -1
  130. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts +2 -2
  131. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts.map +1 -1
  132. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts +2 -2
  133. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts.map +1 -1
  134. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts +2 -2
  135. package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts.map +1 -1
  136. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.d.ts +1 -1
  137. package/lib/stores/core/filter/DataCubeQueryFilterEditorState.d.ts.map +1 -1
  138. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts +1 -1
  139. package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -1
  140. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts +1 -1
  141. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -1
  142. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts +1 -1
  143. package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -1
  144. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts +1 -1
  145. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -1
  146. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts +1 -1
  147. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -1
  148. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts +1 -1
  149. package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -1
  150. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts +1 -1
  151. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -1
  152. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts +1 -1
  153. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -1
  154. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts +1 -1
  155. package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -1
  156. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts +1 -1
  157. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -1
  158. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts +1 -1
  159. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -1
  160. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts +1 -1
  161. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -1
  162. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts +1 -1
  163. package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -1
  164. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts +1 -1
  165. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -1
  166. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts +1 -1
  167. package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -1
  168. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts +1 -1
  169. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -1
  170. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts +1 -1
  171. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -1
  172. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts +1 -1
  173. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -1
  174. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts +1 -1
  175. package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -1
  176. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts +1 -1
  177. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -1
  178. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts +1 -1
  179. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -1
  180. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts +1 -1
  181. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -1
  182. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts +1 -1
  183. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -1
  184. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts +1 -1
  185. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -1
  186. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts +1 -1
  187. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -1
  188. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts +1 -1
  189. package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -1
  190. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts +1 -1
  191. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -1
  192. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts +1 -1
  193. package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -1
  194. package/lib/stores/core/model/AdhocQueryDataCubeSource.d.ts.map +1 -0
  195. package/lib/stores/core/model/AdhocQueryDataCubeSource.js.map +1 -0
  196. package/lib/stores/core/model/DataCubeColumn.d.ts.map +1 -0
  197. package/lib/stores/core/model/DataCubeColumn.js.map +1 -0
  198. package/lib/stores/core/model/DataCubeConfiguration.d.ts.map +1 -0
  199. package/lib/stores/core/model/DataCubeConfiguration.js.map +1 -0
  200. package/lib/stores/core/model/DataCubeQuery.d.ts.map +1 -0
  201. package/lib/stores/core/model/DataCubeQuery.js.map +1 -0
  202. package/lib/stores/core/model/DataCubeSource.d.ts.map +1 -0
  203. package/lib/stores/core/model/DataCubeSource.js.map +1 -0
  204. package/lib/stores/services/DataCubeAlertService.d.ts +56 -0
  205. package/lib/stores/services/DataCubeAlertService.d.ts.map +1 -0
  206. package/lib/stores/services/DataCubeAlertService.js +89 -0
  207. package/lib/stores/services/DataCubeAlertService.js.map +1 -0
  208. package/lib/stores/services/DataCubeDocumentationService.d.ts +29 -0
  209. package/lib/stores/services/DataCubeDocumentationService.d.ts.map +1 -0
  210. package/lib/stores/services/DataCubeDocumentationService.js +41 -0
  211. package/lib/stores/services/DataCubeDocumentationService.js.map +1 -0
  212. package/lib/stores/{core/DataCubeLayoutManagerState.d.ts → services/DataCubeLayoutService.d.ts} +28 -7
  213. package/lib/stores/services/DataCubeLayoutService.d.ts.map +1 -0
  214. package/lib/stores/{core/DataCubeLayoutManagerState.js → services/DataCubeLayoutService.js} +58 -21
  215. package/lib/stores/services/DataCubeLayoutService.js.map +1 -0
  216. package/lib/stores/services/DataCubeLogService.d.ts +29 -0
  217. package/lib/stores/services/DataCubeLogService.d.ts.map +1 -0
  218. package/lib/stores/services/DataCubeLogService.js +43 -0
  219. package/lib/stores/services/DataCubeLogService.js.map +1 -0
  220. package/lib/stores/services/DataCubeNavigationService.d.ts +22 -0
  221. package/lib/stores/services/DataCubeNavigationService.d.ts.map +1 -0
  222. package/lib/stores/services/DataCubeNavigationService.js +25 -0
  223. package/lib/stores/services/DataCubeNavigationService.js.map +1 -0
  224. package/lib/stores/{view/DataCubeQuerySnapshotManager.d.ts → services/DataCubeQuerySnapshotService.d.ts} +18 -13
  225. package/lib/stores/services/DataCubeQuerySnapshotService.d.ts.map +1 -0
  226. package/lib/stores/{view/DataCubeQuerySnapshotManager.js → services/DataCubeQuerySnapshotService.js} +36 -30
  227. package/lib/stores/services/DataCubeQuerySnapshotService.js.map +1 -0
  228. package/lib/stores/services/DataCubeSettingService.d.ts +75 -0
  229. package/lib/stores/services/DataCubeSettingService.d.ts.map +1 -0
  230. package/lib/stores/{DataCubeSettings.js → services/DataCubeSettingService.js} +99 -51
  231. package/lib/stores/services/DataCubeSettingService.js.map +1 -0
  232. package/lib/stores/services/DataCubeTaskService.d.ts +41 -0
  233. package/lib/stores/services/DataCubeTaskService.d.ts.map +1 -0
  234. package/lib/stores/services/DataCubeTaskService.js +84 -0
  235. package/lib/stores/services/DataCubeTaskService.js.map +1 -0
  236. package/lib/stores/services/DataCubeTelemetryService.d.ts +23 -0
  237. package/lib/stores/services/DataCubeTelemetryService.d.ts.map +1 -0
  238. package/lib/stores/services/DataCubeTelemetryService.js +25 -0
  239. package/lib/stores/services/DataCubeTelemetryService.js.map +1 -0
  240. package/lib/stores/view/DataCubeInfoState.d.ts +2 -1
  241. package/lib/stores/view/DataCubeInfoState.d.ts.map +1 -1
  242. package/lib/stores/view/DataCubeInfoState.js +10 -4
  243. package/lib/stores/view/DataCubeInfoState.js.map +1 -1
  244. package/lib/stores/view/DataCubeViewState.d.ts +19 -18
  245. package/lib/stores/view/DataCubeViewState.d.ts.map +1 -1
  246. package/lib/stores/view/DataCubeViewState.js +42 -43
  247. package/lib/stores/view/DataCubeViewState.js.map +1 -1
  248. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.d.ts +2 -4
  249. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -1
  250. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js +3 -5
  251. package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
  252. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts +1 -3
  253. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts.map +1 -1
  254. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js +3 -5
  255. package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js.map +1 -1
  256. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.d.ts +2 -4
  257. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.d.ts.map +1 -1
  258. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js +15 -17
  259. package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js.map +1 -1
  260. package/lib/stores/view/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts +1 -4
  261. package/lib/stores/view/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts.map +1 -1
  262. package/lib/stores/view/editor/DataCubeEditorGeneralPropertiesPanelState.js +0 -4
  263. package/lib/stores/view/editor/DataCubeEditorGeneralPropertiesPanelState.js.map +1 -1
  264. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts +3 -5
  265. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts.map +1 -1
  266. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js +7 -9
  267. package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js.map +1 -1
  268. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts +1 -1
  269. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts.map +1 -1
  270. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js +1 -1
  271. package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js.map +1 -1
  272. package/lib/stores/view/editor/DataCubeEditorPanelState.d.ts +1 -1
  273. package/lib/stores/view/editor/DataCubeEditorPanelState.d.ts.map +1 -1
  274. package/lib/stores/view/editor/DataCubeEditorPivotLayoutPanelState.d.ts +2 -4
  275. package/lib/stores/view/editor/DataCubeEditorPivotLayoutPanelState.d.ts.map +1 -1
  276. package/lib/stores/view/editor/DataCubeEditorPivotLayoutPanelState.js +3 -5
  277. package/lib/stores/view/editor/DataCubeEditorPivotLayoutPanelState.js.map +1 -1
  278. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts +1 -4
  279. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
  280. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js +10 -14
  281. package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js.map +1 -1
  282. package/lib/stores/view/editor/DataCubeEditorState.d.ts +4 -3
  283. package/lib/stores/view/editor/DataCubeEditorState.d.ts.map +1 -1
  284. package/lib/stores/view/editor/DataCubeEditorState.js +11 -9
  285. package/lib/stores/view/editor/DataCubeEditorState.js.map +1 -1
  286. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.d.ts +1 -4
  287. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.d.ts.map +1 -1
  288. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js +4 -8
  289. package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js.map +1 -1
  290. package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts +4 -4
  291. package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts.map +1 -1
  292. package/lib/stores/view/extend/DataCubeColumnEditorState.js +17 -17
  293. package/lib/stores/view/extend/DataCubeColumnEditorState.js.map +1 -1
  294. package/lib/stores/view/extend/DataCubeExtendManagerState.d.ts +7 -6
  295. package/lib/stores/view/extend/DataCubeExtendManagerState.d.ts.map +1 -1
  296. package/lib/stores/view/extend/DataCubeExtendManagerState.js +18 -20
  297. package/lib/stores/view/extend/DataCubeExtendManagerState.js.map +1 -1
  298. package/lib/stores/view/filter/DataCubeFilterEditorState.d.ts +4 -3
  299. package/lib/stores/view/filter/DataCubeFilterEditorState.d.ts.map +1 -1
  300. package/lib/stores/view/filter/DataCubeFilterEditorState.js +8 -6
  301. package/lib/stores/view/filter/DataCubeFilterEditorState.js.map +1 -1
  302. package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts +5 -3
  303. package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  304. package/lib/stores/view/grid/DataCubeGridClientEngine.js +42 -35
  305. package/lib/stores/view/grid/DataCubeGridClientEngine.js.map +1 -1
  306. package/lib/stores/view/grid/DataCubeGridClientExportEngine.d.ts +1 -3
  307. package/lib/stores/view/grid/DataCubeGridClientExportEngine.d.ts.map +1 -1
  308. package/lib/stores/view/grid/DataCubeGridClientExportEngine.js +7 -9
  309. package/lib/stores/view/grid/DataCubeGridClientExportEngine.js.map +1 -1
  310. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.d.ts +2 -2
  311. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
  312. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js +5 -5
  313. package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
  314. package/lib/stores/view/grid/DataCubeGridControllerState.d.ts +8 -6
  315. package/lib/stores/view/grid/DataCubeGridControllerState.d.ts.map +1 -1
  316. package/lib/stores/view/grid/DataCubeGridControllerState.js +8 -3
  317. package/lib/stores/view/grid/DataCubeGridControllerState.js.map +1 -1
  318. package/lib/stores/view/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
  319. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js +7 -7
  320. package/lib/stores/view/grid/DataCubeGridMenuBuilder.js.map +1 -1
  321. package/lib/stores/view/grid/DataCubeGridQueryBuilder.d.ts +1 -1
  322. package/lib/stores/view/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
  323. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js +1 -1
  324. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js.map +1 -1
  325. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.d.ts +2 -2
  326. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.d.ts.map +1 -1
  327. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js +2 -2
  328. package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
  329. package/lib/stores/view/grid/DataCubeGridState.d.ts +3 -2
  330. package/lib/stores/view/grid/DataCubeGridState.d.ts.map +1 -1
  331. package/lib/stores/view/grid/DataCubeGridState.js +14 -12
  332. package/lib/stores/view/grid/DataCubeGridState.js.map +1 -1
  333. package/package.json +1 -1
  334. package/src/__lib__/DataCubeDocumentation.ts +7 -7
  335. package/src/__lib__/DataCubeSetting.ts +24 -0
  336. package/src/components/DataCube.tsx +55 -85
  337. package/src/components/DataCubePlaceholder.tsx +97 -0
  338. package/src/components/DataCubeStatusBar.tsx +71 -0
  339. package/src/components/DataCubeTitleBar.tsx +81 -0
  340. package/src/components/DataCubeView.tsx +20 -44
  341. package/src/components/core/DataCubeAlert.tsx +5 -99
  342. package/src/components/core/DataCubeDocumentationPanel.tsx +1 -1
  343. package/src/components/core/DataCubeFormUtils.tsx +11 -8
  344. package/src/components/core/{DataCubeLayoutManager.tsx → DataCubeLayout.tsx} +32 -21
  345. package/src/components/core/DataCubePureCodeEditorUtils.tsx +9 -5
  346. package/src/components/core/DataCubeSettingsPanel.tsx +9 -9
  347. package/src/components/view/editor/DataCubeEditor.tsx +6 -3
  348. package/src/components/view/editor/DataCubeEditorColumnPropertiesPanel.tsx +18 -17
  349. package/src/components/view/editor/DataCubeEditorColumnsPanel.tsx +14 -18
  350. package/src/components/view/editor/DataCubeEditorGeneralPropertiesPanel.tsx +2 -2
  351. package/src/components/view/extend/DataCubeColumnEditor.tsx +20 -11
  352. package/src/components/view/filter/DataCubeFilterEditor.tsx +4 -2
  353. package/src/components/view/grid/DataCubeGrid.tsx +1 -1
  354. package/src/index.tsx +23 -12
  355. package/src/stores/DataCubeAPI.ts +58 -3
  356. package/src/stores/DataCubeOptions.ts +101 -12
  357. package/src/stores/DataCubeState.tsx +74 -91
  358. package/src/stores/core/DataCubeConfigurationBuilder.ts +2 -2
  359. package/src/stores/core/DataCubeEngine.tsx +15 -181
  360. package/src/stores/core/DataCubeQueryBuilder.ts +2 -2
  361. package/src/stores/core/DataCubeQueryBuilderUtils.ts +2 -2
  362. package/src/stores/core/DataCubeQueryEngine.ts +27 -27
  363. package/src/stores/core/DataCubeQuerySnapshot.ts +2 -2
  364. package/src/stores/core/DataCubeQuerySnapshotBuilder.ts +18 -12
  365. package/src/stores/core/DataCubeQuerySnapshotBuilderUtils.ts +5 -5
  366. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation.ts +2 -2
  367. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.tsx +2 -2
  368. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.tsx +2 -2
  369. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__First.tsx +2 -2
  370. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.tsx +2 -2
  371. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.tsx +2 -2
  372. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.tsx +2 -2
  373. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.tsx +2 -2
  374. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.tsx +2 -2
  375. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.tsx +2 -2
  376. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.tsx +2 -2
  377. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.tsx +2 -2
  378. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.tsx +2 -2
  379. package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.tsx +2 -2
  380. package/src/stores/core/filter/DataCubeQueryFilterEditorState.ts +1 -1
  381. package/src/stores/core/filter/DataCubeQueryFilterOperation.ts +1 -1
  382. package/src/stores/core/filter/DataCubeQueryFilterOperation__Contain.tsx +1 -1
  383. package/src/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +1 -1
  384. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +1 -1
  385. package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +1 -1
  386. package/src/stores/core/filter/DataCubeQueryFilterOperation__Equal.tsx +1 -1
  387. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +1 -1
  388. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +1 -1
  389. package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +1 -1
  390. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +1 -1
  391. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +1 -1
  392. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +1 -1
  393. package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +1 -1
  394. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +1 -1
  395. package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +1 -1
  396. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +1 -1
  397. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +1 -1
  398. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +1 -1
  399. package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +1 -1
  400. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +1 -1
  401. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +1 -1
  402. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +1 -1
  403. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +1 -1
  404. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +1 -1
  405. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +1 -1
  406. package/src/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +1 -1
  407. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +1 -1
  408. package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +1 -1
  409. package/src/stores/services/DataCubeAlertService.tsx +169 -0
  410. package/src/stores/services/DataCubeDocumentationService.tsx +74 -0
  411. package/src/stores/{core/DataCubeLayoutManagerState.ts → services/DataCubeLayoutService.tsx} +96 -23
  412. package/src/stores/services/DataCubeLogService.ts +54 -0
  413. package/src/stores/services/DataCubeNavigationService.ts +29 -0
  414. package/src/stores/{view/DataCubeQuerySnapshotManager.ts → services/DataCubeQuerySnapshotService.ts} +48 -38
  415. package/src/stores/{DataCubeSettings.tsx → services/DataCubeSettingService.tsx} +155 -87
  416. package/src/stores/services/DataCubeTaskService.ts +102 -0
  417. package/src/stores/services/DataCubeTelemetryService.ts +30 -0
  418. package/src/stores/view/DataCubeInfoState.ts +12 -4
  419. package/src/stores/view/DataCubeViewState.ts +54 -53
  420. package/src/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.ts +4 -6
  421. package/src/stores/view/editor/DataCubeEditorColumnSelectorState.ts +3 -6
  422. package/src/stores/view/editor/DataCubeEditorColumnsPanelState.ts +16 -18
  423. package/src/stores/view/editor/DataCubeEditorGeneralPropertiesPanelState.ts +1 -8
  424. package/src/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.ts +9 -11
  425. package/src/stores/view/editor/DataCubeEditorMutableConfiguration.ts +1 -1
  426. package/src/stores/view/editor/DataCubeEditorPanelState.ts +1 -1
  427. package/src/stores/view/editor/DataCubeEditorPivotLayoutPanelState.ts +4 -7
  428. package/src/stores/view/editor/DataCubeEditorSortsPanelState.ts +11 -16
  429. package/src/stores/view/editor/DataCubeEditorState.tsx +23 -15
  430. package/src/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.ts +5 -10
  431. package/src/stores/view/extend/DataCubeColumnEditorState.tsx +22 -22
  432. package/src/stores/view/extend/DataCubeExtendManagerState.tsx +39 -30
  433. package/src/stores/view/filter/DataCubeFilterEditorState.tsx +11 -8
  434. package/src/stores/view/grid/DataCubeGridClientEngine.ts +53 -45
  435. package/src/stores/view/grid/DataCubeGridClientExportEngine.ts +7 -10
  436. package/src/stores/view/grid/DataCubeGridConfigurationBuilder.tsx +3 -6
  437. package/src/stores/view/grid/DataCubeGridControllerState.ts +11 -3
  438. package/src/stores/view/grid/DataCubeGridMenuBuilder.tsx +20 -8
  439. package/src/stores/view/grid/DataCubeGridQueryBuilder.ts +2 -2
  440. package/src/stores/view/grid/DataCubeGridQuerySnapshotBuilder.ts +2 -2
  441. package/src/stores/view/grid/DataCubeGridState.ts +24 -15
  442. package/tsconfig.json +19 -10
  443. package/lib/components/core/DataCubeLayoutManager.d.ts.map +0 -1
  444. package/lib/components/core/DataCubeLayoutManager.js.map +0 -1
  445. package/lib/stores/DataCubeSettings.d.ts +0 -45
  446. package/lib/stores/DataCubeSettings.d.ts.map +0 -1
  447. package/lib/stores/DataCubeSettings.js.map +0 -1
  448. package/lib/stores/core/DataCubeLayoutManagerState.d.ts.map +0 -1
  449. package/lib/stores/core/DataCubeLayoutManagerState.js.map +0 -1
  450. package/lib/stores/core/DataCubeSetting.d.ts +0 -51
  451. package/lib/stores/core/DataCubeSetting.d.ts.map +0 -1
  452. package/lib/stores/core/DataCubeSetting.js.map +0 -1
  453. package/lib/stores/core/models/AdhocQueryDataCubeSource.d.ts.map +0 -1
  454. package/lib/stores/core/models/AdhocQueryDataCubeSource.js.map +0 -1
  455. package/lib/stores/core/models/DataCubeColumn.d.ts.map +0 -1
  456. package/lib/stores/core/models/DataCubeColumn.js.map +0 -1
  457. package/lib/stores/core/models/DataCubeConfiguration.d.ts.map +0 -1
  458. package/lib/stores/core/models/DataCubeConfiguration.js.map +0 -1
  459. package/lib/stores/core/models/DataCubeQuery.d.ts.map +0 -1
  460. package/lib/stores/core/models/DataCubeQuery.js.map +0 -1
  461. package/lib/stores/core/models/DataCubeSource.d.ts.map +0 -1
  462. package/lib/stores/core/models/DataCubeSource.js.map +0 -1
  463. package/lib/stores/view/DataCubeQuerySnapshotManager.d.ts.map +0 -1
  464. package/lib/stores/view/DataCubeQuerySnapshotManager.js.map +0 -1
  465. package/src/stores/core/DataCubeSetting.ts +0 -63
  466. /package/lib/stores/core/{models → model}/AdhocQueryDataCubeSource.d.ts +0 -0
  467. /package/lib/stores/core/{models → model}/AdhocQueryDataCubeSource.js +0 -0
  468. /package/lib/stores/core/{models → model}/DataCubeColumn.d.ts +0 -0
  469. /package/lib/stores/core/{models → model}/DataCubeColumn.js +0 -0
  470. /package/lib/stores/core/{models → model}/DataCubeConfiguration.d.ts +0 -0
  471. /package/lib/stores/core/{models → model}/DataCubeConfiguration.js +0 -0
  472. /package/lib/stores/core/{models → model}/DataCubeQuery.d.ts +0 -0
  473. /package/lib/stores/core/{models → model}/DataCubeQuery.js +0 -0
  474. /package/lib/stores/core/{models → model}/DataCubeSource.d.ts +0 -0
  475. /package/lib/stores/core/{models → model}/DataCubeSource.js +0 -0
  476. /package/src/stores/core/{models → model}/AdhocQueryDataCubeSource.ts +0 -0
  477. /package/src/stores/core/{models → model}/DataCubeColumn.ts +0 -0
  478. /package/src/stores/core/{models → model}/DataCubeConfiguration.ts +0 -0
  479. /package/src/stores/core/{models → model}/DataCubeQuery.ts +0 -0
  480. /package/src/stores/core/{models → model}/DataCubeSource.ts +0 -0
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { DocumentationEntry } from '@finos/legend-shared';
18
+ import { makeObservable, observable, action } from 'mobx';
19
+ import { DocumentationPanel } from '../../components/core/DataCubeDocumentationPanel.js';
20
+ import type {
21
+ DataCubeLayoutService,
22
+ DisplayState,
23
+ } from './DataCubeLayoutService.js';
24
+ import type { DataCubeEngine } from '../core/DataCubeEngine.js';
25
+
26
+ export class DataCubeDocumentationService {
27
+ private readonly _engine: DataCubeEngine;
28
+ private readonly _layoutService: DataCubeLayoutService;
29
+
30
+ readonly display: DisplayState;
31
+
32
+ currentEntry?: DocumentationEntry | undefined;
33
+
34
+ constructor(engine: DataCubeEngine, layoutService: DataCubeLayoutService) {
35
+ makeObservable(this, {
36
+ currentEntry: observable,
37
+ setCurrentEntry: action,
38
+ });
39
+
40
+ this._engine = engine;
41
+ this._layoutService = layoutService;
42
+ this.display = this._layoutService.newDisplay(
43
+ 'Documentation',
44
+ () => <DocumentationPanel />,
45
+ {
46
+ x: -50,
47
+ y: -50,
48
+ width: 400,
49
+ height: 400,
50
+ minWidth: 300,
51
+ minHeight: 200,
52
+ center: false,
53
+ },
54
+ );
55
+ }
56
+
57
+ getEntry(key: string) {
58
+ return this._engine.getDocumentationEntry(key);
59
+ }
60
+
61
+ setCurrentEntry(entry: DocumentationEntry | undefined) {
62
+ this.currentEntry = entry;
63
+ }
64
+
65
+ shouldDisplayDocumentationEntry(entry: DocumentationEntry) {
66
+ return (
67
+ /**
68
+ * Since we're displaying the documentation entry, we want only user-friendly docs
69
+ * and discard anything that doesn't come with a title, or does not have any content
70
+ */
71
+ Boolean(entry.title && (entry.text ?? entry.markdownText))
72
+ );
73
+ }
74
+ }
@@ -23,6 +23,13 @@ import {
23
23
  runInAction,
24
24
  } from 'mobx';
25
25
 
26
+ export type WindowSpecification = {
27
+ x: number;
28
+ y: number;
29
+ width: number;
30
+ height: number;
31
+ };
32
+
26
33
  export type WindowConfiguration = {
27
34
  x?: number | undefined;
28
35
  y?: number | undefined;
@@ -51,13 +58,21 @@ export class WindowState {
51
58
  readonly uuid = uuid();
52
59
  readonly configuration: LayoutConfiguration;
53
60
  readonly onClose?: (() => void) | undefined;
61
+ ownerId?: string | undefined;
62
+ specification?: WindowSpecification | undefined;
54
63
 
55
64
  constructor(
56
65
  configuration: LayoutConfiguration,
57
66
  onClose?: (() => void) | undefined,
67
+ ownerId?: string | undefined,
58
68
  ) {
59
69
  this.configuration = configuration;
60
70
  this.onClose = onClose;
71
+ this.ownerId = ownerId;
72
+ }
73
+
74
+ setSpecification(val: WindowSpecification) {
75
+ this.specification = val;
61
76
  }
62
77
  }
63
78
 
@@ -75,7 +90,7 @@ export const DEFAULT_TOOL_PANEL_WINDOW_CONFIG: WindowConfiguration = {
75
90
  center: true,
76
91
  };
77
92
 
78
- export const DEFAULT_SMALL_ALERT_WINDOW_CONFIG: WindowConfiguration = {
93
+ export const DEFAULT_ALERT_WINDOW_CONFIG: WindowConfiguration = {
79
94
  width: 500,
80
95
  height: 200,
81
96
  minWidth: 200,
@@ -83,23 +98,17 @@ export const DEFAULT_SMALL_ALERT_WINDOW_CONFIG: WindowConfiguration = {
83
98
  center: true,
84
99
  };
85
100
 
86
- export const DEFAULT_LARGE_ALERT_WINDOW_CONFIG: WindowConfiguration = {
87
- width: 600,
88
- height: 200,
89
- minWidth: 300,
90
- minHeight: 150,
91
- center: true,
92
- };
93
-
94
101
  export class DisplayState {
95
- private readonly layoutManagerState: LayoutManagerState;
102
+ private readonly layout: LayoutManager;
96
103
  readonly configuration: LayoutConfiguration;
104
+ readonly ownerId?: string | undefined;
97
105
  window?: WindowState | undefined;
98
106
 
99
107
  constructor(
100
- layoutManagerState: LayoutManagerState,
108
+ layout: LayoutManager,
101
109
  title: string,
102
110
  contentRenderer: (config: LayoutConfiguration) => React.ReactNode,
111
+ ownerId?: string | undefined,
103
112
  ) {
104
113
  makeObservable(this, {
105
114
  window: observable,
@@ -108,9 +117,10 @@ export class DisplayState {
108
117
  close: action,
109
118
  });
110
119
 
111
- this.layoutManagerState = layoutManagerState;
120
+ this.layout = layout;
112
121
  this.configuration = new LayoutConfiguration(title, contentRenderer);
113
122
  this.configuration.window = DEFAULT_TOOL_PANEL_WINDOW_CONFIG;
123
+ this.ownerId = ownerId;
114
124
  }
115
125
 
116
126
  get isOpen() {
@@ -119,26 +129,30 @@ export class DisplayState {
119
129
 
120
130
  open() {
121
131
  if (this.window) {
122
- this.layoutManagerState.bringWindowFront(this.window);
132
+ this.layout.bringWindowFront(this.window);
123
133
  } else {
124
- this.window = new WindowState(this.configuration, () =>
125
- runInAction(() => {
126
- this.window = undefined;
127
- }),
134
+ this.window = new WindowState(
135
+ this.configuration,
136
+ () =>
137
+ runInAction(() => {
138
+ this.window = undefined;
139
+ }),
140
+ this.ownerId,
128
141
  );
129
- this.layoutManagerState.newWindow(this.window);
142
+ this.layout.newWindow(this.window, this.ownerId);
130
143
  }
131
144
  }
132
145
 
133
146
  close() {
134
147
  if (this.window) {
135
- this.layoutManagerState.closeWindow(this.window);
148
+ this.layout.closeWindow(this.window);
136
149
  this.window = undefined;
137
150
  }
138
151
  }
139
152
  }
140
153
 
141
- export class LayoutManagerState {
154
+ export class LayoutManager {
155
+ // TODO?: keep a hashmap, in parallel, for faster lookup
142
156
  windows: WindowState[] = [];
143
157
 
144
158
  constructor() {
@@ -147,6 +161,7 @@ export class LayoutManagerState {
147
161
  newWindow: action,
148
162
  bringWindowFront: action,
149
163
  closeWindow: action,
164
+ closeWindows: action,
150
165
  });
151
166
  }
152
167
 
@@ -154,15 +169,17 @@ export class LayoutManagerState {
154
169
  title: string,
155
170
  contentRenderer: (config: LayoutConfiguration) => React.ReactNode,
156
171
  windowConfiguration?: WindowConfiguration | undefined,
157
- ): DisplayState {
158
- const display = new DisplayState(this, title, contentRenderer);
172
+ ownerId?: string | undefined,
173
+ ) {
174
+ const display = new DisplayState(this, title, contentRenderer, ownerId);
159
175
  if (windowConfiguration) {
160
176
  display.configuration.window = windowConfiguration;
161
177
  }
162
178
  return display;
163
179
  }
164
180
 
165
- newWindow(window: WindowState) {
181
+ newWindow(window: WindowState, ownerId?: string | undefined) {
182
+ window.ownerId = window.ownerId ?? ownerId;
166
183
  this.windows.push(window);
167
184
  }
168
185
 
@@ -181,4 +198,60 @@ export class LayoutManagerState {
181
198
  window.onClose?.();
182
199
  }
183
200
  }
201
+
202
+ closeWindows(windows: WindowState[]) {
203
+ this.windows = this.windows.filter(
204
+ (window) => !windows.find((w) => w.uuid === window.uuid),
205
+ );
206
+ windows.forEach((window) => window.onClose?.());
207
+ }
208
+ }
209
+
210
+ export class DataCubeLayoutService {
211
+ readonly uuid = uuid();
212
+ readonly manager: LayoutManager;
213
+
214
+ constructor(manager?: LayoutManager | undefined) {
215
+ makeObservable(this, {
216
+ windows: computed,
217
+ });
218
+
219
+ this.manager = manager ?? new LayoutManager();
220
+ }
221
+
222
+ get windows() {
223
+ return this.manager.windows.filter(
224
+ (window) => window.ownerId === this.uuid,
225
+ );
226
+ }
227
+
228
+ newDisplay(
229
+ title: string,
230
+ contentRenderer: (config: LayoutConfiguration) => React.ReactNode,
231
+ windowConfiguration?: WindowConfiguration | undefined,
232
+ ) {
233
+ return this.manager.newDisplay(
234
+ title,
235
+ contentRenderer,
236
+ windowConfiguration,
237
+ this.uuid,
238
+ );
239
+ }
240
+
241
+ newWindow(window: WindowState) {
242
+ this.manager.newWindow(window, this.uuid);
243
+ }
244
+
245
+ bringWindowFront(window: WindowState) {
246
+ this.manager.bringWindowFront(window);
247
+ }
248
+
249
+ closeWindow(window: WindowState) {
250
+ this.manager.closeWindow(window);
251
+ }
252
+
253
+ dispose() {
254
+ // close all windows owned by this service
255
+ this.manager.closeWindows(this.windows);
256
+ }
184
257
  }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { LogEvent } from '@finos/legend-shared';
18
+ import type { DataCubeEngine } from '../core/DataCubeEngine.js';
19
+
20
+ export class DataCubeLogService {
21
+ private readonly _engine: DataCubeEngine;
22
+
23
+ constructor(engine: DataCubeEngine) {
24
+ this._engine = engine;
25
+ }
26
+
27
+ logDebug(message: string, ...data: unknown[]) {
28
+ this._engine.logDebug(message, ...data);
29
+ }
30
+
31
+ debugProcess(processName: string, ...data: [string, unknown][]) {
32
+ this._engine.debugProcess(processName, ...data);
33
+ }
34
+
35
+ logInfo(event: LogEvent, ...data: unknown[]) {
36
+ this._engine.logInfo(event, ...data);
37
+ }
38
+
39
+ logWarning(event: LogEvent, ...data: unknown[]) {
40
+ this._engine.logWarning(event, ...data);
41
+ }
42
+
43
+ logError(event: LogEvent, ...data: unknown[]) {
44
+ this._engine.logError(event, ...data);
45
+ }
46
+
47
+ logUnhandledError(error: Error) {
48
+ this._engine.logUnhandledError(error);
49
+ }
50
+
51
+ logIllegalStateError(message: string, error?: Error) {
52
+ this._engine.logIllegalStateError(message, error);
53
+ }
54
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { DataCubeEngine } from '../core/DataCubeEngine.js';
18
+
19
+ export class DataCubeNavigationService {
20
+ private readonly _engine: DataCubeEngine;
21
+
22
+ constructor(engine: DataCubeEngine) {
23
+ this._engine = engine;
24
+ }
25
+
26
+ openLink(url: string) {
27
+ this._engine.openLink(url);
28
+ }
29
+ }
@@ -14,7 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import type { DataCubeViewState } from './DataCubeViewState.js';
18
17
  import type { DataCubeQuerySnapshot } from '../core/DataCubeQuerySnapshot.js';
19
18
  import {
20
19
  IllegalStateError,
@@ -22,8 +21,11 @@ import {
22
21
  deepDiff,
23
22
  guaranteeNonNullable,
24
23
  } from '@finos/legend-shared';
25
- import type { DataCubeQuery } from '../core/models/DataCubeQuery.js';
26
- import { DataCubeSettingKey } from '../core/DataCubeSetting.js';
24
+ import type { DataCubeQuery } from '../core/model/DataCubeQuery.js';
25
+ import { DataCubeSettingKey } from '../../__lib__/DataCubeSetting.js';
26
+ import type { DataCubeEngine } from '../core/DataCubeEngine.js';
27
+ import type { DataCubeSettingService } from './DataCubeSettingService.js';
28
+ import type { DataCubeLogService } from './DataCubeLogService.js';
27
29
 
28
30
  // TODO: set a stack depth when we implement undo/redo
29
31
  // const DATA_CUBE_MAX_SNAPSHOT_COUNT = 100;
@@ -37,40 +39,52 @@ interface DataCubeQuerySnapshotSubscriber {
37
39
  export abstract class DataCubeQuerySnapshotController
38
40
  implements DataCubeQuerySnapshotSubscriber
39
41
  {
40
- readonly view!: DataCubeViewState;
42
+ protected readonly _engine: DataCubeEngine;
43
+ protected readonly _settingService: DataCubeSettingService;
44
+ protected readonly _snapshotService: DataCubeQuerySnapshotService;
41
45
 
42
- private latestSnapshot: DataCubeQuerySnapshot | undefined;
46
+ private _latestSnapshot: DataCubeQuerySnapshot | undefined;
43
47
 
44
- constructor(view: DataCubeViewState) {
45
- this.view = view;
48
+ constructor(
49
+ engine: DataCubeEngine,
50
+ settingService: DataCubeSettingService,
51
+ snapshotService: DataCubeQuerySnapshotService,
52
+ ) {
53
+ this._engine = engine;
54
+ this._settingService = settingService;
55
+ this._snapshotService = snapshotService;
46
56
  }
47
57
 
48
58
  abstract getSnapshotSubscriberName(): string;
49
59
 
50
- abstract applySnapshot(
51
- snapshot: DataCubeQuerySnapshot,
52
- previousSnapshot: DataCubeQuerySnapshot | undefined,
53
- ): Promise<void>;
60
+ getLatestSnapshot() {
61
+ return this._latestSnapshot;
62
+ }
54
63
 
55
64
  async receiveSnapshot(snapshot: DataCubeQuerySnapshot) {
56
- const previousSnapshot = this.latestSnapshot;
57
- this.latestSnapshot = snapshot;
65
+ const previousSnapshot = this._latestSnapshot;
66
+ this._latestSnapshot = snapshot;
58
67
 
59
68
  // NOTE: fully clone the snapshot before applying it to avoid any potential
60
69
  // mutation of the snapshot by the subscriber
61
70
  await this.applySnapshot(snapshot.INTERNAL__fullClone(), previousSnapshot);
62
71
  }
63
72
 
73
+ abstract applySnapshot(
74
+ snapshot: DataCubeQuerySnapshot,
75
+ previousSnapshot: DataCubeQuerySnapshot | undefined,
76
+ ): Promise<void>;
77
+
64
78
  publishSnapshot(snapshot: DataCubeQuerySnapshot) {
65
- const previousSnapshot = this.latestSnapshot;
66
- this.latestSnapshot = snapshot;
79
+ const previousSnapshot = this._latestSnapshot;
80
+ this._latestSnapshot = snapshot;
67
81
 
68
82
  if (
69
- this.view.dataCube.settings.getBooleanValue(
83
+ this._settingService.getBooleanValue(
70
84
  DataCubeSettingKey.DEBUGGER__ENABLE_DEBUG_MODE,
71
85
  )
72
86
  ) {
73
- this.view.engine.debugProcess(
87
+ this._engine.debugProcess(
74
88
  `New Snapshot`,
75
89
  ['Publisher', this.getSnapshotSubscriberName()],
76
90
  ['Snapshot', snapshot],
@@ -79,32 +93,30 @@ export abstract class DataCubeQuerySnapshotController
79
93
  );
80
94
  }
81
95
 
82
- this.view.snapshotManager.broadcastSnapshot(snapshot);
83
- }
84
-
85
- getLatestSnapshot() {
86
- return this.latestSnapshot;
96
+ this._snapshotService.broadcastSnapshot(snapshot);
87
97
  }
88
98
  }
89
99
 
90
- export class DataCubeQuerySnapshotManager {
91
- private readonly view: DataCubeViewState;
92
- private readonly subscribers: DataCubeQuerySnapshotSubscriber[] = [];
93
- private readonly snapshots: DataCubeQuerySnapshot[] = [];
100
+ export class DataCubeQuerySnapshotService {
101
+ private readonly _engine: DataCubeEngine;
102
+ private readonly _logService: DataCubeLogService;
94
103
 
104
+ private readonly _subscribers: DataCubeQuerySnapshotSubscriber[] = [];
105
+ private readonly _snapshots: DataCubeQuerySnapshot[] = []; // stack
95
106
  private _initialSnapshot: DataCubeQuerySnapshot | undefined;
96
107
  private _initialQuery: DataCubeQuery | undefined;
97
108
 
98
- constructor(view: DataCubeViewState) {
99
- this.view = view;
109
+ constructor(engine: DataCubeEngine, logService: DataCubeLogService) {
110
+ this._engine = engine;
111
+ this._logService = logService;
100
112
  }
101
113
 
102
114
  get currentSnapshot() {
103
- return guaranteeNonNullable(this.snapshots[this.snapshots.length - 1]);
115
+ return guaranteeNonNullable(this._snapshots[this._snapshots.length - 1]);
104
116
  }
105
117
 
106
118
  registerSubscriber(subscriber: DataCubeQuerySnapshotSubscriber) {
107
- const existingSubscriber = this.subscribers.find(
119
+ const existingSubscriber = this._subscribers.find(
108
120
  (sub) =>
109
121
  sub.getSnapshotSubscriberName() ===
110
122
  subscriber.getSnapshotSubscriberName(),
@@ -112,7 +124,7 @@ export class DataCubeQuerySnapshotManager {
112
124
  if (existingSubscriber) {
113
125
  // eslint-disable-next-line no-process-env
114
126
  if (process.env.NODE_ENV === 'development') {
115
- this.view.engine.logDebug(
127
+ this._logService.logDebug(
116
128
  `Subscriber with name '${subscriber.getSnapshotSubscriberName()}' already exists`,
117
129
  );
118
130
  } else {
@@ -121,7 +133,7 @@ export class DataCubeQuerySnapshotManager {
121
133
  );
122
134
  }
123
135
  }
124
- this.subscribers.push(subscriber);
136
+ this._subscribers.push(subscriber);
125
137
  }
126
138
 
127
139
  initialize(
@@ -153,18 +165,18 @@ export class DataCubeQuerySnapshotManager {
153
165
 
154
166
  broadcastSnapshot(snapshot: DataCubeQuerySnapshot) {
155
167
  if (!snapshot.isFinalized()) {
156
- this.view.engine.logIllegalStateError(
168
+ this._logService.logIllegalStateError(
157
169
  `Snapshot must be finalized before broadcasting`,
158
170
  );
159
171
  return;
160
172
  }
161
- this.snapshots.push(snapshot);
162
- this.subscribers.forEach((subscriber) => {
173
+ this._snapshots.push(snapshot);
174
+ this._subscribers.forEach((subscriber) => {
163
175
  const currentSnapshot = subscriber.getLatestSnapshot();
164
176
  if (currentSnapshot?.uuid !== snapshot.uuid) {
165
177
  subscriber.receiveSnapshot(snapshot).catch((error: unknown) => {
166
178
  assertErrorThrown(error);
167
- this.view.engine.logIllegalStateError(
179
+ this._logService.logIllegalStateError(
168
180
  `Error occured while subscribers receiving and applying new snapshot should be handled gracefully`,
169
181
  error,
170
182
  );
@@ -172,6 +184,4 @@ export class DataCubeQuerySnapshotManager {
172
184
  }
173
185
  });
174
186
  }
175
-
176
- // TODO: replace snapshot (for minor modifications such as adjusting the cast columns)
177
187
  }