@finos/legend-application-data-cube 0.2.4 → 0.2.6

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 (150) hide show
  1. package/README.md +1 -1
  2. package/lib/__lib__/LegendDataCubeNavigation.d.ts +9 -5
  3. package/lib/__lib__/LegendDataCubeNavigation.d.ts.map +1 -1
  4. package/lib/__lib__/LegendDataCubeNavigation.js +9 -5
  5. package/lib/__lib__/LegendDataCubeNavigation.js.map +1 -1
  6. package/lib/__lib__/LegendDataCubeUserData.d.ts +2 -2
  7. package/lib/__lib__/LegendDataCubeUserData.d.ts.map +1 -1
  8. package/lib/__lib__/LegendDataCubeUserData.js +2 -2
  9. package/lib/__lib__/LegendDataCubeUserData.js.map +1 -1
  10. package/lib/application/LegendDataCubeApplicationConfig.d.ts +4 -0
  11. package/lib/application/LegendDataCubeApplicationConfig.d.ts.map +1 -1
  12. package/lib/application/LegendDataCubeApplicationConfig.js +5 -0
  13. package/lib/application/LegendDataCubeApplicationConfig.js.map +1 -1
  14. package/lib/components/LegendDataCubeBlockingWindow.d.ts +29 -0
  15. package/lib/components/LegendDataCubeBlockingWindow.d.ts.map +1 -0
  16. package/lib/components/LegendDataCubeBlockingWindow.js +75 -0
  17. package/lib/components/LegendDataCubeBlockingWindow.js.map +1 -0
  18. package/lib/components/LegendDataCubeWebApplication.js +2 -2
  19. package/lib/components/LegendDataCubeWebApplication.js.map +1 -1
  20. package/lib/components/builder/LegendDataCubeBuilder.d.ts +20 -0
  21. package/lib/components/builder/LegendDataCubeBuilder.d.ts.map +1 -0
  22. package/lib/components/builder/LegendDataCubeBuilder.js +162 -0
  23. package/lib/components/builder/LegendDataCubeBuilder.js.map +1 -0
  24. package/lib/components/builder/LegendDataCubeBuilderStoreProvider.d.ts +19 -0
  25. package/lib/components/builder/LegendDataCubeBuilderStoreProvider.d.ts.map +1 -0
  26. package/lib/components/builder/LegendDataCubeBuilderStoreProvider.js +34 -0
  27. package/lib/components/builder/LegendDataCubeBuilderStoreProvider.js.map +1 -0
  28. package/lib/components/{query-builder/LegendDataCubeQuerySaver.d.ts → builder/LegendDataCubeCreator.d.ts} +2 -2
  29. package/lib/components/builder/LegendDataCubeCreator.d.ts.map +1 -0
  30. package/lib/components/{query-builder/LegendDataCubeNewQueryBuilder.js → builder/LegendDataCubeCreator.js} +10 -10
  31. package/lib/components/builder/LegendDataCubeCreator.js.map +1 -0
  32. package/lib/components/builder/LegendDataCubeDeleteConfirmation.d.ts +19 -0
  33. package/lib/components/builder/LegendDataCubeDeleteConfirmation.d.ts.map +1 -0
  34. package/lib/components/builder/LegendDataCubeDeleteConfirmation.js +43 -0
  35. package/lib/components/builder/LegendDataCubeDeleteConfirmation.js.map +1 -0
  36. package/lib/components/{query-builder/LegendDataCubeQueryLoader.d.ts → builder/LegendDataCubeLoader.d.ts} +2 -2
  37. package/lib/components/builder/LegendDataCubeLoader.d.ts.map +1 -0
  38. package/lib/components/builder/LegendDataCubeLoader.js +113 -0
  39. package/lib/components/builder/LegendDataCubeLoader.js.map +1 -0
  40. package/lib/components/{query-builder/LegendDataCubeNewQueryBuilder.d.ts → builder/LegendDataCubeSaver.d.ts} +2 -2
  41. package/lib/components/builder/LegendDataCubeSaver.d.ts.map +1 -0
  42. package/lib/components/builder/LegendDataCubeSaver.js +73 -0
  43. package/lib/components/builder/LegendDataCubeSaver.js.map +1 -0
  44. package/lib/components/{query-builder/LegendDataCubeQueryBuilder.d.ts → builder/LegendDataCubeSourceViewer.d.ts} +4 -2
  45. package/lib/components/builder/LegendDataCubeSourceViewer.d.ts.map +1 -0
  46. package/lib/components/builder/LegendDataCubeSourceViewer.js +46 -0
  47. package/lib/components/builder/LegendDataCubeSourceViewer.js.map +1 -0
  48. package/lib/components/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilder.d.ts +1 -1
  49. package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.d.ts.map +1 -0
  50. package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.js.map +1 -0
  51. package/lib/components/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilder.d.ts +1 -1
  52. package/lib/components/builder/source/LegendQueryDataCubeSourceBuilder.d.ts.map +1 -0
  53. package/lib/components/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilder.js +13 -13
  54. package/lib/components/builder/source/LegendQueryDataCubeSourceBuilder.js.map +1 -0
  55. package/lib/index.css +1 -1
  56. package/lib/package.json +1 -1
  57. package/lib/stores/LegendDataCubeCacheManager.d.ts.map +1 -1
  58. package/lib/stores/LegendDataCubeCacheManager.js +11 -12
  59. package/lib/stores/LegendDataCubeCacheManager.js.map +1 -1
  60. package/lib/stores/LegendDataCubeDataCubeEngine.d.ts +1 -1
  61. package/lib/stores/LegendDataCubeDataCubeEngine.d.ts.map +1 -1
  62. package/lib/stores/LegendDataCubeDataCubeEngine.js +5 -11
  63. package/lib/stores/LegendDataCubeDataCubeEngine.js.map +1 -1
  64. package/lib/stores/builder/LegendDataCubeBuilderStore.d.ts +80 -0
  65. package/lib/stores/builder/LegendDataCubeBuilderStore.d.ts.map +1 -0
  66. package/lib/stores/builder/LegendDataCubeBuilderStore.js +353 -0
  67. package/lib/stores/builder/LegendDataCubeBuilderStore.js.map +1 -0
  68. package/lib/stores/{query-builder/LegendDataCubeNewQueryState.d.ts → builder/LegendDataCubeCreatorState.d.ts} +5 -5
  69. package/lib/stores/builder/LegendDataCubeCreatorState.d.ts.map +1 -0
  70. package/lib/stores/{query-builder/LegendDataCubeNewQueryState.js → builder/LegendDataCubeCreatorState.js} +17 -17
  71. package/lib/stores/builder/LegendDataCubeCreatorState.js.map +1 -0
  72. package/lib/stores/{query-builder/LegendDataCubeQueryLoaderState.d.ts → builder/LegendDataCubeLoaderState.d.ts} +20 -20
  73. package/lib/stores/builder/LegendDataCubeLoaderState.d.ts.map +1 -0
  74. package/lib/stores/builder/LegendDataCubeLoaderState.js +187 -0
  75. package/lib/stores/builder/LegendDataCubeLoaderState.js.map +1 -0
  76. package/lib/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.d.ts.map +1 -0
  77. package/lib/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.js.map +1 -0
  78. package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.d.ts.map +1 -0
  79. package/lib/stores/{query-builder/source-builder → builder/source}/LegendDataCubeSourceBuilderState.js +1 -1
  80. package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.js.map +1 -0
  81. package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.d.ts.map +1 -0
  82. package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.js.map +1 -0
  83. package/package.json +5 -5
  84. package/src/__lib__/LegendDataCubeNavigation.ts +15 -7
  85. package/src/__lib__/LegendDataCubeUserData.ts +2 -2
  86. package/src/application/LegendDataCubeApplicationConfig.ts +12 -0
  87. package/src/components/LegendDataCubeBlockingWindow.tsx +120 -0
  88. package/src/components/LegendDataCubeWebApplication.tsx +3 -3
  89. package/src/components/builder/LegendDataCubeBuilder.tsx +331 -0
  90. package/src/components/{query-builder/LegendDataCubeQueryBuilderStoreProvider.tsx → builder/LegendDataCubeBuilderStoreProvider.tsx} +19 -16
  91. package/src/components/{query-builder/LegendDataCubeNewQueryBuilder.tsx → builder/LegendDataCubeCreator.tsx} +9 -9
  92. package/src/components/builder/LegendDataCubeDeleteConfirmation.tsx +87 -0
  93. package/src/components/{query-builder/LegendDataCubeQueryLoader.tsx → builder/LegendDataCubeLoader.tsx} +122 -59
  94. package/src/components/builder/LegendDataCubeSaver.tsx +184 -0
  95. package/src/components/builder/LegendDataCubeSourceViewer.tsx +108 -0
  96. package/src/components/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilder.tsx +1 -1
  97. package/src/components/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilder.tsx +16 -15
  98. package/src/stores/LegendDataCubeCacheManager.ts +11 -12
  99. package/src/stores/LegendDataCubeDataCubeEngine.ts +4 -14
  100. package/src/stores/builder/LegendDataCubeBuilderStore.tsx +516 -0
  101. package/src/stores/{query-builder/LegendDataCubeNewQueryState.tsx → builder/LegendDataCubeCreatorState.tsx} +23 -21
  102. package/src/stores/builder/LegendDataCubeLoaderState.tsx +248 -0
  103. package/src/stores/{query-builder/source-builder → builder/source}/LegendDataCubeSourceBuilderState.ts +1 -1
  104. package/tsconfig.json +16 -13
  105. package/lib/components/query-builder/LegendDataCubeNewQueryBuilder.d.ts.map +0 -1
  106. package/lib/components/query-builder/LegendDataCubeNewQueryBuilder.js.map +0 -1
  107. package/lib/components/query-builder/LegendDataCubeQueryBuilder.d.ts.map +0 -1
  108. package/lib/components/query-builder/LegendDataCubeQueryBuilder.js +0 -93
  109. package/lib/components/query-builder/LegendDataCubeQueryBuilder.js.map +0 -1
  110. package/lib/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.d.ts +0 -19
  111. package/lib/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.d.ts.map +0 -1
  112. package/lib/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.js +0 -33
  113. package/lib/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.js.map +0 -1
  114. package/lib/components/query-builder/LegendDataCubeQueryLoader.d.ts.map +0 -1
  115. package/lib/components/query-builder/LegendDataCubeQueryLoader.js +0 -97
  116. package/lib/components/query-builder/LegendDataCubeQueryLoader.js.map +0 -1
  117. package/lib/components/query-builder/LegendDataCubeQuerySaver.d.ts.map +0 -1
  118. package/lib/components/query-builder/LegendDataCubeQuerySaver.js +0 -51
  119. package/lib/components/query-builder/LegendDataCubeQuerySaver.js.map +0 -1
  120. package/lib/components/query-builder/source-builder/AdhocQueryDataCubeSourceBuilder.d.ts.map +0 -1
  121. package/lib/components/query-builder/source-builder/AdhocQueryDataCubeSourceBuilder.js.map +0 -1
  122. package/lib/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.d.ts.map +0 -1
  123. package/lib/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.js.map +0 -1
  124. package/lib/stores/query-builder/LegendDataCubeNewQueryState.d.ts.map +0 -1
  125. package/lib/stores/query-builder/LegendDataCubeNewQueryState.js.map +0 -1
  126. package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.d.ts +0 -58
  127. package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.d.ts.map +0 -1
  128. package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.js +0 -228
  129. package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.js.map +0 -1
  130. package/lib/stores/query-builder/LegendDataCubeQueryLoaderState.d.ts.map +0 -1
  131. package/lib/stores/query-builder/LegendDataCubeQueryLoaderState.js +0 -198
  132. package/lib/stores/query-builder/LegendDataCubeQueryLoaderState.js.map +0 -1
  133. package/lib/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.d.ts.map +0 -1
  134. package/lib/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.js.map +0 -1
  135. package/lib/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.d.ts.map +0 -1
  136. package/lib/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.js.map +0 -1
  137. package/lib/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.d.ts.map +0 -1
  138. package/lib/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.js.map +0 -1
  139. package/src/components/query-builder/LegendDataCubeQueryBuilder.tsx +0 -164
  140. package/src/components/query-builder/LegendDataCubeQuerySaver.tsx +0 -116
  141. package/src/stores/query-builder/LegendDataCubeQueryBuilderStore.tsx +0 -323
  142. package/src/stores/query-builder/LegendDataCubeQueryLoaderState.tsx +0 -260
  143. /package/lib/components/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilder.js +0 -0
  144. /package/lib/stores/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilderState.d.ts +0 -0
  145. /package/lib/stores/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilderState.js +0 -0
  146. /package/lib/stores/{query-builder/source-builder → builder/source}/LegendDataCubeSourceBuilderState.d.ts +0 -0
  147. /package/lib/stores/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilderState.d.ts +0 -0
  148. /package/lib/stores/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilderState.js +0 -0
  149. /package/src/stores/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilderState.ts +0 -0
  150. /package/src/stores/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilderState.ts +0 -0
