@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
@@ -1,260 +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
-
17
- import {
18
- APPLICATION_EVENT,
19
- DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH,
20
- type GenericLegendApplicationStore,
21
- } from '@finos/legend-application';
22
- import {
23
- type LightPersistentDataCubeQuery,
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 { LegendDataCubeQueryBuilderStore } from './LegendDataCubeQueryBuilderStore.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 { LegendDataCubeQueryLoader } from '../../components/query-builder/LegendDataCubeQueryLoader.js';
38
- import { generateQueryBuilderRoute } from '../../__lib__/LegendDataCubeNavigation.js';
39
-
40
- export const DATA_CUBE_QUERY_LOADER_TYPEAHEAD_SEARCH_LIMIT = 50;
41
- export const DATA_CUBE_QUERY_LOADER_DEFAULT_QUERY_SEARCH_LIMIT = 10;
42
-
43
- export enum DataCubeQuerySortByType {
44
- LAST_CREATED = 'Last Created',
45
- LAST_VIEWED = 'Last Viewed',
46
- LAST_UPDATED = 'Last Updated',
47
- }
48
-
49
- export class LegendDataCubeQueryLoaderState {
50
- private readonly _application: GenericLegendApplicationStore;
51
- private readonly _store: LegendDataCubeQueryBuilderStore;
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
- queries: LightPersistentDataCubeQuery[] = [];
60
- selectedQuery?: LightPersistentDataCubeQuery | undefined;
61
-
62
- searchText = '';
63
- showCurrentUserQueriesOnly = false;
64
- showingDefaultQueries = true;
65
- sortBy = DataCubeQuerySortByType.LAST_VIEWED;
66
-
67
- constructor(store: LegendDataCubeQueryBuilderStore) {
68
- makeObservable(this, {
69
- showingDefaultQueries: observable,
70
- setShowingDefaultQueries: action,
71
-
72
- searchText: observable,
73
- setSearchText: action,
74
-
75
- queries: observable,
76
- setQueries: action,
77
-
78
- showCurrentUserQueriesOnly: observable,
79
- setShowCurrentUserQueriesOnly: action,
80
-
81
- sortBy: observable,
82
- setSortBy: action,
83
-
84
- selectedQuery: observable,
85
- setSelectedQuery: 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 Query',
95
- () => <LegendDataCubeQueryLoader />,
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
- setQueries(val: LightPersistentDataCubeQuery[]) {
109
- this.queries = val;
110
- }
111
-
112
- setShowingDefaultQueries(val: boolean) {
113
- this.showingDefaultQueries = val;
114
- }
115
-
116
- setShowCurrentUserQueriesOnly(val: boolean): void {
117
- this.showCurrentUserQueriesOnly = val;
118
- }
119
-
120
- setSortBy(val: DataCubeQuerySortByType) {
121
- this.sortBy = val;
122
- }
123
-
124
- private getQuerySearchSortBy(sortByValue: string) {
125
- switch (sortByValue) {
126
- case DataCubeQuerySortByType.LAST_CREATED:
127
- return QuerySearchSortBy.SORT_BY_CREATE;
128
- case DataCubeQuerySortByType.LAST_UPDATED:
129
- return QuerySearchSortBy.SORT_BY_UPDATE;
130
- case DataCubeQuerySortByType.LAST_VIEWED:
131
- return QuerySearchSortBy.SORT_BY_VIEW;
132
- default:
133
- return undefined;
134
- }
135
- }
136
-
137
- setSelectedQuery(query: LightPersistentDataCubeQuery | undefined) {
138
- this.selectedQuery = query;
139
- }
140
-
141
- canPerformAdvancedSearch(searchText: string) {
142
- return !(
143
- searchText.length < DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH &&
144
- !this.showCurrentUserQueriesOnly
145
- );
146
- }
147
-
148
- async searchQueries(searchText: string) {
149
- // for the initial search, i.e. no search config is specified, fetch the default queries if possible
150
- if (!this.canPerformAdvancedSearch(searchText)) {
151
- if (!searchText) {
152
- this.setShowingDefaultQueries(true);
153
- this.searchState.inProgress();
154
- this.setQueries([]);
155
- let defaultQueries: LightPersistentDataCubeQuery[] = [];
156
- try {
157
- // first, try to fetch recently viewed queries
158
- try {
159
- const recentlyViewedQueryIDs =
160
- this._store.getRecentlyViewedQueries();
161
- if (recentlyViewedQueryIDs.length) {
162
- defaultQueries = await this._graphManager.getDataCubeQueries(
163
- recentlyViewedQueryIDs,
164
- );
165
- }
166
- } catch (error) {
167
- assertErrorThrown(error);
168
- // if there's an error fetching recently viewed queries, most likely because
169
- // some queries have been removed, just remove them all from the cached user data
170
- this._application.userDataService.persistValue(
171
- LegendDataCubeUserDataKey.RECENTLY_VIEWED_QUERIES,
172
- undefined,
173
- );
174
- }
175
- // if there's no recently viewed queries, just fetch queries of the current user
176
- if (!defaultQueries.length) {
177
- const searchSpecification = new QuerySearchSpecification();
178
- searchSpecification.limit =
179
- DATA_CUBE_QUERY_LOADER_DEFAULT_QUERY_SEARCH_LIMIT;
180
- searchSpecification.showCurrentUserQueriesOnly = true;
181
- defaultQueries =
182
- await this._graphManager.searchDataCubeQueries(
183
- searchSpecification,
184
- );
185
- }
186
- this.setQueries(defaultQueries);
187
- this.searchState.pass();
188
- } catch (error) {
189
- assertErrorThrown(error);
190
- this._application.logService.error(
191
- LogEvent.create(APPLICATION_EVENT.GENERIC_FAILURE),
192
- error,
193
- );
194
- this.searchState.fail();
195
- }
196
- }
197
- return;
198
- }
199
-
200
- this.setShowingDefaultQueries(false);
201
- this.searchState.inProgress();
202
-
203
- try {
204
- const searchSpecification =
205
- QuerySearchSpecification.createDefault(searchText);
206
- searchSpecification.limit =
207
- DATA_CUBE_QUERY_LOADER_TYPEAHEAD_SEARCH_LIMIT + 1;
208
- searchSpecification.showCurrentUserQueriesOnly =
209
- this.showCurrentUserQueriesOnly;
210
- const querySearchSortBy = this.getQuerySearchSortBy(this.sortBy);
211
- if (querySearchSortBy) {
212
- searchSpecification.sortByOption = querySearchSortBy;
213
- }
214
- this.setQueries(
215
- await this._graphManager.searchDataCubeQueries(searchSpecification),
216
- );
217
-
218
- // if sorting is not configured, sort by name
219
- if (!querySearchSortBy) {
220
- this.setQueries(
221
- this.queries.toSorted((a, b) => a.name.localeCompare(b.name)),
222
- );
223
- }
224
-
225
- this.searchState.pass();
226
- } catch (error) {
227
- assertErrorThrown(error);
228
- this._alertService.alertError(error, {
229
- message: `Query Search Failure: ${error.message}`,
230
- });
231
- this.searchState.fail();
232
- }
233
- }
234
-
235
- async finalize() {
236
- if (!this.selectedQuery) {
237
- return;
238
- }
239
-
240
- this.finalizeState.inProgress();
241
- try {
242
- // just simply change the route here and the new query ID will get picked up
243
- // and handled by the query builder to load the new query.
244
- this._application.navigationService.navigator.updateCurrentLocation(
245
- generateQueryBuilderRoute(this.selectedQuery.id),
246
- );
247
-
248
- // reset
249
- this.setSelectedQuery(undefined);
250
- this.display.close();
251
- this.finalizeState.pass();
252
- } catch (error) {
253
- assertErrorThrown(error);
254
- this._alertService.alertError(error, {
255
- message: `Query Load Failure: ${error.message}`,
256
- });
257
- this.finalizeState.fail();
258
- }
259
- }
260
- }