@finos/legend-extension-dsl-data-space 10.1.91 → 10.1.94

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. package/lib/__lib__/query/DSL_DataSpace_LegendQueryNavigation.d.ts +14 -1
  2. package/lib/__lib__/query/DSL_DataSpace_LegendQueryNavigation.d.ts.map +1 -1
  3. package/lib/__lib__/query/DSL_DataSpace_LegendQueryNavigation.js +14 -0
  4. package/lib/__lib__/query/DSL_DataSpace_LegendQueryNavigation.js.map +1 -1
  5. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.d.ts +2 -1
  6. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.d.ts.map +1 -1
  7. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js +11 -0
  8. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js.map +1 -1
  9. package/lib/components/DataSpaceDiagramViewer.d.ts.map +1 -1
  10. package/lib/components/DataSpaceDiagramViewer.js +3 -1
  11. package/lib/components/DataSpaceDiagramViewer.js.map +1 -1
  12. package/lib/components/DataSpaceModelsDocumentation.d.ts.map +1 -1
  13. package/lib/components/DataSpaceModelsDocumentation.js +5 -1
  14. package/lib/components/DataSpaceModelsDocumentation.js.map +1 -1
  15. package/lib/components/DataSpaceQuickStart.d.ts.map +1 -1
  16. package/lib/components/DataSpaceQuickStart.js +5 -1
  17. package/lib/components/DataSpaceQuickStart.js.map +1 -1
  18. package/lib/components/query/DSL_DataSpace_LegendQueryApplicationPlugin.d.ts.map +1 -1
  19. package/lib/components/query/DSL_DataSpace_LegendQueryApplicationPlugin.js +8 -0
  20. package/lib/components/query/DSL_DataSpace_LegendQueryApplicationPlugin.js.map +1 -1
  21. package/lib/components/query/DataSpaceAdvancedSearchModal.d.ts.map +1 -1
  22. package/lib/components/query/DataSpaceAdvancedSearchModal.js +2 -1
  23. package/lib/components/query/DataSpaceAdvancedSearchModal.js.map +1 -1
  24. package/lib/components/query/DataSpaceQueryBuilderTemplateQueryPanelContent.d.ts +18 -0
  25. package/lib/components/query/DataSpaceQueryBuilderTemplateQueryPanelContent.d.ts.map +1 -0
  26. package/lib/components/query/DataSpaceQueryBuilderTemplateQueryPanelContent.js +94 -0
  27. package/lib/components/query/DataSpaceQueryBuilderTemplateQueryPanelContent.js.map +1 -0
  28. package/lib/components/query/DataSpaceTemplateQueryCreator.d.ts +19 -0
  29. package/lib/components/query/DataSpaceTemplateQueryCreator.d.ts.map +1 -0
  30. package/lib/components/query/DataSpaceTemplateQueryCreator.js +37 -0
  31. package/lib/components/query/DataSpaceTemplateQueryCreator.js.map +1 -0
  32. package/lib/components/studio/DataSpacePreviewAction.d.ts.map +1 -1
  33. package/lib/components/studio/DataSpacePreviewAction.js +2 -1
  34. package/lib/components/studio/DataSpacePreviewAction.js.map +1 -1
  35. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts +2 -1
  36. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts.map +1 -1
  37. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js +2 -0
  38. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js.map +1 -1
  39. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts +3 -1
  40. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts.map +1 -1
  41. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js +19 -2
  42. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js.map +1 -1
  43. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts +2 -1
  44. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts.map +1 -1
  45. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js +2 -0
  46. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js.map +1 -1
  47. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.d.ts.map +1 -1
  48. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js +2 -1
  49. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js.map +1 -1
  50. package/lib/index.css +2 -2
  51. package/lib/index.css.map +1 -1
  52. package/lib/package.json +1 -1
  53. package/lib/stores/query/DataSpaceQueryBuilderState.d.ts +2 -0
  54. package/lib/stores/query/DataSpaceQueryBuilderState.d.ts.map +1 -1
  55. package/lib/stores/query/DataSpaceQueryBuilderState.js +6 -0
  56. package/lib/stores/query/DataSpaceQueryBuilderState.js.map +1 -1
  57. package/lib/stores/query/DataSpaceQueryCreatorStore.d.ts.map +1 -1
  58. package/lib/stores/query/DataSpaceQueryCreatorStore.js +11 -4
  59. package/lib/stores/query/DataSpaceQueryCreatorStore.js.map +1 -1
  60. package/lib/stores/query/DataSpaceTemplateQueryCreatorStore.d.ts +34 -0
  61. package/lib/stores/query/DataSpaceTemplateQueryCreatorStore.d.ts.map +1 -0
  62. package/lib/stores/query/DataSpaceTemplateQueryCreatorStore.js +112 -0
  63. package/lib/stores/query/DataSpaceTemplateQueryCreatorStore.js.map +1 -0
  64. package/package.json +12 -12
  65. package/src/__lib__/query/DSL_DataSpace_LegendQueryNavigation.ts +35 -0
  66. package/src/components/DSL_DataSpace_LegendApplicationPlugin.tsx +16 -0
  67. package/src/components/DataSpaceDiagramViewer.tsx +5 -1
  68. package/src/components/DataSpaceModelsDocumentation.tsx +7 -1
  69. package/src/components/DataSpaceQuickStart.tsx +12 -1
  70. package/src/components/query/DSL_DataSpace_LegendQueryApplicationPlugin.tsx +8 -0
  71. package/src/components/query/DataSpaceAdvancedSearchModal.tsx +7 -2
  72. package/src/components/query/DataSpaceQueryBuilderTemplateQueryPanelContent.tsx +224 -0
  73. package/src/components/query/DataSpaceTemplateQueryCreator.tsx +82 -0
  74. package/src/components/studio/DataSpacePreviewAction.tsx +4 -1
  75. package/src/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.ts +3 -0
  76. package/src/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.ts +31 -0
  77. package/src/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.ts +3 -0
  78. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.ts +2 -0
  79. package/src/stores/query/DataSpaceQueryBuilderState.ts +7 -0
  80. package/src/stores/query/DataSpaceQueryCreatorStore.ts +10 -6
  81. package/src/stores/query/DataSpaceTemplateQueryCreatorStore.ts +219 -0
  82. package/tsconfig.json +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSpaceTemplateQueryCreatorStore.js","sourceRoot":"","sources":["../../../src/stores/query/DataSpaceTemplateQueryCreatorStore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-extension-dsl-data-space",
