@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,248 @@
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 {
18
+ APPLICATION_EVENT,
19
+ DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH,
20
+ type GenericLegendApplicationStore,
21
+ } from '@finos/legend-application';
22
+ import {
23
+ type LightPersistentDataCube,
24
+ QuerySearchSpecification,
25
+ QuerySearchSortBy,
26
+ type V1_PureGraphManager,
27
+ } from '@finos/legend-graph';
28
+ import { ActionState, assertErrorThrown, LogEvent } from '@finos/legend-shared';
29
+ import { makeObservable, observable, action } from 'mobx';
30
+ import type { LegendDataCubeBuilderStore } from './LegendDataCubeBuilderStore.js';
31
+ import { LegendDataCubeUserDataKey } from '../../__lib__/LegendDataCubeUserData.js';
32
+ import {
33
+ type DataCubeAlertService,
34
+ DEFAULT_TOOL_PANEL_WINDOW_CONFIG,
35
+ type DisplayState,
36
+ } from '@finos/legend-data-cube';
37
+ import { LegendDataCubeLoader } from '../../components/builder/LegendDataCubeLoader.js';
38
+ import { generateBuilderRoute } from '../../__lib__/LegendDataCubeNavigation.js';
39
+
40
+ export const DATA_CUBE_LOADER_TYPEAHEAD_SEARCH_LIMIT = 50;
41
+ export const DATA_CUBE_LOADER_DEFAULT_SEARCH_LIMIT = 10;
42
+
43
+ export enum DataCubeSortByType {
44
+ LAST_CREATED = 'Last Created',
45
+ LAST_VIEWED = 'Last Viewed',
46
+ LAST_UPDATED = 'Last Updated',
47
+ }
48
+
49
+ export class LegendDataCubeLoaderState {
50
+ private readonly _application: GenericLegendApplicationStore;
51
+ private readonly _store: LegendDataCubeBuilderStore;
52
+ private readonly _graphManager: V1_PureGraphManager;
53
+ private readonly _alertService: DataCubeAlertService;
54
+
55
+ readonly display: DisplayState;
56
+ readonly searchState = ActionState.create();
57
+ readonly finalizeState = ActionState.create();
58
+
59
+ searchResults: LightPersistentDataCube[] = [];
60
+ selectedResult?: LightPersistentDataCube | undefined;
61
+
62
+ searchText = '';
63
+ showCurrentUserResultsOnly = false;
64
+ showingDefaultResults = true;
65
+ sortBy = DataCubeSortByType.LAST_VIEWED;
66
+
67
+ constructor(store: LegendDataCubeBuilderStore) {
68
+ makeObservable(this, {
69
+ showingDefaultResults: observable,
70
+ setShowingDefaultResults: action,
71
+
72
+ searchText: observable,
73
+ setSearchText: action,
74
+
75
+ searchResults: observable,
76
+ setSearchResults: action,
77
+
78
+ selectedResult: observable,
79
+ setSelectedResult: action,
80
+
81
+ showCurrentUserResultsOnly: observable,
82
+ setShowCurrentUserResultsOnly: action,
83
+
84
+ sortBy: observable,
85
+ setSortBy: action,
86
+ });
87
+
88
+ this._application = store.application;
89
+ this._store = store;
90
+ this._graphManager = store.graphManager;
91
+ this._alertService = store.alertService;
92
+
93
+ this.display = store.layoutService.newDisplay(
94
+ 'Load DataCube',
95
+ () => <LegendDataCubeLoader />,
96
+ {
97
+ ...DEFAULT_TOOL_PANEL_WINDOW_CONFIG,
98
+ width: 500,
99
+ minWidth: 500,
100
+ },
101
+ );
102
+ }
103
+
104
+ setSearchText(val: string) {
105
+ this.searchText = val;
106
+ }
107
+
108
+ setSearchResults(results: LightPersistentDataCube[]) {
109
+ this.searchResults = results;
110
+ }
111
+
112
+ setSelectedResult(result: LightPersistentDataCube | undefined) {
113
+ this.selectedResult = result;
114
+ }
115
+
116
+ setShowingDefaultResults(val: boolean) {
117
+ this.showingDefaultResults = val;
118
+ }
119
+
120
+ setShowCurrentUserResultsOnly(val: boolean): void {
121
+ this.showCurrentUserResultsOnly = val;
122
+ }
123
+
124
+ setSortBy(val: DataCubeSortByType) {
125
+ this.sortBy = val;
126
+ }
127
+
128
+ private getSearchSortBy(sortByValue: string) {
129
+ switch (sortByValue) {
130
+ case DataCubeSortByType.LAST_CREATED:
131
+ return QuerySearchSortBy.SORT_BY_CREATE;
132
+ case DataCubeSortByType.LAST_UPDATED:
133
+ return QuerySearchSortBy.SORT_BY_UPDATE;
134
+ case DataCubeSortByType.LAST_VIEWED:
135
+ return QuerySearchSortBy.SORT_BY_VIEW;
136
+ default:
137
+ return undefined;
138
+ }
139
+ }
140
+
141
+ canPerformAdvancedSearch(searchText: string) {
142
+ return !(
143
+ searchText.length < DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH &&
144
+ !this.showCurrentUserResultsOnly
145
+ );
146
+ }
147
+
148
+ async searchDataCubes(searchText: string) {
149
+ // for the initial search, i.e. no search config is specified, fetch the default entries if possible
150
+ if (!this.canPerformAdvancedSearch(searchText)) {
151
+ if (!searchText) {
152
+ this.setShowingDefaultResults(true);
153
+ this.searchState.inProgress();
154
+ this.setSearchResults([]);
155
+ let defaultResults: LightPersistentDataCube[] = [];
156
+ try {
157
+ // first, try to fetch recently viewed entries
158
+ try {
159
+ const recentlyViewedDataCubeIDs =
160
+ this._store.getRecentlyViewedDataCubes();
161
+ if (recentlyViewedDataCubeIDs.length) {
162
+ defaultResults = await this._graphManager.getDataCubes(
163
+ recentlyViewedDataCubeIDs,
164
+ );
165
+ }
166
+ } catch (error) {
167
+ assertErrorThrown(error);
168
+ // if there's an error fetching recently viewed entries, most likely because
169
+ // some entries have been removed, just remove them all from the cached user data
170
+ this._application.userDataService.persistValue(
171
+ LegendDataCubeUserDataKey.RECENTLY_VIEWED_DATA_CUBES,
172
+ undefined,
173
+ );
174
+ }
175
+ // if there's no recently viewed entries, just fetch entries of the current user
176
+ if (!defaultResults.length) {
177
+ const searchSpecification = new QuerySearchSpecification();
178
+ searchSpecification.limit = DATA_CUBE_LOADER_DEFAULT_SEARCH_LIMIT;
179
+ searchSpecification.showCurrentUserQueriesOnly = true;
180
+ defaultResults =
181
+ await this._graphManager.searchDataCubes(searchSpecification);
182
+ }
183
+ this.setSearchResults(defaultResults);
184
+ this.searchState.pass();
185
+ } catch (error) {
186
+ assertErrorThrown(error);
187
+ this._application.logService.error(
188
+ LogEvent.create(APPLICATION_EVENT.GENERIC_FAILURE),
189
+ error,
190
+ );
191
+ this.searchState.fail();
192
+ }
193
+ }
194
+ return;
195
+ }
196
+
197
+ this.setShowingDefaultResults(false);
198
+ this.searchState.inProgress();
199
+
200
+ try {
201
+ const searchSpecification =
202
+ QuerySearchSpecification.createDefault(searchText);
203
+ searchSpecification.limit = DATA_CUBE_LOADER_TYPEAHEAD_SEARCH_LIMIT + 1;
204
+ searchSpecification.showCurrentUserQueriesOnly =
205
+ this.showCurrentUserResultsOnly;
206
+ const searchSortBy = this.getSearchSortBy(this.sortBy);
207
+ if (searchSortBy) {
208
+ searchSpecification.sortByOption = searchSortBy;
209
+ }
210
+ this.setSearchResults(
211
+ await this._graphManager.searchDataCubes(searchSpecification),
212
+ );
213
+
214
+ // if sorting is not configured, sort by name
215
+ if (!searchSortBy) {
216
+ this.setSearchResults(
217
+ this.searchResults.toSorted((a, b) => a.name.localeCompare(b.name)),
218
+ );
219
+ }
220
+
221
+ this.searchState.pass();
222
+ } catch (error) {
223
+ assertErrorThrown(error);
224
+ this._alertService.alertError(error, {
225
+ message: `DataCube Search Failure: ${error.message}`,
226
+ });
227
+ this.searchState.fail();
228
+ }
229
+ }
230
+
231
+ async finalize() {
232
+ if (!this.selectedResult) {
233
+ return;
234
+ }
235
+
236
+ this.finalizeState.inProgress();
237
+ // just simply change the route here and the new DataCube ID will get picked up
238
+ // and handled by the builder to load the new DataCube.
239
+ this._application.navigationService.navigator.updateCurrentLocation(
240
+ generateBuilderRoute(this.selectedResult.id),
241
+ );
242
+
243
+ // reset
244
+ this.setSelectedResult(undefined);
245
+ this.display.close();
246
+ this.finalizeState.pass();
247
+ }
248
+ }
@@ -40,7 +40,7 @@ export abstract class LegendDataCubeSourceBuilderState {
40
40
  abstract get isValid(): boolean;
41
41
  abstract generateSourceData(): Promise<PlainObject>;
42
42
 
43
- /* Modifies the configuration of the finalized DataCube query based on the source builder */
43
+ /* Modifies the configuration of the finalized DataCube based on the source builder */
44
44
  finalizeConfiguration(configuration: DataCubeConfiguration) {
45
45
  // do nothing
46
46
  }
package/tsconfig.json CHANGED
@@ -64,23 +64,26 @@
64
64
  "./src/stores/LegendDataCubeBaseStore.ts",
65
65
  "./src/stores/LegendDataCubeCacheManager.ts",
66
66
  "./src/stores/LegendDataCubeDataCubeEngine.ts",
67
+ "./src/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.ts",
68
+ "./src/stores/builder/source/LegendDataCubeSourceBuilderState.ts",
69
+ "./src/stores/builder/source/LegendQueryDataCubeSourceBuilderState.ts",
67
70
  "./src/stores/model/LegendQueryDataCubeSource.ts",
68
- "./src/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.ts",
69
- "./src/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.ts",
70
- "./src/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.ts",
71
71
  "./src/application/LegendDataCube.tsx",
72
+ "./src/components/LegendDataCubeBlockingWindow.tsx",
72
73
  "./src/components/LegendDataCubeFrameworkProvider.tsx",
73
74
  "./src/components/LegendDataCubeWebApplication.tsx",
74
- "./src/components/query-builder/LegendDataCubeNewQueryBuilder.tsx",
75
- "./src/components/query-builder/LegendDataCubeQueryBuilder.tsx",
76
- "./src/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.tsx",
77
- "./src/components/query-builder/LegendDataCubeQueryLoader.tsx",
78
- "./src/components/query-builder/LegendDataCubeQuerySaver.tsx",
79
- "./src/components/query-builder/source-builder/AdhocQueryDataCubeSourceBuilder.tsx",
80
- "./src/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.tsx",
81
- "./src/stores/query-builder/LegendDataCubeNewQueryState.tsx",
82
- "./src/stores/query-builder/LegendDataCubeQueryBuilderStore.tsx",
83
- "./src/stores/query-builder/LegendDataCubeQueryLoaderState.tsx"
75
+ "./src/components/builder/LegendDataCubeBuilder.tsx",
76
+ "./src/components/builder/LegendDataCubeBuilderStoreProvider.tsx",
77
+ "./src/components/builder/LegendDataCubeCreator.tsx",
78
+ "./src/components/builder/LegendDataCubeDeleteConfirmation.tsx",
79
+ "./src/components/builder/LegendDataCubeLoader.tsx",
80
+ "./src/components/builder/LegendDataCubeSaver.tsx",
81
+ "./src/components/builder/LegendDataCubeSourceViewer.tsx",
82
+ "./src/components/builder/source/AdhocQueryDataCubeSourceBuilder.tsx",
83
+ "./src/components/builder/source/LegendQueryDataCubeSourceBuilder.tsx",
84
+ "./src/stores/builder/LegendDataCubeBuilderStore.tsx",
85
+ "./src/stores/builder/LegendDataCubeCreatorState.tsx",
86
+ "./src/stores/builder/LegendDataCubeLoaderState.tsx"
84
87
  ],
