@finos/legend-extension-dsl-data-space 9.1.5 → 9.1.7

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.
Files changed (90) hide show
  1. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.d.ts +0 -4
  2. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.d.ts.map +1 -1
  3. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js +0 -3
  4. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js.map +1 -1
  5. package/lib/components/DataSpaceDataAccess.d.ts +23 -0
  6. package/lib/components/DataSpaceDataAccess.d.ts.map +1 -0
  7. package/lib/components/DataSpaceDataAccess.js +34 -0
  8. package/lib/components/DataSpaceDataAccess.js.map +1 -0
  9. package/lib/components/DataSpaceDescription.d.ts +23 -0
  10. package/lib/components/DataSpaceDescription.d.ts.map +1 -0
  11. package/lib/components/DataSpaceDescription.js +26 -0
  12. package/lib/components/DataSpaceDescription.js.map +1 -0
  13. package/lib/components/DataSpaceDiagramViewer.d.ts.map +1 -1
  14. package/lib/components/DataSpaceDiagramViewer.js +7 -9
  15. package/lib/components/DataSpaceDiagramViewer.js.map +1 -1
  16. package/lib/components/DataSpaceExecutionContextViewer.d.ts.map +1 -1
  17. package/lib/components/DataSpaceExecutionContextViewer.js +6 -6
  18. package/lib/components/DataSpaceExecutionContextViewer.js.map +1 -1
  19. package/lib/components/DataSpaceMarkdownTextViewer.d.ts +20 -0
  20. package/lib/components/DataSpaceMarkdownTextViewer.d.ts.map +1 -0
  21. package/lib/components/DataSpaceMarkdownTextViewer.js +25 -0
  22. package/lib/components/DataSpaceMarkdownTextViewer.js.map +1 -0
  23. package/lib/components/DataSpaceModelsDocumentation.d.ts.map +1 -1
  24. package/lib/components/DataSpaceModelsDocumentation.js +33 -35
  25. package/lib/components/DataSpaceModelsDocumentation.js.map +1 -1
  26. package/lib/components/DataSpacePlaceholder.d.ts +20 -0
  27. package/lib/components/DataSpacePlaceholder.d.ts.map +1 -0
  28. package/lib/components/DataSpacePlaceholder.js +18 -0
  29. package/lib/components/DataSpacePlaceholder.js.map +1 -0
  30. package/lib/components/DataSpaceQuickStart.d.ts +7 -1
  31. package/lib/components/DataSpaceQuickStart.d.ts.map +1 -1
  32. package/lib/components/DataSpaceQuickStart.js +92 -1
  33. package/lib/components/DataSpaceQuickStart.js.map +1 -1
  34. package/lib/components/DataSpaceSupportPanel.js +1 -1
  35. package/lib/components/DataSpaceSupportPanel.js.map +1 -1
  36. package/lib/components/DataSpaceViewer.d.ts.map +1 -1
  37. package/lib/components/DataSpaceViewer.js +21 -8
  38. package/lib/components/DataSpaceViewer.js.map +1 -1
  39. package/lib/components/DataSpaceWiki.d.ts.map +1 -1
  40. package/lib/components/DataSpaceWiki.js +4 -28
  41. package/lib/components/DataSpaceWiki.js.map +1 -1
  42. package/lib/graphManager/DSL_DataSpace_PureGraphManagerPlugin.d.ts +5 -0
  43. package/lib/graphManager/DSL_DataSpace_PureGraphManagerPlugin.d.ts.map +1 -1
  44. package/lib/graphManager/DSL_DataSpace_PureGraphManagerPlugin.js +7 -0
  45. package/lib/graphManager/DSL_DataSpace_PureGraphManagerPlugin.js.map +1 -1
  46. package/lib/graphManager/action/analytics/DataSpaceAnalysis.d.ts +3 -0
  47. package/lib/graphManager/action/analytics/DataSpaceAnalysis.d.ts.map +1 -1
  48. package/lib/graphManager/action/analytics/DataSpaceAnalysis.js +5 -0
  49. package/lib/graphManager/action/analytics/DataSpaceAnalysis.js.map +1 -1
  50. package/lib/graphManager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
  51. package/lib/graphManager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +14 -2
  52. package/lib/graphManager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
  53. package/lib/graphManager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js +1 -1
  54. package/lib/graphManager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js.map +1 -1
  55. package/lib/index.css +2 -2
  56. package/lib/index.css.map +1 -1
  57. package/lib/index.d.ts +2 -1
  58. package/lib/index.d.ts.map +1 -1
  59. package/lib/index.js +2 -1
  60. package/lib/index.js.map +1 -1
  61. package/lib/package.json +3 -3
  62. package/lib/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.d.ts +32 -0
  63. package/lib/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.d.ts.map +1 -0
  64. package/lib/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.js +17 -0
  65. package/lib/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.js.map +1 -0
  66. package/lib/stores/DataSpaceViewerState.d.ts +1 -0
  67. package/lib/stores/DataSpaceViewerState.d.ts.map +1 -1
  68. package/lib/stores/DataSpaceViewerState.js +6 -0
  69. package/lib/stores/DataSpaceViewerState.js.map +1 -1
  70. package/package.json +12 -12
  71. package/src/components/DSL_DataSpace_LegendApplicationPlugin.ts +0 -9
  72. package/src/components/DataSpaceDataAccess.tsx +66 -0
  73. package/src/components/DataSpaceDescription.tsx +55 -0
  74. package/src/components/DataSpaceDiagramViewer.tsx +69 -61
  75. package/src/components/DataSpaceExecutionContextViewer.tsx +12 -18
  76. package/src/components/DataSpaceMarkdownTextViewer.tsx +33 -0
  77. package/src/components/DataSpaceModelsDocumentation.tsx +59 -52
  78. package/src/components/DataSpacePlaceholder.tsx +21 -0
  79. package/src/components/DataSpaceQuickStart.tsx +366 -0
  80. package/src/components/DataSpaceSupportPanel.tsx +4 -4
  81. package/src/components/DataSpaceViewer.tsx +58 -32
  82. package/src/components/DataSpaceWiki.tsx +5 -40
  83. package/src/graphManager/DSL_DataSpace_PureGraphManagerPlugin.ts +9 -0
  84. package/src/graphManager/action/analytics/DataSpaceAnalysis.ts +8 -0
  85. package/src/graphManager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +21 -2
  86. package/src/graphManager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.ts +1 -1
  87. package/src/index.ts +2 -4
  88. package/src/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.ts +41 -0
  89. package/src/stores/DataSpaceViewerState.ts +15 -0
  90. package/tsconfig.json +5 -0
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import {
18
- BlankPanelContent,
18
+ AnchorLinkIcon,
19
19
  CircleIcon,
20
20
  ThinChevronLeftIcon,
21
21
  ThinChevronRightIcon,
@@ -34,6 +34,7 @@ import {
34
34
  getNullableLastElement,
35
35
  guaranteeNonNullable,
36
36
  } from '@finos/legend-shared';
37
+ import { DataSpaceWikiPlaceholder } from './DataSpacePlaceholder.js';
37
38
 
38
39
  const DataSpaceDiagramCanvas = observer(
39
40
  forwardRef<
@@ -115,75 +116,82 @@ export const DataSpaceDiagramViewer = observer(
115
116
  );
116
117
  };
117
118
 
118
- if (analysisResult.diagrams.length === 0) {
119
- return <BlankPanelContent>No diagrams available</BlankPanelContent>;
120
- }
121
119
  return (
122
120
  <div className="data-space__viewer__wiki__section">
123
121
  <div className="data-space__viewer__wiki__section__header">
124
- Diagrams
122
+ <div className="data-space__viewer__wiki__section__header__label">
123
+ Diagrams
124
+ <div className="data-space__viewer__wiki__section__header__anchor">
125
+ <AnchorLinkIcon />
126
+ </div>
127
+ </div>
125
128
  </div>
126
129
  <div className="data-space__viewer__wiki__section__content">
127
- <div className="data-space__viewer__diagram-viewer">
128
- <div className="data-space__viewer__diagram-viewer__carousel">
129
- <div className="data-space__viewer__diagram-viewer__carousel__frame">
130
- <div className="data-space__viewer__diagram-viewer__carousel__frame__display">
131
- {dataSpaceViewerState.currentDiagram && (
132
- <DataSpaceDiagramCanvas
133
- dataSpaceViewerState={dataSpaceViewerState}
134
- diagram={dataSpaceViewerState.currentDiagram.diagram}
135
- ref={diagramCanvasRef}
136
- />
137
- )}
138
- </div>
139
- <button
140
- className="data-space__viewer__diagram-viewer__carousel__frame__navigator data-space__viewer__diagram-viewer__carousel__frame__navigator--back"
141
- tabIndex={-1}
142
- title="Previous"
143
- disabled={
144
- getNullableFirstElement(analysisResult.diagrams) ===
145
- dataSpaceViewerState.currentDiagram
146
- }
147
- onClick={showPreviousDiagram}
148
- >
149
- <ThinChevronLeftIcon />
150
- </button>
151
- <button
152
- className="data-space__viewer__diagram-viewer__carousel__frame__navigator data-space__viewer__diagram-viewer__carousel__frame__navigator--next"
153
- tabIndex={-1}
154
- title="Next"
155
- disabled={
156
- getNullableLastElement(analysisResult.diagrams) ===
157
- dataSpaceViewerState.currentDiagram
158
- }
159
- onClick={showNextDiagram}
160
- >
161
- <ThinChevronRightIcon />
162
- </button>
163
- <div className="data-space__viewer__diagram-viewer__carousel__frame__indicators">
164
- <div className="data-space__viewer__diagram-viewer__carousel__frame__indicators__notch">
165
- {analysisResult.diagrams.map((diagram) => (
166
- <button
167
- key={diagram.diagram.path}
168
- className={clsx(
169
- 'data-space__viewer__diagram-viewer__carousel__frame__indicator',
170
- {
171
- 'data-space__viewer__diagram-viewer__carousel__frame__indicator--active':
172
- dataSpaceViewerState.currentDiagram === diagram,
173
- },
174
- )}
175
- onClick={() =>
176
- dataSpaceViewerState.setCurrentDiagram(diagram)
177
- }
178
- >
179
- <CircleIcon />
180
- </button>
181
- ))}
130
+ {analysisResult.diagrams.length > 0 && (
131
+ <div className="data-space__viewer__diagram-viewer">
132
+ <div className="data-space__viewer__diagram-viewer__carousel">
133
+ <div className="data-space__viewer__diagram-viewer__carousel__frame">
134
+ <div className="data-space__viewer__diagram-viewer__carousel__frame__display">
135
+ {dataSpaceViewerState.currentDiagram && (
136
+ <DataSpaceDiagramCanvas
137
+ dataSpaceViewerState={dataSpaceViewerState}
138
+ diagram={dataSpaceViewerState.currentDiagram.diagram}
139
+ ref={diagramCanvasRef}
140
+ />
141
+ )}
142
+ </div>
143
+ <button
144
+ className="data-space__viewer__diagram-viewer__carousel__frame__navigator data-space__viewer__diagram-viewer__carousel__frame__navigator--back"
145
+ tabIndex={-1}
146
+ title="Previous"
147
+ disabled={
148
+ getNullableFirstElement(analysisResult.diagrams) ===
149
+ dataSpaceViewerState.currentDiagram
150
+ }
151
+ onClick={showPreviousDiagram}
152
+ >
153
+ <ThinChevronLeftIcon />
154
+ </button>
155
+ <button
156
+ className="data-space__viewer__diagram-viewer__carousel__frame__navigator data-space__viewer__diagram-viewer__carousel__frame__navigator--next"
157
+ tabIndex={-1}
158
+ title="Next"
159
+ disabled={
160
+ getNullableLastElement(analysisResult.diagrams) ===
161
+ dataSpaceViewerState.currentDiagram
162
+ }
163
+ onClick={showNextDiagram}
164
+ >
165
+ <ThinChevronRightIcon />
166
+ </button>
167
+ <div className="data-space__viewer__diagram-viewer__carousel__frame__indicators">
168
+ <div className="data-space__viewer__diagram-viewer__carousel__frame__indicators__notch">
169
+ {analysisResult.diagrams.map((diagram) => (
170
+ <button
171
+ key={diagram.diagram.path}
172
+ className={clsx(
173
+ 'data-space__viewer__diagram-viewer__carousel__frame__indicator',
174
+ {
175
+ 'data-space__viewer__diagram-viewer__carousel__frame__indicator--active':
176
+ dataSpaceViewerState.currentDiagram === diagram,
177
+ },
178
+ )}
179
+ onClick={() =>
180
+ dataSpaceViewerState.setCurrentDiagram(diagram)
181
+ }
182
+ >
183
+ <CircleIcon />
184
+ </button>
185
+ ))}
186
+ </div>
182
187
  </div>
183
188
  </div>
184
189
  </div>
185
190
  </div>
186
- </div>
191
+ )}
192
+ {analysisResult.diagrams.length <= 0 && (
193
+ <DataSpaceWikiPlaceholder message="No diagrams provided" />
194
+ )}
187
195
  </div>
188
196
  </div>
189
197
  );
@@ -16,15 +16,15 @@
16
16
 
17
17
  import { observer } from 'mobx-react-lite';
18
18
  import {
19
- clsx,
20
19
  CustomSelectorInput,
21
20
  PURE_MappingIcon,
22
21
  PURE_RuntimeIcon,
23
- CogIcon,
22
+ PlayIcon,
24
23
  } from '@finos/legend-art';
25
24
  import { type PackageableRuntime } from '@finos/legend-graph';
26
25
  import { type DataSpaceViewerState } from '../stores/DataSpaceViewerState.js';
27
26
  import type { DataSpaceExecutionContextAnalysisResult } from '../graphManager/action/analytics/DataSpaceAnalysis.js';
27
+ import { useApplicationStore } from '@finos/legend-application';
28
28
 
29
29
  type ExecutionContextOption = {
30
30
  label: string;
@@ -49,6 +49,7 @@ const buildRuntimeOption = (value: PackageableRuntime): RuntimeOption => ({
49
49
  export const DataSpaceExecutionContextViewer = observer(
50
50
  (props: { dataSpaceViewerState: DataSpaceViewerState }) => {
51
51
  const { dataSpaceViewerState } = props;
52
+ const applicationStore = useApplicationStore();
52
53
  const analysisResult = dataSpaceViewerState.dataSpaceAnalysisResult;
53
54
  const executionContexts = Array.from(
54
55
  dataSpaceViewerState.dataSpaceAnalysisResult.executionContextsIndex.values(),
@@ -117,7 +118,7 @@ export const DataSpaceExecutionContextViewer = observer(
117
118
  <div className="data-space__viewer__execution-context">
118
119
  <div className="data-space__viewer__execution-context__entry">
119
120
  <div className="data-space__viewer__execution-context__entry__icon">
120
- <CogIcon className="data-space__viewer__execution-context__context-icon" />
121
+ <PlayIcon className="data-space__viewer__execution-context__context-icon" />
121
122
  </div>
122
123
  <div className="data-space__viewer__execution-context__entry__content data-space__viewer__execution-context__entry__content__dropdown__container">
123
124
  <CustomSelectorInput
@@ -125,24 +126,14 @@ export const DataSpaceExecutionContextViewer = observer(
125
126
  options={executionContextOptions}
126
127
  onChange={onExecutionContextOptionChange}
127
128
  value={selectedExecutionContextOption}
128
- darkMode={true}
129
+ darkMode={
130
+ !applicationStore.layoutService
131
+ .TEMPORARY__isLightColorThemeEnabled
132
+ }
129
133
  formatOptionLabel={formatExecutionContextOptionLabel}
130
134
  />
131
135
  </div>
132
136
  </div>
133
- <div
134
- className={clsx(
135
- 'data-space__viewer__execution-context__description',
136
- {
137
- 'data-space__viewer__execution-context__description--empty':
138
- !dataSpaceViewerState.currentExecutionContext.description,
139
- },
140
- )}
141
- >
142
- {dataSpaceViewerState.currentExecutionContext.description
143
- ? dataSpaceViewerState.currentExecutionContext.description
144
- : 'No description'}
145
- </div>
146
137
  <div className="data-space__viewer__execution-context__entry data-space__viewer__execution-context__mapping">
147
138
  <div className="data-space__viewer__execution-context__entry__icon">
148
139
  <PURE_MappingIcon />
@@ -161,7 +152,10 @@ export const DataSpaceExecutionContextViewer = observer(
161
152
  options={runtimeOptions}
162
153
  onChange={onRuntimeOptionChange}
163
154
  value={selectedRuntimeOption}
164
- darkMode={true}
155
+ darkMode={
156
+ !applicationStore.layoutService
157
+ .TEMPORARY__isLightColorThemeEnabled
158
+ }
165
159
  formatOptionLabel={formatRuntimeOptionLabel}
166
160
  />
167
161
  </div>
@@ -0,0 +1,33 @@
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 { MarkdownTextViewer } from '@finos/legend-art';
18
+
19
+ export const DataSpaceMarkdownTextViewer: React.FC<{ value: string }> = (
20
+ props,
21
+ ) => (
22
+ <MarkdownTextViewer
23
+ className="data-space__viewer__markdown-text-viewer"
24
+ value={{
25
+ value: props.value,
26
+ }}
27
+ components={{
28
+ h1: 'h2',
29
+ h2: 'h3',
30
+ h3: 'h4',
31
+ }}
32
+ />
33
+ );
@@ -15,10 +15,11 @@
15
15
  */
16
16
 
17
17
  import { observer } from 'mobx-react-lite';
18
- import { BlankPanelContent, SearchIcon } from '@finos/legend-art';
18
+ import { AnchorLinkIcon, SearchIcon } from '@finos/legend-art';
19
19
  import { type DataSpaceViewerState } from '../stores/DataSpaceViewerState.js';
20
20
  import { AgGridReact } from '@ag-grid-community/react';
21
21
  import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
22
+ import { DataSpaceWikiPlaceholder } from './DataSpacePlaceholder.js';
22
23
 
23
24
  export const DataSpaceModelsDocumentation = observer(
24
25
  (props: { dataSpaceViewerState: DataSpaceViewerState }) => {
@@ -26,65 +27,71 @@ export const DataSpaceModelsDocumentation = observer(
26
27
  const documentationEntries =
27
28
  dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs;
28
29
 
29
- if (documentationEntries.length === 0) {
30
- return <BlankPanelContent>No documentation available</BlankPanelContent>;
31
- }
32
-
33
30
  return (
34
31
  <div className="data-space__viewer__wiki__section">
35
32
  <div className="data-space__viewer__wiki__section__header">
36
- Models Documentation
33
+ <div className="data-space__viewer__wiki__section__header__label">
34
+ Models Documentation
35
+ <div className="data-space__viewer__wiki__section__header__anchor">
36
+ <AnchorLinkIcon />
37
+ </div>
38
+ </div>
37
39
  </div>
38
40
  <div className="data-space__viewer__wiki__section__content">
39
- <div className="data-space__viewer__models-documentation">
40
- <div className="data-space__viewer__models-documentation__search">
41
- <div className="data-space__viewer__models-documentation__search__input-group">
42
- <input className="data-space__viewer__models-documentation__search__input-group__input" />
43
- <div className="data-space__viewer__models-documentation__search-box__input-group__icon">
44
- <SearchIcon />
41
+ {documentationEntries.length > 0 && (
42
+ <div className="data-space__viewer__models-documentation">
43
+ <div className="data-space__viewer__models-documentation__search">
44
+ <div className="data-space__viewer__models-documentation__search__input-group">
45
+ <input className="data-space__viewer__models-documentation__search__input-group__input input" />
46
+ <div className="data-space__viewer__models-documentation__search__input-group__icon">
47
+ <SearchIcon />
48
+ </div>
45
49
  </div>
46
50
  </div>
51
+ <div className="data-space__viewer__models-documentation__grid data-space__viewer__grid ag-theme-balham-dark">
52
+ <AgGridReact
53
+ rowData={documentationEntries}
54
+ gridOptions={{
55
+ suppressScrollOnNewData: true,
56
+ getRowId: (rowData) => rowData.data.uuid,
57
+ }}
58
+ modules={[ClientSideRowModelModule]}
59
+ suppressFieldDotNotation={true}
60
+ columnDefs={[
61
+ {
62
+ minWidth: 50,
63
+ sortable: true,
64
+ resizable: true,
65
+ field: 'elementPath',
66
+ headerName: 'Model',
67
+ flex: 1,
68
+ },
69
+ {
70
+ minWidth: 50,
71
+ sortable: false,
72
+ resizable: true,
73
+ field: 'subElementText',
74
+ headerName: '',
75
+ flex: 1,
76
+ },
77
+ {
78
+ minWidth: 50,
79
+ sortable: false,
80
+ resizable: true,
81
+ field: 'doc',
82
+ headerName: 'Documentation',
83
+ flex: 1,
84
+ wrapText: true,
85
+ autoHeight: true,
86
+ },
87
+ ]}
88
+ />
89
+ </div>
47
90
  </div>
48
- <div className="data-space__viewer__models-documentation__grid ag-theme-balham-dark">
49
- <AgGridReact
50
- rowData={documentationEntries}
51
- gridOptions={{
52
- suppressScrollOnNewData: true,
53
- getRowId: (rowData) => rowData.data.uuid,
54
- }}
55
- modules={[ClientSideRowModelModule]}
56
- suppressFieldDotNotation={true}
57
- columnDefs={[
58
- {
59
- minWidth: 50,
60
- sortable: true,
61
- resizable: true,
62
- field: 'elementPath',
63
- headerName: 'Model',
64
- flex: 1,
65
- },
66
- {
67
- minWidth: 50,
68
- sortable: false,
69
- resizable: true,
70
- field: 'subElementText',
71
- headerName: '',
72
- flex: 1,
73
- },
74
- {
75
- minWidth: 50,
76
- sortable: false,
77
- resizable: true,
78
- field: 'doc',
79
- headerName: 'Documentation',
80
- flex: 1,
81
- wrapText: true,
82
- autoHeight: true,
83
- },
84
- ]}
85
- />
86
- </div>
87
- </div>
91
+ )}
92
+ {documentationEntries.length === 0 && (
93
+ <DataSpaceWikiPlaceholder message="No documentation provided" />
94
+ )}
88
95
  </div>
89
96
  </div>
90
97
  );
@@ -0,0 +1,21 @@
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
+ export const DataSpaceWikiPlaceholder: React.FC<{ message: string }> = (
18
+ props,
19
+ ) => (
20
+ <div className="data-space__viewer__wiki__placeholder">{props.message}</div>
21
+ );