@finos/legend-application-data-cube 0.3.4 → 0.3.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.
- package/lib/components/builder/LegendDataCubeCreator.d.ts.map +1 -1
- package/lib/components/builder/LegendDataCubeCreator.js +2 -5
- package/lib/components/builder/LegendDataCubeCreator.js.map +1 -1
- package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.d.ts +8 -0
- package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.d.ts.map +1 -1
- package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.js +175 -2
- package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.js.map +1 -1
- package/lib/components/builder/source/LegendDataCubeSourceLoader.d.ts.map +1 -1
- package/lib/components/builder/source/LegendDataCubeSourceLoader.js +5 -2
- package/lib/components/builder/source/LegendDataCubeSourceLoader.js.map +1 -1
- package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.d.ts.map +1 -1
- package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.js +10 -2
- package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.js.map +1 -1
- package/lib/components/builder/source/LocalFileDataCubeSourceLoader.d.ts.map +1 -1
- package/lib/components/builder/source/LocalFileDataCubeSourceLoader.js +10 -2
- package/lib/components/builder/source/LocalFileDataCubeSourceLoader.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts +9 -4
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts.map +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.js +34 -10
- package/lib/stores/LegendDataCubeDataCubeEngine.js.map +1 -1
- package/lib/stores/builder/LegendDataCubeBuilderStore.d.ts.map +1 -1
- package/lib/stores/builder/LegendDataCubeBuilderStore.js +16 -0
- package/lib/stores/builder/LegendDataCubeBuilderStore.js.map +1 -1
- package/lib/stores/builder/LegendDataCubeCreatorState.d.ts.map +1 -1
- package/lib/stores/builder/LegendDataCubeCreatorState.js +3 -3
- package/lib/stores/builder/LegendDataCubeCreatorState.js.map +1 -1
- package/lib/stores/builder/source/AdHocCodeEditorState.d.ts +40 -0
- package/lib/stores/builder/source/AdHocCodeEditorState.d.ts.map +1 -0
- package/lib/stores/builder/source/AdHocCodeEditorState.js +147 -0
- package/lib/stores/builder/source/AdHocCodeEditorState.js.map +1 -0
- package/lib/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.d.ts +38 -1
- package/lib/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.js +144 -4
- package/lib/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.d.ts +3 -2
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.js +3 -1
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/builder/source/LegendDataCubeSourceLoaderState.d.ts +0 -1
- package/lib/stores/builder/source/LegendDataCubeSourceLoaderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LegendDataCubeSourceLoaderState.js.map +1 -1
- package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.d.ts +0 -1
- package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.js +1 -3
- package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.d.ts +4 -2
- package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.js +38 -29
- package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/builder/source/LocalFileDataCubeSourceLoaderState.d.ts +2 -2
- package/lib/stores/builder/source/LocalFileDataCubeSourceLoaderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LocalFileDataCubeSourceLoaderState.js +36 -35
- package/lib/stores/builder/source/LocalFileDataCubeSourceLoaderState.js.map +1 -1
- package/lib/stores/builder/source/UserDefinedFunctionDataCubeSourceBuilderState.d.ts +2 -2
- package/lib/stores/builder/source/UserDefinedFunctionDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/UserDefinedFunctionDataCubeSourceBuilderState.js +2 -2
- package/lib/stores/builder/source/UserDefinedFunctionDataCubeSourceBuilderState.js.map +1 -1
- package/package.json +10 -10
- package/src/components/builder/LegendDataCubeCreator.tsx +2 -4
- package/src/components/builder/source/AdhocQueryDataCubeSourceBuilder.tsx +348 -4
- package/src/components/builder/source/LegendDataCubeSourceLoader.tsx +21 -5
- package/src/components/builder/source/LocalFileDataCubeSourceBuilder.tsx +23 -1
- package/src/components/builder/source/LocalFileDataCubeSourceLoader.tsx +23 -1
- package/src/stores/LegendDataCubeDataCubeEngine.ts +38 -12
- package/src/stores/builder/LegendDataCubeBuilderStore.tsx +15 -0
- package/src/stores/builder/LegendDataCubeCreatorState.tsx +4 -0
- package/src/stores/builder/source/AdHocCodeEditorState.tsx +189 -0
- package/src/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.ts +221 -4
- package/src/stores/builder/source/LegendDataCubeSourceBuilderState.ts +7 -1
- package/src/stores/builder/source/LegendDataCubeSourceLoaderState.tsx +0 -2
- package/src/stores/builder/source/LegendQueryDataCubeSourceBuilderState.ts +1 -3
- package/src/stores/builder/source/LocalFileDataCubeSourceBuilderState.ts +45 -35
- package/src/stores/builder/source/LocalFileDataCubeSourceLoaderState.ts +46 -47
- package/src/stores/builder/source/UserDefinedFunctionDataCubeSourceBuilderState.ts +3 -1
- package/tsconfig.json +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeCreator.d.ts","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeCreator.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH,eAAO,MAAM,qBAAqB;;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeCreator.d.ts","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeCreator.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH,eAAO,MAAM,qBAAqB;;CAoGhC,CAAC"}
|
|
@@ -32,10 +32,7 @@ export const LegendDataCubeCreator = observer(() => {
|
|
|
32
32
|
const state = store.creator;
|
|
33
33
|
const sourceBuilder = state.sourceBuilder;
|
|
34
34
|
const selectedSourceType = sourceBuilder.label;
|
|
35
|
-
const WIPSourceTypes = [
|
|
36
|
-
LegendDataCubeSourceBuilderType.ADHOC_QUERY,
|
|
37
|
-
LegendDataCubeSourceBuilderType.LOCAL_FILE,
|
|
38
|
-
];
|
|
35
|
+
const WIPSourceTypes = [LegendDataCubeSourceBuilderType.LOCAL_FILE];
|
|
39
36
|
const [openSourceTypeDropdown, closeSourceTypeDropdown, sourceTypeDropdownProps, sourceTypeDropdownPropsOpen,] = useDropdownMenu();
|
|
40
37
|
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 border border-neutral-300 bg-white", children: _jsxs("div", { className: "h-full w-full select-none", children: [_jsxs("div", { className: "flex h-10 w-full items-center p-2", children: [_jsx("div", { className: "flex h-full w-32 flex-shrink-0 items-center text-sm", children: "Choose Source Type:" }), _jsx(FormDropdownMenuTrigger, { className: "w-80", onClick: openSourceTypeDropdown, open: sourceTypeDropdownPropsOpen, children: _jsxs("div", { className: "flex items-center", children: [selectedSourceType, WIPSourceTypes.includes(selectedSourceType) && (_jsx(FormBadge_WIP, {}))] }) }), _jsx(FormDropdownMenu, { className: "w-80", ...sourceTypeDropdownProps, children: [
|
|
41
38
|
LegendDataCubeSourceBuilderType.LEGEND_QUERY,
|
|
@@ -47,7 +44,7 @@ export const LegendDataCubeCreator = observer(() => {
|
|
|
47
44
|
closeSourceTypeDropdown();
|
|
48
45
|
}, autoFocus: type === selectedSourceType, children: [type, WIPSourceTypes.includes(type) && _jsx(FormBadge_WIP, {})] }, type))) })] }), _jsx("div", { className: "ml-2 h-[1px] w-[calc(100%_-_16px)] bg-neutral-200" }), _jsxs("div", { className: "h-[calc(100%_-_41px)] w-full overflow-auto", children: [sourceBuilder instanceof
|
|
49
46
|
LegendQueryDataCubeSourceBuilderState && (_jsx(LegendQueryDataCubeSourceBuilder, { sourceBuilder: sourceBuilder })), sourceBuilder instanceof
|
|
50
|
-
AdhocQueryDataCubeSourceBuilderState && (_jsx(AdhocQueryDataCubeSourceBuilder, { sourceBuilder: sourceBuilder })), sourceBuilder instanceof LocalFileDataCubeSourceBuilderState && (_jsx(LocalFileDataCubeSourceBuilder, { sourceBuilder: sourceBuilder })), sourceBuilder instanceof
|
|
47
|
+
AdhocQueryDataCubeSourceBuilderState && (_jsx(AdhocQueryDataCubeSourceBuilder, { sourceBuilder: sourceBuilder, store: store })), sourceBuilder instanceof LocalFileDataCubeSourceBuilderState && (_jsx(LocalFileDataCubeSourceBuilder, { sourceBuilder: sourceBuilder })), sourceBuilder instanceof
|
|
51
48
|
UserDefinedFunctionDataCubeSourceBuilderState && (_jsx(UserDefinedFunctionDataCubeSourceBuilder, { sourceBuilder: sourceBuilder, store: store }))] })] }) }) }), _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: !sourceBuilder.isValid || state.finalizeState.isInProgress, onClick: () => {
|
|
52
49
|
state
|
|
53
50
|
.finalize()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeCreator.js","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeCreator.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qCAAqC,EAAE,MAAM,sEAAsE,CAAC;AAC7H,OAAO,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,oCAAoC,EAAE,MAAM,qEAAqE,CAAC;AAC3H,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,mCAAmC,EAAE,MAAM,oEAAoE,CAAC;AACzH,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,EAAE,6CAA6C,EAAE,MAAM,8EAA8E,CAAC;AAC7I,OAAO,EAAE,wCAAwC,EAAE,MAAM,sDAAsD,CAAC;AAEhH,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,GAAG,EAAE;IACjD,MAAM,KAAK,GAAG,6BAA6B,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC;IAC/C,MAAM,cAAc,GAAG
|
|
1
|
+
{"version":3,"file":"LegendDataCubeCreator.js","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeCreator.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,17 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { type LegendDataCubeBuilderStore } from '../../../stores/builder/LegendDataCubeBuilderStore.js';
|
|
17
|
+
import { V1_Mapping } from '@finos/legend-graph';
|
|
16
18
|
import type { AdhocQueryDataCubeSourceBuilderState } from '../../../stores/builder/source/AdhocQueryDataCubeSourceBuilderState.js';
|
|
19
|
+
export type MappingOption = {
|
|
20
|
+
label: string;
|
|
21
|
+
value: V1_Mapping;
|
|
22
|
+
};
|
|
23
|
+
export declare const buildMappingOption: (mapping: V1_Mapping) => MappingOption;
|
|
17
24
|
export declare const AdhocQueryDataCubeSourceBuilder: ((props: {
|
|
18
25
|
sourceBuilder: AdhocQueryDataCubeSourceBuilderState;
|
|
26
|
+
store: LegendDataCubeBuilderStore;
|
|
19
27
|
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
20
28
|
displayName: string;
|
|
21
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdhocQueryDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/AdhocQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"AdhocQueryDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/AdhocQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;AAQxG,OAAO,EAEL,UAAU,EAGX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,wEAAwE,CAAC;AAWnI,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AACF,eAAO,MAAM,kBAAkB,GAAI,SAAS,UAAU,KAAG,aAGvD,CAAC;AAEH,eAAO,MAAM,+BAA+B,WAClC;IACN,aAAa,EAAE,oCAAoC,CAAC;IACpD,KAAK,EAAE,0BAA0B,CAAC;CACnC;;CA0TF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* Copyright (c) 2020-present, Goldman Sachs
|
|
4
4
|
*
|
|
@@ -15,7 +15,180 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
|
+
import { CustomSelectorInput, WarningIcon } from '@finos/legend-art';
|
|
19
|
+
import { useEffect, useState } from 'react';
|
|
20
|
+
import { flowResult } from 'mobx';
|
|
21
|
+
import {} from '../../../stores/builder/LegendDataCubeBuilderStore.js';
|
|
22
|
+
import { LATEST_VERSION_ALIAS } from '@finos/legend-server-depot';
|
|
23
|
+
import { ActionState, assertErrorThrown, compareSemVerVersions, guaranteeNonNullable, } from '@finos/legend-shared';
|
|
24
|
+
import { CORE_PURE_PATH, V1_Mapping, V1_PackageableRuntime, V1_deserializePackageableElement, } from '@finos/legend-graph';
|
|
25
|
+
import { buildProjectOption, buildRuntimeOption, buildVersionOption, } from './UserDefinedFunctionDataCubeSourceBuilder.js';
|
|
26
|
+
import { DataCubeCodeEditor } from '@finos/legend-data-cube';
|
|
27
|
+
export const buildMappingOption = (mapping) => ({
|
|
28
|
+
label: mapping.name,
|
|
29
|
+
value: mapping,
|
|
30
|
+
});
|
|
18
31
|
export const AdhocQueryDataCubeSourceBuilder = observer((props) => {
|
|
19
|
-
|
|
32
|
+
const { sourceBuilder, store } = props;
|
|
33
|
+
const [fetchSelectedProjectVersionsStatus] = useState(ActionState.create());
|
|
34
|
+
const [fetchSelectedVersionRuntimesStatus] = useState(ActionState.create());
|
|
35
|
+
const [fetchSelectedVersionMappingsStatus] = useState(ActionState.create());
|
|
36
|
+
//projects
|
|
37
|
+
const projectOptions = sourceBuilder.projects.map(buildProjectOption);
|
|
38
|
+
const selectedProjectOption = sourceBuilder.currentProject
|
|
39
|
+
? buildProjectOption(sourceBuilder.currentProject)
|
|
40
|
+
: null;
|
|
41
|
+
const projectSelectorPlaceholder = sourceBuilder.loadProjectsState
|
|
42
|
+
.isInProgress
|
|
43
|
+
? 'Loading projects'
|
|
44
|
+
: sourceBuilder.loadProjectsState.hasFailed
|
|
45
|
+
? 'Error fetching projects'
|
|
46
|
+
: sourceBuilder.projects.length
|
|
47
|
+
? 'Choose a project'
|
|
48
|
+
: 'No Projects available from depot';
|
|
49
|
+
const onProjectOptionChange = async (option) => {
|
|
50
|
+
if (option?.value !== sourceBuilder.currentProject) {
|
|
51
|
+
sourceBuilder.setCurrentProject(option?.value);
|
|
52
|
+
// cascade
|
|
53
|
+
sourceBuilder.setCurrentVersionId(undefined);
|
|
54
|
+
sourceBuilder.setCurrentProjectVersions([]);
|
|
55
|
+
sourceBuilder.setCurrentRuntime(undefined);
|
|
56
|
+
sourceBuilder.setRuntimes([]);
|
|
57
|
+
sourceBuilder.setModelPointer(undefined);
|
|
58
|
+
sourceBuilder.setMappings([]);
|
|
59
|
+
sourceBuilder.setCurrentMapping(undefined);
|
|
60
|
+
sourceBuilder.codeEditorState.clearQuery();
|
|
61
|
+
try {
|
|
62
|
+
fetchSelectedProjectVersionsStatus.inProgress();
|
|
63
|
+
const versions = await store.depotServerClient.getVersions(guaranteeNonNullable(option?.value.groupId), guaranteeNonNullable(option?.value.artifactId), true);
|
|
64
|
+
sourceBuilder.setCurrentProjectVersions(versions);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
assertErrorThrown(error);
|
|
68
|
+
store.application.notificationService.notifyError(error);
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
fetchSelectedProjectVersionsStatus.reset();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
//versions
|
|
76
|
+
const versionOptions = [
|
|
77
|
+
LATEST_VERSION_ALIAS,
|
|
78
|
+
...(sourceBuilder.currentProjectVersions ?? []),
|
|
79
|
+
]
|
|
80
|
+
.toSorted((v1, v2) => compareSemVerVersions(v2, v1))
|
|
81
|
+
.map(buildVersionOption);
|
|
82
|
+
const selectedVersionOption = sourceBuilder.currentVersionId
|
|
83
|
+
? buildVersionOption(sourceBuilder.currentVersionId)
|
|
84
|
+
: null;
|
|
85
|
+
const versionSelectorPlaceholder = !sourceBuilder.currentProject
|
|
86
|
+
? 'No project selected'
|
|
87
|
+
: 'Choose a version';
|
|
88
|
+
const onVersionChange = async (option) => {
|
|
89
|
+
if (option?.value !== sourceBuilder.currentVersionId) {
|
|
90
|
+
sourceBuilder.setCurrentVersionId(option?.value);
|
|
91
|
+
//cascade
|
|
92
|
+
sourceBuilder.setCurrentRuntime(undefined);
|
|
93
|
+
sourceBuilder.setRuntimes([]);
|
|
94
|
+
sourceBuilder.setCurrentMapping(undefined);
|
|
95
|
+
sourceBuilder.setMappings([]);
|
|
96
|
+
sourceBuilder.codeEditorState.clearQuery();
|
|
97
|
+
//by this point, we should have all the necessary info to build the model context pointer
|
|
98
|
+
sourceBuilder.setModelPointer(sourceBuilder.buildPureModelContextPointer());
|
|
99
|
+
try {
|
|
100
|
+
const plugins = store.application.pluginManager.getPureProtocolProcessorPlugins();
|
|
101
|
+
//runtimes
|
|
102
|
+
fetchSelectedVersionRuntimesStatus.inProgress();
|
|
103
|
+
const allFetchedRuntimes = await store.depotServerClient.getVersionEntities(guaranteeNonNullable(sourceBuilder.currentProject?.groupId), guaranteeNonNullable(sourceBuilder.currentProject?.artifactId), guaranteeNonNullable(option?.value), CORE_PURE_PATH.RUNTIME);
|
|
104
|
+
const fetchedRuntimeOptions = [];
|
|
105
|
+
allFetchedRuntimes.forEach((runtime) => {
|
|
106
|
+
const runtimeEntity = runtime.entity;
|
|
107
|
+
const currentRuntimeElement = V1_deserializePackageableElement(runtimeEntity.content, plugins);
|
|
108
|
+
if (currentRuntimeElement instanceof V1_PackageableRuntime) {
|
|
109
|
+
fetchedRuntimeOptions.push(currentRuntimeElement);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
sourceBuilder.setRuntimes(fetchedRuntimeOptions);
|
|
113
|
+
fetchSelectedVersionRuntimesStatus.reset();
|
|
114
|
+
//mappings
|
|
115
|
+
fetchSelectedVersionMappingsStatus.inProgress();
|
|
116
|
+
const allFetchedMappings = await store.depotServerClient.getVersionEntities(guaranteeNonNullable(sourceBuilder.currentProject?.groupId), guaranteeNonNullable(sourceBuilder.currentProject?.artifactId), guaranteeNonNullable(option?.value), CORE_PURE_PATH.MAPPING);
|
|
117
|
+
const fetchedMappingOptions = [];
|
|
118
|
+
allFetchedMappings.forEach((mapping) => {
|
|
119
|
+
const mappingEntity = mapping.entity;
|
|
120
|
+
const currentMappingElement = V1_deserializePackageableElement(mappingEntity.content, plugins);
|
|
121
|
+
if (currentMappingElement instanceof V1_Mapping) {
|
|
122
|
+
fetchedMappingOptions.push(currentMappingElement);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
sourceBuilder.setMappings(fetchedMappingOptions);
|
|
126
|
+
fetchSelectedVersionMappingsStatus.reset();
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
assertErrorThrown(error);
|
|
130
|
+
store.application.notificationService.notifyError(error);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
//runtimes
|
|
135
|
+
const runtimeOptions = sourceBuilder.runtimes?.map(buildRuntimeOption);
|
|
136
|
+
const selectedRuntimeOption = sourceBuilder.currentRuntime
|
|
137
|
+
? buildRuntimeOption(sourceBuilder.currentRuntime)
|
|
138
|
+
: null;
|
|
139
|
+
const runtimeSelectorPlaceholder = !sourceBuilder.currentVersionId
|
|
140
|
+
? 'No version selected'
|
|
141
|
+
: 'Choose a runtime';
|
|
142
|
+
const onRuntimeChange = (option) => {
|
|
143
|
+
if (option === null) {
|
|
144
|
+
sourceBuilder.codeEditorState.clearQuery();
|
|
145
|
+
}
|
|
146
|
+
if (option?.value !== sourceBuilder.currentRuntime) {
|
|
147
|
+
sourceBuilder.setCurrentRuntime(option?.value);
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
//mappings
|
|
151
|
+
const mappingOptions = sourceBuilder.mappings?.map(buildMappingOption);
|
|
152
|
+
const selectedMappingOption = sourceBuilder.currentMapping
|
|
153
|
+
? buildMappingOption(sourceBuilder.currentMapping)
|
|
154
|
+
: null;
|
|
155
|
+
const mappingSelectorPlaceholder = !sourceBuilder.currentVersionId
|
|
156
|
+
? 'No version selected'
|
|
157
|
+
: 'Choose a mapping';
|
|
158
|
+
const onMappingChange = (option) => {
|
|
159
|
+
if (option?.value !== sourceBuilder.currentMapping) {
|
|
160
|
+
sourceBuilder.setCurrentMapping(option?.value);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
const allowQueryEditing = () => {
|
|
164
|
+
return Boolean(sourceBuilder.currentProject &&
|
|
165
|
+
sourceBuilder.currentVersionId &&
|
|
166
|
+
sourceBuilder.currentRuntime);
|
|
167
|
+
};
|
|
168
|
+
useEffect(() => {
|
|
169
|
+
flowResult(sourceBuilder.loadProjects()).catch(store.application.alertUnhandledError);
|
|
170
|
+
}, [sourceBuilder, store.application]);
|
|
171
|
+
return (_jsx("div", { className: "flex h-full w-full", children: _jsxs("div", { className: "m-3 flex w-full flex-col items-stretch gap-2 text-neutral-500", children: [_jsxs("div", { className: "query-setup__wizard__group", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Project" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector", options: projectOptions, disabled: sourceBuilder.loadProjectsState.isInProgress ||
|
|
172
|
+
!projectOptions.length, isLoading: sourceBuilder.loadProjectsState.isInProgress, onChange: (option) => {
|
|
173
|
+
onProjectOptionChange(option).catch(store.application.alertUnhandledError);
|
|
174
|
+
}, value: selectedProjectOption, placeholder: projectSelectorPlaceholder, isClearable: true, escapeClearsValue: true })] }), _jsxs("div", { className: "query-setup__wizard__group", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Version" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector", options: versionOptions, disabled: !sourceBuilder.currentProject ||
|
|
175
|
+
fetchSelectedProjectVersionsStatus.isInProgress ||
|
|
176
|
+
!versionOptions.length, isLoading: fetchSelectedProjectVersionsStatus.isInProgress, onChange: (option) => {
|
|
177
|
+
onVersionChange(option).catch(store.application.alertUnhandledError);
|
|
178
|
+
}, value: selectedVersionOption, placeholder: versionSelectorPlaceholder, isClearable: true, escapeClearsValue: true })] }), _jsxs("div", { className: "query-setup__wizard__group", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Runtime" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector", options: runtimeOptions, disabled: !sourceBuilder.currentVersionId ||
|
|
179
|
+
fetchSelectedVersionRuntimesStatus.isInProgress ||
|
|
180
|
+
!versionOptions.length, isLoading: fetchSelectedVersionRuntimesStatus.isInProgress, onChange: (option) => {
|
|
181
|
+
onRuntimeChange(option);
|
|
182
|
+
}, value: selectedRuntimeOption, placeholder: runtimeSelectorPlaceholder, isClearable: true, escapeClearsValue: true })] }), _jsxs("div", { className: "query-setup__wizard__group", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Mapping (optional)" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector", options: mappingOptions, disabled: !sourceBuilder.currentVersionId ||
|
|
183
|
+
fetchSelectedVersionMappingsStatus.isInProgress ||
|
|
184
|
+
!versionOptions.length, isLoading: fetchSelectedVersionMappingsStatus.isInProgress, onChange: (option) => {
|
|
185
|
+
onMappingChange(option);
|
|
186
|
+
}, value: selectedMappingOption, placeholder: mappingSelectorPlaceholder, isClearable: true, escapeClearsValue: true })] }), _jsxs("div", { className: "query-setup__wizard__group", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Query" }), _jsx("div", { className: "mt-2 h-40 w-full", style: {
|
|
187
|
+
border: '2px solid #e5e7eb',
|
|
188
|
+
padding: '5px',
|
|
189
|
+
borderRadius: '5px',
|
|
190
|
+
position: 'relative',
|
|
191
|
+
backgroundColor: allowQueryEditing() ? '#ffffff' : '#f2f2f2',
|
|
192
|
+
}, children: allowQueryEditing() ? (_jsx(DataCubeCodeEditor, { state: sourceBuilder.codeEditorState })) : (_jsx("div", { children: "No runtime selected " })) }), sourceBuilder.codeEditorState.compilationError ? (_jsxs("div", { className: "flex h-full w-full flex-shrink-0 text-sm", style: { color: 'red' }, children: [_jsx(WarningIcon, {}), "Compilation Error: Ensure TDS is returned and all class names are correct"] })) : sourceBuilder.queryCompileState.isInProgress ? (_jsx("div", { className: "flex h-full w-full flex-shrink-0 text-sm", children: "Compiling query..." })) : null] })] }) }));
|
|
20
193
|
});
|
|
21
194
|
//# sourceMappingURL=AdhocQueryDataCubeSourceBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdhocQueryDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/AdhocQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"AdhocQueryDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/AdhocQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeSourceLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LegendDataCubeSourceLoader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mEAAmE,CAAC;AAGzH,eAAO,MAAM,0BAA0B,WAC7B;IAAE,KAAK,EAAE,+BAA+B,CAAA;CAAE;;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeSourceLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LegendDataCubeSourceLoader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mEAAmE,CAAC;AAGzH,eAAO,MAAM,0BAA0B,WAC7B;IAAE,KAAK,EAAE,+BAA+B,CAAA;CAAE;;CAwFnD,CAAC;AAEF,eAAO,MAAM,wCAAwC;;CASnD,CAAC"}
|
|
@@ -15,7 +15,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
|
-
import { FormButton } from '@finos/legend-data-cube';
|
|
18
|
+
import { FormButton, FormDropdownMenuTrigger } from '@finos/legend-data-cube';
|
|
19
19
|
import { useLegendDataCubeBuilderStore } from '../LegendDataCubeBuilderStoreProvider.js';
|
|
20
20
|
import { LocalFileDataCubeSourceLoaderState } from '../../../stores/builder/source/LocalFileDataCubeSourceLoaderState.js';
|
|
21
21
|
import { LocalFileDataCubePartialSourceLoader } from './LocalFileDataCubeSourceLoader.js';
|
|
@@ -31,7 +31,10 @@ export const LegendDataCubeSourceLoader = observer((props) => {
|
|
|
31
31
|
includeSeconds: true,
|
|
32
32
|
addSuffix: true,
|
|
33
33
|
})
|
|
34
|
-
: '(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: persistentDataCube.owner })] })] })] }) }), _jsx("div", { className: "flex h-10 w-full items-center", children:
|
|
34
|
+
: '(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: persistentDataCube.owner })] })] })] }) }), _jsx("div", { className: "mt-2 h-[1px] w-full bg-neutral-200" }), _jsxs("div", { className: "flex h-10 w-full items-center py-2", children: [_jsx("div", { className: "flex h-full w-32 flex-shrink-0 items-center text-sm", children: "Source Type:" }), _jsx(FormDropdownMenuTrigger, { className: "w-80", onClick: () => { }, open: false, disabled: true, children: _jsx("div", { className: "flex items-center", children: state.label }) })] }), _jsx("div", { className: "mb-2 h-[1px] w-full bg-neutral-200" }), _jsx("div", { className: "h-[calc(100%_-_98px)] w-full overflow-auto", children: state instanceof LocalFileDataCubeSourceLoaderState && (_jsx(LocalFileDataCubePartialSourceLoader, { partialSourceLoader: state })) })] }) }) }), _jsxs("div", { className: "flex h-10 items-center justify-end px-2", children: [_jsx(FormButton, { onClick: () => {
|
|
35
|
+
state.display.onClose?.();
|
|
36
|
+
state.display.close();
|
|
37
|
+
}, children: "Cancel" }), _jsx(FormButton, { className: "ml-2", disabled: !state.isValid || state.finalizeState.isInProgress, onClick: () => {
|
|
35
38
|
state.finalize().catch((error) => {
|
|
36
39
|
store.alertService.alertUnhandledError(error);
|
|
37
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeSourceLoader.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LegendDataCubeSourceLoader.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeSourceLoader.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LegendDataCubeSourceLoader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalFileDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LocalFileDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,uEAAuE,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalFileDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LocalFileDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,uEAAuE,CAAC;AAMjI,eAAO,MAAM,8BAA8B,WACjC;IAAE,aAAa,EAAE,mCAAmC,CAAA;CAAE;;CAuD/D,CAAC"}
|
|
@@ -17,12 +17,20 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
18
|
import { AlertType, FormAlert, FormCodeEditor } from '@finos/legend-data-cube';
|
|
19
19
|
import { CODE_EDITOR_LANGUAGE } from '@finos/legend-code-editor';
|
|
20
|
+
import { useLegendDataCubeBuilderStore } from '../LegendDataCubeBuilderStoreProvider.js';
|
|
21
|
+
import { useEffect } from 'react';
|
|
20
22
|
export const LocalFileDataCubeSourceBuilder = observer((props) => {
|
|
21
23
|
const { sourceBuilder } = props;
|
|
24
|
+
const store = useLegendDataCubeBuilderStore();
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
sourceBuilder.reset();
|
|
27
|
+
}, [sourceBuilder]);
|
|
22
28
|
return (_jsxs("div", { className: "h-full w-full p-2", children: [_jsx(FormAlert, { message: "Local file support is experimental", type: AlertType.WARNING, text: `Currently, support for local file comes with the following limitations:
|
|
23
29
|
- Only CSV files are supported, but not all variants of CSV files are supported (required header row, comma delimiter, single escape quote).
|
|
24
30
|
- Data from uploaded file will not be stored nor shared.` }), _jsx("div", { className: "mt-2 flex h-6 w-full items-center text-neutral-500", children: _jsx("input", { type: "file", onChange: (event) => {
|
|
25
|
-
sourceBuilder
|
|
26
|
-
|
|
31
|
+
sourceBuilder
|
|
32
|
+
.processFile(event.target.files?.[0])
|
|
33
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
34
|
+
}, className: "w-full" }) }), sourceBuilder.processState.hasFailed && (_jsx("div", { className: "mt-2 h-40", children: _jsx(FormCodeEditor, { value: `ERR: Failed to process file.`, language: CODE_EDITOR_LANGUAGE.TEXT, isReadOnly: true, hidePadding: true, hideActionBar: true }) })), sourceBuilder.previewText !== undefined && (_jsx("div", { className: "mt-2 h-40", children: _jsx(FormCodeEditor, { value: sourceBuilder.previewText, language: CODE_EDITOR_LANGUAGE.TEXT, isReadOnly: true, hidePadding: true, title: "Data Preview" }) }))] }));
|
|
27
35
|
});
|
|
28
36
|
//# sourceMappingURL=LocalFileDataCubeSourceBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalFileDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LocalFileDataCubeSourceBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalFileDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LocalFileDataCubeSourceBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,MAAM,8BAA8B,GAAG,QAAQ,CACpD,CAAC,KAA6D,EAAE,EAAE;IAChE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,KAAK,GAAG,6BAA6B,EAAE,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,SAAS,IACR,OAAO,EAAC,oCAAoC,EAC5C,IAAI,EAAE,SAAS,CAAC,OAAO,EACvB,IAAI,EAAE;;yDAEyC,GAC/C,EACF,cAAK,SAAS,EAAC,oDAAoD,YACjE,gBACE,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,aAAa;6BACV,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;6BACpC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC9C,CAAC;oBACN,CAAC,EACD,SAAS,EAAC,QAAQ,GAClB,GACE,EACL,aAAa,CAAC,YAAY,CAAC,SAAS,IAAI,CACvC,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,cAAc,IACb,KAAK,EAAE,8BAA8B,EACrC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,EACnC,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE,IAAI,EACjB,aAAa,EAAE,IAAI,GACnB,GACE,CACP,EACA,aAAa,CAAC,WAAW,KAAK,SAAS,IAAI,CAC1C,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,cAAc,IACb,KAAK,EAAE,aAAa,CAAC,WAAW,EAChC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,EACnC,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE,IAAI,EACjB,KAAK,EAAC,cAAc,GACpB,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalFileDataCubeSourceLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LocalFileDataCubeSourceLoader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,sEAAsE,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalFileDataCubeSourceLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LocalFileDataCubeSourceLoader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,sEAAsE,CAAC;AAI/H,eAAO,MAAM,oCAAoC,WACvC;IAAE,mBAAmB,EAAE,kCAAkC,CAAA;CAAE;;CAuDpE,CAAC"}
|
|
@@ -17,12 +17,20 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
18
|
import { AlertType, FormAlert, FormCodeEditor } from '@finos/legend-data-cube';
|
|
19
19
|
import { CODE_EDITOR_LANGUAGE } from '@finos/legend-code-editor';
|
|
20
|
+
import { useLegendDataCubeBuilderStore } from '../LegendDataCubeBuilderStoreProvider.js';
|
|
21
|
+
import { useEffect } from 'react';
|
|
20
22
|
export const LocalFileDataCubePartialSourceLoader = observer((props) => {
|
|
21
23
|
const { partialSourceLoader } = props;
|
|
24
|
+
const store = useLegendDataCubeBuilderStore();
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
partialSourceLoader.reset();
|
|
27
|
+
}, [partialSourceLoader]);
|
|
22
28
|
return (_jsxs("div", { className: "h-full w-full", children: [_jsx(FormAlert, { message: "Local file support is experimental", type: AlertType.WARNING, text: `Currently, support for local file comes with the following limitations:
|
|
23
29
|
- Only CSV files are supported, but not all variants of CSV files are supported (required header row, comma delimiter, single escape quote).
|
|
24
30
|
- Data from uploaded file will not be stored nor shared.` }), _jsx("div", { className: "mt-2 flex h-6 w-full items-center text-neutral-500", children: _jsx("input", { type: "file", onChange: (event) => {
|
|
25
|
-
partialSourceLoader
|
|
26
|
-
|
|
31
|
+
partialSourceLoader
|
|
32
|
+
.processFile(event.target.files?.[0])
|
|
33
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
34
|
+
}, className: "w-full" }) }), partialSourceLoader.processState.hasFailed && (_jsx("div", { className: "mt-2 h-40", children: _jsx(FormCodeEditor, { value: `ERR: Failed to process file.`, language: CODE_EDITOR_LANGUAGE.TEXT, isReadOnly: true, hidePadding: true, hideActionBar: true }) })), partialSourceLoader.previewText !== undefined && (_jsx("div", { className: "mt-2 h-40", children: _jsx(FormCodeEditor, { value: partialSourceLoader.previewText, language: CODE_EDITOR_LANGUAGE.TEXT, isReadOnly: true, hidePadding: true, title: "Data Preview" }) }))] }));
|
|
27
35
|
});
|
|
28
36
|
//# sourceMappingURL=LocalFileDataCubeSourceLoader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalFileDataCubeSourceLoader.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LocalFileDataCubeSourceLoader.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalFileDataCubeSourceLoader.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LocalFileDataCubeSourceLoader.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,MAAM,oCAAoC,GAAG,QAAQ,CAC1D,CAAC,KAAkE,EAAE,EAAE;IACrE,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,KAAK,GAAG,6BAA6B,EAAE,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,OAAO,CACL,eAAK,SAAS,EAAC,eAAe,aAC5B,KAAC,SAAS,IACR,OAAO,EAAC,oCAAoC,EAC5C,IAAI,EAAE,SAAS,CAAC,OAAO,EACvB,IAAI,EAAE;;yDAEyC,GAC/C,EACF,cAAK,SAAS,EAAC,oDAAoD,YACjE,gBACE,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,mBAAmB;6BAChB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;6BACpC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC9C,CAAC;oBACN,CAAC,EACD,SAAS,EAAC,QAAQ,GAClB,GACE,EACL,mBAAmB,CAAC,YAAY,CAAC,SAAS,IAAI,CAC7C,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,cAAc,IACb,KAAK,EAAE,8BAA8B,EACrC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,EACnC,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE,IAAI,EACjB,aAAa,EAAE,IAAI,GACnB,GACE,CACP,EACA,mBAAmB,CAAC,WAAW,KAAK,SAAS,IAAI,CAChD,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,cAAc,IACb,KAAK,EAAE,mBAAmB,CAAC,WAAW,EACtC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,EACnC,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE,IAAI,EACjB,KAAK,EAAC,cAAc,GACpB,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
package/lib/index.css
CHANGED
package/lib/package.json
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { V1_Lambda, type V1_ValueSpecification, type V1_EngineServerClient, V1_PureGraphManager, TDSExecutionResult, V1_AppliedFunction } from '@finos/legend-graph';
|
|
17
|
-
import { DataCubeEngine, type
|
|
16
|
+
import { V1_Lambda, type V1_ValueSpecification, type V1_EngineServerClient, V1_PureGraphManager, type V1_PureModelContext, TDSExecutionResult, V1_AppliedFunction } from '@finos/legend-graph';
|
|
17
|
+
import { DataCubeEngine, type CompletionItem, CachedDataCubeSource, type DataCubeExecutionOptions, type DataCubeCacheInitializationOptions, type DataCubeSource } from '@finos/legend-data-cube';
|
|
18
18
|
import { LogEvent, type PlainObject } from '@finos/legend-shared';
|
|
19
19
|
import type { LegendDataCubeApplicationStore } from './LegendDataCubeBaseStore.js';
|
|
20
20
|
import { type DepotServerClient } from '@finos/legend-server-depot';
|
|
@@ -30,7 +30,7 @@ export declare class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
30
30
|
processSource(value: PlainObject): Promise<DataCubeSource>;
|
|
31
31
|
parseValueSpecification(code: string, returnSourceInformation?: boolean | undefined): Promise<V1_ValueSpecification>;
|
|
32
32
|
getValueSpecificationCode(value: V1_ValueSpecification, pretty?: boolean | undefined): Promise<string>;
|
|
33
|
-
getQueryTypeahead(code: string, baseQuery: V1_Lambda,
|
|
33
|
+
getQueryTypeahead(code: string, baseQuery: V1_Lambda, context: DataCubeSource | PlainObject): Promise<CompletionItem[]>;
|
|
34
34
|
getQueryRelationReturnType(query: V1_Lambda, source: DataCubeSource): Promise<{
|
|
35
35
|
columns: {
|
|
36
36
|
name: string;
|
|
@@ -53,7 +53,12 @@ export declare class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
53
53
|
initializeCache(source: DataCubeSource, options?: DataCubeCacheInitializationOptions | undefined): Promise<CachedDataCubeSource | undefined>;
|
|
54
54
|
disposeCache(source: CachedDataCubeSource): Promise<void>;
|
|
55
55
|
private _getQueryRelationType;
|
|
56
|
-
|
|
56
|
+
_getLambdaRelationType(lambda: PlainObject<V1_Lambda>, model: PlainObject<V1_PureModelContext>): Promise<{
|
|
57
|
+
columns: {
|
|
58
|
+
name: string;
|
|
59
|
+
type: string;
|
|
60
|
+
}[];
|
|
61
|
+
}>;
|
|
57
62
|
private _runQuery;
|
|
58
63
|
private _generateExecutionPlan;
|
|
59
64
|
ingestLocalFileData(data: string, format: string, refId?: string): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,mBAAmB,
|
|
1
|
+
{"version":3,"file":"LegendDataCubeDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,9 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
48
48
|
case ADHOC_QUERY_DATA_CUBE_SOURCE_TYPE: {
|
|
49
49
|
const rawSource = RawAdhocQueryDataCubeSource.serialization.fromJson(value);
|
|
50
50
|
const source = new AdhocQueryDataCubeSource();
|
|
51
|
+
if (rawSource.mapping) {
|
|
52
|
+
source.mapping = rawSource.mapping;
|
|
53
|
+
}
|
|
51
54
|
source.runtime = rawSource.runtime;
|
|
52
55
|
source.model = rawSource.model;
|
|
53
56
|
source.query = await this.parseValueSpecification(rawSource.query, false);
|
|
@@ -188,7 +191,10 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
188
191
|
source.model = V1_serializePureModelContext(new V1_PureModelContextPointer(
|
|
189
192
|
// TODO: remove as backend should handle undefined protocol input
|
|
190
193
|
new V1_Protocol(V1_PureGraphManager.PURE_PROTOCOL_NAME, PureClientVersion.VX_X_X), new V1_LegendSDLC(queryInfo.groupId, queryInfo.artifactId, resolveVersion(queryInfo.versionId))));
|
|
191
|
-
|
|
194
|
+
// If the lambda has multiple expressions, the source query should only be the final
|
|
195
|
+
// expression of the lambda. All previous expressions should be left untouched and will
|
|
196
|
+
// be prepended to the transformed query when it is executed.
|
|
197
|
+
source.query = at(source.lambda.body, source.lambda.body.length - 1);
|
|
192
198
|
try {
|
|
193
199
|
source.columns = (await this._getLambdaRelationType(this.serializeValueSpecification(source.lambda), source.model)).columns;
|
|
194
200
|
}
|
|
@@ -251,28 +257,34 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
251
257
|
}
|
|
252
258
|
// TODO: we could optimize this by synthesizing the base query from the source columns
|
|
253
259
|
// instead of having to send the entire graph model
|
|
254
|
-
async getQueryTypeahead(code, baseQuery,
|
|
260
|
+
async getQueryTypeahead(code, baseQuery, context) {
|
|
255
261
|
const baseQueryCode = await this.getValueSpecificationCode(baseQuery);
|
|
256
262
|
let codeBlock = baseQueryCode + code;
|
|
257
263
|
codeBlock = codeBlock.startsWith(LAMBDA_PIPE)
|
|
258
264
|
? codeBlock.substring(LAMBDA_PIPE.length)
|
|
259
265
|
: codeBlock;
|
|
260
|
-
if (
|
|
266
|
+
if (context instanceof AdhocQueryDataCubeSource) {
|
|
261
267
|
return (await this._engineServerClient.completeCode({
|
|
262
268
|
codeBlock,
|
|
263
|
-
model:
|
|
269
|
+
model: context.model,
|
|
264
270
|
})).completions;
|
|
265
271
|
}
|
|
266
|
-
else if (
|
|
272
|
+
else if (context instanceof UserDefinedFunctionDataCubeSource) {
|
|
267
273
|
return (await this._engineServerClient.completeCode({
|
|
268
274
|
codeBlock,
|
|
269
|
-
model:
|
|
275
|
+
model: context.model,
|
|
270
276
|
})).completions;
|
|
271
277
|
}
|
|
272
|
-
else if (
|
|
278
|
+
else if (context instanceof LegendQueryDataCubeSource) {
|
|
273
279
|
return (await this._engineServerClient.completeCode({
|
|
274
280
|
codeBlock,
|
|
275
|
-
model:
|
|
281
|
+
model: context.model,
|
|
282
|
+
})).completions;
|
|
283
|
+
}
|
|
284
|
+
else if (Object.getPrototypeOf(context) === Object.prototype) {
|
|
285
|
+
return (await this._engineServerClient.completeCode({
|
|
286
|
+
codeBlock,
|
|
287
|
+
model: context,
|
|
276
288
|
})).completions;
|
|
277
289
|
}
|
|
278
290
|
throw new UnsupportedOperationError(`Can't get code completion for lambda with unsupported source`);
|
|
@@ -327,7 +339,16 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
327
339
|
}
|
|
328
340
|
else if (source instanceof LegendQueryDataCubeSource) {
|
|
329
341
|
query.parameters = source.lambda.parameters;
|
|
330
|
-
|
|
342
|
+
// If the source lambda has multiple expressions, we should prepend all but the
|
|
343
|
+
// last expression to the transformed query body (which came from the final
|
|
344
|
+
// expression of the source lambda).
|
|
345
|
+
query.body = [
|
|
346
|
+
...source.letParameterValueSpec,
|
|
347
|
+
...(source.lambda.body.length > 1
|
|
348
|
+
? source.lambda.body.slice(0, -1)
|
|
349
|
+
: []),
|
|
350
|
+
...query.body,
|
|
351
|
+
];
|
|
331
352
|
result = await this._runQuery(query, source.model, source.parameterValues, options);
|
|
332
353
|
}
|
|
333
354
|
else if (source instanceof CachedDataCubeSource) {
|
|
@@ -402,7 +423,10 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
402
423
|
}
|
|
403
424
|
buildExecutionContext(source) {
|
|
404
425
|
if (source instanceof AdhocQueryDataCubeSource) {
|
|
405
|
-
return _function(DataCubeFunction.FROM, [
|
|
426
|
+
return _function(DataCubeFunction.FROM, [
|
|
427
|
+
source.mapping ? _elementPtr(source.mapping) : undefined,
|
|
428
|
+
_elementPtr(source.runtime),
|
|
429
|
+
].filter(isNonNullable));
|
|
406
430
|
}
|
|
407
431
|
else if (source instanceof UserDefinedFunctionDataCubeSource) {
|
|
408
432
|
return _function(DataCubeFunction.FROM, [_elementPtr(source.runtime)].filter(isNonNullable));
|