85
88
  "include": [
86
89
  "src/**/*.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegendDataCubeNewQueryBuilder.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeNewQueryBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH,eAAO,MAAM,6BAA6B;;CAgFxC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegendDataCubeNewQueryBuilder.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeNewQueryBuilder.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegendDataCubeQueryBuilder.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiDH,eAAO,MAAM,0BAA0B,+CAoGtC,CAAC"}
@@ -1,93 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } 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 { observer } from 'mobx-react-lite';
18
- import { DataCube, FormButton, DataCubePlaceholder, } from '@finos/legend-data-cube';
19
- import {} from '@finos/legend-art';
20
- import { useLegendDataCubeQueryBuilderStore, withLegendDataCubeQueryBuilderStore, } from './LegendDataCubeQueryBuilderStoreProvider.js';
21
- import { useParams } from '@finos/legend-application/browser';
22
- import { LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN, } from '../../__lib__/LegendDataCubeNavigation.js';
23
- import { useEffect } from 'react';
24
- import { LegendDataCubeSettingStorageKey } from '../../__lib__/LegendDataCubeSetting.js';
25
- const LegendDataCubeQueryBuilderHeader = observer(() => {
26
- const store = useLegendDataCubeQueryBuilderStore();
27
- return (_jsxs("div", { className: "flex h-full items-center", children: [_jsx(FormButton, { compact: true, onClick: () => store.loader.display.open(), children: "Load Query" }), _jsx(FormButton, { compact: true, className: "ml-1.5", onClick: () => store.newQueryState.display.open(), children: "New Query" }), _jsx(FormButton, { compact: true, className: "ml-1.5", disabled: !store.builder?.dataCube, onClick: () => store.saverDisplay.open(), children: "Save Query" })] }));
28
- });
29
- export const LegendDataCubeQueryBuilder = withLegendDataCubeQueryBuilderStore(observer(() => {
30
- const store = useLegendDataCubeQueryBuilderStore();
31
- const builder = store.builder;
32
- const application = store.application;
33
- const params = useParams();
34
- const queryId = params[LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.QUERY_ID];
35
- useEffect(() => {
36
- application.navigationService.navigator.blockNavigation(
37
- // Only block navigation in production, in development, we should have
38
- // the flexibility to reload the page quickly
39
- // eslint-disable-next-line no-process-env
40
- [() => process.env.NODE_ENV === 'production']);
41
- return () => {
42
- application.navigationService.navigator.unblockNavigation();
43
- };
44
- }, [application]);
45
- useEffect(() => {
46
- store
47
- .loadQuery(queryId)
48
- .catch((error) => store.alertService.alertUnhandledError(error));
49
- }, [store, queryId]);
50
- useEffect(() => {
51
- store.engine
52
- .initializeCacheManager()
53
- .catch((error) => store.alertService.alertUnhandledError(error));
54
- return () => {
55
- store.engine
56
- .disposeCacheManager()
57
- .catch((error) => store.alertService.alertUnhandledError(error));
58
- };
59
- }, [store]);
60
- if (!builder) {
61
- return (_jsx(DataCubePlaceholder, { title: "[ Legend DataCube ]", layoutManager: store.layoutService.manager, taskManager: store.taskService.manager, headerContent: _jsx(LegendDataCubeQueryBuilderHeader, {}), menuItems: [
62
- {
63
- label: 'See Documentation',
64
- action: () => {
65
- const url = application.documentationService.url;
66
- if (url) {
67
- application.navigationService.navigator.visitAddress(url);
68
- }
69
- },
70
- disabled: true, // TODO: enable when we set up the documentation websit
71
- },
72
- ], children: _jsxs("div", { className: "h-full w-full p-2", children: [_jsx("div", { children: "Create a new query to start" }), _jsx(FormButton, { className: "mt-1.5", onClick: () => store.newQueryState.display.open(), children: "New Query" })] }) }));
73
- }
74
- return (_jsx(DataCube, { query: builder.query, engine: store.baseStore.engine, options: {
75
- layoutManager: store.layoutService.manager,
76
- taskManager: store.taskService.manager,
77
- gridClientLicense: store.baseStore.gridClientLicense,
78
- onInitialized(event) {
79
- builder.setDataCube(event.api);
80
- },
81
- innerHeaderRenderer: () => _jsx(LegendDataCubeQueryBuilderHeader, {}),
82
- settingsData: {
83
- configurations: store.baseStore.settings,
84
- values: application.settingService.getObjectValue(LegendDataCubeSettingStorageKey.DATA_CUBE),
85
- },
86
- onSettingsChanged(event) {
87
- application.settingService.persistValue(LegendDataCubeSettingStorageKey.DATA_CUBE, event.values);
88
- },
89
- documentationUrl: application.documentationService.url,
90
- enableCache: true,
91
- } }, builder.uuid));
92
- }));
93
- //# sourceMappingURL=LegendDataCubeQueryBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegendDataCubeQueryBuilder.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
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 { LegendDataCubeQueryBuilderStore } from '../../stores/query-builder/LegendDataCubeQueryBuilderStore.js';
17
- export declare const useLegendDataCubeQueryBuilderStore: () => LegendDataCubeQueryBuilderStore;
18
- export declare const withLegendDataCubeQueryBuilderStore: (WrappedComponent: React.FC) => () => import("react/jsx-runtime").JSX.Element;
19
- //# sourceMappingURL=LegendDataCubeQueryBuilderStoreProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegendDataCubeQueryBuilderStoreProvider.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,+BAA+B,EAAE,MAAM,+DAA+D,CAAC;AAqBhH,eAAO,MAAM,kCAAkC,uCAI5C,CAAC;AAEJ,eAAO,MAAM,mCAAmC,qBAC5B,KAAK,CAAC,EAAE,kDAQzB,CAAC"}
@@ -1,33 +0,0 @@
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 { guaranteeNonNullable } from '@finos/legend-shared';
18
- import { useLocalObservable } from 'mobx-react-lite';
19
- import { createContext, useContext } from 'react';
20
- import { LegendDataCubeQueryBuilderStore } from '../../stores/query-builder/LegendDataCubeQueryBuilderStore.js';
21
- import { useLegendDataCubeBaseStore } from '../LegendDataCubeFrameworkProvider.js';
22
- const LegendDataCubeQueryBuilderStoreContext = createContext(undefined);
23
- const LegendDataCubeQueryBuilderStoreProvider = (props) => {
24
- const { children } = props;
25
- const baseStore = useLegendDataCubeBaseStore();
26
- const store = useLocalObservable(() => new LegendDataCubeQueryBuilderStore(baseStore));
27
- return (_jsx(LegendDataCubeQueryBuilderStoreContext.Provider, { value: store, children: children }));
28
- };
29
- export const useLegendDataCubeQueryBuilderStore = () => guaranteeNonNullable(useContext(LegendDataCubeQueryBuilderStoreContext), `Can't find query builder store in context`);
30
- export const withLegendDataCubeQueryBuilderStore = (WrappedComponent) => function WithLegendDataCubeQueryBuilderStore() {
31
- return (_jsx(LegendDataCubeQueryBuilderStoreProvider, { children: _jsx(WrappedComponent, {}) }));
32
- };
33
- //# sourceMappingURL=LegendDataCubeQueryBuilderStoreProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegendDataCubeQueryBuilderStoreProvider.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,+BAA+B,EAAE,MAAM,+DAA+D,CAAC;AAChH,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,MAAM,sCAAsC,GAAG,aAAa,CAE1D,SAAS,CAAC,CAAC;AACb,MAAM,uCAAuC,GAAG,CAAC,KAEhD,EAAE,EAAE;IACH,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,SAAS,GAAG,0BAA0B,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,kBAAkB,CAC9B,GAAG,EAAE,CAAC,IAAI,+BAA+B,CAAC,SAAS,CAAC,CACrD,CAAC;IACF,OAAO,CACL,KAAC,sCAAsC,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAC1D,QAAQ,GACuC,CACnD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,EAAE,CACrD,oBAAoB,CAClB,UAAU,CAAC,sCAAsC,CAAC,EAClD,2CAA2C,CAC5C,CAAC;AAEJ,MAAM,CAAC,MAAM,mCAAmC,GAAG,CACjD,gBAA0B,EAC1B,EAAE,CACF,SAAS,mCAAmC;IAC1C,OAAO,CACL,KAAC,uCAAuC,cACtC,KAAC,gBAAgB,KAAG,GACoB,CAC3C,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegendDataCubeQueryLoader.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryLoader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoOH,eAAO,MAAM,yBAAyB;;CAkEpC,CAAC"}
@@ -1,97 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } 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 { observer } from 'mobx-react-lite';
18
- import { cn, DataCubeIcon, useDropdownMenu } from '@finos/legend-art';
19
- import { debounce, formatDistanceToNow, quantifyList, } from '@finos/legend-shared';
20
- import { useRef, useMemo, useEffect } from 'react';
21
- import { FormButton, FormCheckbox, FormDropdownMenu, FormDropdownMenuItem, FormDropdownMenuTrigger, FormTextInput, } from '@finos/legend-data-cube';
22
- import { useLegendDataCubeQueryBuilderStore } from './LegendDataCubeQueryBuilderStoreProvider.js';
23
- import { DATA_CUBE_QUERY_LOADER_TYPEAHEAD_SEARCH_LIMIT, DataCubeQuerySortByType, } from '../../stores/query-builder/LegendDataCubeQueryLoaderState.js';
24
- const LegendDataCubeQuerySearcher = observer(() => {
25
- const store = useLegendDataCubeQueryBuilderStore();
26
- const state = store.loader;
27
- const searchInputRef = useRef(null);
28
- const searchResults = state.queries;
29
- useEffect(() => {
30
- searchInputRef.current?.focus();
31
- }, [state]);
32
- // search text
33
- const debouncedLoadQueries = useMemo(() => debounce((input) => {
34
- state
35
- .searchQueries(input)
36
- .catch((error) => store.alertService.alertUnhandledError(error));
37
- }, 500), [store, state]);
38
- const onSearchTextChange = (event) => {
39
- if (event.target.value !== state.searchText) {
40
- state.setSearchText(event.target.value);
41
- debouncedLoadQueries.cancel();
42
- debouncedLoadQueries(event.target.value);
43
- }
44
- };
45
- const clearSearches = () => {
46
- state.setSearchText('');
47
- debouncedLoadQueries.cancel();
48
- debouncedLoadQueries('');
49
- };
50
- // filter and sort
51
- const toggleShowCurrentUserQueriesOnly = () => {
52
- state.setShowCurrentUserQueriesOnly(!state.showCurrentUserQueriesOnly);
53
- debouncedLoadQueries.cancel();
54
- debouncedLoadQueries(state.searchText);
55
- };
56
- const [openSortDropdown, closeSortDropdown, sortDropdownProps, sortDropdownPropsOpen,] = useDropdownMenu();
57
- const applySort = (value) => {
58
- state.setSortBy(value);
59
- debouncedLoadQueries.cancel();
60
- debouncedLoadQueries(state.searchText);
61
- };
62
- useEffect(() => {
63
- state
64
- .searchQueries('')
65
- .catch((error) => store.alertService.alertUnhandledError(error));
66
- }, [store, state]);
67
- return (_jsxs("div", { className: "h-full", children: [_jsxs("div", { className: "p-1.5", children: [_jsxs("div", { className: "relative flex h-6 w-full items-center justify-between", children: [_jsx(FormTextInput, { ref: searchInputRef, className: cn('h-6 w-full pl-6 pr-1', {
68
- 'pr-6': Boolean(state.searchText),
69
- }), onChange: onSearchTextChange, value: state.searchText, placeholder: "Search for queries by name or ID" }), _jsx("div", { className: "absolute flex aspect-square h-full items-center justify-center", children: _jsx(DataCubeIcon.Search, { className: "text-lg text-neutral-600" }) }), Boolean(state.searchText) && (_jsx(_Fragment, { children: _jsx("button", { className: "absolute right-0 flex aspect-square h-full items-center justify-center", tabIndex: -1, onClick: clearSearches, title: "Clear", children: _jsx(DataCubeIcon.X, {}) }) }))] }), _jsxs("div", { className: "mt-1 flex h-6 w-full items-center", children: [_jsxs("div", { className: "flex w-[calc(100%_-_128px)] items-center", children: [_jsx("div", { className: "w-10 text-sm", children: "Filters:" }), _jsx("div", { className: "flex h-6 w-[calc(100%_-_40px)] overflow-x-auto", children: _jsx(FormCheckbox, { label: "Mine Only", checked: state.showCurrentUserQueriesOnly, onChange: toggleShowCurrentUserQueriesOnly }) })] }), _jsxs("div", { children: [_jsxs(FormDropdownMenuTrigger, { className: "w-32", onClick: openSortDropdown, open: sortDropdownPropsOpen, disabled: !state.canPerformAdvancedSearch(state.searchText), children: ["Sort by: ", state.sortBy] }), _jsx(FormDropdownMenu, { className: "w-32", ...sortDropdownProps, children: Object.values(DataCubeQuerySortByType).map((option) => (_jsx(FormDropdownMenuItem, { onClick: () => {
70
- applySort(option);
71
- closeSortDropdown();
72
- }, autoFocus: option === state.sortBy, children: option }, option))) })] })] })] }), _jsx("div", { className: "mx-1.5 mb-1 h-[1px] bg-neutral-200" }), _jsx("div", { className: "h-[calc(100%_-_71px)]", children: _jsxs("div", { className: "h-full overflow-y-auto", children: [state.searchState.hasCompleted && (_jsxs(_Fragment, { children: [_jsx("div", { className: "mb-1 flex h-5 w-full items-center px-1.5 text-sm text-neutral-600", children: state.showingDefaultQueries ? (`Refine your search to get better matches`) : searchResults.length >=
73
- DATA_CUBE_QUERY_LOADER_TYPEAHEAD_SEARCH_LIMIT ? (_jsxs(_Fragment, { children: [`Found ${DATA_CUBE_QUERY_LOADER_TYPEAHEAD_SEARCH_LIMIT}+ matches`, ' ', _jsx(DataCubeIcon.AlertInfo, { className: "ml-1 text-lg", title: "Some queries are not listed, refine your search to get better matches" })] })) : (`Found ${quantifyList(searchResults, 'match', 'matches')}`) }), searchResults
74
- .slice(0, DATA_CUBE_QUERY_LOADER_TYPEAHEAD_SEARCH_LIMIT)
75
- .map((query, idx) => (_jsxs("div", { className: "mx-1.5 mb-0.5 flex h-[42px] w-[calc(100%_-_12px)] cursor-pointer border border-neutral-200 bg-neutral-100 hover:bg-neutral-200", title: "Click to choose query", onClick: () => state.setSelectedQuery(query), children: [_jsxs("div", { className: "w-[calc(100%_-_16px)]", children: [_jsx("div", { className: "h-6 w-4/5 overflow-hidden text-ellipsis whitespace-nowrap px-1.5 leading-6", children: query.name }), _jsxs("div", { className: "flex h-[18px] items-start justify-between px-1.5", children: [_jsxs("div", { className: "flex", children: [_jsx(DataCubeIcon.ClockEdit, { className: "text-sm text-neutral-500" }), _jsx("div", { className: "ml-1 text-sm text-neutral-500", children: query.lastUpdatedAt
76
- ? formatDistanceToNow(new Date(query.lastUpdatedAt), {
77
- includeSeconds: true,
78
- addSuffix: true,
79
- })
80
- : '(unknown)' })] }), _jsxs("div", { className: "flex", children: [_jsx(DataCubeIcon.User, { className: "text-sm text-neutral-500" }), _jsx("div", { className: "ml-1 text-sm text-neutral-500", children: query.owner })] })] })] }), _jsx("div", { className: "flex h-full w-4 items-center justify-center", children: _jsx(DataCubeIcon.ChevronRight, { className: "text-neutral-600" }) })] }, query.id)))] })), !state.searchState.hasCompleted && (_jsxs("div", { className: "mb-1 flex h-5 w-full items-center px-1.5 text-sm text-neutral-600", children: [_jsx(DataCubeIcon.Loader, { className: "animate-spin stroke-2 text-lg" }), _jsx("span", { className: "ml-1", children: "Searching..." })] }))] }) })] }));
81
- });
82
- export const LegendDataCubeQueryLoader = observer(() => {
83
- const store = useLegendDataCubeQueryBuilderStore();
84
- const state = store.loader;
85
- const query = state.selectedQuery;
86
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: "h-[calc(100%_-_40px)] w-full px-2 pt-2", children: _jsx("div", { className: "h-full w-full overflow-auto border border-neutral-300 bg-white", children: !query ? (_jsx(LegendDataCubeQuerySearcher, {})) : (_jsxs("div", { className: "h-full w-full p-1.5", children: [_jsx("div", { className: "mb-0.5 flex h-[42px] w-full border border-neutral-200 bg-neutral-100", children: _jsxs("div", { className: "w-full", children: [_jsx("div", { className: "h-6 w-4/5 overflow-hidden text-ellipsis whitespace-nowrap px-1.5 leading-6", children: query.name }), _jsxs("div", { className: "flex h-[18px] items-start justify-between px-1.5", children: [_jsxs("div", { className: "flex", children: [_jsx(DataCubeIcon.ClockEdit, { className: "text-sm text-neutral-500" }), _jsx("div", { className: "ml-1 text-sm text-neutral-500", children: query.lastUpdatedAt
87
- ? formatDistanceToNow(new Date(query.lastUpdatedAt), {
88
- includeSeconds: true,
89
- addSuffix: true,
90
- })
91
- : '(unknown)' })] }), _jsxs("div", { className: "flex", children: [_jsx(DataCubeIcon.User, { className: "text-sm text-neutral-500" }), _jsx("div", { className: "ml-1 text-sm text-neutral-500", children: query.owner })] })] })] }) }), _jsx(FormButton, { className: "mt-1.5", onClick: () => state.setSelectedQuery(undefined), children: "Select Another Query" })] })) }) }), _jsxs("div", { className: "flex h-10 items-center justify-end px-2", children: [_jsx(FormButton, { onClick: () => state.display.close(), children: "Cancel" }), _jsx(FormButton, { className: "ml-2", disabled: !query || state.finalizeState.isInProgress, onClick: () => {
92
- state
93
- .finalize()
94
- .catch((error) => store.alertService.alertUnhandledError(error));
95
- }, children: "OK" })] })] }));
96
- });
97
- //# sourceMappingURL=LegendDataCubeQueryLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegendDataCubeQueryLoader.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryLoader.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegendDataCubeQuerySaver.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQuerySaver.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,eAAO,MAAM,wBAAwB;;CAyFnC,CAAC"}