graph-explorer
Version:
Graph Explorer can be used to explore and RDF graphs in SPARQL endpoints or on the web.
51 lines (42 loc) • 1.32 kB
text/typescript
/* eslint-disable @typescript-eslint/no-require-imports */
import { createElement, ClassAttributes } from "react";
import * as ReactDOM from "react-dom";
import {
Workspace,
WorkspaceProps,
DemoDataProvider,
} from "../src/graph-explorer/index";
import {
onPageLoad,
tryLoadLayoutFromLocalStorage,
saveLayoutToLocalStorage,
} from "./common";
const CLASSES = require("./resources/classes.json");
const LINK_TYPES = require("./resources/linkTypes.json");
const ELEMENTS = require("./resources/elements.json");
const LINKS = require("./resources/links.json");
function onWorkspaceMounted(workspace: Workspace) {
if (!workspace) {
return;
}
const diagram = tryLoadLayoutFromLocalStorage();
workspace.getModel().importLayout({
diagram,
dataProvider: new DemoDataProvider(CLASSES, LINK_TYPES, ELEMENTS, LINKS),
validateLinks: true,
});
}
const props: WorkspaceProps & ClassAttributes<Workspace> = {
ref: onWorkspaceMounted,
onSaveDiagram: (workspace) => {
const diagram = workspace.getModel().exportLayout();
window.location.hash = saveLayoutToLocalStorage(diagram);
window.location.reload();
},
viewOptions: {
onIriClick: ({ iri }) => window.open(iri),
},
};
onPageLoad((container) => {
ReactDOM.render(createElement(Workspace, props), container);
});