3
- "version": "10.1.91",
3
+ "version": "10.1.94",
4
4
  "description": "Legend extension for Data Space DSL",
5
5
  "keywords": [
6
6
  "legend",
@@ -44,17 +44,17 @@
44
44
  "test:watch": "jest --watch"
45
45
  },
46
46
  "dependencies": {
47
- "@finos/legend-application": "15.0.72",
48
- "@finos/legend-application-query": "13.2.16",
49
- "@finos/legend-application-studio": "28.16.3",
50
- "@finos/legend-art": "7.1.24",
51
- "@finos/legend-extension-dsl-diagram": "8.0.147",
52
- "@finos/legend-graph": "31.9.3",
53
- "@finos/legend-lego": "1.2.16",
54
- "@finos/legend-query-builder": "4.14.16",
55
- "@finos/legend-server-depot": "6.0.37",
56
- "@finos/legend-shared": "10.0.33",
57
- "@finos/legend-storage": "3.0.83",
47
+ "@finos/legend-application": "15.0.73",
48
+ "@finos/legend-application-query": "13.2.19",
49
+ "@finos/legend-application-studio": "28.16.6",
50
+ "@finos/legend-art": "7.1.25",
51
+ "@finos/legend-extension-dsl-diagram": "8.0.150",
52
+ "@finos/legend-graph": "31.9.6",
53
+ "@finos/legend-lego": "1.2.19",
54
+ "@finos/legend-query-builder": "4.14.19",
55
+ "@finos/legend-server-depot": "6.0.38",
56
+ "@finos/legend-shared": "10.0.34",
57
+ "@finos/legend-storage": "3.0.84",
58
58
  "@types/react": "18.2.31",
59
59
  "mobx": "6.10.2",
60
60
  "mobx-react-lite": "4.0.5",
@@ -29,12 +29,19 @@ export enum DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN {
29
29
  DATA_SPACE_PATH = 'dataSpacePath',
30
30
  EXECUTION_CONTEXT = 'executionContext',
31
31
  RUNTIME_PATH = 'runtimePath',
32
+ TEMPLATE = 'template',
32
33
  }
33
34
 
34
35
  export enum DATA_SPACE_QUERY_CREATOR_QUERY_PARAM_TOKEN {
35
36
  CLASS_PATH = 'class',
36
37
  }
37
38
 
39
+ export enum DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN {
40
+ GAV = 'gav',
41
+ DATA_SPACE_PATH = 'dataSpacePath',
42
+ TEMPLATE_QUERY_TITLE = 'templateQueryTitle',
43
+ }
44
+
38
45
  export type DataSpaceQueryCreatorPathParams = {
39
46
  [DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV]: string;
40
47
  [DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH]: string;
@@ -42,6 +49,12 @@ export type DataSpaceQueryCreatorPathParams = {
42
49
  [DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.RUNTIME_PATH]?: string;
43
50
  };
44
51
 
52
+ export type DataSpaceTemplateQueryCreatorPathParams = {
53
+ [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV]: string;
54
+ [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH]: string;
55
+ [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_TITLE]: string;
56
+ };
57
+
45
58
  export type DataSpaceQueryEditorQueryParams = {
46
59
  [DATA_SPACE_QUERY_CREATOR_QUERY_PARAM_TOKEN.CLASS_PATH]?: string | undefined;
47
60
  };
@@ -49,6 +62,7 @@ export type DataSpaceQueryEditorQueryParams = {
49
62
  export const DATA_SPACE_QUERY_ROUTE_PATTERN = Object.freeze({
50
63
  SETUP: `/dataspace`,
51
64
  CREATE: `/dataspace/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV}/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH}/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.EXECUTION_CONTEXT}/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.RUNTIME_PATH}?`,
65
+ TEMPLATE_QUERY: `/dataspace/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV}/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH}/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE}/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_TITLE}`,
52
66
  });
53
67
 
54
68
  export const generateDataSpaceQuerySetupRoute = (): string =>
@@ -86,3 +100,24 @@ export const generateDataSpaceQueryCreatorRoute = (
86
100
  : undefined,
87
101
  }),
88
102
  );
103
+
104
+ export const generateDataSpaceTemplateQueryCreatorRoute = (
105
+ groupId: string,
106
+ artifactId: string,
107
+ versionId: string,
108
+ dataSpacePath: string,
109
+ templateQueryTitle: string,
110
+ ): string =>
111
+ generatePath(
112
+ generateExtensionUrlPattern(DATA_SPACE_QUERY_ROUTE_PATTERN.TEMPLATE_QUERY),
113
+ {
114
+ [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV]:
115
+ generateGAVCoordinates(groupId, artifactId, versionId),
116
+ [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH]:
117
+ dataSpacePath,
118
+ [DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE]:
119
+ DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE,
120
+ [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_TITLE]:
121
+ templateQueryTitle,
122
+ },
123
+ );
@@ -24,7 +24,9 @@ import {
24
24
  import packageJson from '../../package.json' assert { type: 'json' };
25
25
  import type {
26
26
  LoadQueryFilterOption,
27
+ QueryBuilderState,
27
28
  QueryBuilder_LegendApplicationPlugin_Extension,
29
+ TemplateQueryPanelContentRenderer,
28
30
  } from '@finos/legend-query-builder';
29
31
  import { DataSpaceQueryBuilderState } from '../stores/query/DataSpaceQueryBuilderState.js';
30
32
  import {
@@ -34,6 +36,7 @@ import {
34
36
  import { DSL_DATA_SPACE_LEGEND_APPLICATION_COMMAND_CONFIG } from '../__lib__/DSL_DataSpace_LegendApplicationCommand.js';
35
37
  import type { QuerySearchSpecification } from '@finos/legend-graph';
36
38
  import { configureDataGridComponent } from '@finos/legend-lego/data-grid';
39
+ import { renderDataSpaceQueryBuilderTemplateQueryPanelContent } from './query/DataSpaceQueryBuilderTemplateQueryPanelContent.js';
37
40
 
38
41
  export class DSL_DataSpace_LegendApplicationPlugin
39
42
  extends LegendApplicationPlugin
@@ -114,4 +117,17 @@ export class DSL_DataSpace_LegendApplicationPlugin
114
117
  },
115
118
  ];
116
119
  }
120
+
121
+ getExtraTemplateQueryPanelContentRenderer(): TemplateQueryPanelContentRenderer[] {
122
+ return [
123
+ (queryBuilderState: QueryBuilderState): React.ReactNode => {
124
+ if (queryBuilderState instanceof DataSpaceQueryBuilderState) {
125
+ return renderDataSpaceQueryBuilderTemplateQueryPanelContent(
126
+ queryBuilderState,
127
+ );
128
+ }
129
+ return undefined;
130
+ },
131
+ ];
132
+ }
117
133
  }
