@finos/legend-extension-dsl-data-space 10.4.252 → 10.4.253
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/__lib__/DSL_DataSpace_LegendApplicationCommand.js +8 -8
- package/lib/__lib__/DSL_DataSpace_LegendApplicationCommand.js.map +1 -1
- package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js +2 -2
- package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js.map +1 -1
- package/lib/components/DataSpaceDataAccess.d.ts.map +1 -1
- package/lib/components/DataSpaceDataAccess.js +6 -2
- package/lib/components/DataSpaceDataAccess.js.map +1 -1
- package/lib/components/DataSpaceDescription.d.ts.map +1 -1
- package/lib/components/DataSpaceDescription.js +6 -2
- package/lib/components/DataSpaceDescription.js.map +1 -1
- package/lib/components/DataSpaceInfoPanel.js +1 -1
- package/lib/components/DataSpaceInfoPanel.js.map +1 -1
- package/lib/components/DataSpaceQuickStart.d.ts.map +1 -1
- package/lib/components/DataSpaceQuickStart.js +16 -7
- package/lib/components/DataSpaceQuickStart.js.map +1 -1
- package/lib/components/DataSpaceViewer.js +2 -2
- package/lib/components/DataSpaceViewer.js.map +1 -1
- package/lib/components/DataSpaceWiki.d.ts.map +1 -1
- package/lib/components/DataSpaceWiki.js +2 -2
- package/lib/components/DataSpaceWiki.js.map +1 -1
- package/lib/components/query-builder/DataSpaceAdvancedSearchModal.js +2 -2
- package/lib/components/query-builder/DataSpaceAdvancedSearchModal.js.map +1 -1
- package/lib/components/query-builder/DataSpaceQueryBuilder.js +3 -3
- package/lib/components/query-builder/DataSpaceQueryBuilder.js.map +1 -1
- package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts +2 -1
- package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts.map +1 -1
- package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js +2 -0
- package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js.map +1 -1
- package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.d.ts +2 -0
- package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.d.ts.map +1 -1
- package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.js +12 -0
- package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.js.map +1 -1
- package/lib/graph-manager/index.d.ts +1 -1
- package/lib/graph-manager/index.d.ts.map +1 -1
- package/lib/graph-manager/index.js +1 -1
- package/lib/graph-manager/index.js.map +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js +27 -11
- package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +8 -8
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js +2 -2
- package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts +2 -1
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js +2 -0
- package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js +7 -2
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/DataSpaceLayoutState.d.ts +9 -0
- package/lib/stores/DataSpaceLayoutState.d.ts.map +1 -1
- package/lib/stores/DataSpaceLayoutState.js +36 -0
- package/lib/stores/DataSpaceLayoutState.js.map +1 -1
- package/lib/stores/DataSpaceModelsDocumentationState.d.ts.map +1 -1
- package/lib/stores/DataSpaceModelsDocumentationState.js +3 -1
- package/lib/stores/DataSpaceModelsDocumentationState.js.map +1 -1
- package/lib/stores/DataSpaceViewerDiagramViewerState.d.ts.map +1 -1
- package/lib/stores/DataSpaceViewerDiagramViewerState.js +4 -1
- package/lib/stores/DataSpaceViewerDiagramViewerState.js.map +1 -1
- package/lib/stores/DataSpaceViewerExecutableState.d.ts.map +1 -1
- package/lib/stores/DataSpaceViewerExecutableState.js +2 -1
- package/lib/stores/DataSpaceViewerExecutableState.js.map +1 -1
- package/lib/stores/query-builder/DataSpaceQueryBuilderState.d.ts +2 -1
- package/lib/stores/query-builder/DataSpaceQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/query-builder/DataSpaceQueryBuilderState.js +12 -1
- package/lib/stores/query-builder/DataSpaceQueryBuilderState.js.map +1 -1
- package/package.json +8 -8
- package/src/__lib__/DSL_DataSpace_LegendApplicationCommand.ts +8 -8
- package/src/components/DSL_DataSpace_LegendApplicationPlugin.tsx +2 -2
- package/src/components/DataSpaceDataAccess.tsx +42 -11
- package/src/components/DataSpaceDescription.tsx +40 -14
- package/src/components/DataSpaceInfoPanel.tsx +4 -4
- package/src/components/DataSpaceQuickStart.tsx +73 -15
- package/src/components/DataSpaceViewer.tsx +2 -2
- package/src/components/DataSpaceWiki.tsx +0 -2
- package/src/components/query-builder/DataSpaceAdvancedSearchModal.tsx +4 -4
- package/src/components/query-builder/DataSpaceQueryBuilder.tsx +5 -5
- package/src/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.ts +3 -0
- package/src/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.ts +17 -0
- package/src/graph-manager/index.ts +1 -0
- package/src/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.ts +34 -10
- package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +8 -8
- package/src/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.ts +2 -2
- package/src/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.ts +3 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.ts +20 -0
- package/src/stores/DataSpaceLayoutState.ts +41 -0
- package/src/stores/DataSpaceModelsDocumentationState.ts +7 -1
- package/src/stores/DataSpaceViewerDiagramViewerState.ts +5 -1
- package/src/stores/DataSpaceViewerExecutableState.ts +2 -0
- package/src/stores/query-builder/DataSpaceQueryBuilderState.ts +20 -0
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { AnchorLinkIcon } from '@finos/legend-art';
|
|
17
|
+
import { AnchorLinkIcon, ExpandMoreIcon, clsx } from '@finos/legend-art';
|
|
18
18
|
import { type DataSpaceViewerState } from '../stores/DataSpaceViewerState.js';
|
|
19
19
|
import { observer } from 'mobx-react-lite';
|
|
20
20
|
import { DataSpaceWikiPlaceholder } from './DataSpacePlaceholder.js';
|
|
@@ -33,6 +33,14 @@ export const DataSpaceDescription = observer(
|
|
|
33
33
|
const anchor = generateAnchorForActivity(
|
|
34
34
|
DATA_SPACE_VIEWER_ACTIVITY_MODE.DESCRIPTION,
|
|
35
35
|
);
|
|
36
|
+
const isCollapsed =
|
|
37
|
+
dataSpaceViewerState.layoutState.sectionCollapseState.isSectionCollapsed(
|
|
38
|
+
anchor,
|
|
39
|
+
);
|
|
40
|
+
const toggleCollapse = (): void =>
|
|
41
|
+
dataSpaceViewerState.layoutState.sectionCollapseState.toggleSectionCollapse(
|
|
42
|
+
anchor,
|
|
43
|
+
);
|
|
36
44
|
|
|
37
45
|
useEffect(() => {
|
|
38
46
|
if (sectionRef.current) {
|
|
@@ -48,6 +56,22 @@ export const DataSpaceDescription = observer(
|
|
|
48
56
|
<div ref={sectionRef} className="data-space__viewer__wiki__section">
|
|
49
57
|
<div className="data-space__viewer__wiki__section__header">
|
|
50
58
|
<div className="data-space__viewer__wiki__section__header__label">
|
|
59
|
+
<button
|
|
60
|
+
className="data-space__viewer__wiki__section__header__caret-btn"
|
|
61
|
+
tabIndex={-1}
|
|
62
|
+
onClick={toggleCollapse}
|
|
63
|
+
title={isCollapsed ? 'Expand' : 'Collapse'}
|
|
64
|
+
>
|
|
65
|
+
<ExpandMoreIcon
|
|
66
|
+
className={clsx(
|
|
67
|
+
'data-space__viewer__wiki__section__header__caret',
|
|
68
|
+
{
|
|
69
|
+
'data-space__viewer__wiki__section__header__caret--collapsed':
|
|
70
|
+
isCollapsed,
|
|
71
|
+
},
|
|
72
|
+
)}
|
|
73
|
+
/>
|
|
74
|
+
</button>
|
|
51
75
|
Description
|
|
52
76
|
<button
|
|
53
77
|
className="data-space__viewer__wiki__section__header__anchor"
|
|
@@ -58,20 +82,22 @@ export const DataSpaceDescription = observer(
|
|
|
58
82
|
</button>
|
|
59
83
|
</div>
|
|
60
84
|
</div>
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
<div className="data-
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
|
|
85
|
+
{!isCollapsed && (
|
|
86
|
+
<div className="data-space__viewer__wiki__section__content">
|
|
87
|
+
{analysisResult.description !== undefined && (
|
|
88
|
+
<div className="data-space__viewer__description">
|
|
89
|
+
<div className="data-space__viewer__description__content">
|
|
90
|
+
<DataSpaceMarkdownTextViewer
|
|
91
|
+
value={analysisResult.description}
|
|
92
|
+
/>
|
|
93
|
+
</div>
|
|
68
94
|
</div>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
95
|
+
)}
|
|
96
|
+
{analysisResult.description === undefined && (
|
|
97
|
+
<DataSpaceWikiPlaceholder message="(not specified)" />
|
|
98
|
+
)}
|
|
99
|
+
</div>
|
|
100
|
+
)}
|
|
75
101
|
</div>
|
|
76
102
|
);
|
|
77
103
|
},
|
|
@@ -71,12 +71,12 @@ export const DataSpaceInfoPanel = observer(
|
|
|
71
71
|
</div>
|
|
72
72
|
<div className="data-space__viewer__info__section__entry">
|
|
73
73
|
<div className="data-space__viewer__info__project-info__label">
|
|
74
|
-
Data
|
|
74
|
+
Data Space
|
|
75
75
|
</div>
|
|
76
76
|
<button
|
|
77
77
|
className="data-space__viewer__info__project-info__value"
|
|
78
78
|
tabIndex={-1}
|
|
79
|
-
title="Click to View Data
|
|
79
|
+
title="Click to View Data Space"
|
|
80
80
|
onClick={viewDataSpaceInProject}
|
|
81
81
|
>
|
|
82
82
|
{analysisResult.path}
|
|
@@ -84,7 +84,7 @@ export const DataSpaceInfoPanel = observer(
|
|
|
84
84
|
<button
|
|
85
85
|
className="data-space__viewer__info__project-info__link"
|
|
86
86
|
tabIndex={-1}
|
|
87
|
-
title="Edit Data
|
|
87
|
+
title="Edit Data Space"
|
|
88
88
|
onClick={viewDataSpaceInSDLCProject}
|
|
89
89
|
>
|
|
90
90
|
<PencilIcon />
|
|
@@ -92,7 +92,7 @@ export const DataSpaceInfoPanel = observer(
|
|
|
92
92
|
<button
|
|
93
93
|
className="data-space__viewer__info__project-info__link"
|
|
94
94
|
tabIndex={-1}
|
|
95
|
-
title="View Data
|
|
95
|
+
title="View Data Space"
|
|
96
96
|
onClick={viewDataSpaceInProject}
|
|
97
97
|
>
|
|
98
98
|
<ExternalLinkIcon />
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
CodeIcon,
|
|
22
22
|
CopyIcon,
|
|
23
23
|
DataAccessIcon,
|
|
24
|
+
ExpandMoreIcon,
|
|
24
25
|
LegendLogo,
|
|
25
26
|
MoreVerticalIcon,
|
|
26
27
|
QuestionCircleIcon,
|
|
@@ -470,6 +471,14 @@ const DataSpaceExecutableAnalysisResultView = observer(
|
|
|
470
471
|
const executableAnalysisResult = executableState.value;
|
|
471
472
|
const quickStartRef = useRef<HTMLDivElement>(null);
|
|
472
473
|
const anchor = generateAnchorForQuickStart(executableAnalysisResult);
|
|
474
|
+
const isCollapsed =
|
|
475
|
+
dataSpaceViewerState.layoutState.sectionCollapseState.isSectionCollapsed(
|
|
476
|
+
anchor,
|
|
477
|
+
);
|
|
478
|
+
const toggleCollapse = (): void =>
|
|
479
|
+
dataSpaceViewerState.layoutState.sectionCollapseState.toggleSectionCollapse(
|
|
480
|
+
anchor,
|
|
481
|
+
);
|
|
473
482
|
|
|
474
483
|
useEffect(() => {
|
|
475
484
|
if (quickStartRef.current) {
|
|
@@ -501,6 +510,22 @@ const DataSpaceExecutableAnalysisResultView = observer(
|
|
|
501
510
|
return (
|
|
502
511
|
<div ref={quickStartRef} className="data-space__viewer__quickstart__item">
|
|
503
512
|
<div className="data-space__viewer__quickstart__item__header">
|
|
513
|
+
<button
|
|
514
|
+
className="data-space__viewer__quickstart__item__header__caret-btn"
|
|
515
|
+
tabIndex={-1}
|
|
516
|
+
onClick={toggleCollapse}
|
|
517
|
+
title={isCollapsed ? 'Expand' : 'Collapse'}
|
|
518
|
+
>
|
|
519
|
+
<ExpandMoreIcon
|
|
520
|
+
className={clsx(
|
|
521
|
+
'data-space__viewer__quickstart__item__header__caret',
|
|
522
|
+
{
|
|
523
|
+
'data-space__viewer__quickstart__item__header__caret--collapsed':
|
|
524
|
+
isCollapsed,
|
|
525
|
+
},
|
|
526
|
+
)}
|
|
527
|
+
/>
|
|
528
|
+
</button>
|
|
504
529
|
<div className="data-space__viewer__quickstart__item__header__title">
|
|
505
530
|
{executableAnalysisResult.title}
|
|
506
531
|
</div>
|
|
@@ -515,21 +540,25 @@ const DataSpaceExecutableAnalysisResultView = observer(
|
|
|
515
540
|
<AnchorLinkIcon />
|
|
516
541
|
</button>
|
|
517
542
|
</div>
|
|
518
|
-
{
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
543
|
+
{!isCollapsed && (
|
|
544
|
+
<>
|
|
545
|
+
{executableAnalysisResult.description !== undefined && (
|
|
546
|
+
<div className="data-space__viewer__quickstart__item__description">
|
|
547
|
+
<DataSpaceMarkdownTextViewer
|
|
548
|
+
value={executableAnalysisResult.description}
|
|
549
|
+
/>
|
|
550
|
+
</div>
|
|
551
|
+
)}
|
|
552
|
+
{(executableState.resultState instanceof
|
|
553
|
+
DataSpaceExecutableTDSResultState ||
|
|
554
|
+
executableState.resultState instanceof
|
|
555
|
+
DataSpaceExecutableRelationResultState) && (
|
|
556
|
+
<DataSpaceExecutableResultView
|
|
557
|
+
executableState={executableState}
|
|
558
|
+
resultState={executableState.resultState}
|
|
559
|
+
/>
|
|
560
|
+
)}
|
|
561
|
+
</>
|
|
533
562
|
)}
|
|
534
563
|
</div>
|
|
535
564
|
);
|
|
@@ -546,6 +575,17 @@ export const DataSpaceQuickStart = observer(
|
|
|
546
575
|
const anchor = generateAnchorForActivity(
|
|
547
576
|
DATA_SPACE_VIEWER_ACTIVITY_MODE.QUICK_START,
|
|
548
577
|
);
|
|
578
|
+
const executableAnchors = dataSpaceViewerState.executableStates.map(
|
|
579
|
+
(executableState) => generateAnchorForQuickStart(executableState.value),
|
|
580
|
+
);
|
|
581
|
+
const isCollapsed =
|
|
582
|
+
dataSpaceViewerState.layoutState.sectionCollapseState.areAllSectionsCollapsed(
|
|
583
|
+
executableAnchors,
|
|
584
|
+
);
|
|
585
|
+
const toggleCollapse = (): void =>
|
|
586
|
+
dataSpaceViewerState.layoutState.sectionCollapseState.toggleAllSectionsCollapse(
|
|
587
|
+
executableAnchors,
|
|
588
|
+
);
|
|
549
589
|
|
|
550
590
|
useEffect(() => {
|
|
551
591
|
if (sectionRef.current) {
|
|
@@ -569,6 +609,24 @@ export const DataSpaceQuickStart = observer(
|
|
|
569
609
|
<div ref={sectionRef} className="data-space__viewer__wiki__section">
|
|
570
610
|
<div className="data-space__viewer__wiki__section__header">
|
|
571
611
|
<div className="data-space__viewer__wiki__section__header__label">
|
|
612
|
+
{executableAnchors.length > 0 && (
|
|
613
|
+
<button
|
|
614
|
+
className="data-space__viewer__wiki__section__header__caret-btn"
|
|
615
|
+
tabIndex={-1}
|
|
616
|
+
onClick={toggleCollapse}
|
|
617
|
+
title={isCollapsed ? 'Expand All' : 'Collapse All'}
|
|
618
|
+
>
|
|
619
|
+
<ExpandMoreIcon
|
|
620
|
+
className={clsx(
|
|
621
|
+
'data-space__viewer__wiki__section__header__caret',
|
|
622
|
+
{
|
|
623
|
+
'data-space__viewer__wiki__section__header__caret--collapsed':
|
|
624
|
+
isCollapsed,
|
|
625
|
+
},
|
|
626
|
+
)}
|
|
627
|
+
/>
|
|
628
|
+
</button>
|
|
629
|
+
)}
|
|
572
630
|
Quick Start
|
|
573
631
|
<button
|
|
574
632
|
className="data-space__viewer__wiki__section__header__anchor"
|
|
@@ -85,7 +85,7 @@ const DataSpaceHeader = observer(
|
|
|
85
85
|
{dataSpaceViewerState.isVerified && (
|
|
86
86
|
<div
|
|
87
87
|
className="data-space__viewer__header__title__verified-badge"
|
|
88
|
-
title="Verified Data
|
|
88
|
+
title="Verified Data Space"
|
|
89
89
|
>
|
|
90
90
|
<VerifiedIcon />
|
|
91
91
|
</div>
|
|
@@ -162,7 +162,7 @@ const DataSpaceHeader = observer(
|
|
|
162
162
|
)
|
|
163
163
|
}
|
|
164
164
|
>
|
|
165
|
-
Query Data
|
|
165
|
+
Query Data Space
|
|
166
166
|
</MenuContentItem>
|
|
167
167
|
<MenuContentDivider />
|
|
168
168
|
</>
|
|
@@ -59,7 +59,6 @@ export const DataSpaceWiki = observer(
|
|
|
59
59
|
<div className="data-space__viewer__wiki">
|
|
60
60
|
<DataSpaceDescription dataSpaceViewerState={dataSpaceViewerState} />
|
|
61
61
|
<DiagramViewer
|
|
62
|
-
applicationStore={dataSpaceViewerState.applicationStore}
|
|
63
62
|
diagramViewerState={dataSpaceViewerState.diagramViewerState}
|
|
64
63
|
actions={{
|
|
65
64
|
onQueryClass: dataSpaceViewerState.queryClass,
|
|
@@ -97,7 +96,6 @@ export const DataSpaceWiki = observer(
|
|
|
97
96
|
modelsDocumentationState={
|
|
98
97
|
dataSpaceViewerState.modelsDocumentationState
|
|
99
98
|
}
|
|
100
|
-
applicationStore={dataSpaceViewerState.applicationStore}
|
|
101
99
|
/>
|
|
102
100
|
<DataSpaceQuickStart dataSpaceViewerState={dataSpaceViewerState} />
|
|
103
101
|
<DataSpaceDataAccess dataSpaceViewerState={dataSpaceViewerState} />
|
|
@@ -121,7 +121,7 @@ export const DataSpaceAdvancedSearchModal = observer(
|
|
|
121
121
|
className="editor-modal data-space-advanced-search__dialog"
|
|
122
122
|
>
|
|
123
123
|
<ModalHeader className="data-space-advanced-search__dialog__header">
|
|
124
|
-
<ModalTitle title="Search for data
|
|
124
|
+
<ModalTitle title="Search for data space " />
|
|
125
125
|
<ModalHeaderActions>
|
|
126
126
|
<button
|
|
127
127
|
className="modal__header__action"
|
|
@@ -144,7 +144,7 @@ export const DataSpaceAdvancedSearchModal = observer(
|
|
|
144
144
|
isLoading={searchState.loadDataSpacesState.isInProgress}
|
|
145
145
|
onChange={onDataSpaceOptionChange}
|
|
146
146
|
value={selectedDataSpaceOption}
|
|
147
|
-
placeholder="Search for data
|
|
147
|
+
placeholder="Search for data space by name..."
|
|
148
148
|
isClearable={true}
|
|
149
149
|
escapeClearsValue={true}
|
|
150
150
|
darkMode={
|
|
@@ -164,7 +164,7 @@ export const DataSpaceAdvancedSearchModal = observer(
|
|
|
164
164
|
tabIndex={-1}
|
|
165
165
|
title={`[${
|
|
166
166
|
searchState.toGetSnapShot ? 'on' : 'off'
|
|
167
|
-
}] Toggle show data
|
|
167
|
+
}] Toggle show data spaces from snapshot releases instead of latest releases`}
|
|
168
168
|
onClick={toggleGetSnapshot}
|
|
169
169
|
>
|
|
170
170
|
<BoltIcon />
|
|
@@ -201,7 +201,7 @@ export const DataSpaceAdvancedSearchModal = observer(
|
|
|
201
201
|
<TimesCircleIcon />
|
|
202
202
|
</div>
|
|
203
203
|
<div className="data-space-advanced-search__dialog__view--failed__text">
|
|
204
|
-
{`Can't load data
|
|
204
|
+
{`Can't load data space`}
|
|
205
205
|
</div>
|
|
206
206
|
</div>
|
|
207
207
|
</BlankPanelContent>
|
|
@@ -271,7 +271,7 @@ const DataSpaceQueryBuilderSetupPanelContent = observer(
|
|
|
271
271
|
<PanelHeader title="properties">
|
|
272
272
|
<PanelHeaderActions>
|
|
273
273
|
<PanelHeaderActionItem
|
|
274
|
-
title="copy data
|
|
274
|
+
title="copy data space query set up link to clipboard"
|
|
275
275
|
onClick={copyDataSpaceLinkToClipboard}
|
|
276
276
|
disabled={!queryBuilderState.isDataSpaceLinkable}
|
|
277
277
|
>
|
|
@@ -313,10 +313,10 @@ const DataSpaceQueryBuilderSetupPanelContent = observer(
|
|
|
313
313
|
<div className="query-builder__setup__config-group__item">
|
|
314
314
|
<label
|
|
315
315
|
className="btn--sm query-builder__setup__config-group__data-product"
|
|
316
|
-
title="data
|
|
316
|
+
title="data space"
|
|
317
317
|
htmlFor="query-builder__setup__data-space-selector"
|
|
318
318
|
>
|
|
319
|
-
Data
|
|
319
|
+
Data Space
|
|
320
320
|
</label>
|
|
321
321
|
<CustomSelectorInput
|
|
322
322
|
inputId="query-builder__setup__data-space-selector"
|
|
@@ -325,7 +325,7 @@ const DataSpaceQueryBuilderSetupPanelContent = observer(
|
|
|
325
325
|
isLoading={queryBuilderState.loadEntitiesState.isInProgress}
|
|
326
326
|
onChange={onDataSpaceOptionChange}
|
|
327
327
|
value={selectedDataSpaceOption}
|
|
328
|
-
placeholder="Search for data
|
|
328
|
+
placeholder="Search for data space..."
|
|
329
329
|
escapeClearsValue={true}
|
|
330
330
|
darkMode={
|
|
331
331
|
!applicationStore.layoutService
|
|
@@ -339,7 +339,7 @@ const DataSpaceQueryBuilderSetupPanelContent = observer(
|
|
|
339
339
|
tabIndex={-1}
|
|
340
340
|
className="query-builder__setup__data-space-searcher__btn btn--dark"
|
|
341
341
|
onClick={openDataSpaceAdvancedSearch}
|
|
342
|
-
title="Open advanced search for data
|
|
342
|
+
title="Open advanced search for data space..."
|
|
343
343
|
>
|
|
344
344
|
<SearchIcon />
|
|
345
345
|
</button>
|
package/src/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.ts
CHANGED
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
type Package,
|
|
27
27
|
type RawLambda,
|
|
28
28
|
type DataElementReference,
|
|
29
|
+
type OperationalMetadata,
|
|
29
30
|
PackageableElement,
|
|
30
31
|
ConcreteFunctionDefinition,
|
|
31
32
|
generateFunctionPrettyName,
|
|
@@ -209,6 +210,7 @@ export class DataSpace extends PackageableElement implements Hashable {
|
|
|
209
210
|
executables?: DataSpaceExecutable[] | undefined;
|
|
210
211
|
diagrams?: DataSpaceDiagram[] | undefined;
|
|
211
212
|
supportInfo?: DataSpaceSupportInfo | undefined;
|
|
213
|
+
operationalMetadata?: OperationalMetadata | undefined;
|
|
212
214
|
|
|
213
215
|
protected override get _elementHashCode(): string {
|
|
214
216
|
return hashArray([
|
|
@@ -225,6 +227,7 @@ export class DataSpace extends PackageableElement implements Hashable {
|
|
|
225
227
|
hashArray(this.executables ?? []),
|
|
226
228
|
hashArray(this.diagrams ?? []),
|
|
227
229
|
this.supportInfo ?? '',
|
|
230
|
+
this.operationalMetadata ?? '',
|
|
228
231
|
]);
|
|
229
232
|
}
|
|
230
233
|
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import {
|
|
18
18
|
observe_Abstract_PackageableElement,
|
|
19
19
|
observe_DataElementReference,
|
|
20
|
+
type OperationalMetadata,
|
|
20
21
|
observe_PackageableElementReference,
|
|
21
22
|
observe_RawLambda,
|
|
22
23
|
observe_StereotypeReference,
|
|
@@ -213,6 +214,18 @@ export const observe_DataSpaceSupportInfo = (
|
|
|
213
214
|
return metamodel;
|
|
214
215
|
};
|
|
215
216
|
|
|
217
|
+
export const observe_DataSpaceOperationalMetadata = skipObserved(
|
|
218
|
+
(metamodel: OperationalMetadata): OperationalMetadata => {
|
|
219
|
+
makeObservable(metamodel, {
|
|
220
|
+
coverageRegions: observable,
|
|
221
|
+
updateFrequency: observable,
|
|
222
|
+
hashCode: computed,
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
return metamodel;
|
|
226
|
+
},
|
|
227
|
+
);
|
|
228
|
+
|
|
216
229
|
export const observe_DataSpace = skipObserved(
|
|
217
230
|
(metamodel: DataSpace): DataSpace => {
|
|
218
231
|
observe_Abstract_PackageableElement(metamodel);
|
|
@@ -226,6 +239,7 @@ export const observe_DataSpace = skipObserved(
|
|
|
226
239
|
executables: observable,
|
|
227
240
|
diagrams: observable,
|
|
228
241
|
supportInfo: observable,
|
|
242
|
+
operationalMetadata: observable,
|
|
229
243
|
_elementHashCode: override,
|
|
230
244
|
});
|
|
231
245
|
|
|
@@ -248,6 +262,9 @@ export const observe_DataSpace = skipObserved(
|
|
|
248
262
|
if (metamodel.supportInfo) {
|
|
249
263
|
observe_DataSpaceSupportInfo(metamodel.supportInfo);
|
|
250
264
|
}
|
|
265
|
+
if (metamodel.operationalMetadata) {
|
|
266
|
+
observe_DataSpaceOperationalMetadata(metamodel.operationalMetadata);
|
|
267
|
+
}
|
|
251
268
|
|
|
252
269
|
return metamodel;
|
|
253
270
|
},
|
|
@@ -45,6 +45,7 @@ export {
|
|
|
45
45
|
observe_DataSpaceExecutable,
|
|
46
46
|
observe_DataSpaceExecutionContext,
|
|
47
47
|
observe_DataSpaceMappingProvider,
|
|
48
|
+
observe_DataSpaceOperationalMetadata,
|
|
48
49
|
observe_DataSpaceSupportInfo,
|
|
49
50
|
} from '../graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.js';
|
|
50
51
|
export {
|
|
@@ -85,6 +85,9 @@ import {
|
|
|
85
85
|
type V1_SavedQueryExecutionBuilder,
|
|
86
86
|
type V1_ElementPointerType,
|
|
87
87
|
type V1_RawLambda,
|
|
88
|
+
type V1_DeliveryFrequency,
|
|
89
|
+
type V1_DataProductRegion,
|
|
90
|
+
V1_DataProductOperationalMetadata,
|
|
88
91
|
V1_taggedValueModelSchema,
|
|
89
92
|
PackageableElementExplicitReference,
|
|
90
93
|
V1_PackageableElementPointer,
|
|
@@ -105,6 +108,9 @@ import {
|
|
|
105
108
|
V1_buildEmbeddedData,
|
|
106
109
|
V1_transformEmbeddedData,
|
|
107
110
|
DataElementReference,
|
|
111
|
+
OperationalMetadata,
|
|
112
|
+
type DeliveryFrequency,
|
|
113
|
+
type Region,
|
|
108
114
|
V1_DataElementReference,
|
|
109
115
|
QueryDataSpaceExecutionContextInfo,
|
|
110
116
|
generateFunctionPrettyName,
|
|
@@ -151,7 +157,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
|
|
|
151
157
|
const execContext = new DataSpaceExecutionContext();
|
|
152
158
|
execContext.name = guaranteeNonEmptyString(
|
|
153
159
|
contextProtocol.name,
|
|
154
|
-
`Data
|
|
160
|
+
`Data space execution context 'name' field is missing or empty`,
|
|
155
161
|
);
|
|
156
162
|
execContext.title = contextProtocol.title;
|
|
157
163
|
execContext.description = contextProtocol.description;
|
|
@@ -240,7 +246,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
|
|
|
240
246
|
return elementPointer;
|
|
241
247
|
}
|
|
242
248
|
throw new UnsupportedOperationError(
|
|
243
|
-
`Can't find data
|
|
249
|
+
`Can't find data space element (only allow packages, classes, enumerations, and associations) '${pointer.path}'`,
|
|
244
250
|
);
|
|
245
251
|
});
|
|
246
252
|
}
|
|
@@ -307,7 +313,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
|
|
|
307
313
|
);
|
|
308
314
|
} catch {
|
|
309
315
|
throw new UnsupportedOperationError(
|
|
310
|
-
`Can't analyze data
|
|
316
|
+
`Can't analyze data space executable with element in path: ${executableProtocol.executable.path}`,
|
|
311
317
|
executableProtocol,
|
|
312
318
|
);
|
|
313
319
|
}
|
|
@@ -315,7 +321,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
|
|
|
315
321
|
return executable;
|
|
316
322
|
} else {
|
|
317
323
|
throw new UnsupportedOperationError(
|
|
318
|
-
`Can't build data
|
|
324
|
+
`Can't build data space executable`,
|
|
319
325
|
executableProtocol,
|
|
320
326
|
);
|
|
321
327
|
}
|
|
@@ -345,7 +351,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
|
|
|
345
351
|
elementProtocol.supportInfo.documentationUrl;
|
|
346
352
|
supportEmail.address = guaranteeNonEmptyString(
|
|
347
353
|
elementProtocol.supportInfo.address,
|
|
348
|
-
`Data
|
|
354
|
+
`Data space support email 'address' field is missing or empty`,
|
|
349
355
|
);
|
|
350
356
|
element.supportInfo = supportEmail;
|
|
351
357
|
} else if (
|
|
@@ -362,11 +368,21 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
|
|
|
362
368
|
element.supportInfo = combinedInfo;
|
|
363
369
|
} else {
|
|
364
370
|
throw new UnsupportedOperationError(
|
|
365
|
-
`Can't build data
|
|
371
|
+
`Can't build data space support info`,
|
|
366
372
|
elementProtocol.supportInfo,
|
|
367
373
|
);
|
|
368
374
|
}
|
|
369
375
|
}
|
|
376
|
+
if (elementProtocol.operationalMetadata) {
|
|
377
|
+
const operationalMetadata = new OperationalMetadata();
|
|
378
|
+
operationalMetadata.updateFrequency = elementProtocol
|
|
379
|
+
.operationalMetadata.updateFrequency as
|
|
380
|
+
| DeliveryFrequency
|
|
381
|
+
| undefined;
|
|
382
|
+
operationalMetadata.coverageRegions = elementProtocol
|
|
383
|
+
.operationalMetadata.coverageRegions as Region[] | undefined;
|
|
384
|
+
element.operationalMetadata = operationalMetadata;
|
|
385
|
+
}
|
|
370
386
|
},
|
|
371
387
|
}),
|
|
372
388
|
];
|
|
@@ -544,7 +560,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
|
|
|
544
560
|
return executableProtocol;
|
|
545
561
|
} else {
|
|
546
562
|
throw new UnsupportedOperationError(
|
|
547
|
-
`Can't transform data
|
|
563
|
+
`Can't transform data space executable`,
|
|
548
564
|
executable,
|
|
549
565
|
);
|
|
550
566
|
}
|
|
@@ -579,11 +595,19 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
|
|
|
579
595
|
protocol.supportInfo = combinedInfo;
|
|
580
596
|
} else {
|
|
581
597
|
throw new UnsupportedOperationError(
|
|
582
|
-
`Can't transform data
|
|
598
|
+
`Can't transform data space support info`,
|
|
583
599
|
metamodel.supportInfo,
|
|
584
600
|
);
|
|
585
601
|
}
|
|
586
602
|
}
|
|
603
|
+
if (metamodel.operationalMetadata) {
|
|
604
|
+
const operationalMetadata = new V1_DataProductOperationalMetadata();
|
|
605
|
+
operationalMetadata.updateFrequency = metamodel.operationalMetadata
|
|
606
|
+
.updateFrequency as V1_DeliveryFrequency | undefined;
|
|
607
|
+
operationalMetadata.coverageRegions = metamodel.operationalMetadata
|
|
608
|
+
.coverageRegions as V1_DataProductRegion[] | undefined;
|
|
609
|
+
protocol.operationalMetadata = operationalMetadata;
|
|
610
|
+
}
|
|
587
611
|
return protocol;
|
|
588
612
|
}
|
|
589
613
|
return undefined;
|
|
@@ -605,13 +629,13 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
|
|
|
605
629
|
);
|
|
606
630
|
const defaultExecutionContext = guaranteeNonNullable(
|
|
607
631
|
dataSpace.value.defaultExecutionContext,
|
|
608
|
-
`Can't include data
|
|
632
|
+
`Can't include data space '${protocol.includedDataSpace}' in a mapping: 'defaultExecutionContext' is required`,
|
|
609
633
|
);
|
|
610
634
|
const includedMapping = new MappingIncludeDataSpace(
|
|
611
635
|
parentMapping,
|
|
612
636
|
guaranteeNonNullable(
|
|
613
637
|
defaultExecutionContext.mapping,
|
|
614
|
-
`Can't include data
|
|
638
|
+
`Can't include data space '${protocol.includedDataSpace}' in a mapping: default execution context 'mapping' is required`,
|
|
615
639
|
),
|
|
616
640
|
dataSpace,
|
|
617
641
|
);
|
|
@@ -195,7 +195,7 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
|
|
|
195
195
|
ec.mapping?.path === currentQuery.mapping &&
|
|
196
196
|
ec.defaultRuntime?.path === currentQuery.runtime,
|
|
197
197
|
)[0]?.name,
|
|
198
|
-
'can`t find a corresponding executatin key based on query`s mapping and runtime in data
|
|
198
|
+
'can`t find a corresponding executatin key based on query`s mapping and runtime in data space',
|
|
199
199
|
);
|
|
200
200
|
}
|
|
201
201
|
|
|
@@ -227,7 +227,7 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
|
|
|
227
227
|
} else {
|
|
228
228
|
actionState?.setMessage('Fetching project entities and dependencies...');
|
|
229
229
|
const entities = await entitiesRetriever();
|
|
230
|
-
actionState?.setMessage('Analyzing data
|
|
230
|
+
actionState?.setMessage('Analyzing data space...');
|
|
231
231
|
analysisResult = await engineClient.postWithTracing<
|
|
232
232
|
PlainObject<V1_DataSpaceAnalysisResult>
|
|
233
233
|
>(
|
|
@@ -350,7 +350,7 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
|
|
|
350
350
|
analysisResult = result;
|
|
351
351
|
} else {
|
|
352
352
|
throw new GraphBuilderError(
|
|
353
|
-
'Fail to get a valid data
|
|
353
|
+
'Fail to get a valid data space analytics json from metadata, start building full graph',
|
|
354
354
|
);
|
|
355
355
|
}
|
|
356
356
|
const plugins =
|
|
@@ -402,14 +402,14 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
|
|
|
402
402
|
let cacheResult: PlainObject<V1_DataSpaceAnalysisResult> | undefined;
|
|
403
403
|
try {
|
|
404
404
|
actionState?.setMessage(
|
|
405
|
-
'Fetching data
|
|
405
|
+
'Fetching data space analysis result from cache...',
|
|
406
406
|
);
|
|
407
407
|
cacheResult = await cacheRetriever();
|
|
408
408
|
} catch (error) {
|
|
409
409
|
assertErrorThrown(error);
|
|
410
410
|
this.graphManager.logService.warn(
|
|
411
411
|
LogEvent.create(GRAPH_MANAGER_EVENT.CACHE_MANAGER_FAILURE),
|
|
412
|
-
`Can't fetch data
|
|
412
|
+
`Can't fetch data space analysis result cache: ${error.message}`,
|
|
413
413
|
);
|
|
414
414
|
}
|
|
415
415
|
return cacheResult;
|
|
@@ -421,13 +421,13 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
|
|
|
421
421
|
): Promise<PlainObject<StoredFileGeneration>[]> {
|
|
422
422
|
let cacheResult: PlainObject<StoredFileGeneration>[] = [];
|
|
423
423
|
try {
|
|
424
|
-
actionState?.setMessage('Fetching data
|
|
424
|
+
actionState?.setMessage('Fetching data space artifacts from cache...');
|
|
425
425
|
cacheResult = await cacheRetriever();
|
|
426
426
|
} catch (error) {
|
|
427
427
|
assertErrorThrown(error);
|
|
428
428
|
this.graphManager.logService.warn(
|
|
429
429
|
LogEvent.create(GRAPH_MANAGER_EVENT.CACHE_MANAGER_FAILURE),
|
|
430
|
-
`Can't fetch data
|
|
430
|
+
`Can't fetch data space artifacts cache: ${error.message}`,
|
|
431
431
|
);
|
|
432
432
|
}
|
|
433
433
|
return cacheResult;
|
|
@@ -593,7 +593,7 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
|
|
|
593
593
|
analysisResult.supportInfo.documentationUrl;
|
|
594
594
|
supportEmail.address = guaranteeNonEmptyString(
|
|
595
595
|
analysisResult.supportInfo.address,
|
|
596
|
-
`Data
|
|
596
|
+
`Data space support email 'address' field is missing or empty`,
|
|
597
597
|
);
|
|
598
598
|
result.supportInfo = supportEmail;
|
|
599
599
|
} else if (
|
|
@@ -454,7 +454,7 @@ const V1_deserializeDataSpaceExecutableInfo = (
|
|
|
454
454
|
);
|
|
455
455
|
default:
|
|
456
456
|
throw new UnsupportedOperationError(
|
|
457
|
-
`Can't deserialize data
|
|
457
|
+
`Can't deserialize data space executable info of type '${json._type}'`,
|
|
458
458
|
);
|
|
459
459
|
}
|
|
460
460
|
};
|
|
@@ -505,7 +505,7 @@ const V1_deserializeDataSpaceExecutableResult = (
|
|
|
505
505
|
);
|
|
506
506
|
default:
|
|
507
507
|
throw new UnsupportedOperationError(
|
|
508
|
-
`Can't deserialize data
|
|
508
|
+
`Can't deserialize data space executable result of type '${json._type}'`,
|
|
509
509
|
);
|
|
510
510
|
}
|
|
511
511
|
};
|