@finos/legend-extension-dsl-data-space 10.4.252 → 10.4.254
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/DataSpaceLegendAISchema.d.ts.map +1 -1
- package/lib/components/DataSpaceLegendAISchema.js +6 -1
- package/lib/components/DataSpaceLegendAISchema.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/DataSpaceSupportPanel.d.ts.map +1 -1
- package/lib/components/DataSpaceSupportPanel.js +13 -1
- package/lib/components/DataSpaceSupportPanel.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/DSL_DataSpace_HashUtils.d.ts +4 -0
- package/lib/graph/DSL_DataSpace_HashUtils.d.ts.map +1 -1
- package/lib/graph/DSL_DataSpace_HashUtils.js +4 -0
- package/lib/graph/DSL_DataSpace_HashUtils.js.map +1 -1
- package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts +26 -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 +55 -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 +67 -1
- 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 +4 -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 +109 -13
- package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +13 -9
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_SystemModels.json +8 -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 +26 -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 +55 -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 +36 -3
- 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 +14 -14
- 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/DataSpaceLegendAISchema.ts +5 -0
- package/src/components/DataSpaceQuickStart.tsx +73 -15
- package/src/components/DataSpaceSupportPanel.tsx +125 -0
- 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/DSL_DataSpace_HashUtils.ts +4 -0
- package/src/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.ts +67 -0
- package/src/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.ts +92 -0
- package/src/graph-manager/index.ts +1 -0
- package/src/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.ts +159 -10
- package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +16 -8
- package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_SystemModels.json +8 -1
- 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 +67 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.ts +61 -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 />
|
|
@@ -55,6 +55,7 @@ import {
|
|
|
55
55
|
import {
|
|
56
56
|
DataSpaceSupportEmail,
|
|
57
57
|
DataSpaceSupportCombinedInfo,
|
|
58
|
+
DataSpaceSupportFullInfo,
|
|
58
59
|
} from '../graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js';
|
|
59
60
|
|
|
60
61
|
const MAX_QUERY_SCAN_LENGTH = 5_000;
|
|
@@ -392,6 +393,10 @@ export function extractMetadataFromDataSpaceAnalysis(
|
|
|
392
393
|
supportInfoText = result.supportInfo.address;
|
|
393
394
|
} else if (result.supportInfo instanceof DataSpaceSupportCombinedInfo) {
|
|
394
395
|
supportInfoText = (result.supportInfo.emails ?? []).join(', ');
|
|
396
|
+
} else if (result.supportInfo instanceof DataSpaceSupportFullInfo) {
|
|
397
|
+
supportInfoText = (result.supportInfo.emails ?? [])
|
|
398
|
+
.map((email) => email.address)
|
|
399
|
+
.join(', ');
|
|
395
400
|
}
|
|
396
401
|
|
|
397
402
|
const metadata: LegendAIProductMetadata = {
|
|
@@ -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"
|
|
@@ -25,8 +25,10 @@ import {
|
|
|
25
25
|
SupportIcon,
|
|
26
26
|
} from '@finos/legend-art';
|
|
27
27
|
import {
|
|
28
|
+
type DataSpaceLink,
|
|
28
29
|
DataSpaceSupportCombinedInfo,
|
|
29
30
|
DataSpaceSupportEmail,
|
|
31
|
+
DataSpaceSupportFullInfo,
|
|
30
32
|
} from '../graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js';
|
|
31
33
|
import { type DataSpaceViewerState } from '../stores/DataSpaceViewerState.js';
|
|
32
34
|
|
|
@@ -160,6 +162,122 @@ const DataSpaceSupportCombinedInfoViewer = observer(
|
|
|
160
162
|
},
|
|
161
163
|
);
|
|
162
164
|
|
|
165
|
+
const DataSpaceSupportLinkEntry = observer(
|
|
166
|
+
(props: {
|
|
167
|
+
label: string;
|
|
168
|
+
link: DataSpaceLink | undefined;
|
|
169
|
+
iconClassName?: string | undefined;
|
|
170
|
+
icon: React.ReactNode;
|
|
171
|
+
}) => {
|
|
172
|
+
const { label, link, iconClassName, icon } = props;
|
|
173
|
+
|
|
174
|
+
return (
|
|
175
|
+
<div className="data-space__viewer__support__entry" title={label}>
|
|
176
|
+
<div
|
|
177
|
+
className={`data-space__viewer__support__entry__icon${
|
|
178
|
+
iconClassName ? ` ${iconClassName}` : ''
|
|
179
|
+
}`}
|
|
180
|
+
>
|
|
181
|
+
{icon}
|
|
182
|
+
</div>
|
|
183
|
+
{link ? (
|
|
184
|
+
<a
|
|
185
|
+
href={link.url}
|
|
186
|
+
className="data-space__viewer__support__entry__content"
|
|
187
|
+
>
|
|
188
|
+
{link.label ?? link.url}
|
|
189
|
+
</a>
|
|
190
|
+
) : (
|
|
191
|
+
<div className="data-space__viewer__support__entry__content">
|
|
192
|
+
(not specified)
|
|
193
|
+
</div>
|
|
194
|
+
)}
|
|
195
|
+
</div>
|
|
196
|
+
);
|
|
197
|
+
},
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
const DataSpaceSupportFullInfoViewer = observer(
|
|
201
|
+
(props: {
|
|
202
|
+
dataSpaceViewerState: DataSpaceViewerState;
|
|
203
|
+
supportInfo: DataSpaceSupportFullInfo;
|
|
204
|
+
}) => {
|
|
205
|
+
const { supportInfo } = props;
|
|
206
|
+
|
|
207
|
+
return (
|
|
208
|
+
<>
|
|
209
|
+
<div className="data-space__viewer__support__section">
|
|
210
|
+
<DataSpaceSupportLinkEntry
|
|
211
|
+
label="Website"
|
|
212
|
+
link={supportInfo.website}
|
|
213
|
+
iconClassName="data-space__viewer__support__entry__icon--website"
|
|
214
|
+
icon={<HomeIcon />}
|
|
215
|
+
/>
|
|
216
|
+
<DataSpaceSupportLinkEntry
|
|
217
|
+
label="Documentation"
|
|
218
|
+
link={supportInfo.documentation}
|
|
219
|
+
icon={<DocumentationIcon />}
|
|
220
|
+
/>
|
|
221
|
+
<DataSpaceSupportLinkEntry
|
|
222
|
+
label="Support"
|
|
223
|
+
link={supportInfo.supportUrl}
|
|
224
|
+
iconClassName="data-space__viewer__support__entry__icon--support"
|
|
225
|
+
icon={<SupportIcon />}
|
|
226
|
+
/>
|
|
227
|
+
<DataSpaceSupportLinkEntry
|
|
228
|
+
label="FAQ"
|
|
229
|
+
link={supportInfo.faqUrl}
|
|
230
|
+
iconClassName="data-space__viewer__support__entry__icon--faq"
|
|
231
|
+
icon={<QuestionAnswerIcon />}
|
|
232
|
+
/>
|
|
233
|
+
</div>
|
|
234
|
+
{Boolean(supportInfo.emails?.length) && (
|
|
235
|
+
<div className="data-space__viewer__support__section">
|
|
236
|
+
{supportInfo.emails?.map((email) => (
|
|
237
|
+
<div
|
|
238
|
+
key={email.address}
|
|
239
|
+
className="data-space__viewer__support__entry"
|
|
240
|
+
title={email.title}
|
|
241
|
+
>
|
|
242
|
+
<div className="data-space__viewer__support__entry__icon">
|
|
243
|
+
<EnvelopeIcon />
|
|
244
|
+
</div>
|
|
245
|
+
<a
|
|
246
|
+
href={`mailto:${email.address}`}
|
|
247
|
+
className="data-space__viewer__support__entry__content"
|
|
248
|
+
>
|
|
249
|
+
{email.title} - {email.address}
|
|
250
|
+
</a>
|
|
251
|
+
</div>
|
|
252
|
+
))}
|
|
253
|
+
</div>
|
|
254
|
+
)}
|
|
255
|
+
{Boolean(supportInfo.expertise?.length) && (
|
|
256
|
+
<div className="data-space__viewer__support__section">
|
|
257
|
+
{supportInfo.expertise?.map((expertise, idx) => (
|
|
258
|
+
<div
|
|
259
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
260
|
+
key={idx}
|
|
261
|
+
className="data-space__viewer__support__entry"
|
|
262
|
+
title="Expertise"
|
|
263
|
+
>
|
|
264
|
+
<div className="data-space__viewer__support__entry__icon">
|
|
265
|
+
<SparkleIcon />
|
|
266
|
+
</div>
|
|
267
|
+
<div className="data-space__viewer__support__entry__content">
|
|
268
|
+
{expertise.description ?? '(not specified)'}
|
|
269
|
+
{Boolean(expertise.expertIds?.length) &&
|
|
270
|
+
` (${expertise.expertIds?.join(', ')})`}
|
|
271
|
+
</div>
|
|
272
|
+
</div>
|
|
273
|
+
))}
|
|
274
|
+
</div>
|
|
275
|
+
)}
|
|
276
|
+
</>
|
|
277
|
+
);
|
|
278
|
+
},
|
|
279
|
+
);
|
|
280
|
+
|
|
163
281
|
const DataSpaceSupport = observer(
|
|
164
282
|
(props: { dataSpaceViewerState: DataSpaceViewerState }) => {
|
|
165
283
|
const { dataSpaceViewerState } = props;
|
|
@@ -182,6 +300,13 @@ const DataSpaceSupport = observer(
|
|
|
182
300
|
supportInfo={supportInfo}
|
|
183
301
|
/>
|
|
184
302
|
);
|
|
303
|
+
} else if (supportInfo instanceof DataSpaceSupportFullInfo) {
|
|
304
|
+
return (
|
|
305
|
+
<DataSpaceSupportFullInfoViewer
|
|
306
|
+
dataSpaceViewerState={dataSpaceViewerState}
|
|
307
|
+
supportInfo={supportInfo}
|
|
308
|
+
/>
|
|
309
|
+
);
|
|
185
310
|
}
|
|
186
311
|
return (
|
|
187
312
|
<div className="data-space__viewer__panel__content__placeholder">
|
|
@@ -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>
|
|
@@ -25,5 +25,9 @@ export enum DATA_SPACE_HASH_STRUCTURE {
|
|
|
25
25
|
DATA_SPACE_DIAGRAM = 'DATA_SPACE_DIAGRAM',
|
|
26
26
|
DATA_SPACE_SUPPORT_COMBINED_INFO = 'DATA_SPACE_SUPPORT_COMBINED_INFO',
|
|
27
27
|
DATA_SPACE_SUPPORT_EMAIL = 'DATA_SPACE_SUPPORT_EMAIL',
|
|
28
|
+
DATA_SPACE_SUPPORT_FULL_INFO = 'DATA_SPACE_SUPPORT_FULL_INFO',
|
|
29
|
+
DATA_SPACE_LINK = 'DATA_SPACE_LINK',
|
|
30
|
+
DATA_SPACE_EMAIL = 'DATA_SPACE_EMAIL',
|
|
31
|
+
DATA_SPACE_EXPERTISE = 'DATA_SPACE_EXPERTISE',
|
|
28
32
|
MAPPING_INCLUDE_DATASPACE = 'MAPPING_INCLUDE_DATASPACE',
|
|
29
33
|
}
|
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,
|
|
@@ -200,6 +201,70 @@ export class DataSpaceSupportCombinedInfo
|
|
|
200
201
|
}
|
|
201
202
|
}
|
|
202
203
|
|
|
204
|
+
export class DataSpaceLink implements Hashable {
|
|
205
|
+
label?: string | undefined;
|
|
206
|
+
url!: string;
|
|
207
|
+
|
|
208
|
+
get hashCode(): string {
|
|
209
|
+
return hashArray([
|
|
210
|
+
DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_LINK,
|
|
211
|
+
this.label ?? '',
|
|
212
|
+
this.url,
|
|
213
|
+
]);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export class DataSpaceEmail implements Hashable {
|
|
218
|
+
title!: string;
|
|
219
|
+
address!: string;
|
|
220
|
+
|
|
221
|
+
get hashCode(): string {
|
|
222
|
+
return hashArray([
|
|
223
|
+
DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_EMAIL,
|
|
224
|
+
this.title,
|
|
225
|
+
this.address,
|
|
226
|
+
]);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export class DataSpaceExpertise implements Hashable {
|
|
231
|
+
description?: string | undefined;
|
|
232
|
+
expertIds?: string[] | undefined;
|
|
233
|
+
|
|
234
|
+
get hashCode(): string {
|
|
235
|
+
return hashArray([
|
|
236
|
+
DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_EXPERTISE,
|
|
237
|
+
this.description ?? '',
|
|
238
|
+
hashArray(this.expertIds ?? []),
|
|
239
|
+
]);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export class DataSpaceSupportFullInfo
|
|
244
|
+
extends DataSpaceSupportInfo
|
|
245
|
+
implements Hashable
|
|
246
|
+
{
|
|
247
|
+
documentation?: DataSpaceLink | undefined;
|
|
248
|
+
website?: DataSpaceLink | undefined;
|
|
249
|
+
faqUrl?: DataSpaceLink | undefined;
|
|
250
|
+
supportUrl?: DataSpaceLink | undefined;
|
|
251
|
+
emails?: DataSpaceEmail[] | undefined;
|
|
252
|
+
expertise?: DataSpaceExpertise[] | undefined;
|
|
253
|
+
|
|
254
|
+
get hashCode(): string {
|
|
255
|
+
return hashArray([
|
|
256
|
+
DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_SUPPORT_FULL_INFO,
|
|
257
|
+
this.documentationUrl ?? '',
|
|
258
|
+
this.documentation ?? '',
|
|
259
|
+
this.website ?? '',
|
|
260
|
+
this.faqUrl ?? '',
|
|
261
|
+
this.supportUrl ?? '',
|
|
262
|
+
hashArray(this.emails ?? []),
|
|
263
|
+
hashArray(this.expertise ?? []),
|
|
264
|
+
]);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
203
268
|
export class DataSpace extends PackageableElement implements Hashable {
|
|
204
269
|
title?: string | undefined;
|
|
205
270
|
description?: string | undefined;
|
|
@@ -209,6 +274,7 @@ export class DataSpace extends PackageableElement implements Hashable {
|
|
|
209
274
|
executables?: DataSpaceExecutable[] | undefined;
|
|
210
275
|
diagrams?: DataSpaceDiagram[] | undefined;
|
|
211
276
|
supportInfo?: DataSpaceSupportInfo | undefined;
|
|
277
|
+
operationalMetadata?: OperationalMetadata | undefined;
|
|
212
278
|
|
|
213
279
|
protected override get _elementHashCode(): string {
|
|
214
280
|
return hashArray([
|
|
@@ -225,6 +291,7 @@ export class DataSpace extends PackageableElement implements Hashable {
|
|
|
225
291
|
hashArray(this.executables ?? []),
|
|
226
292
|
hashArray(this.diagrams ?? []),
|
|
227
293
|
this.supportInfo ?? '',
|
|
294
|
+
this.operationalMetadata ?? '',
|
|
228
295
|
]);
|
|
229
296
|
}
|
|
230
297
|
|