@@ -235,6 +235,7 @@ const buildDiagramOption = (
235
235
  const DataSpaceDiagramViewerHeader = observer(
236
236
  (props: { dataSpaceViewerState: DataSpaceViewerState }) => {
237
237
  const { dataSpaceViewerState } = props;
238
+ const applicationStore = dataSpaceViewerState.applicationStore;
238
239
  const diagramViewerState = dataSpaceViewerState.diagramViewerState;
239
240
  const diagramOptions =
240
241
  dataSpaceViewerState.dataSpaceAnalysisResult.diagrams.map(
@@ -275,7 +276,10 @@ const DataSpaceDiagramViewerHeader = observer(
275
276
  onChange={onDiagramOptionChange}
276
277
  value={selectedDiagramOption}
277
278
  placeholder="Search for a diagram"
278
- darkMode={true}
279
+ darkMode={
280
+ !applicationStore.layoutService
281
+ .TEMPORARY__isLightColorThemeEnabled
282
+ }
279
283
  />
280
284
  <div className="data-space__viewer__diagram-viewer__header__navigation__pager">
281
285
  <input
@@ -543,14 +543,20 @@ const DataSpaceModelsDocumentationGridPanel = observer(
543
543
  (props: { dataSpaceViewerState: DataSpaceViewerState }) => {
544
544
  const { dataSpaceViewerState } = props;
545
545
  const documentationState = dataSpaceViewerState.modelsDocumentationState;
546
+ const darkMode =
547
+ !dataSpaceViewerState.applicationStore.layoutService
548
+ .TEMPORARY__isLightColorThemeEnabled;
546
549
 
547
550
  return (
548
551
  <div
549
552
  className={clsx(
550
- 'data-space__viewer__models-documentation__grid data-space__viewer__grid ag-theme-balham-dark',
553
+ 'data-space__viewer__models-documentation__grid',
554
+ 'data-space__viewer__grid',
551
555
  {
552
556
  'data-space__viewer__models-documentation__grid--shrink':
553
557
  documentationState.showFilterPanel,
558
+ 'ag-theme-balham': !darkMode,
559
+ 'ag-theme-balham-dark': darkMode,
554
560
  },
555
561
  )}
556
562
  >
@@ -149,6 +149,8 @@ const DataSpaceExecutableTDSResultView = observer(
149
149
  extractTDSExecutableActionConfigurations.find(
150
150
  (config) => config.key === selectedTab,
151
151
  );
152
+ const darkMode =
153
+ !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled;
152
154
 
153
155
  return (
154
156
  <div className="data-space__viewer__quickstart__item__content">
@@ -277,7 +279,16 @@ const DataSpaceExecutableTDSResultView = observer(
277
279
  </div>
278
280
  <div className="data-space__viewer__quickstart__item__content__tab__content">
279
281
  {selectedTab === TDS_EXECUTABLE_ACTION_TAB.COLUMN_SPECS && (
280
- <div className="data-space__viewer__quickstart__tds__column-specs data-space__viewer__grid ag-theme-balham-dark">
282
+ <div
283
+ className={clsx(
284
+ 'data-space__viewer__quickstart__tds__column-specs',
285
+ 'data-space__viewer__grid',
286
+ {
287
+ 'ag-theme-balham': !darkMode,
288
+ 'ag-theme-balham-dark': darkMode,
289
+ },
290
+ )}
291
+ >
281
292
  <DataGrid
282
293
  rowData={columnSpecifications}
283
294
  gridOptions={{
@@ -70,6 +70,7 @@ import type {
70
70
  DataSpace,
71
71
  DataSpaceExecutionContext,
72
72
  } from '../../graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js';
73
+ import { DataSpaceTemplateQueryCreator } from './DataSpaceTemplateQueryCreator.js';
73
74
 
74
75
  const resolveExecutionContext = (
75
76
  dataSpace: DataSpace,
@@ -103,6 +104,13 @@ export class DSL_DataSpace_LegendQueryApplicationPlugin extends LegendQueryAppli
103
104
  addressPatterns: [DATA_SPACE_QUERY_ROUTE_PATTERN.SETUP],
104
105
  renderer: DataSpaceQuerySetup,
105
106
  },
107
+ // data space template query creator
108
+ // Heads-up: TEMPLATE_QUERY must come before CREATE as it has a more specific pattern than CREATE.
109
+ {
110
+ key: 'data-space-template-query-viewer-application-page',
111
+ addressPatterns: [DATA_SPACE_QUERY_ROUTE_PATTERN.TEMPLATE_QUERY],
112
+ renderer: DataSpaceTemplateQueryCreator,
113
+ },
106
114
  // data space query editor
107
115
  {
108
116
  key: 'data-space-query-editor-application-page',
@@ -153,7 +153,9 @@ export const DataSpaceAdvancedSearchModal = observer(
153
153
  }}
154
154
  >
155
155
  <Modal
156
- darkMode={true}
156
+ darkMode={
157
+ !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled
158
+ }
157
159
  className="editor-modal data-space-advanced-search__dialog"
158
160
  >
159
161
  <ModalHeader className="data-space-advanced-search__dialog__header">
@@ -185,7 +187,10 @@ export const DataSpaceAdvancedSearchModal = observer(
185
187
  placeholder="Search for data space by name..."
186
188
  isClearable={true}
187
189
  escapeClearsValue={true}
188
- darkMode={true}
190
+ darkMode={
191
+ !applicationStore.layoutService
192
+ .TEMPORARY__isLightColorThemeEnabled
193
+ }
189
194
  formatOptionLabel={formatDataSpaceOptionLabel}
190
195
  />
191
196
  <button
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {
18
+ PanelHeader,
19
+ FilterIcon,
20
+ BasePopover,
21
+ ClickAwayListener,
22
+ ShareIcon,
23
+ TagIcon,
24
+ } from '@finos/legend-art';
25
+ import { observer } from 'mobx-react-lite';
26
+ import { useRef } from 'react';
27
+ import { DataSpaceExecutableTemplate } from '../../graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js';
28
+ import type { DataSpaceQueryBuilderState } from '../../stores/query/DataSpaceQueryBuilderState.js';
29
+ import {
30
+ ActionAlertActionType,
31
+ ActionAlertType,
32
+ useApplicationStore,
33
+ } from '@finos/legend-application';
34
+ import { generateDataSpaceTemplateQueryCreatorRoute } from '../../__lib__/query/DSL_DataSpace_LegendQueryNavigation.js';
35
+
36
+ const DataSpaceTemplateQueryDialog = observer(
37
+ (props: {
38
+ triggerElement: HTMLElement | null;
39
+ queryBuilderState: DataSpaceQueryBuilderState;
40
+ templateQueries: DataSpaceExecutableTemplate[];
41
+ }) => {
42
+ const { triggerElement, queryBuilderState, templateQueries } = props;
43
+ const applicationStore = useApplicationStore();
44
+ const handleClose = (): void => {
45
+ queryBuilderState.setTemplateQueryDialogOpen(false);
46
+ };
47
+
48
+ const loadTemplateQuery = (template: DataSpaceExecutableTemplate): void => {
49
+ const executionContext =
50
+ queryBuilderState.dataSpace.executionContexts.find(
51
+ (c) => c.name === template.executionContextKey,
52
+ );
53
+ if (
54
+ executionContext &&
55
+ executionContext.hashCode !==
56
+ queryBuilderState.executionContext.hashCode
57
+ ) {
58
+ queryBuilderState.setExecutionContext(executionContext);
59
+ queryBuilderState.propagateExecutionContextChange(executionContext);
60
+ queryBuilderState.initializeWithQuery(template.query);
61
+ queryBuilderState.onExecutionContextChange?.(executionContext);
62
+ } else {
63
+ queryBuilderState.initializeWithQuery(template.query);
64
+ }
65
+ handleClose();
66
+ };
67
+
68
+ const loadQuery = (template: DataSpaceExecutableTemplate): void => {
69
+ if (queryBuilderState.changeDetectionState.hasChanged) {
70
+ applicationStore.alertService.setActionAlertInfo({
71
+ message:
72
+ 'Unsaved changes will be lost if you continue. Do you still want to proceed?',
73
+ type: ActionAlertType.CAUTION,
74
+ actions: [
75
+ {
76
+ label: 'Proceed',
77
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
78
+ handler: (): void => loadTemplateQuery(template),
79
+ },
80
+ {
81
+ label: 'Abort',
82
+ type: ActionAlertActionType.PROCEED,
83
+ default: true,
84
+ },
85
+ ],
86
+ });
87
+ } else {
88
+ loadTemplateQuery(template);
89
+ }
90
+ };
91
+
92
+ const visitTemplateQuery = (
93
+ template: DataSpaceExecutableTemplate,
94
+ ): void => {
95
+ if (queryBuilderState.projectInfo?.groupId) {
96
+ applicationStore.navigationService.navigator.visitAddress(
97
+ applicationStore.navigationService.navigator.generateAddress(
98
+ generateDataSpaceTemplateQueryCreatorRoute(
99
+ queryBuilderState.projectInfo.groupId,
100
+ queryBuilderState.projectInfo.artifactId,
101
+ queryBuilderState.projectInfo.versionId,
102
+ queryBuilderState.dataSpace.path,
103
+ template.title,
104
+ ),
105
+ ),
106
+ );
107
+ }
108
+ };
109
+
110
+ return (
111
+ <ClickAwayListener onClickAway={handleClose}>
112
+ <div>
113
+ <BasePopover
114
+ open={queryBuilderState.isTemplateQueryDialogOpen}
115
+ PaperProps={{
116
+ classes: {
117
+ root: '"query-builder__data-space__template-query-panel__container__root',
118
+ },
119
+ }}
120
+ className="query-builder__data-space__template-query-panel__container"
121
+ onClose={handleClose}
122
+ anchorEl={triggerElement}
123
+ anchorOrigin={{
124
+ vertical: 'bottom',
125
+ horizontal: 'left',
126
+ }}
127
+ transformOrigin={{
128
+ vertical: 'top',
129
+ horizontal: 'center',
130
+ }}
131
+ >
132
+ <div className="query-builder__data-space__template-query-panel">
133
+ <div className="query-builder__data-space__template-query-panel__header">
134
+ Curated Template Queries
135
+ </div>
136
+ {templateQueries.map((query) => (
137
+ <div
138
+ key={query.title}
139
+ className="query-builder__data-space__template-query-panel__query"
140
+ >
141
+ <TagIcon className="query-builder__data-space__template-query-panel__query__icon" />
142
+ <button
143
+ className="query-builder__data-space__template-query-panel__query__entry"
144
+ title="click to load template query"
145
+ onClick={() => loadQuery(query)}
146
+ >
147
+ <div className="query-builder__data-space__template-query-panel__query__entry__content">
148
+ <div className="query-builder__data-space__template-query-panel__query__entry__content__title">
149
+ {query.title}
150
+ </div>
151
+ {query.description && (
152
+ <div className="query-builder__data-space__template-query-panel__query__entry__content__description">
153
+ {query.description}
154
+ </div>
155
+ )}
156
+ </div>
157
+ </button>
158
+ <button
159
+ className="query-builder__data-space__template-query-panel__query__share"
160
+ title="Visit..."
161
+ onClick={() => visitTemplateQuery(query)}
162
+ >
163
+ <ShareIcon />
164
+ <div className="query-builder__data-space__template-query-panel__query__share__label">
165
+ Visit
166
+ </div>
167
+ </button>
168
+ </div>
169
+ ))}
170
+ </div>
171
+ </BasePopover>
172
+ </div>
173
+ </ClickAwayListener>
174
+ );
175
+ },
176
+ );
177
+
178
+ const DataSpaceQueryBuilderTemplateQueryPanel = observer(
179
+ (props: { queryBuilderState: DataSpaceQueryBuilderState }) => {
180
+ const { queryBuilderState } = props;
181
+ const templateQueryButtonRef = useRef<HTMLButtonElement>(null);
182
+ const templateQueries = queryBuilderState.dataSpace.executables?.filter(
183
+ (e) => e instanceof DataSpaceExecutableTemplate,
184
+ ) as DataSpaceExecutableTemplate[] | undefined;
185
+
186
+ const showTemplateQueries = (): void => {
187
+ queryBuilderState.setTemplateQueryDialogOpen(true);
188
+ };
189
+
190
+ return (
191
+ <>
192
+ {templateQueries && templateQueries.length > 0 && (
193
+ <PanelHeader className="query-builder__data-space__template-query">
194
+ <div className="query-builder__data-space__template-query__title">
195
+ <FilterIcon />
196
+ </div>
197
+ <button
198
+ className="query-builder__data-space__template-query__btn"
199
+ ref={templateQueryButtonRef}
200
+ onClick={showTemplateQueries}
201
+ >
202
+ Template ( {templateQueries.length} )
203
+ </button>
204
+ {queryBuilderState.isTemplateQueryDialogOpen && (
205
+ <DataSpaceTemplateQueryDialog
206
+ triggerElement={templateQueryButtonRef.current}
207
+ queryBuilderState={queryBuilderState}
208
+ templateQueries={templateQueries}
209
+ />
210
+ )}
211
+ </PanelHeader>
212
+ )}
213
+ </>
214
+ );
215
+ },
216
+ );
217
+
218
+ export const renderDataSpaceQueryBuilderTemplateQueryPanelContent = (
219
+ queryBuilderState: DataSpaceQueryBuilderState,
220
+ ): React.ReactNode => (
221
+ <DataSpaceQueryBuilderTemplateQueryPanel
222
+ queryBuilderState={queryBuilderState}
223
+ />
224
+ );
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { observer, useLocalObservable } from 'mobx-react-lite';
18
+ import { useParams } from '@finos/legend-application/browser';
19
+ import {
20
+ QueryEditor,
21
+ QueryEditorStoreContext,
22
+ useLegendQueryApplicationStore,
23
+ useLegendQueryBaseStore,
24
+ } from '@finos/legend-application-query';
25
+ import {
26
+ DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN,
27
+ type DataSpaceTemplateQueryCreatorPathParams,
28
+ } from '../../__lib__/query/DSL_DataSpace_LegendQueryNavigation.js';
29
+ import { parseGAVCoordinates } from '@finos/legend-storage';
30
+ import { DataSpaceTemplateQueryCreatorStore } from '../../stores/query/DataSpaceTemplateQueryCreatorStore.js';
31
+
32
+ const DataSpaceTemplateQueryCreatorStoreProvider: React.FC<{
33
+ children: React.ReactNode;
34
+ gav: string;
35
+ dataSpacePath: string;
36
+ templateQueryTitle: string;
37
+ }> = ({ children, gav, dataSpacePath, templateQueryTitle }) => {
38
+ const { groupId, artifactId, versionId } = parseGAVCoordinates(gav);
39
+ const applicationStore = useLegendQueryApplicationStore();
40
+ const baseStore = useLegendQueryBaseStore();
41
+ const store = useLocalObservable(
42
+ () =>
43
+ new DataSpaceTemplateQueryCreatorStore(
44
+ applicationStore,
45
+ baseStore.depotServerClient,
46
+ groupId,
47
+ artifactId,
48
+ versionId,
49
+ dataSpacePath,
50
+ templateQueryTitle,
51
+ ),
52
+ );
53
+ return (
54
+ <QueryEditorStoreContext.Provider value={store}>
55
+ {children}
56
+ </QueryEditorStoreContext.Provider>
57
+ );
58
+ };
59
+
60
+ export const DataSpaceTemplateQueryCreator = observer(() => {
61
+ const parameters = useParams<DataSpaceTemplateQueryCreatorPathParams>();
62
+ const gav =
63
+ parameters[DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV];
64
+ const dataSpacePath =
65
+ parameters[
66
+ DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH
67
+ ];
68
+ const templateQueryTitle =
69
+ parameters[
70
+ DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_TITLE
71
+ ];
72
+
73
+ return (
74
+ <DataSpaceTemplateQueryCreatorStoreProvider
75
+ gav={gav}
76
+ dataSpacePath={dataSpacePath}
77
+ templateQueryTitle={templateQueryTitle}
78
+ >
79
+ <QueryEditor />
80
+ </DataSpaceTemplateQueryCreatorStoreProvider>
81
+ );
82
+ });
@@ -59,6 +59,7 @@ export const DataSpacePreviewAction = observer(
59
59
 
60
60
  export const DataSpacePreviewDialog = observer(() => {
61
61
  const editorStore = useEditorStore();
62
+ const applicationStore = editorStore.applicationStore;
62
63
  const dataSpacePreviewState =
63
64
  DataSpacePreviewState.retrieveNullableState(editorStore);
64
65
  if (!dataSpacePreviewState) {
@@ -81,7 +82,9 @@ export const DataSpacePreviewDialog = observer(() => {
81
82
  }}
82
83
  >
83
84
  <Modal
84
- darkMode={true}
85
+ darkMode={
86
+ !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled
87
+ }
85
88
  className="editor-modal data-space-preview__dialog"
86
89
  >
87
90
  <ModalHeader className="data-space-preview__dialog__header">
@@ -25,6 +25,7 @@ import {
25
25
  type Association,
26
26
  type Package,
27
27
  type RawLambda,
28
+ type DataElementReference,
28
29
  PackageableElement,
29
30
  } from '@finos/legend-graph';
30
31
  import { DATA_SPACE_HASH_STRUCTURE } from '../../../../../DSL_DataSpace_HashUtils.js';
@@ -36,6 +37,7 @@ export class DataSpaceExecutionContext implements Hashable {
36
37
  description?: string | undefined;
37
38
  mapping!: PackageableElementReference<Mapping>;
38
39
  defaultRuntime!: PackageableElementReference<PackageableRuntime>;
40
+ testData: DataElementReference | undefined;
39
41
 
40
42
  get hashCode(): string {
41
43
  return hashArray([
@@ -45,6 +47,7 @@ export class DataSpaceExecutionContext implements Hashable {
45
47
  this.description ?? '',
46
48
  this.mapping.valueForSerialization ?? '',
47
49
  this.defaultRuntime.valueForSerialization ?? '',
50
+ this.testData ?? '',
48
51
  ]);
49
52
  }
50
53
  }