@finos/legend-extension-dsl-data-space
Version:
Legend extension for Data Space DSL
52 lines • 3.39 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { observer } from 'mobx-react-lite';
import { DataSpaceQuickStart } from './DataSpaceQuickStart.js';
import { DataSpaceDataAccess } from './DataSpaceDataAccess.js';
import { DataSpaceDescription } from './DataSpaceDescription.js';
import { useEffect } from 'react';
import { ModelsDocumentation } from '@finos/legend-lego/model-documentation';
import { DiagramViewer } from '@finos/legend-extension-dsl-diagram';
import { generateAnchorForActivity, generateAnchorForDiagram, } from '../stores/DataSpaceViewerNavigation.js';
export const DataSpaceWiki = observer((props) => {
const { dataSpaceViewerState } = props;
useEffect(() => {
if (dataSpaceViewerState.layoutState.wikiPageNavigationCommand &&
dataSpaceViewerState.layoutState.isWikiPageFullyRendered) {
dataSpaceViewerState.layoutState.navigateWikiPageAnchor();
}
}, [
dataSpaceViewerState,
dataSpaceViewerState.layoutState.wikiPageNavigationCommand,
dataSpaceViewerState.layoutState.isWikiPageFullyRendered,
]);
useEffect(() => {
if (dataSpaceViewerState.layoutState.isWikiPageFullyRendered) {
dataSpaceViewerState.layoutState.registerWikiPageScrollObserver();
}
return () => dataSpaceViewerState.layoutState.unregisterWikiPageScrollObserver();
}, [
dataSpaceViewerState,
dataSpaceViewerState.layoutState.isWikiPageFullyRendered,
]);
return (_jsxs("div", { className: "data-space__viewer__wiki", children: [_jsx(DataSpaceDescription, { dataSpaceViewerState: dataSpaceViewerState }), _jsx(DiagramViewer, { applicationStore: dataSpaceViewerState.applicationStore, diagramViewerState: dataSpaceViewerState.diagramViewerState, actions: {
onQueryClass: dataSpaceViewerState.queryClass,
onViewClassDocumentation: (classPath) => dataSpaceViewerState.modelsDocumentationState.viewClassDocumentation(classPath),
hasClassDocumentation: (classPath) => dataSpaceViewerState.modelsDocumentationState.hasClassDocumentation(classPath),
onSyncZoneWithNavigation: (diagram) => {
dataSpaceViewerState.syncZoneWithNavigation(generateAnchorForDiagram(diagram));
},
onGenerateAnchorForActivity: (activity) => {
return generateAnchorForActivity(activity);
},
onChangeZone: (zone, force) => {
dataSpaceViewerState.changeZone(zone, force);
},
onSetWikiPageAnchor: (anchorKey, element) => {
dataSpaceViewerState.layoutState.setWikiPageAnchor(anchorKey, element);
},
onUnsetWikiPageAnchor: (anchorKey) => {
dataSpaceViewerState.layoutState.unsetWikiPageAnchor(anchorKey);
},
} }), _jsx(ModelsDocumentation, { modelsDocumentationState: dataSpaceViewerState.modelsDocumentationState, applicationStore: dataSpaceViewerState.applicationStore }), _jsx(DataSpaceQuickStart, { dataSpaceViewerState: dataSpaceViewerState }), _jsx(DataSpaceDataAccess, { dataSpaceViewerState: dataSpaceViewerState })] }));
});
//# sourceMappingURL=DataSpaceWiki.js.map