@@ -0,0 +1,187 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2020-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { APPLICATION_EVENT, DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH, } from '@finos/legend-application';
18
+ import { QuerySearchSpecification, QuerySearchSortBy, } from '@finos/legend-graph';
19
+ import { ActionState, assertErrorThrown, LogEvent } from '@finos/legend-shared';
20
+ import { makeObservable, observable, action } from 'mobx';
21
+ import { LegendDataCubeUserDataKey } from '../../__lib__/LegendDataCubeUserData.js';
22
+ import { DEFAULT_TOOL_PANEL_WINDOW_CONFIG, } from '@finos/legend-data-cube';
23
+ import { LegendDataCubeLoader } from '../../components/builder/LegendDataCubeLoader.js';
24
+ import { generateBuilderRoute } from '../../__lib__/LegendDataCubeNavigation.js';
25
+ export const DATA_CUBE_LOADER_TYPEAHEAD_SEARCH_LIMIT = 50;
26
+ export const DATA_CUBE_LOADER_DEFAULT_SEARCH_LIMIT = 10;
27
+ export var DataCubeSortByType;
28
+ (function (DataCubeSortByType) {
29
+ DataCubeSortByType["LAST_CREATED"] = "Last Created";
30
+ DataCubeSortByType["LAST_VIEWED"] = "Last Viewed";
31
+ DataCubeSortByType["LAST_UPDATED"] = "Last Updated";
32
+ })(DataCubeSortByType || (DataCubeSortByType = {}));
33
+ export class LegendDataCubeLoaderState {
34
+ _application;
35
+ _store;
36
+ _graphManager;
37
+ _alertService;
38
+ display;
39
+ searchState = ActionState.create();
40
+ finalizeState = ActionState.create();
41
+ searchResults = [];
42
+ selectedResult;
43
+ searchText = '';
44
+ showCurrentUserResultsOnly = false;
45
+ showingDefaultResults = true;
46
+ sortBy = DataCubeSortByType.LAST_VIEWED;
47
+ constructor(store) {
48
+ makeObservable(this, {
49
+ showingDefaultResults: observable,
50
+ setShowingDefaultResults: action,
51
+ searchText: observable,
52
+ setSearchText: action,
53
+ searchResults: observable,
54
+ setSearchResults: action,
55
+ selectedResult: observable,
56
+ setSelectedResult: action,
57
+ showCurrentUserResultsOnly: observable,
58
+ setShowCurrentUserResultsOnly: action,
59
+ sortBy: observable,
60
+ setSortBy: action,
61
+ });
62
+ this._application = store.application;
63
+ this._store = store;
64
+ this._graphManager = store.graphManager;
65
+ this._alertService = store.alertService;
66
+ this.display = store.layoutService.newDisplay('Load DataCube', () => _jsx(LegendDataCubeLoader, {}), {
67
+ ...DEFAULT_TOOL_PANEL_WINDOW_CONFIG,
68
+ width: 500,
69
+ minWidth: 500,
70
+ });
71
+ }
72
+ setSearchText(val) {
73
+ this.searchText = val;
74
+ }
75
+ setSearchResults(results) {
76
+ this.searchResults = results;
77
+ }
78
+ setSelectedResult(result) {
79
+ this.selectedResult = result;
80
+ }
81
+ setShowingDefaultResults(val) {
82
+ this.showingDefaultResults = val;
83
+ }
84
+ setShowCurrentUserResultsOnly(val) {
85
+ this.showCurrentUserResultsOnly = val;
86
+ }
87
+ setSortBy(val) {
88
+ this.sortBy = val;
89
+ }
90
+ getSearchSortBy(sortByValue) {
91
+ switch (sortByValue) {
92
+ case DataCubeSortByType.LAST_CREATED:
93
+ return QuerySearchSortBy.SORT_BY_CREATE;
94
+ case DataCubeSortByType.LAST_UPDATED:
95
+ return QuerySearchSortBy.SORT_BY_UPDATE;
96
+ case DataCubeSortByType.LAST_VIEWED:
97
+ return QuerySearchSortBy.SORT_BY_VIEW;
98
+ default:
99
+ return undefined;
100
+ }
101
+ }
102
+ canPerformAdvancedSearch(searchText) {
103
+ return !(searchText.length < DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH &&
104
+ !this.showCurrentUserResultsOnly);
105
+ }
106
+ async searchDataCubes(searchText) {
107
+ // for the initial search, i.e. no search config is specified, fetch the default entries if possible
108
+ if (!this.canPerformAdvancedSearch(searchText)) {
109
+ if (!searchText) {
110
+ this.setShowingDefaultResults(true);
111
+ this.searchState.inProgress();
112
+ this.setSearchResults([]);
113
+ let defaultResults = [];
114
+ try {
115
+ // first, try to fetch recently viewed entries
116
+ try {
117
+ const recentlyViewedDataCubeIDs = this._store.getRecentlyViewedDataCubes();
118
+ if (recentlyViewedDataCubeIDs.length) {
119
+ defaultResults = await this._graphManager.getDataCubes(recentlyViewedDataCubeIDs);
120
+ }
121
+ }
122
+ catch (error) {
123
+ assertErrorThrown(error);
124
+ // if there's an error fetching recently viewed entries, most likely because
125
+ // some entries have been removed, just remove them all from the cached user data
126
+ this._application.userDataService.persistValue(LegendDataCubeUserDataKey.RECENTLY_VIEWED_DATA_CUBES, undefined);
127
+ }
128
+ // if there's no recently viewed entries, just fetch entries of the current user
129
+ if (!defaultResults.length) {
130
+ const searchSpecification = new QuerySearchSpecification();
131
+ searchSpecification.limit = DATA_CUBE_LOADER_DEFAULT_SEARCH_LIMIT;
132
+ searchSpecification.showCurrentUserQueriesOnly = true;
133
+ defaultResults =
134
+ await this._graphManager.searchDataCubes(searchSpecification);
135
+ }
136
+ this.setSearchResults(defaultResults);
137
+ this.searchState.pass();
138
+ }
139
+ catch (error) {
140
+ assertErrorThrown(error);
141
+ this._application.logService.error(LogEvent.create(APPLICATION_EVENT.GENERIC_FAILURE), error);
142
+ this.searchState.fail();
143
+ }
144
+ }
145
+ return;
146
+ }
147
+ this.setShowingDefaultResults(false);
148
+ this.searchState.inProgress();
149
+ try {
150
+ const searchSpecification = QuerySearchSpecification.createDefault(searchText);
151
+ searchSpecification.limit = DATA_CUBE_LOADER_TYPEAHEAD_SEARCH_LIMIT + 1;
152
+ searchSpecification.showCurrentUserQueriesOnly =
153
+ this.showCurrentUserResultsOnly;
154
+ const searchSortBy = this.getSearchSortBy(this.sortBy);
155
+ if (searchSortBy) {
156
+ searchSpecification.sortByOption = searchSortBy;
157
+ }
158
+ this.setSearchResults(await this._graphManager.searchDataCubes(searchSpecification));
159
+ // if sorting is not configured, sort by name
160
+ if (!searchSortBy) {
161
+ this.setSearchResults(this.searchResults.toSorted((a, b) => a.name.localeCompare(b.name)));
162
+ }
163
+ this.searchState.pass();
164
+ }
165
+ catch (error) {
166
+ assertErrorThrown(error);
167
+ this._alertService.alertError(error, {
168
+ message: `DataCube Search Failure: ${error.message}`,
169
+ });
170
+ this.searchState.fail();
171
+ }
172
+ }
173
+ async finalize() {
174
+ if (!this.selectedResult) {
175
+ return;
176
+ }
177
+ this.finalizeState.inProgress();
178
+ // just simply change the route here and the new DataCube ID will get picked up
179
+ // and handled by the builder to load the new DataCube.
180
+ this._application.navigationService.navigator.updateCurrentLocation(generateBuilderRoute(this.selectedResult.id));
181
+ // reset
182
+ this.setSelectedResult(undefined);
183
+ this.display.close();
184
+ this.finalizeState.pass();
185
+ }
186
+ }
187
+ //# sourceMappingURL=LegendDataCubeLoaderState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegendDataCubeLoaderState.js","sourceRoot":"","sources":["../../../src/stores/builder/LegendDataCubeLoaderState.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdhocQueryDataCubeSourceBuilderState.d.ts","sourceRoot":"","sources":["../../../../src/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAChC,MAAM,uCAAuC,CAAC;AAE/C,qBAAa,oCAAqC,SAAQ,gCAAgC;IACxF,IAAa,KAAK,IAAI,+BAA+B,CAEpD;IAED,IAAa,OAAO,IAAI,OAAO,CAE9B;IAEQ,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC;CAGpD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdhocQueryDataCubeSourceBuilderState.js","sourceRoot":"","sources":["../../../../src/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAoB,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,uCAAuC,CAAC;AAE/C,MAAM,OAAO,oCAAqC,SAAQ,gCAAgC;IACxF,IAAa,KAAK;QAChB,OAAO,+BAA+B,CAAC,WAAW,CAAC;IACrD,CAAC;IAED,IAAa,OAAO;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAEQ,kBAAkB;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegendDataCubeSourceBuilderState.d.ts","sourceRoot":"","sources":["../../../../src/stores/builder/source/LegendDataCubeSourceBuilderState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,oBAAY,+BAA+B;IACzC,YAAY,iBAAiB;IAC7B,WAAW,iBAAiB;CAC7B;AAED,8BAAsB,gCAAgC;IACpD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,8BAA8B,CAAC;IAChE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;gBAGvD,WAAW,EAAE,8BAA8B,EAC3C,MAAM,EAAE,4BAA4B;IAMtC,QAAQ,KAAK,KAAK,IAAI,+BAA+B,CAAC;IACtD,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC;IAChC,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC;IAGnD,qBAAqB,CAAC,aAAa,EAAE,qBAAqB;CAG3D"}
@@ -26,7 +26,7 @@ export class LegendDataCubeSourceBuilderState {
26
26
  this._application = application;
27
27
  this._engine = engine;
28
28
  }
