@finos/legend-application-data-cube 0.1.20 → 0.1.21
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.
- package/lib/components/query-builder/LegendDataCubeQueryBuilder.d.ts.map +1 -1
- package/lib/components/query-builder/LegendDataCubeQueryBuilder.js +10 -2
- package/lib/components/query-builder/LegendDataCubeQueryBuilder.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/query-builder/LegendDataCubeNewQueryState.d.ts +1 -2
- package/lib/stores/query-builder/LegendDataCubeNewQueryState.d.ts.map +1 -1
- package/lib/stores/query-builder/LegendDataCubeNewQueryState.js +3 -22
- package/lib/stores/query-builder/LegendDataCubeNewQueryState.js.map +1 -1
- package/package.json +1 -1
- package/src/components/query-builder/LegendDataCubeQueryBuilder.tsx +11 -3
- package/src/stores/query-builder/LegendDataCubeNewQueryState.tsx +3 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeQueryBuilder.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkDH,eAAO,MAAM,0BAA0B,+
|
|
1
|
+
{"version":3,"file":"LegendDataCubeQueryBuilder.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkDH,eAAO,MAAM,0BAA0B,+CAmGtC,CAAC"}
|
|
@@ -22,6 +22,7 @@ import { useParams } from '@finos/legend-application/browser';
|
|
|
22
22
|
import { LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN, } from '../../__lib__/LegendDataCubeNavigation.js';
|
|
23
23
|
import { useEffect } from 'react';
|
|
24
24
|
import { LegendDataCubeSettingStorageKey } from '../../__lib__/LegendDataCubeSetting.js';
|
|
25
|
+
import { assertErrorThrown } from '@finos/legend-shared';
|
|
25
26
|
const LegendDataCubeQueryBuilderHeader = observer(() => {
|
|
26
27
|
const store = useLegendDataCubeQueryBuilderStore();
|
|
27
28
|
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" })] }));
|
|
@@ -35,8 +36,15 @@ export const LegendDataCubeQueryBuilder = withLegendDataCubeQueryBuilderStore(ob
|
|
|
35
36
|
const sourceData = application.navigationService.navigator.getCurrentLocationParameterValue(LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.SOURCE_DATA);
|
|
36
37
|
useEffect(() => {
|
|
37
38
|
if (sourceData) {
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
try {
|
|
40
|
+
const sourceDataJson = JSON.parse(decodeURIComponent(atob(sourceData)));
|
|
41
|
+
store.newQueryState
|
|
42
|
+
.finalize(sourceDataJson)
|
|
43
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
assertErrorThrown(error);
|
|
47
|
+
}
|
|
40
48
|
}
|
|
41
49
|
else if (queryId !== store.builder?.persistentQuery?.id) {
|
|
42
50
|
store
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeQueryBuilder.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,UAAU,EAEV,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnC,OAAO,EACL,kCAAkC,EAClC,mCAAmC,GACpC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EACL,oCAAoC,GAErC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeQueryBuilder.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.css
CHANGED
package/lib/package.json
CHANGED
|
@@ -26,9 +26,8 @@ export declare class LegendDataCubeNewQueryState {
|
|
|
26
26
|
readonly display: DisplayState;
|
|
27
27
|
sourceBuilder: LegendDataCubeSourceBuilderState;
|
|
28
28
|
constructor(store: LegendDataCubeQueryBuilderStore);
|
|
29
|
-
initWithSourceData(source: PlainObject): void;
|
|
30
29
|
changeSourceBuilder(type: LegendDataCubeSourceBuilderType, skipCheck?: boolean | undefined): void;
|
|
31
30
|
private createSourceBuilder;
|
|
32
|
-
finalize(): Promise<void>;
|
|
31
|
+
finalize(sourceData?: PlainObject): Promise<void>;
|
|
33
32
|
}
|
|
34
33
|
//# sourceMappingURL=LegendDataCubeNewQueryState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeNewQueryState.d.ts","sourceRoot":"","sources":["../../../src/stores/query-builder/LegendDataCubeNewQueryState.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,WAAW,EAIX,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,+BAA+B,EAC/B,KAAK,gCAAgC,EACtC,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeNewQueryState.d.ts","sourceRoot":"","sources":["../../../src/stores/query-builder/LegendDataCubeNewQueryState.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,WAAW,EAIX,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,+BAA+B,EAC/B,KAAK,gCAAgC,EACtC,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,sCAAsC,CAAC;AAG9C,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IAErD,QAAQ,CAAC,aAAa,cAAwB;IAC9C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAE/B,aAAa,EAAE,gCAAgC,CAAC;gBAEpC,KAAK,EAAE,+BAA+B;IA0BlD,mBAAmB,CACjB,IAAI,EAAE,+BAA+B,EACrC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,GAC9B,IAAI;IAMP,OAAO,CAAC,mBAAmB;IAwBrB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW;CAoCxC"}
|
|
@@ -23,7 +23,6 @@ import { LegendDataCubeNewQueryBuilder } from '../../components/query-builder/Le
|
|
|
23
23
|
import { AdhocQueryDataCubeSourceBuilderState } from './source-builder/AdhocQueryDataCubeSourceBuilderState.js';
|
|
24
24
|
import { LegendDataCubeQueryBuilderState, } from './LegendDataCubeQueryBuilderStore.js';
|
|
25
25
|
import { generateQueryBuilderRoute } from '../../__lib__/LegendDataCubeNavigation.js';
|
|
26
|
-
import { LEGEND_QUERY_DATA_CUBE_SOURCE_TYPE, RawLegendQueryDataCubeSource, } from '../model/LegendQueryDataCubeSource.js';
|
|
27
26
|
export class LegendDataCubeNewQueryState {
|
|
28
27
|
_application;
|
|
29
28
|
_store;
|
|
@@ -48,24 +47,6 @@ export class LegendDataCubeNewQueryState {
|
|
|
48
47
|
});
|
|
49
48
|
this.sourceBuilder = this.createSourceBuilder(LegendDataCubeSourceBuilderType.LEGEND_QUERY);
|
|
50
49
|
}
|
|
51
|
-
initWithSourceData(source) {
|
|
52
|
-
if (source._type === LEGEND_QUERY_DATA_CUBE_SOURCE_TYPE) {
|
|
53
|
-
this.changeSourceBuilder(LegendDataCubeSourceBuilderType.LEGEND_QUERY);
|
|
54
|
-
const serializedSourceData = RawLegendQueryDataCubeSource.serialization.fromJson(source);
|
|
55
|
-
this._store.graphManager
|
|
56
|
-
.getLightQuery(serializedSourceData.queryId)
|
|
57
|
-
.then(async (currentQuery) => {
|
|
58
|
-
if (this.sourceBuilder instanceof LegendQueryDataCubeSourceBuilderState) {
|
|
59
|
-
this.sourceBuilder.query = currentQuery;
|
|
60
|
-
await this.finalize();
|
|
61
|
-
}
|
|
62
|
-
})
|
|
63
|
-
.catch(this._application.alertUnhandledError);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
this._application.notificationService.notifyError(`Can't generate query: source of type ${source._type} is not supported`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
50
|
changeSourceBuilder(type, skipCheck) {
|
|
70
51
|
if (this.sourceBuilder.label !== type || skipCheck) {
|
|
71
52
|
this.sourceBuilder = this.createSourceBuilder(type);
|
|
@@ -81,13 +62,13 @@ export class LegendDataCubeNewQueryState {
|
|
|
81
62
|
throw new UnsupportedOperationError(`Can't create source builder for unsupported type '${type}'`);
|
|
82
63
|
}
|
|
83
64
|
}
|
|
84
|
-
async finalize() {
|
|
85
|
-
if (!this.sourceBuilder.isValid) {
|
|
65
|
+
async finalize(sourceData) {
|
|
66
|
+
if (!this.sourceBuilder.isValid && !sourceData) {
|
|
86
67
|
throw new IllegalStateError(`Can't generate query: source is not valid`);
|
|
87
68
|
}
|
|
88
69
|
this.finalizeState.inProgress();
|
|
89
70
|
try {
|
|
90
|
-
const source = await this.sourceBuilder.build();
|
|
71
|
+
const source = sourceData ?? (await this.sourceBuilder.build());
|
|
91
72
|
const query = new DataCubeQuery();
|
|
92
73
|
const processedSource = await this._engine.processQuerySource(source);
|
|
93
74
|
query.source = source;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeNewQueryState.js","sourceRoot":"","sources":["../../../src/stores/query-builder/LegendDataCubeNewQueryState.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,GAE1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qCAAqC,EAAE,MAAM,2DAA2D,CAAC;AAElH,OAAO,EACL,+BAA+B,GAEhC,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,eAAe,EAEf,aAAa,EACb,gCAAgC,GAEjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iEAAiE,CAAC;AAChH,OAAO,EAAE,oCAAoC,EAAE,MAAM,0DAA0D,CAAC;AAChH,OAAO,EACL,+BAA+B,GAEhC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeNewQueryState.js","sourceRoot":"","sources":["../../../src/stores/query-builder/LegendDataCubeNewQueryState.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
} from '../../__lib__/LegendDataCubeNavigation.js';
|
|
34
34
|
import { useEffect } from 'react';
|
|
35
35
|
import { LegendDataCubeSettingStorageKey } from '../../__lib__/LegendDataCubeSetting.js';
|
|
36
|
-
import type
|
|
36
|
+
import { assertErrorThrown, type PlainObject } from '@finos/legend-shared';
|
|
37
37
|
|
|
38
38
|
const LegendDataCubeQueryBuilderHeader = observer(() => {
|
|
39
39
|
const store = useLegendDataCubeQueryBuilderStore();
|
|
@@ -76,8 +76,16 @@ export const LegendDataCubeQueryBuilder = withLegendDataCubeQueryBuilderStore(
|
|
|
76
76
|
|
|
77
77
|
useEffect(() => {
|
|
78
78
|
if (sourceData) {
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
try {
|
|
80
|
+
const sourceDataJson = JSON.parse(
|
|
81
|
+
decodeURIComponent(atob(sourceData)),
|
|
82
|
+
) as PlainObject;
|
|
83
|
+
store.newQueryState
|
|
84
|
+
.finalize(sourceDataJson)
|
|
85
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
86
|
+
} catch (error) {
|
|
87
|
+
assertErrorThrown(error);
|
|
88
|
+
}
|
|
81
89
|
} else if (queryId !== store.builder?.persistentQuery?.id) {
|
|
82
90
|
store
|
|
83
91
|
.loadQuery(queryId)
|
|
@@ -43,10 +43,6 @@ import {
|
|
|
43
43
|
type LegendDataCubeQueryBuilderStore,
|
|
44
44
|
} from './LegendDataCubeQueryBuilderStore.js';
|
|
45
45
|
import { generateQueryBuilderRoute } from '../../__lib__/LegendDataCubeNavigation.js';
|
|
46
|
-
import {
|
|
47
|
-
LEGEND_QUERY_DATA_CUBE_SOURCE_TYPE,
|
|
48
|
-
RawLegendQueryDataCubeSource,
|
|
49
|
-
} from '../model/LegendQueryDataCubeSource.js';
|
|
50
46
|
|
|
51
47
|
export class LegendDataCubeNewQueryState {
|
|
52
48
|
private readonly _application: LegendDataCubeApplicationStore;
|
|
@@ -85,30 +81,6 @@ export class LegendDataCubeNewQueryState {
|
|
|
85
81
|
);
|
|
86
82
|
}
|
|
87
83
|
|
|
88
|
-
initWithSourceData(source: PlainObject) {
|
|
89
|
-
if (source._type === LEGEND_QUERY_DATA_CUBE_SOURCE_TYPE) {
|
|
90
|
-
this.changeSourceBuilder(LegendDataCubeSourceBuilderType.LEGEND_QUERY);
|
|
91
|
-
const serializedSourceData =
|
|
92
|
-
RawLegendQueryDataCubeSource.serialization.fromJson(source);
|
|
93
|
-
|
|
94
|
-
this._store.graphManager
|
|
95
|
-
.getLightQuery(serializedSourceData.queryId)
|
|
96
|
-
.then(async (currentQuery) => {
|
|
97
|
-
if (
|
|
98
|
-
this.sourceBuilder instanceof LegendQueryDataCubeSourceBuilderState
|
|
99
|
-
) {
|
|
100
|
-
this.sourceBuilder.query = currentQuery;
|
|
101
|
-
await this.finalize();
|
|
102
|
-
}
|
|
103
|
-
})
|
|
104
|
-
.catch(this._application.alertUnhandledError);
|
|
105
|
-
} else {
|
|
106
|
-
this._application.notificationService.notifyError(
|
|
107
|
-
`Can't generate query: source of type ${source._type} is not supported`,
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
84
|
changeSourceBuilder(
|
|
113
85
|
type: LegendDataCubeSourceBuilderType,
|
|
114
86
|
skipCheck?: boolean | undefined,
|
|
@@ -142,14 +114,14 @@ export class LegendDataCubeNewQueryState {
|
|
|
142
114
|
}
|
|
143
115
|
}
|
|
144
116
|
|
|
145
|
-
async finalize() {
|
|
146
|
-
if (!this.sourceBuilder.isValid) {
|
|
117
|
+
async finalize(sourceData?: PlainObject) {
|
|
118
|
+
if (!this.sourceBuilder.isValid && !sourceData) {
|
|
147
119
|
throw new IllegalStateError(`Can't generate query: source is not valid`);
|
|
148
120
|
}
|
|
149
121
|
|
|
150
122
|
this.finalizeState.inProgress();
|
|
151
123
|
try {
|
|
152
|
-
const source = await this.sourceBuilder.build();
|
|
124
|
+
const source = sourceData ?? (await this.sourceBuilder.build());
|
|
153
125
|
const query = new DataCubeQuery();
|
|
154
126
|
const processedSource = await this._engine.processQuerySource(source);
|
|
155
127
|
query.source = source;
|