diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..271edc7 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,193 @@ +{ + "extends": [ + "airbnb", + "plugin:import/typescript", // this is needed because airbnb uses eslint-plugin-import + "prettier", + "plugin:@typescript-eslint/recommended", + "plugin:react-hooks/recommended", + "eslint:recommended" + ], + "plugins": [ + "@typescript-eslint", + "react-hooks" + ], + "env": { + "browser": true, + "node": true, + "mocha": true, + "jest": true + }, + "globals": { + "cy": true, + "Cypress": true, + "JSX": "readonly" + }, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaFeatures": { + "jsx": true + }, + "ecmaVersion": "latest", + "sourceType": "module" + }, + "rules": { + "import/order": "off", + "react/function-component-definition": [ + 2, + { + "namedComponents": "arrow-function" + } + ], + "react/jsx-uses-react": "off", + "react/react-in-jsx-scope": "off", + // remove when possible + "@typescript-eslint/no-explicit-any": "off", + // disable the rule for all files + "no-restricted-syntax": "off", + // disable the rule for all files + "@typescript-eslint/explicit-module-boundary-types": "off", + "jsx-a11y/anchor-is-valid": [ + "error", + { + "components": [ + "Link" + ], + "specialLink": [ + "to", + "hrefLeft", + "hrefRight" + ], + "aspects": [ + "noHref", + "invalidHref", + "preferButton" + ] + } + ], + "react/jsx-filename-extension": [ + "warn", + { + "extensions": [ + ".js", + ".jsx", + ".ts", + ".tsx" + ] + } + ], + "import/no-named-as-default": "off", + "react/static-property-placement": [ + "error", + "property assignment", + { + "childContextTypes": "static public field", + "contextTypes": "static public field", + "contextType": "static public field", + "defaultProps": "static public field", + "displayName": "static public field", + "propTypes": "static public field" + } + ], + "react/state-in-constructor": [ + "error", + "never" + ], + "no-console": [ + 1, + { + "allow": [ + "error" + ] + } + ], + "import/extensions": [ + "error", + "ignorePackages", + { + "js": "never", + "jsx": "never", + "ts": "never", + "tsx": "never" + } + ], + "react/prop-types": "off", + "react/require-default-props": "off", + // eslint rule reports false error + "no-shadow": "off", + "@typescript-eslint/no-shadow": [ + "error" + ], + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_" + } + ], + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": true + } + ], + }, + "overrides": [ + { + // enable the rule specifically for TypeScript files + "files": [ + "*.ts", + "*.tsx" + ], + "rules": { + "@typescript-eslint/explicit-module-boundary-types": [ + "error" + ] + } + }, + { + // enable the rule specifically for src files + "files": [ + "src/**/*.js", + "src/**/*.tsx", + "src/**/*.ts" + ], + "rules": { + "no-restricted-syntax": [ + "error" + ] + } + } + ], + "settings": { + "import/extensions": [ + ".js", + ".jsx", + ".ts", + ".tsx" + ], + "import/parsers": { + "@typescript-eslint/parser": [ + ".ts", + ".tsx" + ] + }, + "import/resolver": { + "typescript": { + "directory": "./tsconfig.json" + }, + "node": { + "extensions": [ + ".js", + ".jsx", + ".ts", + ".tsx" + ] + } + } + }, + "ignorePatterns": [ + "node_modules/*" + ] +} diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..d3bc3fb --- /dev/null +++ b/.prettierrc @@ -0,0 +1,19 @@ +{ + "trailingComma": "all", + "tabWidth": 2, + "semi": true, + "singleQuote": true, + "bracketSpacing": true, + "arrowParens": "always", + "importOrder": [ + "^react", + "^@?mui", + "^@?graasp", + "", + "^@/", + "^[./]" + ], + "importOrderSeparation": true, + "importOrderSortSpecifiers": true, + "plugins": ["@trivago/prettier-plugin-sort-imports"] +} diff --git a/package.json b/package.json index 1c4a6da..d78923b 100644 --- a/package.json +++ b/package.json @@ -15,15 +15,23 @@ "test": "vitest" }, "dependencies": { + "cytoscape": "^3.26.0", + "cytoscape-avsdf": "^1.0.0", + "cytoscape-cola": "^2.5.1", + "cytoscape-fcose": "^2.2.0", "react": "^18.2.0", + "react-cytoscapejs": "^2.0.0", "react-dom": "^18.2.0" }, "devDependencies": { + "@trivago/prettier-plugin-sort-imports": "^4.2.0", "@types/react": "^18.2.12", + "@types/react-cytoscapejs": "^1.2.2", "@types/react-dom": "^18.2.5", "@vitejs/plugin-react": "^4.0.0", "autoprefixer": "^10.4.14", "postcss": "^8.4.24", + "prettier": "^3.0.3", "tailwindcss": "^3.3.2", "typescript": "^5.1.3", "vite": "^4.3.9", diff --git a/src/App.tsx b/src/App.tsx index 3e4d112..f49c85c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,27 +1,42 @@ -import { ChangeEventHandler, useState } from "react"; -import Wordcloud, { ExplanationData } from "./WordCloud"; -import { defaultWords1 } from "./data"; -import SettingsWrapper from "./components/SettingsWrapper"; -import CheckBoxSetting from "./components/CheckBoxSetting"; -import ExplanationDataImporter from "./components/ExplanationDataImporter"; -import UseCase from "./components/UseCase"; +import { ChangeEventHandler, useState } from 'react'; +import CytoscapeComponent from 'react-cytoscapejs'; + +import Cytoscape from 'cytoscape'; +// @ts-ignore +import avsdf from 'cytoscape-avsdf'; +// @ts-ignore +import cola from 'cytoscape-cola'; +// @ts-ignore +import fcose from 'cytoscape-fcose'; + +import { ExplanationData } from './WordCloud'; +import CheckBoxSetting from './components/CheckBoxSetting'; +import ExplanationDataImporter from './components/ExplanationDataImporter'; +import SettingsWrapper from './components/SettingsWrapper'; +import UseCase from './components/UseCase'; +import { defaultWords1 } from './data'; +import elements from './data/graph'; + +Cytoscape.use(fcose); +Cytoscape.use(cola); +Cytoscape.use(avsdf); const presetData = [ - { label: "3 word-clouds", value: defaultWords1 }, + { label: '3 word-clouds', value: defaultWords1 }, { - label: "single word word-clouds", + label: 'single word word-clouds', value: [ { - category: "cat2", - words: [{ id: "2", text: "World", coef: 0.6 }], + category: 'cat2', + words: [{ id: '2', text: 'World', coef: 0.6 }], }, { - category: "cat1", - words: [{ id: "1", text: "Hello", coef: 1 }], + category: 'cat1', + words: [{ id: '1', text: 'Hello', coef: 1 }], }, { - category: "cat3", - words: [{ id: "3", text: "Helllo", coef: 0.55 }], + category: 'cat3', + words: [{ id: '3', text: 'Helllo', coef: 0.55 }], }, ], }, @@ -39,22 +54,22 @@ const updateParams = (params: { [key: string]: boolean | string }) => { const url = new URL(window.location.href); const queryString = new URLSearchParams(url.search); Object.entries(params).forEach(([key, value]) => { - if (typeof value === "boolean") { + if (typeof value === 'boolean') { // when value is a boolean we add and remove the value from the url - value ? queryString.set(key, "true") : queryString.delete(key); + value ? queryString.set(key, 'true') : queryString.delete(key); } else { // when value is a string we set it on the search queryString.set(key, value); } }); url.search = queryString.toString(); - window.history.replaceState({}, "", url.toString()); + window.history.replaceState({}, '', url.toString()); }; -const PRESET_DATA_KEY = "presetData"; -const HIDE_WORDS_KEY = "hideWords"; -const SHOW_BOUNDS_KEY = "showBounds"; -const SHOW_WORD_BOUNDS_KEY = "showWordBounds"; +const PRESET_DATA_KEY = 'presetData'; +const HIDE_WORDS_KEY = 'hideWords'; +const SHOW_BOUNDS_KEY = 'showBounds'; +const SHOW_WORD_BOUNDS_KEY = 'showWordBounds'; const App = () => { const params = new URLSearchParams(window.location.search); @@ -68,12 +83,13 @@ const App = () => { const [selectedPresetValue, setSelectedPresetValue] = useState(presetDataLabel); const [data, setData] = useState( - (presetData.find((p) => p.label === presetDataLabel) ?? presetData[0]).value + (presetData.find((p) => p.label === presetDataLabel) ?? presetData[0]) + .value, ); const [explanationData, setExplanationData] = useState( - convertToString(presetData[0].value) + convertToString(presetData[0].value), ); - const [errorMessage, setErrorMessage] = useState(""); + const [errorMessage, setErrorMessage] = useState(''); const handleInputData: ChangeEventHandler = (event) => { const newValue = event.target.value; @@ -81,7 +97,7 @@ const App = () => { try { JSON.parse(newValue); // reset error message in case there is no more error - setErrorMessage(""); + setErrorMessage(''); } catch (err: unknown) { setErrorMessage((err as Error).message); } @@ -92,6 +108,41 @@ const App = () => { setSettings((p) => ({ ...p, [key]: !p[key] })); }; + const stylesheet = [ + { + selector: 'node', + style: { + // width: "label", + // height: "data(height)", + // shape: 'none', + label: 'data(name)', + backgroundOpacity: 0, + fontSize: 'mapData(score, 0, 1, 10, 20)', + color: 'white', + textHalign: 'center', + textValign: 'center', + textOutlineColor: 'mapData(score, 0, 1, blue, red)', + textOutlineWidth: 5, + }, + }, + { + selector: 'edge', + style: { + width: 1, + }, + }, + ]; + + // const elements = [ + // {data: {id: 'one', label: 'Node 1', score: 0.5}, position: {x: 100, y: 100} }, + // {data: {id: 'two', label: 'Node 2', score: 0.9}, position: {x: 50, y: 50}}, + // {data: {source: 'one', target: 'two', label: 'Edge from Node1 to Node2'}} + // ]; + + // const layout = { name: 'fcose' }; + // const layout = { name: 'cola' }; + const layout = { name: 'random' }; + return (
@@ -124,8 +175,8 @@ const App = () => { setSelectedPresetValue(chosenLabel); setExplanationData( convertToString( - presetData.find((p) => p.label === chosenLabel)?.value - ) + presetData.find((p) => p.label === chosenLabel)?.value, + ), ); }} > @@ -164,13 +215,11 @@ const App = () => {
-
diff --git a/src/data/graph.ts b/src/data/graph.ts new file mode 100644 index 0000000..7ae23f7 --- /dev/null +++ b/src/data/graph.ts @@ -0,0 +1,4617 @@ +import { GraphData } from "./types"; + +const elems : GraphData = { + nodes: [ + { + "data": { + "id": "0", + "name": "private", + "score": 0.3997 + } + }, + { + "data": { + "id": "1", + "name": "public", + "score": 0.0925 + } + }, + { + "data": { + "id": "2", + "name": "person", + "score": 0.8306 + } + }, + { + "data": { + "id": "3", + "name": "bicycle", + "score": 0.5445 + } + }, + { + "data": { + "id": "4", + "name": "car", + "score": 0.8041 + } + }, + { + "data": { + "id": "5", + "name": "motorbike", + "score": 0.8976 + } + }, + { + "data": { + "id": "6", + "name": "aeroplane", + "score": 0.0568 + } + }, + { + "data": { + "id": "7", + "name": "bus", + "score": 0.2308 + } + }, + { + "data": { + "id": "8", + "name": "train", + "score": 0.285 + } + }, + { + "data": { + "id": "9", + "name": "truck", + "score": 0.5052 + } + }, + { + "data": { + "id": "10", + "name": "boat", + "score": 0.156 + } + }, + { + "data": { + "id": "11", + "name": "traffic light", + "score": 0.251 + } + }, + { + "data": { + "id": "12", + "name": "fire hydrant", + "score": 0.155 + } + }, + { + "data": { + "id": "13", + "name": "stop sign", + "score": 0.1279 + } + }, + { + "data": { + "id": "14", + "name": "parking meter", + "score": 0.4257 + } + }, + { + "data": { + "id": "15", + "name": "bench", + "score": 0.6162 + } + }, + { + "data": { + "id": "16", + "name": "bird", + "score": 0.6427 + } + }, + { + "data": { + "id": "17", + "name": "cat", + "score": 0.2701 + } + }, + { + "data": { + "id": "18", + "name": "dog", + "score": 0.1785 + } + }, + { + "data": { + "id": "19", + "name": "horse", + "score": 0.0419 + } + }, + { + "data": { + "id": "20", + "name": "sheep", + "score": 0.1666 + } + }, + { + "data": { + "id": "21", + "name": "cow", + "score": 0.4187 + } + }, + { + "data": { + "id": "22", + "name": "elephant", + "score": 0.916 + } + }, + { + "data": { + "id": "23", + "name": "bear", + "score": 0.0699 + } + }, + { + "data": { + "id": "24", + "name": "zebra", + "score": 0.6559 + } + }, + { + "data": { + "id": "25", + "name": "giraffe", + "score": 0.4271 + } + }, + { + "data": { + "id": "26", + "name": "backpack", + "score": 0.2111 + } + }, + { + "data": { + "id": "27", + "name": "umbrella", + "score": 0.7296 + } + }, + { + "data": { + "id": "28", + "name": "handbag", + "score": 0.2427 + } + }, + { + "data": { + "id": "29", + "name": "tie", + "score": 0.392 + } + }, + { + "data": { + "id": "30", + "name": "suitcase", + "score": 0.8415 + } + }, + { + "data": { + "id": "31", + "name": "frisbee", + "score": 0.2431 + } + }, + { + "data": { + "id": "32", + "name": "skis", + "score": 0.1585 + } + }, + { + "data": { + "id": "33", + "name": "snowboard", + "score": 0.8859 + } + }, + { + "data": { + "id": "34", + "name": "sports ball", + "score": 0.819 + } + }, + { + "data": { + "id": "35", + "name": "kite", + "score": 0.0196 + } + }, + { + "data": { + "id": "36", + "name": "baseball bat", + "score": 0.2863 + } + }, + { + "data": { + "id": "37", + "name": "baseball glove", + "score": 0.4496 + } + }, + { + "data": { + "id": "38", + "name": "skateboard", + "score": 0.1255 + } + }, + { + "data": { + "id": "39", + "name": "surfboard", + "score": 0.4843 + } + }, + { + "data": { + "id": "40", + "name": "tennis racket", + "score": 0.4433 + } + }, + { + "data": { + "id": "41", + "name": "bottle", + "score": 0.8865 + } + }, + { + "data": { + "id": "42", + "name": "wine glass", + "score": 0.3414 + } + }, + { + "data": { + "id": "43", + "name": "cup", + "score": 0.3147 + } + }, + { + "data": { + "id": "44", + "name": "fork", + "score": 0.2458 + } + }, + { + "data": { + "id": "45", + "name": "knife", + "score": 0.3125 + } + }, + { + "data": { + "id": "46", + "name": "spoon", + "score": 0.3645 + } + }, + { + "data": { + "id": "47", + "name": "bowl", + "score": 0.1657 + } + }, + { + "data": { + "id": "48", + "name": "banana", + "score": 0.8322 + } + }, + { + "data": { + "id": "49", + "name": "apple", + "score": 0.7334 + } + }, + { + "data": { + "id": "50", + "name": "sandwich", + "score": 0.6392 + } + }, + { + "data": { + "id": "51", + "name": "orange", + "score": 0.1126 + } + }, + { + "data": { + "id": "52", + "name": "broccoli", + "score": 0.4412 + } + }, + { + "data": { + "id": "53", + "name": "carrot", + "score": 0.0435 + } + }, + { + "data": { + "id": "54", + "name": "hot dog", + "score": 0.3056 + } + }, + { + "data": { + "id": "55", + "name": "pizza", + "score": 0.0254 + } + }, + { + "data": { + "id": "56", + "name": "donut", + "score": 0.9916 + } + }, + { + "data": { + "id": "57", + "name": "cake", + "score": 0.3759 + } + }, + { + "data": { + "id": "58", + "name": "chair", + "score": 0.7682 + } + }, + { + "data": { + "id": "59", + "name": "sofa", + "score": 0.6534 + } + }, + { + "data": { + "id": "60", + "name": "pottedplant", + "score": 0.5422 + } + }, + { + "data": { + "id": "61", + "name": "bed", + "score": 0.7645 + } + }, + { + "data": { + "id": "62", + "name": "diningtable", + "score": 0.6762 + } + }, + { + "data": { + "id": "63", + "name": "toilet", + "score": 0.8873 + } + }, + { + "data": { + "id": "64", + "name": "tvmonitor", + "score": 0.5894 + } + }, + { + "data": { + "id": "65", + "name": "laptop", + "score": 0.7115 + } + }, + { + "data": { + "id": "66", + "name": "mouse", + "score": 0.5317 + } + }, + { + "data": { + "id": "67", + "name": "remote", + "score": 0.2525 + } + }, + { + "data": { + "id": "68", + "name": "keyboard", + "score": 0.6879 + } + }, + { + "data": { + "id": "69", + "name": "cell phone", + "score": 0.8533 + } + }, + { + "data": { + "id": "70", + "name": "microwave", + "score": 0.6426 + } + }, + { + "data": { + "id": "71", + "name": "oven", + "score": 0.9994 + } + }, + { + "data": { + "id": "72", + "name": "toaster", + "score": 0.4629 + } + }, + { + "data": { + "id": "73", + "name": "sink", + "score": 0.4069 + } + }, + { + "data": { + "id": "74", + "name": "refrigerator", + "score": 0.7855 + } + }, + { + "data": { + "id": "75", + "name": "book", + "score": 0.9992 + } + }, + { + "data": { + "id": "76", + "name": "clock", + "score": 0.1941 + } + }, + { + "data": { + "id": "77", + "name": "vase", + "score": 0.0018 + } + }, + { + "data": { + "id": "78", + "name": "scissors", + "score": 0.9892 + } + }, + { + "data": { + "id": "79", + "name": "teddy bear", + "score": 0.179 + } + }, + { + "data": { + "id": "80", + "name": "hair drier", + "score": 0.33 + } + }, + { + "data": { + "id": "81", + "name": "toothbrush", + "score": 0.509 + } + } + ], + "edges": + [ + { + "data": { + "id": "0", + "source": 2, + "target": 3 + } + }, + { + "data": { + "id": "1", + "source": 2, + "target": 8 + } + }, + { + "data": { + "id": "2", + "source": 2, + "target": 26 + } + }, + { + "data": { + "id": "3", + "source": 2, + "target": 18 + } + }, + { + "data": { + "id": "4", + "source": 2, + "target": 29 + } + }, + { + "data": { + "id": "5", + "source": 2, + "target": 4 + } + }, + { + "data": { + "id": "6", + "source": 2, + "target": 65 + } + }, + { + "data": { + "id": "7", + "source": 2, + "target": 69 + } + }, + { + "data": { + "id": "8", + "source": 2, + "target": 43 + } + }, + { + "data": { + "id": "9", + "source": 2, + "target": 58 + } + }, + { + "data": { + "id": "10", + "source": 2, + "target": 62 + } + }, + { + "data": { + "id": "11", + "source": 2, + "target": 38 + } + }, + { + "data": { + "id": "12", + "source": 2, + "target": 28 + } + }, + { + "data": { + "id": "13", + "source": 2, + "target": 27 + } + }, + { + "data": { + "id": "14", + "source": 2, + "target": 17 + } + }, + { + "data": { + "id": "15", + "source": 2, + "target": 19 + } + }, + { + "data": { + "id": "16", + "source": 2, + "target": 76 + } + }, + { + "data": { + "id": "17", + "source": 2, + "target": 5 + } + }, + { + "data": { + "id": "18", + "source": 2, + "target": 15 + } + }, + { + "data": { + "id": "19", + "source": 2, + "target": 61 + } + }, + { + "data": { + "id": "20", + "source": 2, + "target": 7 + } + }, + { + "data": { + "id": "21", + "source": 2, + "target": 9 + } + }, + { + "data": { + "id": "22", + "source": 2, + "target": 16 + } + }, + { + "data": { + "id": "23", + "source": 2, + "target": 20 + } + }, + { + "data": { + "id": "24", + "source": 2, + "target": 64 + } + }, + { + "data": { + "id": "25", + "source": 2, + "target": 70 + } + }, + { + "data": { + "id": "26", + "source": 2, + "target": 75 + } + }, + { + "data": { + "id": "27", + "source": 2, + "target": 10 + } + }, + { + "data": { + "id": "28", + "source": 2, + "target": 60 + } + }, + { + "data": { + "id": "29", + "source": 2, + "target": 41 + } + }, + { + "data": { + "id": "30", + "source": 2, + "target": 34 + } + }, + { + "data": { + "id": "31", + "source": 2, + "target": 59 + } + }, + { + "data": { + "id": "32", + "source": 2, + "target": 35 + } + }, + { + "data": { + "id": "33", + "source": 2, + "target": 6 + } + }, + { + "data": { + "id": "34", + "source": 2, + "target": 57 + } + }, + { + "data": { + "id": "35", + "source": 2, + "target": 31 + } + }, + { + "data": { + "id": "36", + "source": 2, + "target": 12 + } + }, + { + "data": { + "id": "37", + "source": 2, + "target": 42 + } + }, + { + "data": { + "id": "38", + "source": 2, + "target": 39 + } + }, + { + "data": { + "id": "39", + "source": 2, + "target": 54 + } + }, + { + "data": { + "id": "40", + "source": 2, + "target": 67 + } + }, + { + "data": { + "id": "41", + "source": 2, + "target": 47 + } + }, + { + "data": { + "id": "42", + "source": 2, + "target": 11 + } + }, + { + "data": { + "id": "43", + "source": 2, + "target": 73 + } + }, + { + "data": { + "id": "44", + "source": 2, + "target": 22 + } + }, + { + "data": { + "id": "45", + "source": 2, + "target": 33 + } + }, + { + "data": { + "id": "46", + "source": 2, + "target": 77 + } + }, + { + "data": { + "id": "47", + "source": 2, + "target": 37 + } + }, + { + "data": { + "id": "48", + "source": 2, + "target": 51 + } + }, + { + "data": { + "id": "49", + "source": 2, + "target": 44 + } + }, + { + "data": { + "id": "50", + "source": 2, + "target": 55 + } + }, + { + "data": { + "id": "51", + "source": 2, + "target": 30 + } + }, + { + "data": { + "id": "52", + "source": 2, + "target": 14 + } + }, + { + "data": { + "id": "53", + "source": 2, + "target": 49 + } + }, + { + "data": { + "id": "54", + "source": 2, + "target": 32 + } + }, + { + "data": { + "id": "55", + "source": 2, + "target": 36 + } + }, + { + "data": { + "id": "56", + "source": 2, + "target": 66 + } + }, + { + "data": { + "id": "57", + "source": 2, + "target": 56 + } + }, + { + "data": { + "id": "58", + "source": 2, + "target": 45 + } + }, + { + "data": { + "id": "59", + "source": 2, + "target": 21 + } + }, + { + "data": { + "id": "60", + "source": 2, + "target": 40 + } + }, + { + "data": { + "id": "61", + "source": 2, + "target": 79 + } + }, + { + "data": { + "id": "62", + "source": 2, + "target": 50 + } + }, + { + "data": { + "id": "63", + "source": 2, + "target": 48 + } + }, + { + "data": { + "id": "64", + "source": 2, + "target": 74 + } + }, + { + "data": { + "id": "65", + "source": 2, + "target": 46 + } + }, + { + "data": { + "id": "66", + "source": 2, + "target": 63 + } + }, + { + "data": { + "id": "67", + "source": 2, + "target": 13 + } + }, + { + "data": { + "id": "68", + "source": 2, + "target": 68 + } + }, + { + "data": { + "id": "69", + "source": 2, + "target": 25 + } + }, + { + "data": { + "id": "70", + "source": 2, + "target": 52 + } + }, + { + "data": { + "id": "71", + "source": 2, + "target": 71 + } + }, + { + "data": { + "id": "72", + "source": 2, + "target": 81 + } + }, + { + "data": { + "id": "73", + "source": 3, + "target": 8 + } + }, + { + "data": { + "id": "74", + "source": 3, + "target": 29 + } + }, + { + "data": { + "id": "75", + "source": 3, + "target": 4 + } + }, + { + "data": { + "id": "76", + "source": 3, + "target": 9 + } + }, + { + "data": { + "id": "77", + "source": 3, + "target": 5 + } + }, + { + "data": { + "id": "78", + "source": 3, + "target": 7 + } + }, + { + "data": { + "id": "79", + "source": 3, + "target": 13 + } + }, + { + "data": { + "id": "80", + "source": 3, + "target": 26 + } + }, + { + "data": { + "id": "81", + "source": 3, + "target": 41 + } + }, + { + "data": { + "id": "82", + "source": 3, + "target": 27 + } + }, + { + "data": { + "id": "83", + "source": 3, + "target": 28 + } + }, + { + "data": { + "id": "84", + "source": 3, + "target": 69 + } + }, + { + "data": { + "id": "85", + "source": 3, + "target": 30 + } + }, + { + "data": { + "id": "86", + "source": 3, + "target": 60 + } + }, + { + "data": { + "id": "87", + "source": 3, + "target": 76 + } + }, + { + "data": { + "id": "88", + "source": 3, + "target": 47 + } + }, + { + "data": { + "id": "89", + "source": 3, + "target": 54 + } + }, + { + "data": { + "id": "90", + "source": 3, + "target": 64 + } + }, + { + "data": { + "id": "91", + "source": 3, + "target": 16 + } + }, + { + "data": { + "id": "92", + "source": 3, + "target": 17 + } + }, + { + "data": { + "id": "93", + "source": 3, + "target": 15 + } + }, + { + "data": { + "id": "94", + "source": 3, + "target": 11 + } + }, + { + "data": { + "id": "95", + "source": 3, + "target": 43 + } + }, + { + "data": { + "id": "96", + "source": 3, + "target": 44 + } + }, + { + "data": { + "id": "97", + "source": 3, + "target": 77 + } + }, + { + "data": { + "id": "98", + "source": 3, + "target": 58 + } + }, + { + "data": { + "id": "99", + "source": 4, + "target": 18 + } + }, + { + "data": { + "id": "100", + "source": 4, + "target": 9 + } + }, + { + "data": { + "id": "101", + "source": 4, + "target": 15 + } + }, + { + "data": { + "id": "102", + "source": 4, + "target": 5 + } + }, + { + "data": { + "id": "103", + "source": 4, + "target": 64 + } + }, + { + "data": { + "id": "104", + "source": 4, + "target": 43 + } + }, + { + "data": { + "id": "105", + "source": 4, + "target": 19 + } + }, + { + "data": { + "id": "106", + "source": 4, + "target": 11 + } + }, + { + "data": { + "id": "107", + "source": 4, + "target": 10 + } + }, + { + "data": { + "id": "108", + "source": 4, + "target": 7 + } + }, + { + "data": { + "id": "109", + "source": 4, + "target": 14 + } + }, + { + "data": { + "id": "110", + "source": 4, + "target": 17 + } + }, + { + "data": { + "id": "111", + "source": 4, + "target": 21 + } + }, + { + "data": { + "id": "112", + "source": 4, + "target": 16 + } + }, + { + "data": { + "id": "113", + "source": 4, + "target": 26 + } + }, + { + "data": { + "id": "114", + "source": 4, + "target": 28 + } + }, + { + "data": { + "id": "115", + "source": 4, + "target": 76 + } + }, + { + "data": { + "id": "116", + "source": 4, + "target": 60 + } + }, + { + "data": { + "id": "117", + "source": 4, + "target": 58 + } + }, + { + "data": { + "id": "118", + "source": 4, + "target": 27 + } + }, + { + "data": { + "id": "119", + "source": 4, + "target": 29 + } + }, + { + "data": { + "id": "120", + "source": 4, + "target": 12 + } + }, + { + "data": { + "id": "121", + "source": 4, + "target": 57 + } + }, + { + "data": { + "id": "122", + "source": 4, + "target": 59 + } + }, + { + "data": { + "id": "123", + "source": 4, + "target": 8 + } + }, + { + "data": { + "id": "124", + "source": 4, + "target": 69 + } + }, + { + "data": { + "id": "125", + "source": 4, + "target": 13 + } + }, + { + "data": { + "id": "126", + "source": 4, + "target": 41 + } + }, + { + "data": { + "id": "127", + "source": 4, + "target": 62 + } + }, + { + "data": { + "id": "128", + "source": 4, + "target": 30 + } + }, + { + "data": { + "id": "129", + "source": 4, + "target": 39 + } + }, + { + "data": { + "id": "130", + "source": 4, + "target": 38 + } + }, + { + "data": { + "id": "131", + "source": 5, + "target": 18 + } + }, + { + "data": { + "id": "132", + "source": 5, + "target": 9 + } + }, + { + "data": { + "id": "133", + "source": 5, + "target": 15 + } + }, + { + "data": { + "id": "134", + "source": 5, + "target": 16 + } + }, + { + "data": { + "id": "135", + "source": 5, + "target": 7 + } + }, + { + "data": { + "id": "136", + "source": 5, + "target": 6 + } + }, + { + "data": { + "id": "137", + "source": 5, + "target": 28 + } + }, + { + "data": { + "id": "138", + "source": 5, + "target": 60 + } + }, + { + "data": { + "id": "139", + "source": 6, + "target": 10 + } + }, + { + "data": { + "id": "140", + "source": 6, + "target": 16 + } + }, + { + "data": { + "id": "141", + "source": 6, + "target": 62 + } + }, + { + "data": { + "id": "142", + "source": 6, + "target": 28 + } + }, + { + "data": { + "id": "143", + "source": 6, + "target": 58 + } + }, + { + "data": { + "id": "144", + "source": 6, + "target": 9 + } + }, + { + "data": { + "id": "145", + "source": 6, + "target": 27 + } + }, + { + "data": { + "id": "146", + "source": 6, + "target": 34 + } + }, + { + "data": { + "id": "147", + "source": 7, + "target": 16 + } + }, + { + "data": { + "id": "148", + "source": 7, + "target": 19 + } + }, + { + "data": { + "id": "149", + "source": 7, + "target": 9 + } + }, + { + "data": { + "id": "150", + "source": 7, + "target": 11 + } + }, + { + "data": { + "id": "151", + "source": 7, + "target": 15 + } + }, + { + "data": { + "id": "152", + "source": 7, + "target": 28 + } + }, + { + "data": { + "id": "153", + "source": 7, + "target": 27 + } + }, + { + "data": { + "id": "154", + "source": 7, + "target": 76 + } + }, + { + "data": { + "id": "155", + "source": 7, + "target": 18 + } + }, + { + "data": { + "id": "156", + "source": 7, + "target": 26 + } + }, + { + "data": { + "id": "157", + "source": 8, + "target": 15 + } + }, + { + "data": { + "id": "158", + "source": 8, + "target": 9 + } + }, + { + "data": { + "id": "159", + "source": 8, + "target": 28 + } + }, + { + "data": { + "id": "160", + "source": 8, + "target": 76 + } + }, + { + "data": { + "id": "161", + "source": 8, + "target": 10 + } + }, + { + "data": { + "id": "162", + "source": 8, + "target": 17 + } + }, + { + "data": { + "id": "163", + "source": 9, + "target": 19 + } + }, + { + "data": { + "id": "164", + "source": 9, + "target": 18 + } + }, + { + "data": { + "id": "165", + "source": 9, + "target": 34 + } + }, + { + "data": { + "id": "166", + "source": 9, + "target": 51 + } + }, + { + "data": { + "id": "167", + "source": 9, + "target": 11 + } + }, + { + "data": { + "id": "168", + "source": 9, + "target": 28 + } + }, + { + "data": { + "id": "169", + "source": 9, + "target": 26 + } + }, + { + "data": { + "id": "170", + "source": 9, + "target": 10 + } + }, + { + "data": { + "id": "171", + "source": 9, + "target": 15 + } + }, + { + "data": { + "id": "172", + "source": 9, + "target": 17 + } + }, + { + "data": { + "id": "173", + "source": 9, + "target": 29 + } + }, + { + "data": { + "id": "174", + "source": 9, + "target": 76 + } + }, + { + "data": { + "id": "175", + "source": 9, + "target": 13 + } + }, + { + "data": { + "id": "176", + "source": 9, + "target": 27 + } + }, + { + "data": { + "id": "177", + "source": 9, + "target": 58 + } + }, + { + "data": { + "id": "178", + "source": 9, + "target": 39 + } + }, + { + "data": { + "id": "179", + "source": 9, + "target": 74 + } + }, + { + "data": { + "id": "180", + "source": 9, + "target": 38 + } + }, + { + "data": { + "id": "181", + "source": 9, + "target": 12 + } + }, + { + "data": { + "id": "182", + "source": 10, + "target": 16 + } + }, + { + "data": { + "id": "183", + "source": 10, + "target": 18 + } + }, + { + "data": { + "id": "184", + "source": 10, + "target": 59 + } + }, + { + "data": { + "id": "185", + "source": 10, + "target": 76 + } + }, + { + "data": { + "id": "186", + "source": 10, + "target": 39 + } + }, + { + "data": { + "id": "187", + "source": 11, + "target": 43 + } + }, + { + "data": { + "id": "188", + "source": 11, + "target": 28 + } + }, + { + "data": { + "id": "189", + "source": 11, + "target": 26 + } + }, + { + "data": { + "id": "190", + "source": 11, + "target": 34 + } + }, + { + "data": { + "id": "191", + "source": 11, + "target": 38 + } + }, + { + "data": { + "id": "192", + "source": 11, + "target": 27 + } + }, + { + "data": { + "id": "193", + "source": 11, + "target": 69 + } + }, + { + "data": { + "id": "194", + "source": 11, + "target": 19 + } + }, + { + "data": { + "id": "195", + "source": 12, + "target": 18 + } + }, + { + "data": { + "id": "196", + "source": 13, + "target": 57 + } + }, + { + "data": { + "id": "197", + "source": 13, + "target": 56 + } + }, + { + "data": { + "id": "198", + "source": 13, + "target": 58 + } + }, + { + "data": { + "id": "199", + "source": 14, + "target": 60 + } + }, + { + "data": { + "id": "200", + "source": 15, + "target": 24 + } + }, + { + "data": { + "id": "201", + "source": 15, + "target": 16 + } + }, + { + "data": { + "id": "202", + "source": 15, + "target": 75 + } + }, + { + "data": { + "id": "203", + "source": 15, + "target": 58 + } + }, + { + "data": { + "id": "204", + "source": 15, + "target": 28 + } + }, + { + "data": { + "id": "205", + "source": 15, + "target": 69 + } + }, + { + "data": { + "id": "206", + "source": 15, + "target": 17 + } + }, + { + "data": { + "id": "207", + "source": 15, + "target": 76 + } + }, + { + "data": { + "id": "208", + "source": 15, + "target": 29 + } + }, + { + "data": { + "id": "209", + "source": 15, + "target": 78 + } + }, + { + "data": { + "id": "210", + "source": 15, + "target": 18 + } + }, + { + "data": { + "id": "211", + "source": 15, + "target": 59 + } + }, + { + "data": { + "id": "212", + "source": 15, + "target": 62 + } + }, + { + "data": { + "id": "213", + "source": 16, + "target": 18 + } + }, + { + "data": { + "id": "214", + "source": 16, + "target": 19 + } + }, + { + "data": { + "id": "215", + "source": 16, + "target": 20 + } + }, + { + "data": { + "id": "216", + "source": 16, + "target": 76 + } + }, + { + "data": { + "id": "217", + "source": 16, + "target": 31 + } + }, + { + "data": { + "id": "218", + "source": 16, + "target": 45 + } + }, + { + "data": { + "id": "219", + "source": 16, + "target": 49 + } + }, + { + "data": { + "id": "220", + "source": 16, + "target": 23 + } + }, + { + "data": { + "id": "221", + "source": 16, + "target": 17 + } + }, + { + "data": { + "id": "222", + "source": 16, + "target": 50 + } + }, + { + "data": { + "id": "223", + "source": 16, + "target": 56 + } + }, + { + "data": { + "id": "224", + "source": 16, + "target": 48 + } + }, + { + "data": { + "id": "225", + "source": 17, + "target": 58 + } + }, + { + "data": { + "id": "226", + "source": 17, + "target": 56 + } + }, + { + "data": { + "id": "227", + "source": 17, + "target": 47 + } + }, + { + "data": { + "id": "228", + "source": 17, + "target": 18 + } + }, + { + "data": { + "id": "229", + "source": 17, + "target": 59 + } + }, + { + "data": { + "id": "230", + "source": 17, + "target": 49 + } + }, + { + "data": { + "id": "231", + "source": 17, + "target": 61 + } + }, + { + "data": { + "id": "232", + "source": 17, + "target": 25 + } + }, + { + "data": { + "id": "233", + "source": 17, + "target": 67 + } + }, + { + "data": { + "id": "234", + "source": 17, + "target": 24 + } + }, + { + "data": { + "id": "235", + "source": 17, + "target": 30 + } + }, + { + "data": { + "id": "236", + "source": 17, + "target": 43 + } + }, + { + "data": { + "id": "237", + "source": 17, + "target": 64 + } + }, + { + "data": { + "id": "238", + "source": 17, + "target": 62 + } + }, + { + "data": { + "id": "239", + "source": 17, + "target": 77 + } + }, + { + "data": { + "id": "240", + "source": 17, + "target": 26 + } + }, + { + "data": { + "id": "241", + "source": 17, + "target": 53 + } + }, + { + "data": { + "id": "242", + "source": 17, + "target": 42 + } + }, + { + "data": { + "id": "243", + "source": 17, + "target": 75 + } + }, + { + "data": { + "id": "244", + "source": 17, + "target": 73 + } + }, + { + "data": { + "id": "245", + "source": 17, + "target": 29 + } + }, + { + "data": { + "id": "246", + "source": 17, + "target": 23 + } + }, + { + "data": { + "id": "247", + "source": 17, + "target": 52 + } + }, + { + "data": { + "id": "248", + "source": 17, + "target": 79 + } + }, + { + "data": { + "id": "249", + "source": 17, + "target": 60 + } + }, + { + "data": { + "id": "250", + "source": 17, + "target": 27 + } + }, + { + "data": { + "id": "251", + "source": 18, + "target": 59 + } + }, + { + "data": { + "id": "252", + "source": 18, + "target": 19 + } + }, + { + "data": { + "id": "253", + "source": 18, + "target": 20 + } + }, + { + "data": { + "id": "254", + "source": 18, + "target": 31 + } + }, + { + "data": { + "id": "255", + "source": 18, + "target": 22 + } + }, + { + "data": { + "id": "256", + "source": 18, + "target": 77 + } + }, + { + "data": { + "id": "257", + "source": 18, + "target": 62 + } + }, + { + "data": { + "id": "258", + "source": 18, + "target": 61 + } + }, + { + "data": { + "id": "259", + "source": 18, + "target": 58 + } + }, + { + "data": { + "id": "260", + "source": 18, + "target": 71 + } + }, + { + "data": { + "id": "261", + "source": 18, + "target": 51 + } + }, + { + "data": { + "id": "262", + "source": 18, + "target": 67 + } + }, + { + "data": { + "id": "263", + "source": 18, + "target": 34 + } + }, + { + "data": { + "id": "264", + "source": 18, + "target": 26 + } + }, + { + "data": { + "id": "265", + "source": 18, + "target": 42 + } + }, + { + "data": { + "id": "266", + "source": 18, + "target": 28 + } + }, + { + "data": { + "id": "267", + "source": 18, + "target": 21 + } + }, + { + "data": { + "id": "268", + "source": 18, + "target": 75 + } + }, + { + "data": { + "id": "269", + "source": 18, + "target": 53 + } + }, + { + "data": { + "id": "270", + "source": 18, + "target": 64 + } + }, + { + "data": { + "id": "271", + "source": 18, + "target": 41 + } + }, + { + "data": { + "id": "272", + "source": 18, + "target": 43 + } + }, + { + "data": { + "id": "273", + "source": 18, + "target": 60 + } + }, + { + "data": { + "id": "274", + "source": 18, + "target": 65 + } + }, + { + "data": { + "id": "275", + "source": 19, + "target": 27 + } + }, + { + "data": { + "id": "276", + "source": 19, + "target": 20 + } + }, + { + "data": { + "id": "277", + "source": 19, + "target": 21 + } + }, + { + "data": { + "id": "278", + "source": 19, + "target": 47 + } + }, + { + "data": { + "id": "279", + "source": 19, + "target": 58 + } + }, + { + "data": { + "id": "280", + "source": 20, + "target": 21 + } + }, + { + "data": { + "id": "281", + "source": 20, + "target": 23 + } + }, + { + "data": { + "id": "282", + "source": 21, + "target": 23 + } + }, + { + "data": { + "id": "283", + "source": 21, + "target": 22 + } + }, + { + "data": { + "id": "284", + "source": 24, + "target": 29 + } + }, + { + "data": { + "id": "285", + "source": 26, + "target": 30 + } + }, + { + "data": { + "id": "286", + "source": 26, + "target": 58 + } + }, + { + "data": { + "id": "287", + "source": 26, + "target": 75 + } + }, + { + "data": { + "id": "288", + "source": 26, + "target": 28 + } + }, + { + "data": { + "id": "289", + "source": 26, + "target": 69 + } + }, + { + "data": { + "id": "290", + "source": 26, + "target": 27 + } + }, + { + "data": { + "id": "291", + "source": 26, + "target": 64 + } + }, + { + "data": { + "id": "292", + "source": 26, + "target": 68 + } + }, + { + "data": { + "id": "293", + "source": 26, + "target": 41 + } + }, + { + "data": { + "id": "294", + "source": 26, + "target": 42 + } + }, + { + "data": { + "id": "295", + "source": 26, + "target": 43 + } + }, + { + "data": { + "id": "296", + "source": 26, + "target": 62 + } + }, + { + "data": { + "id": "297", + "source": 27, + "target": 33 + } + }, + { + "data": { + "id": "298", + "source": 27, + "target": 28 + } + }, + { + "data": { + "id": "299", + "source": 27, + "target": 61 + } + }, + { + "data": { + "id": "300", + "source": 27, + "target": 59 + } + }, + { + "data": { + "id": "301", + "source": 27, + "target": 60 + } + }, + { + "data": { + "id": "302", + "source": 27, + "target": 39 + } + }, + { + "data": { + "id": "303", + "source": 27, + "target": 35 + } + }, + { + "data": { + "id": "304", + "source": 27, + "target": 47 + } + }, + { + "data": { + "id": "305", + "source": 27, + "target": 58 + } + }, + { + "data": { + "id": "306", + "source": 27, + "target": 64 + } + }, + { + "data": { + "id": "307", + "source": 27, + "target": 69 + } + }, + { + "data": { + "id": "308", + "source": 27, + "target": 62 + } + }, + { + "data": { + "id": "309", + "source": 28, + "target": 41 + } + }, + { + "data": { + "id": "310", + "source": 28, + "target": 46 + } + }, + { + "data": { + "id": "311", + "source": 28, + "target": 59 + } + }, + { + "data": { + "id": "312", + "source": 28, + "target": 69 + } + }, + { + "data": { + "id": "313", + "source": 28, + "target": 58 + } + }, + { + "data": { + "id": "314", + "source": 28, + "target": 47 + } + }, + { + "data": { + "id": "315", + "source": 29, + "target": 43 + } + }, + { + "data": { + "id": "316", + "source": 29, + "target": 76 + } + }, + { + "data": { + "id": "317", + "source": 29, + "target": 41 + } + }, + { + "data": { + "id": "318", + "source": 29, + "target": 58 + } + }, + { + "data": { + "id": "319", + "source": 29, + "target": 57 + } + }, + { + "data": { + "id": "320", + "source": 29, + "target": 67 + } + }, + { + "data": { + "id": "321", + "source": 29, + "target": 69 + } + }, + { + "data": { + "id": "322", + "source": 29, + "target": 75 + } + }, + { + "data": { + "id": "323", + "source": 29, + "target": 64 + } + }, + { + "data": { + "id": "324", + "source": 29, + "target": 65 + } + }, + { + "data": { + "id": "325", + "source": 29, + "target": 47 + } + }, + { + "data": { + "id": "326", + "source": 29, + "target": 42 + } + }, + { + "data": { + "id": "327", + "source": 29, + "target": 62 + } + }, + { + "data": { + "id": "328", + "source": 29, + "target": 60 + } + }, + { + "data": { + "id": "329", + "source": 29, + "target": 61 + } + }, + { + "data": { + "id": "330", + "source": 29, + "target": 59 + } + }, + { + "data": { + "id": "331", + "source": 29, + "target": 52 + } + }, + { + "data": { + "id": "332", + "source": 29, + "target": 45 + } + }, + { + "data": { + "id": "333", + "source": 30, + "target": 58 + } + }, + { + "data": { + "id": "334", + "source": 30, + "target": 63 + } + }, + { + "data": { + "id": "335", + "source": 30, + "target": 75 + } + }, + { + "data": { + "id": "336", + "source": 31, + "target": 62 + } + }, + { + "data": { + "id": "337", + "source": 31, + "target": 47 + } + }, + { + "data": { + "id": "338", + "source": 31, + "target": 41 + } + }, + { + "data": { + "id": "339", + "source": 31, + "target": 35 + } + }, + { + "data": { + "id": "340", + "source": 31, + "target": 39 + } + }, + { + "data": { + "id": "341", + "source": 31, + "target": 34 + } + }, + { + "data": { + "id": "342", + "source": 31, + "target": 46 + } + }, + { + "data": { + "id": "343", + "source": 32, + "target": 33 + } + }, + { + "data": { + "id": "344", + "source": 34, + "target": 66 + } + }, + { + "data": { + "id": "345", + "source": 34, + "target": 37 + } + }, + { + "data": { + "id": "346", + "source": 34, + "target": 51 + } + }, + { + "data": { + "id": "347", + "source": 34, + "target": 58 + } + }, + { + "data": { + "id": "348", + "source": 34, + "target": 69 + } + }, + { + "data": { + "id": "349", + "source": 36, + "target": 69 + } + }, + { + "data": { + "id": "350", + "source": 36, + "target": 37 + } + }, + { + "data": { + "id": "351", + "source": 38, + "target": 65 + } + }, + { + "data": { + "id": "352", + "source": 38, + "target": 64 + } + }, + { + "data": { + "id": "353", + "source": 39, + "target": 41 + } + }, + { + "data": { + "id": "354", + "source": 41, + "target": 62 + } + }, + { + "data": { + "id": "355", + "source": 41, + "target": 43 + } + }, + { + "data": { + "id": "356", + "source": 41, + "target": 58 + } + }, + { + "data": { + "id": "357", + "source": 41, + "target": 42 + } + }, + { + "data": { + "id": "358", + "source": 41, + "target": 44 + } + }, + { + "data": { + "id": "359", + "source": 41, + "target": 57 + } + }, + { + "data": { + "id": "360", + "source": 41, + "target": 68 + } + }, + { + "data": { + "id": "361", + "source": 41, + "target": 64 + } + }, + { + "data": { + "id": "362", + "source": 41, + "target": 76 + } + }, + { + "data": { + "id": "363", + "source": 41, + "target": 47 + } + }, + { + "data": { + "id": "364", + "source": 41, + "target": 65 + } + }, + { + "data": { + "id": "365", + "source": 41, + "target": 69 + } + }, + { + "data": { + "id": "366", + "source": 41, + "target": 63 + } + }, + { + "data": { + "id": "367", + "source": 41, + "target": 77 + } + }, + { + "data": { + "id": "368", + "source": 41, + "target": 73 + } + }, + { + "data": { + "id": "369", + "source": 41, + "target": 60 + } + }, + { + "data": { + "id": "370", + "source": 41, + "target": 46 + } + }, + { + "data": { + "id": "371", + "source": 41, + "target": 55 + } + }, + { + "data": { + "id": "372", + "source": 41, + "target": 45 + } + }, + { + "data": { + "id": "373", + "source": 41, + "target": 59 + } + }, + { + "data": { + "id": "374", + "source": 41, + "target": 75 + } + }, + { + "data": { + "id": "375", + "source": 42, + "target": 43 + } + }, + { + "data": { + "id": "376", + "source": 42, + "target": 58 + } + }, + { + "data": { + "id": "377", + "source": 42, + "target": 62 + } + }, + { + "data": { + "id": "378", + "source": 42, + "target": 47 + } + }, + { + "data": { + "id": "379", + "source": 42, + "target": 64 + } + }, + { + "data": { + "id": "380", + "source": 42, + "target": 57 + } + }, + { + "data": { + "id": "381", + "source": 42, + "target": 50 + } + }, + { + "data": { + "id": "382", + "source": 42, + "target": 65 + } + }, + { + "data": { + "id": "383", + "source": 42, + "target": 46 + } + }, + { + "data": { + "id": "384", + "source": 42, + "target": 44 + } + }, + { + "data": { + "id": "385", + "source": 42, + "target": 45 + } + }, + { + "data": { + "id": "386", + "source": 42, + "target": 60 + } + }, + { + "data": { + "id": "387", + "source": 42, + "target": 69 + } + }, + { + "data": { + "id": "388", + "source": 42, + "target": 78 + } + }, + { + "data": { + "id": "389", + "source": 42, + "target": 77 + } + }, + { + "data": { + "id": "390", + "source": 43, + "target": 58 + } + }, + { + "data": { + "id": "391", + "source": 43, + "target": 62 + } + }, + { + "data": { + "id": "392", + "source": 43, + "target": 47 + } + }, + { + "data": { + "id": "393", + "source": 43, + "target": 64 + } + }, + { + "data": { + "id": "394", + "source": 43, + "target": 54 + } + }, + { + "data": { + "id": "395", + "source": 43, + "target": 59 + } + }, + { + "data": { + "id": "396", + "source": 43, + "target": 44 + } + }, + { + "data": { + "id": "397", + "source": 43, + "target": 57 + } + }, + { + "data": { + "id": "398", + "source": 43, + "target": 49 + } + }, + { + "data": { + "id": "399", + "source": 43, + "target": 46 + } + }, + { + "data": { + "id": "400", + "source": 43, + "target": 50 + } + }, + { + "data": { + "id": "401", + "source": 43, + "target": 69 + } + }, + { + "data": { + "id": "402", + "source": 43, + "target": 60 + } + }, + { + "data": { + "id": "403", + "source": 43, + "target": 77 + } + }, + { + "data": { + "id": "404", + "source": 43, + "target": 76 + } + }, + { + "data": { + "id": "405", + "source": 43, + "target": 65 + } + }, + { + "data": { + "id": "406", + "source": 43, + "target": 63 + } + }, + { + "data": { + "id": "407", + "source": 43, + "target": 75 + } + }, + { + "data": { + "id": "408", + "source": 43, + "target": 45 + } + }, + { + "data": { + "id": "409", + "source": 43, + "target": 66 + } + }, + { + "data": { + "id": "410", + "source": 43, + "target": 68 + } + }, + { + "data": { + "id": "411", + "source": 43, + "target": 61 + } + }, + { + "data": { + "id": "412", + "source": 43, + "target": 67 + } + }, + { + "data": { + "id": "413", + "source": 43, + "target": 51 + } + }, + { + "data": { + "id": "414", + "source": 44, + "target": 47 + } + }, + { + "data": { + "id": "415", + "source": 44, + "target": 62 + } + }, + { + "data": { + "id": "416", + "source": 44, + "target": 57 + } + }, + { + "data": { + "id": "417", + "source": 44, + "target": 46 + } + }, + { + "data": { + "id": "418", + "source": 44, + "target": 58 + } + }, + { + "data": { + "id": "419", + "source": 44, + "target": 68 + } + }, + { + "data": { + "id": "420", + "source": 44, + "target": 45 + } + }, + { + "data": { + "id": "421", + "source": 44, + "target": 77 + } + }, + { + "data": { + "id": "422", + "source": 44, + "target": 64 + } + }, + { + "data": { + "id": "423", + "source": 44, + "target": 69 + } + }, + { + "data": { + "id": "424", + "source": 45, + "target": 46 + } + }, + { + "data": { + "id": "425", + "source": 45, + "target": 62 + } + }, + { + "data": { + "id": "426", + "source": 45, + "target": 57 + } + }, + { + "data": { + "id": "427", + "source": 45, + "target": 47 + } + }, + { + "data": { + "id": "428", + "source": 45, + "target": 78 + } + }, + { + "data": { + "id": "429", + "source": 45, + "target": 53 + } + }, + { + "data": { + "id": "430", + "source": 46, + "target": 47 + } + }, + { + "data": { + "id": "431", + "source": 46, + "target": 62 + } + }, + { + "data": { + "id": "432", + "source": 46, + "target": 78 + } + }, + { + "data": { + "id": "433", + "source": 46, + "target": 53 + } + }, + { + "data": { + "id": "434", + "source": 46, + "target": 58 + } + }, + { + "data": { + "id": "435", + "source": 46, + "target": 57 + } + }, + { + "data": { + "id": "436", + "source": 46, + "target": 71 + } + }, + { + "data": { + "id": "437", + "source": 46, + "target": 65 + } + }, + { + "data": { + "id": "438", + "source": 47, + "target": 62 + } + }, + { + "data": { + "id": "439", + "source": 47, + "target": 57 + } + }, + { + "data": { + "id": "440", + "source": 47, + "target": 58 + } + }, + { + "data": { + "id": "441", + "source": 47, + "target": 51 + } + }, + { + "data": { + "id": "442", + "source": 47, + "target": 50 + } + }, + { + "data": { + "id": "443", + "source": 47, + "target": 60 + } + }, + { + "data": { + "id": "444", + "source": 47, + "target": 59 + } + }, + { + "data": { + "id": "445", + "source": 47, + "target": 77 + } + }, + { + "data": { + "id": "446", + "source": 47, + "target": 76 + } + }, + { + "data": { + "id": "447", + "source": 47, + "target": 53 + } + }, + { + "data": { + "id": "448", + "source": 47, + "target": 48 + } + }, + { + "data": { + "id": "449", + "source": 47, + "target": 63 + } + }, + { + "data": { + "id": "450", + "source": 47, + "target": 73 + } + }, + { + "data": { + "id": "451", + "source": 47, + "target": 64 + } + }, + { + "data": { + "id": "452", + "source": 47, + "target": 71 + } + }, + { + "data": { + "id": "453", + "source": 47, + "target": 74 + } + }, + { + "data": { + "id": "454", + "source": 47, + "target": 54 + } + }, + { + "data": { + "id": "455", + "source": 47, + "target": 69 + } + }, + { + "data": { + "id": "456", + "source": 47, + "target": 65 + } + }, + { + "data": { + "id": "457", + "source": 48, + "target": 77 + } + }, + { + "data": { + "id": "458", + "source": 48, + "target": 60 + } + }, + { + "data": { + "id": "459", + "source": 48, + "target": 52 + } + }, + { + "data": { + "id": "460", + "source": 48, + "target": 56 + } + }, + { + "data": { + "id": "461", + "source": 48, + "target": 81 + } + }, + { + "data": { + "id": "462", + "source": 48, + "target": 50 + } + }, + { + "data": { + "id": "463", + "source": 49, + "target": 51 + } + }, + { + "data": { + "id": "464", + "source": 49, + "target": 62 + } + }, + { + "data": { + "id": "465", + "source": 49, + "target": 50 + } + }, + { + "data": { + "id": "466", + "source": 49, + "target": 58 + } + }, + { + "data": { + "id": "467", + "source": 50, + "target": 58 + } + }, + { + "data": { + "id": "468", + "source": 50, + "target": 62 + } + }, + { + "data": { + "id": "469", + "source": 50, + "target": 64 + } + }, + { + "data": { + "id": "470", + "source": 50, + "target": 61 + } + }, + { + "data": { + "id": "471", + "source": 50, + "target": 57 + } + }, + { + "data": { + "id": "472", + "source": 50, + "target": 56 + } + }, + { + "data": { + "id": "473", + "source": 50, + "target": 51 + } + }, + { + "data": { + "id": "474", + "source": 51, + "target": 62 + } + }, + { + "data": { + "id": "475", + "source": 52, + "target": 53 + } + }, + { + "data": { + "id": "476", + "source": 53, + "target": 61 + } + }, + { + "data": { + "id": "477", + "source": 54, + "target": 58 + } + }, + { + "data": { + "id": "478", + "source": 54, + "target": 62 + } + }, + { + "data": { + "id": "479", + "source": 55, + "target": 71 + } + }, + { + "data": { + "id": "480", + "source": 55, + "target": 57 + } + }, + { + "data": { + "id": "481", + "source": 55, + "target": 62 + } + }, + { + "data": { + "id": "482", + "source": 56, + "target": 58 + } + }, + { + "data": { + "id": "483", + "source": 56, + "target": 57 + } + }, + { + "data": { + "id": "484", + "source": 57, + "target": 62 + } + }, + { + "data": { + "id": "485", + "source": 57, + "target": 79 + } + }, + { + "data": { + "id": "486", + "source": 57, + "target": 77 + } + }, + { + "data": { + "id": "487", + "source": 57, + "target": 66 + } + }, + { + "data": { + "id": "488", + "source": 57, + "target": 76 + } + }, + { + "data": { + "id": "489", + "source": 57, + "target": 60 + } + }, + { + "data": { + "id": "490", + "source": 57, + "target": 58 + } + }, + { + "data": { + "id": "491", + "source": 58, + "target": 64 + } + }, + { + "data": { + "id": "492", + "source": 58, + "target": 66 + } + }, + { + "data": { + "id": "493", + "source": 58, + "target": 68 + } + }, + { + "data": { + "id": "494", + "source": 58, + "target": 59 + } + }, + { + "data": { + "id": "495", + "source": 58, + "target": 62 + } + }, + { + "data": { + "id": "496", + "source": 58, + "target": 65 + } + }, + { + "data": { + "id": "497", + "source": 58, + "target": 60 + } + }, + { + "data": { + "id": "498", + "source": 58, + "target": 69 + } + }, + { + "data": { + "id": "499", + "source": 58, + "target": 61 + } + }, + { + "data": { + "id": "500", + "source": 58, + "target": 75 + } + }, + { + "data": { + "id": "501", + "source": 58, + "target": 67 + } + }, + { + "data": { + "id": "502", + "source": 58, + "target": 77 + } + }, + { + "data": { + "id": "503", + "source": 58, + "target": 76 + } + }, + { + "data": { + "id": "504", + "source": 58, + "target": 79 + } + }, + { + "data": { + "id": "505", + "source": 58, + "target": 63 + } + }, + { + "data": { + "id": "506", + "source": 58, + "target": 73 + } + }, + { + "data": { + "id": "507", + "source": 58, + "target": 70 + } + }, + { + "data": { + "id": "508", + "source": 59, + "target": 60 + } + }, + { + "data": { + "id": "509", + "source": 59, + "target": 77 + } + }, + { + "data": { + "id": "510", + "source": 59, + "target": 65 + } + }, + { + "data": { + "id": "511", + "source": 59, + "target": 66 + } + }, + { + "data": { + "id": "512", + "source": 59, + "target": 61 + } + }, + { + "data": { + "id": "513", + "source": 59, + "target": 62 + } + }, + { + "data": { + "id": "514", + "source": 59, + "target": 67 + } + }, + { + "data": { + "id": "515", + "source": 59, + "target": 75 + } + }, + { + "data": { + "id": "516", + "source": 59, + "target": 79 + } + }, + { + "data": { + "id": "517", + "source": 59, + "target": 69 + } + }, + { + "data": { + "id": "518", + "source": 59, + "target": 64 + } + }, + { + "data": { + "id": "519", + "source": 60, + "target": 76 + } + }, + { + "data": { + "id": "520", + "source": 60, + "target": 64 + } + }, + { + "data": { + "id": "521", + "source": 60, + "target": 62 + } + }, + { + "data": { + "id": "522", + "source": 60, + "target": 65 + } + }, + { + "data": { + "id": "523", + "source": 60, + "target": 68 + } + }, + { + "data": { + "id": "524", + "source": 60, + "target": 77 + } + }, + { + "data": { + "id": "525", + "source": 61, + "target": 67 + } + }, + { + "data": { + "id": "526", + "source": 61, + "target": 79 + } + }, + { + "data": { + "id": "527", + "source": 61, + "target": 69 + } + }, + { + "data": { + "id": "528", + "source": 61, + "target": 75 + } + }, + { + "data": { + "id": "529", + "source": 61, + "target": 68 + } + }, + { + "data": { + "id": "530", + "source": 61, + "target": 74 + } + }, + { + "data": { + "id": "531", + "source": 61, + "target": 64 + } + }, + { + "data": { + "id": "532", + "source": 61, + "target": 65 + } + }, + { + "data": { + "id": "533", + "source": 62, + "target": 69 + } + }, + { + "data": { + "id": "534", + "source": 62, + "target": 74 + } + }, + { + "data": { + "id": "535", + "source": 62, + "target": 65 + } + }, + { + "data": { + "id": "536", + "source": 62, + "target": 67 + } + }, + { + "data": { + "id": "537", + "source": 62, + "target": 75 + } + }, + { + "data": { + "id": "538", + "source": 62, + "target": 77 + } + }, + { + "data": { + "id": "539", + "source": 62, + "target": 76 + } + }, + { + "data": { + "id": "540", + "source": 62, + "target": 68 + } + }, + { + "data": { + "id": "541", + "source": 62, + "target": 64 + } + }, + { + "data": { + "id": "542", + "source": 62, + "target": 78 + } + }, + { + "data": { + "id": "543", + "source": 63, + "target": 77 + } + }, + { + "data": { + "id": "544", + "source": 63, + "target": 75 + } + }, + { + "data": { + "id": "545", + "source": 64, + "target": 66 + } + }, + { + "data": { + "id": "546", + "source": 64, + "target": 68 + } + }, + { + "data": { + "id": "547", + "source": 64, + "target": 65 + } + }, + { + "data": { + "id": "548", + "source": 64, + "target": 77 + } + }, + { + "data": { + "id": "549", + "source": 64, + "target": 76 + } + }, + { + "data": { + "id": "550", + "source": 64, + "target": 75 + } + }, + { + "data": { + "id": "551", + "source": 64, + "target": 69 + } + }, + { + "data": { + "id": "552", + "source": 65, + "target": 69 + } + }, + { + "data": { + "id": "553", + "source": 65, + "target": 66 + } + }, + { + "data": { + "id": "554", + "source": 65, + "target": 68 + } + }, + { + "data": { + "id": "555", + "source": 65, + "target": 76 + } + }, + { + "data": { + "id": "556", + "source": 65, + "target": 75 + } + }, + { + "data": { + "id": "557", + "source": 65, + "target": 67 + } + }, + { + "data": { + "id": "558", + "source": 66, + "target": 68 + } + }, + { + "data": { + "id": "559", + "source": 66, + "target": 69 + } + }, + { + "data": { + "id": "560", + "source": 66, + "target": 75 + } + }, + { + "data": { + "id": "561", + "source": 67, + "target": 69 + } + }, + { + "data": { + "id": "562", + "source": 67, + "target": 75 + } + }, + { + "data": { + "id": "563", + "source": 67, + "target": 74 + } + }, + { + "data": { + "id": "564", + "source": 68, + "target": 74 + } + }, + { + "data": { + "id": "565", + "source": 68, + "target": 69 + } + }, + { + "data": { + "id": "566", + "source": 69, + "target": 70 + } + }, + { + "data": { + "id": "567", + "source": 69, + "target": 76 + } + }, + { + "data": { + "id": "568", + "source": 69, + "target": 75 + } + }, + { + "data": { + "id": "569", + "source": 69, + "target": 74 + } + }, + { + "data": { + "id": "570", + "source": 70, + "target": 76 + } + }, + { + "data": { + "id": "571", + "source": 71, + "target": 74 + } + }, + { + "data": { + "id": "572", + "source": 71, + "target": 76 + } + }, + { + "data": { + "id": "573", + "source": 74, + "target": 76 + } + }, + { + "data": { + "id": "574", + "source": 75, + "target": 77 + } + }, + { + "data": { + "id": "575", + "source": 76, + "target": 78 + } + } + ], +}; + +export default elems; diff --git a/src/data/types.ts b/src/data/types.ts new file mode 100644 index 0000000..ef639d3 --- /dev/null +++ b/src/data/types.ts @@ -0,0 +1,26 @@ +import { ElementDefinition } from 'cytoscape'; + +export type NodeData = { + id: number; + name: string; + score: number; +}; + +export type EdgeData = { + id: number; + source: number; + target: number; +}; + +export type GraphNode = { + data: NodeData; +}; + +export type GraphEdge = { + data: EdgeData; +}; + +export type GraphData = { + nodes: ElementDefinition[]; + edges: ElementDefinition[]; +}; diff --git a/yarn.lock b/yarn.lock index 8be3f15..1547002 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31,6 +31,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.16.7": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" + dependencies: + "@babel/highlight": ^7.22.13 + chalk: ^2.4.2 + checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058 + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.22.5": version: 7.22.5 resolution: "@babel/code-frame@npm:7.22.5" @@ -70,6 +80,29 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:7.17.7": + version: 7.17.7 + resolution: "@babel/generator@npm:7.17.7" + dependencies: + "@babel/types": ^7.17.0 + jsesc: ^2.5.1 + source-map: ^0.5.0 + checksum: e7344b9b4559115f2754ecc2ae9508412ea6a8f617544cd3d3f17cabc727bd30630765f96c8a4ebc8901ded1492a3a6c23d695a4f1e8f3042f860b30c891985c + languageName: node + linkType: hard + +"@babel/generator@npm:^7.17.3": + version: 7.22.15 + resolution: "@babel/generator@npm:7.22.15" + dependencies: + "@babel/types": ^7.22.15 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 5b2a3ccdc3634f6ea86e0a442722bcd430238369432d31f15b428a4ee8013c2f4f917b5b135bf4fc1d0a3e2f87f10fd4ce5d07955ecc2d3b9400a05c2a481374 + languageName: node + linkType: hard + "@babel/generator@npm:^7.22.5": version: 7.22.5 resolution: "@babel/generator@npm:7.22.5" @@ -97,14 +130,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.5": +"@babel/helper-environment-visitor@npm:^7.16.7, @babel/helper-environment-visitor@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-environment-visitor@npm:7.22.5" checksum: 248532077d732a34cd0844eb7b078ff917c3a8ec81a7f133593f71a860a582f05b60f818dc5049c2212e5baa12289c27889a4b81d56ef409b4863db49646c4b1 languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.22.5": +"@babel/helper-function-name@npm:^7.16.7, @babel/helper-function-name@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-function-name@npm:7.22.5" dependencies: @@ -114,7 +147,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.22.5": +"@babel/helper-hoist-variables@npm:^7.16.7, @babel/helper-hoist-variables@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-hoist-variables@npm:7.22.5" dependencies: @@ -171,6 +204,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-split-export-declaration@npm:^7.16.7": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": ^7.22.5 + checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-split-export-declaration@npm:7.22.5" @@ -194,6 +236,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-validator-identifier@npm:7.22.15" + checksum: eb0bee4bda664c0959924bc1ad5611eacfce806f46612202dd164fef1df8fef1a11682a1e7615288987100e9fb304982b6e2a4ff07ffe842ab8765b95ed1118c + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": version: 7.19.1 resolution: "@babel/helper-validator-identifier@npm:7.19.1" @@ -237,6 +286,17 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.22.13": + version: 7.22.13 + resolution: "@babel/highlight@npm:7.22.13" + dependencies: + "@babel/helper-validator-identifier": ^7.22.5 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 7266d2bff8aa8fc78eb65b6e92a8211e12897a731126a282d2f9bb50d8fcaa4c1b02af2284f990ac7e3ab8d892d448a2cab8f5ed0ea8a90bce2c025b11ebe802 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.22.5": version: 7.22.5 resolution: "@babel/highlight@npm:7.22.5" @@ -248,6 +308,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.17.3, @babel/parser@npm:^7.20.5": + version: 7.22.16 + resolution: "@babel/parser@npm:7.22.16" + bin: + parser: ./bin/babel-parser.js + checksum: 944c756b5bdeb07b9fec16ecef6b3c61aff9d4c4b924abadcf01afa1840a740b8e2357ae00482b5b37daad6d2bfd848c947f27ad65138d687b6fdc924bc59edd + languageName: node + linkType: hard + "@babel/parser@npm:^7.21.4": version: 7.21.8 resolution: "@babel/parser@npm:7.21.8" @@ -299,6 +368,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:7.17.3": + version: 7.17.3 + resolution: "@babel/traverse@npm:7.17.3" + dependencies: + "@babel/code-frame": ^7.16.7 + "@babel/generator": ^7.17.3 + "@babel/helper-environment-visitor": ^7.16.7 + "@babel/helper-function-name": ^7.16.7 + "@babel/helper-hoist-variables": ^7.16.7 + "@babel/helper-split-export-declaration": ^7.16.7 + "@babel/parser": ^7.17.3 + "@babel/types": ^7.17.0 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 780d7ecf711758174989794891af08d378f81febdb8932056c0d9979524bf0298e28f8e7708a872d7781151506c28f56c85c63ea3f1f654662c2fcb8a3eb9fdc + languageName: node + linkType: hard + "@babel/traverse@npm:^7.22.5": version: 7.22.5 resolution: "@babel/traverse@npm:7.22.5" @@ -317,6 +404,27 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:7.17.0": + version: 7.17.0 + resolution: "@babel/types@npm:7.17.0" + dependencies: + "@babel/helper-validator-identifier": ^7.16.7 + to-fast-properties: ^2.0.0 + checksum: 12e5a287986fe557188e87b2c5202223f1dc83d9239a196ab936fdb9f8c1eb0be717ff19f934b5fad4e29a75586d5798f74bed209bccea1c20376b9952056f0e + languageName: node + linkType: hard + +"@babel/types@npm:^7.17.0, @babel/types@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/types@npm:7.22.15" + dependencies: + "@babel/helper-string-parser": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.15 + to-fast-properties: ^2.0.0 + checksum: a2aa59746dc8500c358a3a9afca2adff49dbade009d616aa8308714485064f2218da04e1823f1243a4992f1424ec6d6719e76a7af9a0ac3647227dca3015eea4 + languageName: node + linkType: hard + "@babel/types@npm:^7.22.5": version: 7.22.5 resolution: "@babel/types@npm:7.22.5" @@ -713,6 +821,26 @@ __metadata: languageName: node linkType: hard +"@trivago/prettier-plugin-sort-imports@npm:^4.2.0": + version: 4.2.0 + resolution: "@trivago/prettier-plugin-sort-imports@npm:4.2.0" + dependencies: + "@babel/generator": 7.17.7 + "@babel/parser": ^7.20.5 + "@babel/traverse": 7.17.3 + "@babel/types": 7.17.0 + javascript-natural-sort: 0.7.1 + lodash: ^4.17.21 + peerDependencies: + "@vue/compiler-sfc": 3.x + prettier: 2.x - 3.x + peerDependenciesMeta: + "@vue/compiler-sfc": + optional: true + checksum: 2081ba9f1a2d33b9a3eeadeb3e713d404ee3d1a5cff3b20a23d94d6d915f0a8ff549616c1e77cd728f1b33733e0d7ab8e4c2512f344a612d81ece40025351160 + languageName: node + linkType: hard + "@ts-morph/common@npm:~0.19.0": version: 0.19.0 resolution: "@ts-morph/common@npm:0.19.0" @@ -748,6 +876,13 @@ __metadata: languageName: node linkType: hard +"@types/cytoscape@npm:*": + version: 3.19.11 + resolution: "@types/cytoscape@npm:3.19.11" + checksum: 6c4a1ba52b416d70c6f8e00b5a5c474e1f2cae5150682c3e6976f6c8ac6b99cab99bcc5887640149901e6704f38627b58e3face8620bff8dac94404329164d8b + languageName: node + linkType: hard + "@types/estree@npm:^1.0.0": version: 1.0.1 resolution: "@types/estree@npm:1.0.1" @@ -769,6 +904,16 @@ __metadata: languageName: node linkType: hard +"@types/react-cytoscapejs@npm:^1.2.2": + version: 1.2.2 + resolution: "@types/react-cytoscapejs@npm:1.2.2" + dependencies: + "@types/cytoscape": "*" + "@types/react": "*" + checksum: 6de669ffce58793b2222ba28f63bddbcb6b85482c4853421f51688c3d64094b03c19cf8222aaa830be9ef4b33add4911f902747254070d5766032ff33dcd8b68 + languageName: node + linkType: hard + "@types/react-dom@npm:^18.2.5": version: 18.2.5 resolution: "@types/react-dom@npm:18.2.5" @@ -879,12 +1024,20 @@ __metadata: version: 0.0.0-use.local resolution: "@x-image-privacy/wordcloud@workspace:." dependencies: + "@trivago/prettier-plugin-sort-imports": ^4.2.0 "@types/react": ^18.2.12 + "@types/react-cytoscapejs": ^1.2.2 "@types/react-dom": ^18.2.5 "@vitejs/plugin-react": ^4.0.0 autoprefixer: ^10.4.14 + cytoscape: ^3.26.0 + cytoscape-avsdf: ^1.0.0 + cytoscape-cola: ^2.5.1 + cytoscape-fcose: ^2.2.0 postcss: ^8.4.24 + prettier: ^3.0.3 react: ^18.2.0 + react-cytoscapejs: ^2.0.0 react-dom: ^18.2.0 tailwindcss: ^3.3.2 typescript: ^5.1.3 @@ -1076,6 +1229,15 @@ __metadata: languageName: node linkType: hard +"avsdf-base@npm:^1.0.0": + version: 1.0.0 + resolution: "avsdf-base@npm:1.0.0" + dependencies: + layout-base: ^1.0.0 + checksum: ab610add3ca3eff34af26e2144b0797c8de704ad47e2afa7daa9cedcb80100278a25dfad00465de0027dab1ae4926049f878a7437531d43c348e825dcaa95144 + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -1222,7 +1384,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0": +"chalk@npm:^2.0.0, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -1396,6 +1558,15 @@ __metadata: languageName: node linkType: hard +"cose-base@npm:^2.2.0": + version: 2.2.0 + resolution: "cose-base@npm:2.2.0" + dependencies: + layout-base: ^2.0.0 + checksum: 2e694f340bf216c71fc126d237578a4168e138720011d0b48c88bf9bfc7fd45f912eff2c603ef3d1307d6e3ce6f465ed382285a764a3a6620db590c5457d2557 + languageName: node + linkType: hard + "cssesc@npm:^3.0.0": version: 3.0.0 resolution: "cssesc@npm:3.0.0" @@ -1412,6 +1583,96 @@ __metadata: languageName: node linkType: hard +"cytoscape-avsdf@npm:^1.0.0": + version: 1.0.0 + resolution: "cytoscape-avsdf@npm:1.0.0" + dependencies: + avsdf-base: ^1.0.0 + peerDependencies: + cytoscape: ^3.2.0 + checksum: 3ed573f5248652e6f10caedab6324e5c4293d16f4446fd362ece6902947858d6b821bbbcdeab7249d3299fbd3bf38f632d645afc5259eaec9491933e82d86dcd + languageName: node + linkType: hard + +"cytoscape-cola@npm:^2.5.1": + version: 2.5.1 + resolution: "cytoscape-cola@npm:2.5.1" + dependencies: + webcola: ^3.4.0 + peerDependencies: + cytoscape: ^3.2.0 + checksum: 3a41a535919c42164adca6720d3d23a18e58dfdf92fe1c51fc2c5a636317a89bdedf00e5521bfa4f1e6673efec0e6db43957c0e9484f026c6cde168be344bffd + languageName: node + linkType: hard + +"cytoscape-fcose@npm:^2.2.0": + version: 2.2.0 + resolution: "cytoscape-fcose@npm:2.2.0" + dependencies: + cose-base: ^2.2.0 + peerDependencies: + cytoscape: ^3.2.0 + checksum: 94ffe6f131f9c08c2a0a7a6ce1c6c5e523a395bf8d84eba6d4a5f85e23f33788ea3ff807540861a5f78a6914a27729e06a7e6f66784f4f28ea1c030acf500121 + languageName: node + linkType: hard + +"cytoscape@npm:^3.26.0": + version: 3.26.0 + resolution: "cytoscape@npm:3.26.0" + dependencies: + heap: ^0.2.6 + lodash: ^4.17.21 + checksum: c6a3b2fbe99009cde6e5e2eb6ff2e0469b37f3e12b0828d676aa3c25a7ce7b6ed689b6765e9d3975d51c718a7870e358c639c9128352813b95eb342ef64a26b8 + languageName: node + linkType: hard + +"d3-dispatch@npm:1, d3-dispatch@npm:^1.0.3": + version: 1.0.6 + resolution: "d3-dispatch@npm:1.0.6" + checksum: b4ecb016b6dda8b99aa4263b2d0a0c7b12e7dea93e4b0ce3013c94dca4d360d9ba00f5bdc15dc944cc4543af8e341067bd628f061f7b8deb642257e2ac90d06c + languageName: node + linkType: hard + +"d3-drag@npm:^1.0.4": + version: 1.2.5 + resolution: "d3-drag@npm:1.2.5" + dependencies: + d3-dispatch: 1 + d3-selection: 1 + checksum: 6e86e89aa8d511979eea1b5326709c05c2a3c2d43a93a82ed6b6f98528b2ab03b2f58f5e4f66582f2f1c0ae44f9c19f6f4f857249eb66aabc46e4942295fa0a7 + languageName: node + linkType: hard + +"d3-path@npm:1": + version: 1.0.9 + resolution: "d3-path@npm:1.0.9" + checksum: d4382573baf9509a143f40944baeff9fead136926aed6872f7ead5b3555d68925f8a37935841dd51f1d70b65a294fe35c065b0906fb6e42109295f6598fc16d0 + languageName: node + linkType: hard + +"d3-selection@npm:1": + version: 1.4.2 + resolution: "d3-selection@npm:1.4.2" + checksum: 2484b392259b087a98f546f2610e6a11c90f38dae6b6b20a3fc85171038fcab4c72e702788b1960a4fece88bed2e36f268096358b5b48d3c7f0d35cfbe305da6 + languageName: node + linkType: hard + +"d3-shape@npm:^1.3.5": + version: 1.3.7 + resolution: "d3-shape@npm:1.3.7" + dependencies: + d3-path: 1 + checksum: 46566a3ab64a25023653bf59d64e81e9e6c987e95be985d81c5cedabae5838bd55f4a201a6b69069ca862eb63594cd263cac9034afc2b0e5664dfe286c866129 + languageName: node + linkType: hard + +"d3-timer@npm:^1.0.5": + version: 1.0.10 + resolution: "d3-timer@npm:1.0.10" + checksum: f7040953672deb2dfa03830ace80dbbcb212f80890218eba15dcca6f33f74102d943023ccc2a563295195cd8c63639bb2410ef1691c8fecff4a114fdf5c666f4 + languageName: node + linkType: hard + "date-time@npm:^3.1.0": version: 3.1.0 resolution: "date-time@npm:3.1.0" @@ -1886,6 +2147,13 @@ __metadata: languageName: node linkType: hard +"heap@npm:^0.2.6": + version: 0.2.7 + resolution: "heap@npm:0.2.7" + checksum: b0f3963a799e02173f994c452921a777f2b895b710119df999736bfed7477235c2860c423d9aea18a9f3b3d065cb1114d605c208cfcb8d0ac550f97ec5d28cb0 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.0": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -2046,6 +2314,13 @@ __metadata: languageName: node linkType: hard +"javascript-natural-sort@npm:0.7.1": + version: 0.7.1 + resolution: "javascript-natural-sort@npm:0.7.1" + checksum: 161e2c512cc7884bc055a582c6645d9032cab88497a76123d73cb23bfb03d97a04cf7772ecdb8bd3366fc07192c2f996366f479f725c23ef073fffe03d6a586a + languageName: node + linkType: hard + "jiti@npm:^1.18.2": version: 1.18.2 resolution: "jiti@npm:1.18.2" @@ -2140,6 +2415,20 @@ __metadata: languageName: node linkType: hard +"layout-base@npm:^1.0.0": + version: 1.0.2 + resolution: "layout-base@npm:1.0.2" + checksum: e4c312765ac4fa13b49c940e701461309c7a0aa07f784f81d31f626b945dced90a8abf83222388a5af16b7074271f745501a90ef5a3af676abb2e7eb16d55b2e + languageName: node + linkType: hard + +"layout-base@npm:^2.0.0": + version: 2.0.1 + resolution: "layout-base@npm:2.0.1" + checksum: ef93baf044f67c3680f4f3a6d628bf4c7faba0f70f3e0abb16e4811bed087045208560347ca749e123d169cbf872505ad84e11fb21b0be925997227e042c7f43 + languageName: node + linkType: hard + "lilconfig@npm:^2.0.5, lilconfig@npm:^2.1.0": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" @@ -2189,14 +2478,14 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.15, lodash@npm:~4.17.15": +"lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:~4.17.15": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 languageName: node linkType: hard -"loose-envify@npm:^1.1.0": +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -2564,7 +2853,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4.0.1": +"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f @@ -2778,6 +3067,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^3.0.3": + version: 3.0.3 + resolution: "prettier@npm:3.0.3" + bin: + prettier: bin/prettier.cjs + checksum: e10b9af02b281f6c617362ebd2571b1d7fc9fb8a3bd17e371754428cda992e5e8d8b7a046e8f7d3e2da1dcd21aa001e2e3c797402ebb6111b5cd19609dd228e0 + languageName: node + linkType: hard + "pretty-format@npm:^27.5.1": version: 27.5.1 resolution: "pretty-format@npm:27.5.1" @@ -2806,6 +3104,17 @@ __metadata: languageName: node linkType: hard +"prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + "punycode@npm:^2.1.0": version: 2.3.0 resolution: "punycode@npm:2.3.0" @@ -2820,6 +3129,18 @@ __metadata: languageName: node linkType: hard +"react-cytoscapejs@npm:^2.0.0": + version: 2.0.0 + resolution: "react-cytoscapejs@npm:2.0.0" + dependencies: + prop-types: ^15.8.1 + peerDependencies: + cytoscape: ^3.2.19 + react: ">=15.0.0" + checksum: 911a972262a4a7752b476108b334e53764198703802b7f3d2018f34be6a49ccfac43e3b5c33e8fb589e21be60c6745b131d2854a48903c29d8f9e2849d7d436a + languageName: node + linkType: hard + "react-dom@npm:^18.2.0": version: 18.2.0 resolution: "react-dom@npm:18.2.0" @@ -2832,6 +3153,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^16.13.1": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + "react-is@npm:^17.0.1": version: 17.0.2 resolution: "react-is@npm:17.0.2" @@ -3099,6 +3427,13 @@ __metadata: languageName: node linkType: hard +"source-map@npm:^0.5.0": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d + languageName: node + linkType: hard + "source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" @@ -3741,6 +4076,18 @@ __metadata: languageName: node linkType: hard +"webcola@npm:^3.4.0": + version: 3.4.0 + resolution: "webcola@npm:3.4.0" + dependencies: + d3-dispatch: ^1.0.3 + d3-drag: ^1.0.4 + d3-shape: ^1.3.5 + d3-timer: ^1.0.5 + checksum: 046f7cc06ef077b42e2cdecba9b9407452008444629a95d1c921283b9dae7c874ef8b5d66d4e21d56f427662598ae12d11992fbe10ec29d8ec0bcc68f6c40b75 + languageName: node + linkType: hard + "well-known-symbols@npm:^2.0.0": version: 2.0.0 resolution: "well-known-symbols@npm:2.0.0"