29
- /* Modifies the configuration of the finalized DataCube query based on the source builder */
29
+ /* Modifies the configuration of the finalized DataCube based on the source builder */
30
30
  finalizeConfiguration(configuration) {
31
31
  // do nothing
32
32
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegendDataCubeSourceBuilderState.js","sourceRoot":"","sources":["../../../../src/stores/builder/source/LegendDataCubeSourceBuilderState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAoB,MAAM,sBAAsB,CAAC;AAKxD,MAAM,CAAN,IAAY,+BAGX;AAHD,WAAY,+BAA+B;IACzC,gEAA6B,CAAA;IAC7B,+DAA4B,CAAA;AAC9B,CAAC,EAHW,+BAA+B,KAA/B,+BAA+B,QAG1C;AAED,MAAM,OAAgB,gCAAgC;IACjC,YAAY,CAAiC;IAC7C,OAAO,CAA+B;IAEzD,YACE,WAA2C,EAC3C,MAAoC;QAEpC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAMD,sFAAsF;IACtF,qBAAqB,CAAC,aAAoC;QACxD,aAAa;IACf,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegendQueryDataCubeSourceBuilderState.d.ts","sourceRoot":"","sources":["../../../../src/stores/builder/source/LegendQueryDataCubeSourceBuilderState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAExB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAChC,MAAM,uCAAuC,CAAC;AAG/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,qCAAsC,SAAQ,gCAAgC;IACzF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwB;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IAErD,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAEvC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAG7B,WAAW,EAAE,8BAA8B,EAC3C,MAAM,EAAE,4BAA4B,EACpC,kBAAkB,EAAE,qBAAqB,EACzC,YAAY,EAAE,mBAAmB,EACjC,YAAY,EAAE,oBAAoB;IAqC9B,QAAQ,CAAC,UAAU,EAAE,UAAU;IA0BrC,UAAU,IAAI,IAAI;IAKlB,IAAa,KAAK,oCAEjB;IAED,IAAa,OAAO,IAAI,OAAO,CAE9B;IAEc,kBAAkB;IASxB,qBAAqB,CAAC,aAAa,EAAE,qBAAqB;CAKpE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegendQueryDataCubeSourceBuilderState.js","sourceRoot":"","sources":["../../../../src/stores/builder/source/LegendQueryDataCubeSourceBuilderState.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application-data-cube",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Legend DataCube application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -45,10 +45,10 @@
45
45
  "@duckdb/duckdb-wasm": "1.29.0",
46
46
  "@finos/legend-application": "16.0.24",
47
47
  "@finos/legend-art": "7.1.81",
48
- "@finos/legend-code-editor": "2.0.44",
49
- "@finos/legend-data-cube": "0.1.3",
50
- "@finos/legend-graph": "32.1.2",
51
- "@finos/legend-query-builder": "4.16.3",
48
+ "@finos/legend-code-editor": "2.0.45",
49
+ "@finos/legend-data-cube": "0.1.5",
50
+ "@finos/legend-graph": "32.1.3",
51
+ "@finos/legend-query-builder": "4.16.5",
52
52
  "@finos/legend-server-depot": "6.0.80",
53
53
  "@finos/legend-shared": "11.0.3",
54
54
  "@finos/legend-storage": "3.0.122",
@@ -17,20 +17,28 @@
17
17
  import { generatePath } from '@finos/legend-application/browser';
18
18
 
19
19
  export enum LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN {
20
- QUERY_ID = 'queryId',
20
+ DATA_CUBE_ID = 'dataCubeId',
21
21
  SOURCE_DATA = 'sourceData',
22
22
  }
23
23
 
24
24
  export const LEGEND_DATA_CUBE_ROUTE_PATTERN = Object.freeze({
25
- QUERY_BUILDER: `/:${LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.QUERY_ID}?`,
25
+ BUILDER: `/:${LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.DATA_CUBE_ID}?`,
26
26
  });
27
27
 
28
- export type LegendDataCubeQueryBuilderPathParams = {
29
- [LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.QUERY_ID]: string;
28
+ export type LegendDataCubeBuilderPathParams = {
29
+ [LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.DATA_CUBE_ID]: string;
30
30
  };
31
31
 
32
- export const generateQueryBuilderRoute = (queryId: string | null): string => {
33
- return generatePath(LEGEND_DATA_CUBE_ROUTE_PATTERN.QUERY_BUILDER, {
34
- [LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.QUERY_ID]: queryId,
32
+ export const generateBuilderRoute = (dataCubeId: string | null): string => {
33
+ return generatePath(LEGEND_DATA_CUBE_ROUTE_PATTERN.BUILDER, {
34
+ [LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.DATA_CUBE_ID]: dataCubeId,
35
35
  });
36
36
  };
37
+
38
+ /**
39
+ * @external_application_navigation This depends on Legend Query routing and is hardcoded so it's potentially brittle
40
+ */
41
+ export const EXTERNAL_APPLICATION_NAVIGATION__generateQueryViewUrl = (
42
+ queryApplicationUrl: string,
43
+ queryId: string,
44
+ ) => `${queryApplicationUrl}/edit/${queryId}`;
@@ -14,8 +14,8 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export const RECENTLY_VIEWED_QUERIES_LIMIT = 10;
17
+ export const RECENTLY_VIEWED_DATA_CUBES_LIMIT = 10;
18
18
 
19
19
  export enum LegendDataCubeUserDataKey {
20
- RECENTLY_VIEWED_QUERIES = 'recentlyViewedQueries',
20
+ RECENTLY_VIEWED_DATA_CUBES = 'recentlyViewedDataCubes',
21
21
  }
@@ -30,12 +30,16 @@ export interface LegendDataCubeApplicationConfigurationData
30
30
  url: string;
31
31
  };
32
32
  engine: { url: string; queryUrl: string };
33
+ query?: {
34
+ url: string;
35
+ };
33
36
  }
34
37
 
35
38
  export class LegendDataCubeApplicationConfig extends LegendApplicationConfig {
36
39
  readonly engineServerUrl: string;
37
40
  readonly depotServerUrl: string;
38
41
  readonly engineQueryServerUrl?: string | undefined;
42
+ readonly queryApplicationUrl?: string | undefined;
39
43
 
40
44
  constructor(
41
45
  input: LegendApplicationConfigurationInput<LegendDataCubeApplicationConfigurationData>,
@@ -58,6 +62,7 @@ export class LegendDataCubeApplicationConfig extends LegendApplicationConfig {
58
62
  input.configData.engine.queryUrl,
59
63
  )
60
64
  : undefined;
65
+
61
66
  // depot
62
67
  assertNonNullable(
63
68
  input.configData.depot,
@@ -69,6 +74,13 @@ export class LegendDataCubeApplicationConfig extends LegendApplicationConfig {
69
74
  `Can't configure application: 'depot.url' field is missing or empty`,
70
75
  ),
71
76
  );
77
+
78
+ // query
79
+ if (input.configData.query?.url) {
80
+ this.queryApplicationUrl = LegendApplicationConfig.resolveAbsoluteUrl(
81
+ input.configData.query.url,
82
+ );
83
+ }
72
84
  }
73
85
  getDefaultApplicationStorageKey(): string {
74
86
  return 'legend-data-cube';
@@ -0,0 +1,120 @@
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 { DataCubeIcon, Dialog } from '@finos/legend-art';
18
+ import {
19
+ DEFAULT_TOOL_PANEL_WINDOW_CONFIG,
20
+ LayoutConfiguration,
21
+ type WindowConfiguration,
22
+ } from '@finos/legend-data-cube';
23
+ import { action, makeObservable, observable } from 'mobx';
24
+ import { observer } from 'mobx-react-lite';
25
+ import { useRef } from 'react';
26
+
27
+ export const LegendDataCubeBlockingWindow = observer(
28
+ (props: { windowState: LegendDataCubeBlockingWindowState }) => {
29
+ const { windowState } = props;
30
+ const ref = useRef<HTMLDivElement>(null);
31
+
32
+ // set the width and height of the dialog to make sure content overflow works properly
33
+ const handleEnter = () => {
34
+ if (ref.current?.parentElement) {
35
+ const { width, height } =
36
+ ref.current.parentElement.getBoundingClientRect();
37
+ ref.current.style.width = `${windowState.configuration.window.width ?? width}px`;
38
+ ref.current.style.height = `${windowState.configuration.window.height ?? height}px`;
39
+ }
40
+ };
41
+
42
+ if (!windowState.isOpen) {
43
+ return null;
44
+ }
45
+ return (
46
+ <Dialog
47
+ open={windowState.isOpen}
48
+ onClose={() => windowState.close()}
49
+ slotProps={{
50
+ transition: {
51
+ onEnter: handleEnter,
52
+ },
53
+ paper: {
54
+ elevation: 0,
55
+ },
56
+ backdrop: {
57
+ classes: {
58
+ root: 'bg-black !opacity-25',
59
+ },
60
+ },
61
+ }}
62
+ classes={{
63
+ root: 'data-cube h-full w-full flex items-center justify-center',
64
+ paper: 'min-h-10 min-w-40 rounded-none shadow-md',
65
+ }}
66
+ >
67
+ <div
68
+ className="border border-neutral-400 bg-neutral-200 shadow-xl"
69
+ ref={ref}
70
+ >
71
+ <div className="flex h-6 w-full select-none items-center justify-between border-b border-b-neutral-300 bg-white">
72
+ <div className="px-2">{windowState.configuration.title}</div>
73
+ <button
74
+ className="flex h-[23px] w-6 items-center justify-center hover:bg-red-500 hover:text-white"
75
+ onClick={() => windowState.close()}
76
+ >
77
+ <DataCubeIcon.X />
78
+ </button>
79
+ </div>
80
+ <div className="h-[calc(100%_-_24px)] w-full overflow-auto">
81
+ {windowState.configuration.contentRenderer(
82
+ windowState.configuration,
83
+ )}
84
+ </div>
85
+ </div>
86
+ </Dialog>
87
+ );
88
+ },
89
+ );
90
+
91
+ export class LegendDataCubeBlockingWindowState {
92
+ isOpen = false;
93
+ readonly configuration: LayoutConfiguration;
94
+
95
+ constructor(
96
+ title: string,
97
+ contentRenderer: (config: LayoutConfiguration) => React.ReactNode,
98
+ windowConfiguration?: WindowConfiguration | undefined,
99
+ ) {
100
+ makeObservable(this, {
101
+ isOpen: observable,
102
+ open: action,
103
+ close: action,
104
+ });
105
+
106
+ this.configuration = new LayoutConfiguration(title, contentRenderer);
107
+ this.configuration.window = DEFAULT_TOOL_PANEL_WINDOW_CONFIG;
108
+ if (windowConfiguration) {
109
+ this.configuration.window = windowConfiguration;
110
+ }
111
+ }
112
+
113
+ open() {
114
+ this.isOpen = true;
115
+ }
116
+
117
+ close() {
118
+ this.isOpen = false;
119
+ }
120
+ }
@@ -21,7 +21,7 @@ import {
21
21
  useLegendDataCubeBaseStore,
22
22
  } from './LegendDataCubeFrameworkProvider.js';
23
23
  import { observer } from 'mobx-react-lite';
24
- import { LegendDataCubeQueryBuilder } from './query-builder/LegendDataCubeQueryBuilder.js';
24
+ import { LegendDataCubeBuilder } from './builder/LegendDataCubeBuilder.js';
25
25
  import { LEGEND_DATA_CUBE_ROUTE_PATTERN } from '../__lib__/LegendDataCubeNavigation.js';
26
26
  import { useEffect } from 'react';
27
27
 
@@ -39,8 +39,8 @@ const LegendDataCubeWebApplicationRouter = observer(() => {
39
39
  {store.initializeState.hasSucceeded && (
40
40
  <Routes>
41
41
  <Route
42
- path={LEGEND_DATA_CUBE_ROUTE_PATTERN.QUERY_BUILDER}
43
- element={<LegendDataCubeQueryBuilder />}
42
+ path={LEGEND_DATA_CUBE_ROUTE_PATTERN.BUILDER}
43
+ element={<LegendDataCubeBuilder />}
44
44
  />
45
45
  </Routes>
46
46
  )}