@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.
- package/README.md +1 -1
- package/lib/__lib__/LegendDataCubeNavigation.d.ts +9 -5
- package/lib/__lib__/LegendDataCubeNavigation.d.ts.map +1 -1
- package/lib/__lib__/LegendDataCubeNavigation.js +9 -5
- package/lib/__lib__/LegendDataCubeNavigation.js.map +1 -1
- package/lib/__lib__/LegendDataCubeUserData.d.ts +2 -2
- package/lib/__lib__/LegendDataCubeUserData.d.ts.map +1 -1
- package/lib/__lib__/LegendDataCubeUserData.js +2 -2
- package/lib/__lib__/LegendDataCubeUserData.js.map +1 -1
- package/lib/application/LegendDataCubeApplicationConfig.d.ts +4 -0
- package/lib/application/LegendDataCubeApplicationConfig.d.ts.map +1 -1
- package/lib/application/LegendDataCubeApplicationConfig.js +5 -0
- package/lib/application/LegendDataCubeApplicationConfig.js.map +1 -1
- package/lib/components/LegendDataCubeBlockingWindow.d.ts +29 -0
- package/lib/components/LegendDataCubeBlockingWindow.d.ts.map +1 -0
- package/lib/components/LegendDataCubeBlockingWindow.js +75 -0
- package/lib/components/LegendDataCubeBlockingWindow.js.map +1 -0
- package/lib/components/LegendDataCubeWebApplication.js +2 -2
- package/lib/components/LegendDataCubeWebApplication.js.map +1 -1
- package/lib/components/builder/LegendDataCubeBuilder.d.ts +20 -0
- package/lib/components/builder/LegendDataCubeBuilder.d.ts.map +1 -0
- package/lib/components/builder/LegendDataCubeBuilder.js +162 -0
- package/lib/components/builder/LegendDataCubeBuilder.js.map +1 -0
- package/lib/components/builder/LegendDataCubeBuilderStoreProvider.d.ts +19 -0
- package/lib/components/builder/LegendDataCubeBuilderStoreProvider.d.ts.map +1 -0
- package/lib/components/builder/LegendDataCubeBuilderStoreProvider.js +34 -0
- package/lib/components/builder/LegendDataCubeBuilderStoreProvider.js.map +1 -0
- package/lib/components/{query-builder/LegendDataCubeQuerySaver.d.ts → builder/LegendDataCubeCreator.d.ts} +2 -2
- package/lib/components/builder/LegendDataCubeCreator.d.ts.map +1 -0
- package/lib/components/{query-builder/LegendDataCubeNewQueryBuilder.js → builder/LegendDataCubeCreator.js} +10 -10
- package/lib/components/builder/LegendDataCubeCreator.js.map +1 -0
- package/lib/components/builder/LegendDataCubeDeleteConfirmation.d.ts +19 -0
- package/lib/components/builder/LegendDataCubeDeleteConfirmation.d.ts.map +1 -0
- package/lib/components/builder/LegendDataCubeDeleteConfirmation.js +43 -0
- package/lib/components/builder/LegendDataCubeDeleteConfirmation.js.map +1 -0
- package/lib/components/{query-builder/LegendDataCubeQueryLoader.d.ts → builder/LegendDataCubeLoader.d.ts} +2 -2
- package/lib/components/builder/LegendDataCubeLoader.d.ts.map +1 -0
- package/lib/components/builder/LegendDataCubeLoader.js +113 -0
- package/lib/components/builder/LegendDataCubeLoader.js.map +1 -0
- package/lib/components/{query-builder/LegendDataCubeNewQueryBuilder.d.ts → builder/LegendDataCubeSaver.d.ts} +2 -2
- package/lib/components/builder/LegendDataCubeSaver.d.ts.map +1 -0
- package/lib/components/builder/LegendDataCubeSaver.js +73 -0
- package/lib/components/builder/LegendDataCubeSaver.js.map +1 -0
- package/lib/components/{query-builder/LegendDataCubeQueryBuilder.d.ts → builder/LegendDataCubeSourceViewer.d.ts} +4 -2
- package/lib/components/builder/LegendDataCubeSourceViewer.d.ts.map +1 -0
- package/lib/components/builder/LegendDataCubeSourceViewer.js +46 -0
- package/lib/components/builder/LegendDataCubeSourceViewer.js.map +1 -0
- package/lib/components/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilder.d.ts +1 -1
- package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.d.ts.map +1 -0
- package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.js.map +1 -0
- package/lib/components/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilder.d.ts +1 -1
- package/lib/components/builder/source/LegendQueryDataCubeSourceBuilder.d.ts.map +1 -0
- package/lib/components/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilder.js +13 -13
- package/lib/components/builder/source/LegendQueryDataCubeSourceBuilder.js.map +1 -0
- package/lib/index.css +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/LegendDataCubeCacheManager.d.ts.map +1 -1
- package/lib/stores/LegendDataCubeCacheManager.js +11 -12
- package/lib/stores/LegendDataCubeCacheManager.js.map +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts.map +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.js +5 -11
- package/lib/stores/LegendDataCubeDataCubeEngine.js.map +1 -1
- package/lib/stores/builder/LegendDataCubeBuilderStore.d.ts +80 -0
- package/lib/stores/builder/LegendDataCubeBuilderStore.d.ts.map +1 -0
- package/lib/stores/builder/LegendDataCubeBuilderStore.js +353 -0
- package/lib/stores/builder/LegendDataCubeBuilderStore.js.map +1 -0
- package/lib/stores/{query-builder/LegendDataCubeNewQueryState.d.ts → builder/LegendDataCubeCreatorState.d.ts} +5 -5
- package/lib/stores/builder/LegendDataCubeCreatorState.d.ts.map +1 -0
- package/lib/stores/{query-builder/LegendDataCubeNewQueryState.js → builder/LegendDataCubeCreatorState.js} +17 -17
- package/lib/stores/builder/LegendDataCubeCreatorState.js.map +1 -0
- package/lib/stores/{query-builder/LegendDataCubeQueryLoaderState.d.ts → builder/LegendDataCubeLoaderState.d.ts} +20 -20
- package/lib/stores/builder/LegendDataCubeLoaderState.d.ts.map +1 -0
- package/lib/stores/builder/LegendDataCubeLoaderState.js +187 -0
- package/lib/stores/builder/LegendDataCubeLoaderState.js.map +1 -0
- package/lib/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.d.ts.map +1 -0
- package/lib/stores/builder/source/AdhocQueryDataCubeSourceBuilderState.js.map +1 -0
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.d.ts.map +1 -0
- package/lib/stores/{query-builder/source-builder → builder/source}/LegendDataCubeSourceBuilderState.js +1 -1
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.js.map +1 -0
- package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.d.ts.map +1 -0
- package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.js.map +1 -0
- package/package.json +5 -5
- package/src/__lib__/LegendDataCubeNavigation.ts +15 -7
- package/src/__lib__/LegendDataCubeUserData.ts +2 -2
- package/src/application/LegendDataCubeApplicationConfig.ts +12 -0
- package/src/components/LegendDataCubeBlockingWindow.tsx +120 -0
- package/src/components/LegendDataCubeWebApplication.tsx +3 -3
- package/src/components/builder/LegendDataCubeBuilder.tsx +331 -0
- package/src/components/{query-builder/LegendDataCubeQueryBuilderStoreProvider.tsx → builder/LegendDataCubeBuilderStoreProvider.tsx} +19 -16
- package/src/components/{query-builder/LegendDataCubeNewQueryBuilder.tsx → builder/LegendDataCubeCreator.tsx} +9 -9
- package/src/components/builder/LegendDataCubeDeleteConfirmation.tsx +87 -0
- package/src/components/{query-builder/LegendDataCubeQueryLoader.tsx → builder/LegendDataCubeLoader.tsx} +122 -59
- package/src/components/builder/LegendDataCubeSaver.tsx +184 -0
- package/src/components/builder/LegendDataCubeSourceViewer.tsx +108 -0
- package/src/components/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilder.tsx +1 -1
- package/src/components/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilder.tsx +16 -15
- package/src/stores/LegendDataCubeCacheManager.ts +11 -12
- package/src/stores/LegendDataCubeDataCubeEngine.ts +4 -14
- package/src/stores/builder/LegendDataCubeBuilderStore.tsx +516 -0
- package/src/stores/{query-builder/LegendDataCubeNewQueryState.tsx → builder/LegendDataCubeCreatorState.tsx} +23 -21
- package/src/stores/builder/LegendDataCubeLoaderState.tsx +248 -0
- package/src/stores/{query-builder/source-builder → builder/source}/LegendDataCubeSourceBuilderState.ts +1 -1
- package/tsconfig.json +16 -13
- package/lib/components/query-builder/LegendDataCubeNewQueryBuilder.d.ts.map +0 -1
- package/lib/components/query-builder/LegendDataCubeNewQueryBuilder.js.map +0 -1
- package/lib/components/query-builder/LegendDataCubeQueryBuilder.d.ts.map +0 -1
- package/lib/components/query-builder/LegendDataCubeQueryBuilder.js +0 -93
- package/lib/components/query-builder/LegendDataCubeQueryBuilder.js.map +0 -1
- package/lib/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.d.ts +0 -19
- package/lib/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.d.ts.map +0 -1
- package/lib/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.js +0 -33
- package/lib/components/query-builder/LegendDataCubeQueryBuilderStoreProvider.js.map +0 -1
- package/lib/components/query-builder/LegendDataCubeQueryLoader.d.ts.map +0 -1
- package/lib/components/query-builder/LegendDataCubeQueryLoader.js +0 -97
- package/lib/components/query-builder/LegendDataCubeQueryLoader.js.map +0 -1
- package/lib/components/query-builder/LegendDataCubeQuerySaver.d.ts.map +0 -1
- package/lib/components/query-builder/LegendDataCubeQuerySaver.js +0 -51
- package/lib/components/query-builder/LegendDataCubeQuerySaver.js.map +0 -1
- package/lib/components/query-builder/source-builder/AdhocQueryDataCubeSourceBuilder.d.ts.map +0 -1
- package/lib/components/query-builder/source-builder/AdhocQueryDataCubeSourceBuilder.js.map +0 -1
- package/lib/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.d.ts.map +0 -1
- package/lib/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.js.map +0 -1
- package/lib/stores/query-builder/LegendDataCubeNewQueryState.d.ts.map +0 -1
- package/lib/stores/query-builder/LegendDataCubeNewQueryState.js.map +0 -1
- package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.d.ts +0 -58
- package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.d.ts.map +0 -1
- package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.js +0 -228
- package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.js.map +0 -1
- package/lib/stores/query-builder/LegendDataCubeQueryLoaderState.d.ts.map +0 -1
- package/lib/stores/query-builder/LegendDataCubeQueryLoaderState.js +0 -198
- package/lib/stores/query-builder/LegendDataCubeQueryLoaderState.js.map +0 -1
- package/lib/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.d.ts.map +0 -1
- package/lib/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.js.map +0 -1
- package/lib/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.d.ts.map +0 -1
- package/lib/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.js.map +0 -1
- package/lib/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.d.ts.map +0 -1
- package/lib/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.js.map +0 -1
- package/src/components/query-builder/LegendDataCubeQueryBuilder.tsx +0 -164
- package/src/components/query-builder/LegendDataCubeQuerySaver.tsx +0 -116
- package/src/stores/query-builder/LegendDataCubeQueryBuilderStore.tsx +0 -323
- package/src/stores/query-builder/LegendDataCubeQueryLoaderState.tsx +0 -260
- /package/lib/components/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilder.js +0 -0
- /package/lib/stores/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilderState.d.ts +0 -0
- /package/lib/stores/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilderState.js +0 -0
- /package/lib/stores/{query-builder/source-builder → builder/source}/LegendDataCubeSourceBuilderState.d.ts +0 -0
- /package/lib/stores/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilderState.d.ts +0 -0
- /package/lib/stores/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilderState.js +0 -0
- /package/src/stores/{query-builder/source-builder → builder/source}/AdhocQueryDataCubeSourceBuilderState.ts +0 -0
- /package/src/stores/{query-builder/source-builder → builder/source}/LegendQueryDataCubeSourceBuilderState.ts +0 -0
|
@@ -15,17 +15,17 @@ 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 { LegendDataCubeSourceBuilderType } from '../../stores/
|
|
18
|
+
import { LegendDataCubeSourceBuilderType } from '../../stores/builder/source/LegendDataCubeSourceBuilderState.js';
|
|
19
19
|
import { useDropdownMenu } from '@finos/legend-art';
|
|
20
20
|
import { FormButton, FormDropdownMenu, FormDropdownMenuItem, FormDropdownMenuTrigger, } from '@finos/legend-data-cube';
|
|
21
|
-
import { LegendQueryDataCubeSourceBuilderState } from '../../stores/
|
|
22
|
-
import { LegendQueryDataCubeSourceBuilder } from './source
|
|
23
|
-
import { AdhocQueryDataCubeSourceBuilder } from './source
|
|
24
|
-
import { AdhocQueryDataCubeSourceBuilderState } from '../../stores/
|
|
25
|
-
import {
|
|
26
|
-
export const
|
|
27
|
-
const store =
|
|
28
|
-
const state = store.
|
|
21
|
+
import { LegendQueryDataCubeSourceBuilderState } from '../../stores/builder/source/LegendQueryDataCubeSourceBuilderState.js';
|
|
22
|
+
import { LegendQueryDataCubeSourceBuilder } from './source/LegendQueryDataCubeSourceBuilder.js';
|
|
23
|
+
import { AdhocQueryDataCubeSourceBuilder } from './source/AdhocQueryDataCubeSourceBuilder.js';
|
|
24
|
+
import { AdhocQueryDataCubeSourceBuilderState } from '../../stores/builder/source/AdhocQueryDataCubeSourceBuilderState.js';
|
|
25
|
+
import { useLegendDataCubeBuilderStore } from './LegendDataCubeBuilderStoreProvider.js';
|
|
26
|
+
export const LegendDataCubeCreator = observer(() => {
|
|
27
|
+
const store = useLegendDataCubeBuilderStore();
|
|
28
|
+
const state = store.creator;
|
|
29
29
|
const sourceBuilder = state.sourceBuilder;
|
|
30
30
|
const selectedSourceType = sourceBuilder.label;
|
|
31
31
|
const [openSourceTypeDropdown, closeSourceTypeDropdown, sourceTypeDropdownProps, sourceTypeDropdownPropsOpen,] = useDropdownMenu();
|
|
@@ -43,4 +43,4 @@ export const LegendDataCubeNewQueryBuilder = observer(() => {
|
|
|
43
43
|
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
44
44
|
}, children: "OK" })] })] }));
|
|
45
45
|
});
|
|
46
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=LegendDataCubeCreator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeCreator.js","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeCreator.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
export declare const LegendDataCubeDeleteConfirmation: (() => import("react/jsx-runtime").JSX.Element | null) & {
|
|
17
|
+
displayName: string;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=LegendDataCubeDeleteConfirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeDeleteConfirmation.d.ts","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeDeleteConfirmation.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,eAAO,MAAM,gCAAgC;;CA+D3C,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } 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 { FormButton, FormTextInput } from '@finos/legend-data-cube';
|
|
18
|
+
import { observer } from 'mobx-react-lite';
|
|
19
|
+
import { useEffect, useState } from 'react';
|
|
20
|
+
import { useLegendDataCubeBuilderStore } from './LegendDataCubeBuilderStoreProvider.js';
|
|
21
|
+
import { formatDate } from '@finos/legend-shared';
|
|
22
|
+
import { useApplicationStore } from '@finos/legend-application';
|
|
23
|
+
export const LegendDataCubeDeleteConfirmation = observer(() => {
|
|
24
|
+
const [text, setText] = useState('');
|
|
25
|
+
const store = useLegendDataCubeBuilderStore();
|
|
26
|
+
const application = useApplicationStore();
|
|
27
|
+
const persistentDataCube = store.dataCubeToDelete;
|
|
28
|
+
const confirmationText = `${application.identityService.isAnonymous ? '' : application.identityService.currentUser}_${formatDate(Date.now(), 'yyyyMMdd')}`;
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
setText('');
|
|
31
|
+
}, [persistentDataCube]);
|
|
32
|
+
if (!persistentDataCube) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
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: _jsxs("div", { className: "h-full w-full p-2", children: [_jsxs("div", { children: [_jsxs("div", { className: "whitespace-break-spaces", children: ["You are about to delete this DataCube. Once deleted, it", ' ', _jsx("span", { className: "font-bold", children: "cannot be recovered" }), _jsx("br", {}), "Please type the following to confirm:", _jsx("span", { className: "ml-1 rounded-sm bg-neutral-100 p-0.5 font-mono font-bold text-red-500", children: confirmationText })] }), _jsx("div", { className: "mt-1 whitespace-break-spaces text-neutral-500", children: text })] }), _jsx("div", { className: "flex h-6 w-full items-center", children: _jsx(FormTextInput, { className: "w-full", value: text, onChange: (event) => {
|
|
36
|
+
setText(event.target.value);
|
|
37
|
+
} }) })] }) }) }), _jsxs("div", { className: "flex h-10 items-center justify-end px-2", children: [_jsx(FormButton, { onClick: () => store.deleteConfirmationDisplay.close(), children: "Cancel" }), _jsx(FormButton, { className: "ml-2", disabled: store.deleteState.isInProgress || text !== confirmationText, onClick: () => {
|
|
38
|
+
store
|
|
39
|
+
.deleteDataCube()
|
|
40
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
41
|
+
}, children: "Delete" })] })] }));
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=LegendDataCubeDeleteConfirmation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeDeleteConfirmation.js","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeDeleteConfirmation.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,CAAC,MAAM,gCAAgC,GAAG,QAAQ,CAAC,GAAG,EAAE;IAC5D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,6BAA6B,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAC1C,MAAM,kBAAkB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IAClD,MAAM,gBAAgB,GAAG,GAAG,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;IAE3J,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,EAAE,CAAC,CAAC;IACd,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,8BACE,cAAK,SAAS,EAAC,wCAAwC,YACrD,cAAK,SAAS,EAAC,gEAAgE,YAC7E,eAAK,SAAS,EAAC,mBAAmB,aAChC,0BACE,eAAK,SAAS,EAAC,yBAAyB,wEACkB,GAAG,EAC3D,eAAM,SAAS,EAAC,WAAW,oCAA2B,EACtD,cAAM,2CAEN,eAAM,SAAS,EAAC,uEAAuE,YACpF,gBAAgB,GACZ,IACH,EACN,cAAK,SAAS,EAAC,+CAA+C,YAC3D,IAAI,GACD,IACF,EACN,cAAK,SAAS,EAAC,8BAA8B,YAC3C,KAAC,aAAa,IACZ,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wCAClB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oCAC9B,CAAC,GACD,GACE,IACF,GACF,GACF,EACN,eAAK,SAAS,EAAC,yCAAyC,aACtD,KAAC,UAAU,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,KAAK,EAAE,uBAErD,EACb,KAAC,UAAU,IACT,SAAS,EAAC,MAAM,EAChB,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,KAAK,gBAAgB,EACrE,OAAO,EAAE,GAAG,EAAE;4BACZ,KAAK;iCACF,cAAc,EAAE;iCAChB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;wBACrE,CAAC,uBAGU,IACT,IACL,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
export declare const
|
|
16
|
+
export declare const LegendDataCubeLoader: (() => import("react/jsx-runtime").JSX.Element) & {
|
|
17
17
|
displayName: string;
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=LegendDataCubeLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeLoader.d.ts","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeLoader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA2OH,eAAO,MAAM,oBAAoB;;CA0H/B,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
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, DropdownMenu, DropdownMenuItem, 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 { useLegendDataCubeBuilderStore } from './LegendDataCubeBuilderStoreProvider.js';
|
|
23
|
+
import { DATA_CUBE_LOADER_TYPEAHEAD_SEARCH_LIMIT, DataCubeSortByType, } from '../../stores/builder/LegendDataCubeLoaderState.js';
|
|
24
|
+
import { useApplicationStore } from '@finos/legend-application';
|
|
25
|
+
const LegendDataCubeSearcher = observer(() => {
|
|
26
|
+
const store = useLegendDataCubeBuilderStore();
|
|
27
|
+
const state = store.loader;
|
|
28
|
+
const searchInputRef = useRef(null);
|
|
29
|
+
const searchResults = state.searchResults;
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
searchInputRef.current?.focus();
|
|
32
|
+
}, [state]);
|
|
33
|
+
// search text
|
|
34
|
+
const debouncedLoader = useMemo(() => debounce((input) => {
|
|
35
|
+
state
|
|
36
|
+
.searchDataCubes(input)
|
|
37
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
38
|
+
}, 500), [store, state]);
|
|
39
|
+
const onSearchTextChange = (event) => {
|
|
40
|
+
if (event.target.value !== state.searchText) {
|
|
41
|
+
state.setSearchText(event.target.value);
|
|
42
|
+
debouncedLoader.cancel();
|
|
43
|
+
debouncedLoader(event.target.value);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const clearSearches = () => {
|
|
47
|
+
state.setSearchText('');
|
|
48
|
+
debouncedLoader.cancel();
|
|
49
|
+
debouncedLoader('');
|
|
50
|
+
};
|
|
51
|
+
// filter and sort
|
|
52
|
+
const toggleShowCurrentUserResultsOnly = () => {
|
|
53
|
+
state.setShowCurrentUserResultsOnly(!state.showCurrentUserResultsOnly);
|
|
54
|
+
debouncedLoader.cancel();
|
|
55
|
+
debouncedLoader(state.searchText);
|
|
56
|
+
};
|
|
57
|
+
const [openSortDropdown, closeSortDropdown, sortDropdownProps, sortDropdownPropsOpen,] = useDropdownMenu();
|
|
58
|
+
const applySort = (value) => {
|
|
59
|
+
state.setSortBy(value);
|
|
60
|
+
debouncedLoader.cancel();
|
|
61
|
+
debouncedLoader(state.searchText);
|
|
62
|
+
};
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
state
|
|
65
|
+
.searchDataCubes('')
|
|
66
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
67
|
+
}, [store, state]);
|
|
68
|
+
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', {
|
|
69
|
+
'pr-6': Boolean(state.searchText),
|
|
70
|
+
}), onChange: onSearchTextChange, value: state.searchText, placeholder: "Search for DataCube(s) 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.showCurrentUserResultsOnly, onChange: toggleShowCurrentUserResultsOnly }) })] }), _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(DataCubeSortByType).map((option) => (_jsx(FormDropdownMenuItem, { onClick: () => {
|
|
71
|
+
applySort(option);
|
|
72
|
+
closeSortDropdown();
|
|
73
|
+
}, 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.showingDefaultResults ? (`Refine your search to get better matches`) : searchResults.length >=
|
|
74
|
+
DATA_CUBE_LOADER_TYPEAHEAD_SEARCH_LIMIT ? (_jsxs(_Fragment, { children: [`Found ${DATA_CUBE_LOADER_TYPEAHEAD_SEARCH_LIMIT}+ matches`, ' ', _jsx(DataCubeIcon.AlertInfo, { className: "ml-1 text-lg", title: "Some DataCubes are not listed, refine your search to get better matches" })] })) : (`Found ${quantifyList(searchResults, 'match', 'matches')}`) }), searchResults
|
|
75
|
+
.slice(0, DATA_CUBE_LOADER_TYPEAHEAD_SEARCH_LIMIT)
|
|
76
|
+
.map((result, 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 DataCube", onClick: () => state.setSelectedResult(result), 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: result.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: result.lastUpdatedAt
|
|
77
|
+
? formatDistanceToNow(new Date(result.lastUpdatedAt), {
|
|
78
|
+
includeSeconds: true,
|
|
79
|
+
addSuffix: true,
|
|
80
|
+
})
|
|
81
|
+
: '(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: result.owner })] })] })] }), _jsx("div", { className: "flex h-full w-4 items-center justify-center", children: _jsx(DataCubeIcon.ChevronRight, { className: "text-neutral-600" }) })] }, result.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..." })] }))] }) })] }));
|
|
82
|
+
});
|
|
83
|
+
export const LegendDataCubeLoader = observer(() => {
|
|
84
|
+
const store = useLegendDataCubeBuilderStore();
|
|
85
|
+
const application = useApplicationStore();
|
|
86
|
+
const state = store.loader;
|
|
87
|
+
const selectedResult = state.selectedResult;
|
|
88
|
+
const [openManageDropdown, closeManageDropdown, manageDropdownProps] = useDropdownMenu();
|
|
89
|
+
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: !selectedResult ? (_jsx(LegendDataCubeSearcher, {})) : (_jsxs("div", { className: "h-full w-full p-1.5", children: [_jsx("div", { className: "relative 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: selectedResult.name }), _jsx("button", { className: "absolute right-0.5 top-0.5 flex aspect-square w-5 items-center justify-center text-neutral-500", title: "Copy ID to clipboard", onClick: () => {
|
|
90
|
+
application.clipboardService
|
|
91
|
+
.copyTextToClipboard(selectedResult.id)
|
|
92
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
93
|
+
}, children: _jsx(DataCubeIcon.Clipboard, {}) }), _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: selectedResult.lastUpdatedAt
|
|
94
|
+
? formatDistanceToNow(new Date(selectedResult.lastUpdatedAt), {
|
|
95
|
+
includeSeconds: true,
|
|
96
|
+
addSuffix: true,
|
|
97
|
+
})
|
|
98
|
+
: '(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: selectedResult.owner })] })] })] }) }), _jsxs("div", { className: "mt-1.5 flex justify-between", children: [_jsxs(FormButton, { className: "flex items-center pl-1", onClick: () => state.setSelectedResult(undefined), children: [_jsx(DataCubeIcon.ChevronLeft, { className: "mr-0.5" }), "Go Back"] }), store.canCurrentUserManageDataCube(selectedResult) && (_jsxs(_Fragment, { children: [_jsxs(FormButton, { className: "flex w-[138px] items-center justify-start px-0", onClick: openManageDropdown, children: [_jsx("div", { className: "px-2.5", children: "Manage DataCube" }), _jsx("div", { className: "flex h-4 w-4 items-center justify-center border-l border-neutral-400", children: _jsx(DataCubeIcon.CaretDown, { className: "text-sm" }) })] }), _jsx(DropdownMenu, { ...manageDropdownProps, menuProps: {
|
|
99
|
+
classes: {
|
|
100
|
+
paper: 'rounded-none mt-[1px]',
|
|
101
|
+
list: 'w-[138px] p-0 rounded-none border border-neutral-400 bg-white max-h-40 overflow-y-auto py-0.5',
|
|
102
|
+
},
|
|
103
|
+
}, children: _jsx(DropdownMenuItem, { className: "flex h-[22px] w-full items-center px-2.5 text-base hover:bg-neutral-100 focus:bg-neutral-100", onClick: () => {
|
|
104
|
+
store.setDataCubeToDelete(selectedResult);
|
|
105
|
+
store.deleteConfirmationDisplay.open();
|
|
106
|
+
closeManageDropdown();
|
|
107
|
+
}, children: "Delete..." }) })] }))] })] })) }) }), _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: !selectedResult || state.finalizeState.isInProgress, onClick: () => {
|
|
108
|
+
state
|
|
109
|
+
.finalize()
|
|
110
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
111
|
+
}, children: "OK" })] })] }));
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=LegendDataCubeLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeLoader.js","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeLoader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
export declare const
|
|
16
|
+
export declare const LegendDataCubeSaver: (() => import("react/jsx-runtime").JSX.Element) & {
|
|
17
17
|
displayName: string;
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=LegendDataCubeSaver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeSaver.d.ts","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeSaver.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAeH,eAAO,MAAM,mBAAmB;;CA0J9B,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } 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 { DataCubeSpecification, DEFAULT_REPORT_NAME, FormBadge_Advanced, FormButton, FormCheckbox, FormTextInput, } from '@finos/legend-data-cube';
|
|
18
|
+
import { observer } from 'mobx-react-lite';
|
|
19
|
+
import { useEffect, useState } from 'react';
|
|
20
|
+
import { useLegendDataCubeBuilderStore } from './LegendDataCubeBuilderStoreProvider.js';
|
|
21
|
+
import { guaranteeNonNullable, returnUndefOnError } from '@finos/legend-shared';
|
|
22
|
+
export const LegendDataCubeSaver = observer(() => {
|
|
23
|
+
const [name, setName] = useState(DEFAULT_REPORT_NAME);
|
|
24
|
+
const [syncName, setSyncName] = useState(false);
|
|
25
|
+
const [autoEnableCache, setAutoEnableCache] = useState(false);
|
|
26
|
+
const [showAdvancedSettings, setShowAdvancedSettings] = useState(false);
|
|
27
|
+
const store = useLegendDataCubeBuilderStore();
|
|
28
|
+
const builder = guaranteeNonNullable(store.builder);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
const persistentDataCube = builder.persistentDataCube;
|
|
31
|
+
const latestSpecification = persistentDataCube
|
|
32
|
+
? returnUndefOnError(() => DataCubeSpecification.serialization.fromJson(persistentDataCube.content))
|
|
33
|
+
: undefined;
|
|
34
|
+
setName(persistentDataCube?.name ??
|
|
35
|
+
builder.initialSpecification.configuration?.name ??
|
|
36
|
+
DEFAULT_REPORT_NAME);
|
|
37
|
+
setSyncName(false);
|
|
38
|
+
setAutoEnableCache(latestSpecification?.options?.autoEnableCache ?? false);
|
|
39
|
+
}, [builder]);
|
|
40
|
+
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: _jsxs("div", { className: "h-full w-full select-none p-2", children: [_jsxs("div", { className: "flex h-5 w-full items-center", children: [_jsx("div", { className: "flex h-full w-20 flex-shrink-0 items-center text-sm", children: "Name:" }), _jsx(FormTextInput, { className: "w-80", value: name, onChange: (event) => {
|
|
41
|
+
setName(event.target.value);
|
|
42
|
+
}, autoFocus: true })] }), _jsxs("div", { className: "mt-2 flex h-5 w-full items-center", children: [_jsx("div", { className: "flex h-full w-20 flex-shrink-0" }), _jsx(FormCheckbox, { label: "Ensure report name is in sync with DataCube name", checked: syncName, onChange: () => setSyncName(!syncName) })] }), showAdvancedSettings && (_jsxs(_Fragment, { children: [_jsx("div", { className: "my-2 h-[1px] w-full bg-neutral-200" }), _jsxs("div", { className: "mt-2 flex h-5 w-full items-center", children: [_jsx("div", { className: "flex h-full w-20 flex-shrink-0 items-center text-sm", children: "Caching:" }), _jsx(FormCheckbox, { label: "Auto-enable caching", checked: autoEnableCache, onChange: () => setAutoEnableCache(!autoEnableCache) }), _jsx(FormBadge_Advanced, {})] })] }))] }) }) }), _jsxs("div", { className: "flex h-10 items-center justify-between px-2", children: [_jsxs("div", { className: "flex h-full items-center pl-1", children: [_jsx(FormCheckbox, { label: "Show advanced settings?", checked: showAdvancedSettings, onChange: () => setShowAdvancedSettings(!showAdvancedSettings) }), _jsx(FormBadge_Advanced, {})] }), _jsxs("div", { className: "flex", children: [_jsx(FormButton, { onClick: () => store.saverDisplay.close(), children: "Cancel" }), builder.persistentDataCube ? (
|
|
43
|
+
// updating existing DataCube
|
|
44
|
+
_jsxs(_Fragment, { children: [_jsx(FormButton, { className: "ml-2", disabled: !builder.dataCube ||
|
|
45
|
+
store.saveState.isInProgress ||
|
|
46
|
+
!store.canCurrentUserManageDataCube(builder.persistentDataCube), onClick: () => {
|
|
47
|
+
store
|
|
48
|
+
.saveDataCube(name, {
|
|
49
|
+
syncName,
|
|
50
|
+
autoEnableCache,
|
|
51
|
+
saveAsNew: false,
|
|
52
|
+
})
|
|
53
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
54
|
+
}, children: "Save" }), _jsx(FormButton, { className: "ml-2", disabled: !builder.dataCube || store.saveState.isInProgress, onClick: () => {
|
|
55
|
+
store
|
|
56
|
+
.saveDataCube(name, {
|
|
57
|
+
syncName,
|
|
58
|
+
autoEnableCache,
|
|
59
|
+
saveAsNew: true,
|
|
60
|
+
})
|
|
61
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
62
|
+
}, children: "Save As" })] })) : (
|
|
63
|
+
// creating new DataCube
|
|
64
|
+
_jsx(_Fragment, { children: _jsx(FormButton, { className: "ml-2", disabled: !builder.dataCube || store.saveState.isInProgress, onClick: () => {
|
|
65
|
+
store
|
|
66
|
+
.createNewDataCube(name, {
|
|
67
|
+
syncName,
|
|
68
|
+
autoEnableCache,
|
|
69
|
+
})
|
|
70
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
71
|
+
}, children: "Save" }) }))] })] })] }));
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=LegendDataCubeSaver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeSaver.js","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeSaver.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,5 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
export declare const
|
|
17
|
-
|
|
16
|
+
export declare const LegendDataCubeSourceViewer: (() => import("react/jsx-runtime").JSX.Element | null) & {
|
|
17
|
+
displayName: string;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=LegendDataCubeSourceViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeSourceViewer.d.ts","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeSourceViewer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,eAAO,MAAM,0BAA0B;;CAoFrC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
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 { useLegendDataCubeBuilderStore } from './LegendDataCubeBuilderStoreProvider.js';
|
|
19
|
+
import { LegendQueryDataCubeSource } from '../../stores/model/LegendQueryDataCubeSource.js';
|
|
20
|
+
import { useLegendDataCubeApplicationStore } from '../LegendDataCubeFrameworkProvider.js';
|
|
21
|
+
import { EXTERNAL_APPLICATION_NAVIGATION__generateQueryViewUrl } from '../../__lib__/LegendDataCubeNavigation.js';
|
|
22
|
+
import { DataCubeIcon } from '@finos/legend-art';
|
|
23
|
+
export const LegendDataCubeSourceViewer = observer(() => {
|
|
24
|
+
const store = useLegendDataCubeBuilderStore();
|
|
25
|
+
const source = store.builder?.source;
|
|
26
|
+
const application = useLegendDataCubeApplicationStore();
|
|
27
|
+
if (!source) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
if (source instanceof LegendQueryDataCubeSource) {
|
|
31
|
+
const link = application.config.queryApplicationUrl
|
|
32
|
+
? EXTERNAL_APPLICATION_NAVIGATION__generateQueryViewUrl(application.config.queryApplicationUrl, source.info.id)
|
|
33
|
+
: undefined;
|
|
34
|
+
return (_jsx("div", { className: "h-full w-full px-2 pt-2", children: _jsx("div", { className: "h-[calc(100%_-_8px)] w-full border border-neutral-300 bg-white", children: _jsxs("div", { className: "h-full w-full select-none p-2", children: [_jsxs("div", { className: "flex h-6", children: [_jsx("div", { className: "flex h-6 items-center text-xl font-medium", children: _jsx(DataCubeIcon.Table, {}) }), _jsx("div", { className: "ml-1 flex h-6 items-center text-xl font-medium", children: "Legend Query" })] }), link && (_jsxs("div", { className: "mt-2 flex h-6 w-full", children: [_jsx("div", { className: "flex h-full w-[calc(100%_-_20px)] items-center border border-r-0 border-neutral-400 px-1.5 font-bold text-sky-500 underline", children: _jsx("a", { href: link, target: "_blank", rel: "noopener noreferrer", className: "overflow-hidden overflow-ellipsis whitespace-nowrap", children: link }) }), _jsx("button", { className: "flex aspect-square h-full w-6 items-center justify-center border border-neutral-400 bg-neutral-300 hover:brightness-95", onClick: () => {
|
|
35
|
+
store.application.clipboardService
|
|
36
|
+
.copyTextToClipboard(link)
|
|
37
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
38
|
+
}, title: "Copy Link", children: _jsx(DataCubeIcon.Clipboard, {}) })] })), !link && (_jsxs("div", { className: "mt-2 flex h-6 w-full", children: [_jsx("div", { className: "flex h-full w-[calc(100%_-_20px)] items-center border border-r-0 border-neutral-400 bg-neutral-200 px-1.5", children: _jsx("div", { className: "overflow-hidden overflow-ellipsis whitespace-nowrap", children: source.info.id }) }), _jsx("button", { className: "flex aspect-square h-full w-6 items-center justify-center border border-neutral-400 bg-neutral-300 hover:brightness-95", onClick: () => {
|
|
39
|
+
application.clipboardService
|
|
40
|
+
.copyTextToClipboard(source.info.id)
|
|
41
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
42
|
+
}, title: "Copy ID", children: _jsx(DataCubeIcon.Clipboard, {}) })] }))] }) }) }));
|
|
43
|
+
}
|
|
44
|
+
return (_jsx("div", { className: "h-full w-full px-2 pt-2", children: `Can't display source` }));
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=LegendDataCubeSourceViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeSourceViewer.js","sourceRoot":"","sources":["../../../src/components/builder/LegendDataCubeSourceViewer.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,iCAAiC,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,qDAAqD,EAAE,MAAM,2CAA2C,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC,GAAG,EAAE;IACtD,MAAM,KAAK,GAAG,6BAA6B,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;IACrC,MAAM,WAAW,GAAG,iCAAiC,EAAE,CAAC;IAExD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,YAAY,yBAAyB,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,mBAAmB;YACjD,CAAC,CAAC,qDAAqD,CACnD,WAAW,CAAC,MAAM,CAAC,mBAAmB,EACtC,MAAM,CAAC,IAAI,CAAC,EAAE,CACf;YACH,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,CACL,cAAK,SAAS,EAAC,yBAAyB,YACtC,cAAK,SAAS,EAAC,gEAAgE,YAC7E,eAAK,SAAS,EAAC,+BAA+B,aAC5C,eAAK,SAAS,EAAC,UAAU,aACvB,cAAK,SAAS,EAAC,2CAA2C,YACxD,KAAC,YAAY,CAAC,KAAK,KAAG,GAClB,EACN,cAAK,SAAS,EAAC,gDAAgD,6BAEzD,IACF,EACL,IAAI,IAAI,CACP,eAAK,SAAS,EAAC,sBAAsB,aACnC,cAAK,SAAS,EAAC,6HAA6H,YAC1I,YACE,IAAI,EAAE,IAAI,EACV,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,qDAAqD,YAE9D,IAAI,GACH,GACA,EACN,iBACE,SAAS,EAAC,wHAAwH,EAClI,OAAO,EAAE,GAAG,EAAE;wCACZ,KAAK,CAAC,WAAW,CAAC,gBAAgB;6CAC/B,mBAAmB,CAAC,IAAI,CAAC;6CACzB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC9C,CAAC;oCACN,CAAC,EACD,KAAK,EAAC,WAAW,YAEjB,KAAC,YAAY,CAAC,SAAS,KAAG,GACnB,IACL,CACP,EACA,CAAC,IAAI,IAAI,CACR,eAAK,SAAS,EAAC,sBAAsB,aACnC,cAAK,SAAS,EAAC,2GAA2G,YACxH,cAAK,SAAS,EAAC,qDAAqD,YACjE,MAAM,CAAC,IAAI,CAAC,EAAE,GACX,GACF,EACN,iBACE,SAAS,EAAC,wHAAwH,EAClI,OAAO,EAAE,GAAG,EAAE;wCACZ,WAAW,CAAC,gBAAgB;6CACzB,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;6CACnC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC9C,CAAC;oCACN,CAAC,EACD,KAAK,EAAC,SAAS,YAEf,KAAC,YAAY,CAAC,SAAS,KAAG,GACnB,IACL,CACP,IACG,GACF,GACF,CACP,CAAC;IACJ,CAAC;IACD,OAAO,CACL,cAAK,SAAS,EAAC,yBAAyB,YAAE,sBAAsB,GAAO,CACxE,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type { AdhocQueryDataCubeSourceBuilderState } from '../../../stores/
|
|
16
|
+
import type { AdhocQueryDataCubeSourceBuilderState } from '../../../stores/builder/source/AdhocQueryDataCubeSourceBuilderState.js';
|
|
17
17
|
export declare const AdhocQueryDataCubeSourceBuilder: ((props: {
|
|
18
18
|
sourceBuilder: AdhocQueryDataCubeSourceBuilderState;
|
|
19
19
|
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdhocQueryDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/AdhocQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,wEAAwE,CAAC;AAGnI,eAAO,MAAM,+BAA+B,WAClC;IAAE,aAAa,EAAE,oCAAoC,CAAA;CAAE;;CAShE,CAAC"}
|
|
@@ -0,0 +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;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,+BAA+B,GAAG,QAAQ,CACrD,CAAC,KAA8D,EAAE,EAAE;IACjE,OAAO,CACL,cAAK,SAAS,EAAC,oBAAoB,YACjC,eAAK,SAAS,EAAC,wCAAwC,6CACzB,KAAC,aAAa,KAAG,IACzC,GACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type { LegendQueryDataCubeSourceBuilderState } from '../../../stores/
|
|
16
|
+
import type { LegendQueryDataCubeSourceBuilderState } from '../../../stores/builder/source/LegendQueryDataCubeSourceBuilderState.js';
|
|
17
17
|
export declare const LegendQueryDataCubeSourceBuilder: ((props: {
|
|
18
18
|
sourceBuilder: LegendQueryDataCubeSourceBuilderState;
|
|
19
19
|
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendQueryDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LegendQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,yEAAyE,CAAC;AAsOrI,eAAO,MAAM,gCAAgC,WACnC;IAAE,aAAa,EAAE,qCAAqC,CAAA;CAAE;;CA8EjE,CAAC"}
|
|
@@ -23,45 +23,45 @@ import { flowResult } from 'mobx';
|
|
|
23
23
|
import { useRef, useState, useMemo, useEffect } from 'react';
|
|
24
24
|
import { FormButton, FormCheckbox, FormCodeEditor, FormDropdownMenu, FormDropdownMenuItem, FormDropdownMenuTrigger, FormTextInput, } from '@finos/legend-data-cube';
|
|
25
25
|
import { CODE_EDITOR_LANGUAGE } from '@finos/legend-code-editor';
|
|
26
|
-
import {
|
|
26
|
+
import { useLegendDataCubeBuilderStore } from '../LegendDataCubeBuilderStoreProvider.js';
|
|
27
27
|
import { useApplicationStore } from '@finos/legend-application';
|
|
28
28
|
const LegendQuerySearcher = observer((props) => {
|
|
29
29
|
const { state } = props;
|
|
30
|
-
const store =
|
|
30
|
+
const store = useLegendDataCubeBuilderStore();
|
|
31
31
|
const searchInputRef = useRef(null);
|
|
32
32
|
const searchResults = state.queries;
|
|
33
33
|
useEffect(() => {
|
|
34
34
|
searchInputRef.current?.focus();
|
|
35
35
|
}, [state]);
|
|
36
36
|
// search text
|
|
37
|
-
const
|
|
37
|
+
const debouncedLoader = useMemo(() => debounce((input) => {
|
|
38
38
|
flowResult(state.searchQueries(input)).catch((error) => store.alertService.alertUnhandledError(error));
|
|
39
39
|
}, 500), [store, state]);
|
|
40
40
|
const onSearchTextChange = (event) => {
|
|
41
41
|
if (event.target.value !== state.searchText) {
|
|
42
42
|
state.setSearchText(event.target.value);
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
debouncedLoader.cancel();
|
|
44
|
+
debouncedLoader(event.target.value);
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
const clearSearches = () => {
|
|
48
48
|
state.setSearchText('');
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
debouncedLoader.cancel();
|
|
50
|
+
debouncedLoader('');
|
|
51
51
|
};
|
|
52
52
|
// filter and sort
|
|
53
53
|
const [isMineOnly, setIsMineOnly] = useState(false);
|
|
54
54
|
const toggleShowCurrentUserQueriesOnly = () => {
|
|
55
55
|
state.setShowCurrentUserQueriesOnly(!state.showCurrentUserQueriesOnly);
|
|
56
56
|
setIsMineOnly(!isMineOnly);
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
debouncedLoader.cancel();
|
|
58
|
+
debouncedLoader(state.searchText);
|
|
59
59
|
};
|
|
60
60
|
const [openSortDropdown, closeSortDropdown, sortDropdownProps, sortDropdownPropsOpen,] = useDropdownMenu();
|
|
61
61
|
const applySort = (value) => {
|
|
62
62
|
state.setSortBy(value);
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
debouncedLoader.cancel();
|
|
64
|
+
debouncedLoader(state.searchText);
|
|
65
65
|
};
|
|
66
66
|
useEffect(() => {
|
|
67
67
|
flowResult(state.searchQueries('')).catch((error) => store.alertService.alertUnhandledError(error));
|
|
@@ -85,7 +85,7 @@ const LegendQuerySearcher = observer((props) => {
|
|
|
85
85
|
export const LegendQueryDataCubeSourceBuilder = observer((props) => {
|
|
86
86
|
const { sourceBuilder } = props;
|
|
87
87
|
const application = useApplicationStore();
|
|
88
|
-
const store =
|
|
88
|
+
const store = useLegendDataCubeBuilderStore();
|
|
89
89
|
const query = sourceBuilder.query;
|
|
90
90
|
if (!query) {
|
|
91
91
|
return _jsx(LegendQuerySearcher, { state: sourceBuilder.queryLoader });
|
|
@@ -99,6 +99,6 @@ export const LegendQueryDataCubeSourceBuilder = observer((props) => {
|
|
|
99
99
|
includeSeconds: true,
|
|
100
100
|
addSuffix: true,
|
|
101
101
|
})
|
|
102
|
-
: '(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 })] })] })] }) }), sourceBuilder.queryCode !== undefined && (_jsx("div", { className: "mt-1.5 h-40 w-full", children: _jsx(FormCodeEditor, { value: sourceBuilder.queryCode, title: "Query Code", isReadOnly: true, language: CODE_EDITOR_LANGUAGE.PURE, hidePadding: true }) })),
|
|
102
|
+
: '(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 })] })] })] }) }), sourceBuilder.queryCode !== undefined && (_jsx("div", { className: "mt-1.5 h-40 w-full", children: _jsx(FormCodeEditor, { value: sourceBuilder.queryCode, title: "Query Code", isReadOnly: true, language: CODE_EDITOR_LANGUAGE.PURE, hidePadding: true }) })), _jsxs(FormButton, { className: "mt-1.5 flex items-center pl-1", onClick: () => sourceBuilder.unsetQuery(), children: [_jsx(DataCubeIcon.ChevronLeft, { className: "mr-0.5" }), "Go Back"] })] }));
|
|
103
103
|
});
|
|
104
104
|
//# sourceMappingURL=LegendQueryDataCubeSourceBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendQueryDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LegendQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.css
CHANGED
package/lib/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeCacheManager.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeCacheManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAIL,kBAAkB,EAGnB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGpE,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAU;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAW;IACpD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAK;IAEhC,OAAO,CAAC,SAAS,CAAC,CAAiC;IAEnD,OAAO,KAAK,QAAQ,GAKnB;IAEK,UAAU;IAmCV,KAAK,CAAC,MAAM,EAAE,kBAAkB;;;;;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeCacheManager.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeCacheManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAIL,kBAAkB,EAGnB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGpE,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAU;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAW;IACpD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAK;IAEhC,OAAO,CAAC,SAAS,CAAC,CAAiC;IAEnD,OAAO,KAAK,QAAQ,GAKnB;IAEK,UAAU;IAmCV,KAAK,CAAC,MAAM,EAAE,kBAAkB;;;;;IAwEhC,WAAW,CAAC,GAAG,EAAE,MAAM;IAmFvB,YAAY,CAAC,MAAM,EAAE,oBAAoB;IAOzC,OAAO;CAId"}
|