diff --git a/angular.json b/angular.json index c3bd46d62e..3e3f6e1ce7 100644 --- a/angular.json +++ b/angular.json @@ -49,9 +49,7 @@ "src/styles.scss" ], "scripts": [ - "node_modules/openseadragon/build/openseadragon/openseadragon.min.js", - "node_modules/3d-force-graph/dist/3d-force-graph.min.js", - "node_modules/d3-force-3d/dist/d3-force-3d.js" + "node_modules/openseadragon/build/openseadragon/openseadragon.min.js" ] }, "configurations": { diff --git a/package-lock.json b/package-lock.json index 3f5750dd05..010f590503 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,12 +23,9 @@ "@datadog/browser-rum": "^3.7.0", "@ngx-translate/core": "^12.1.2", "@ngx-translate/http-loader": "5.0.0", - "3d-force-graph": "^1.60.12", "angular-split": "^4.0.0", "ckeditor5-custom-build": "github:dasch-swiss/ckeditor_custom_build#v2.0.0", "core-js": "^3.19.1", - "d3": "^5.15.1", - "d3-force-3d": "^2.1.0", "jdnconvertiblecalendar": "^0.0.7", "jdnconvertiblecalendardateadapter": "^0.0.17", "json2typescript": "^1.0.6", @@ -41,8 +38,6 @@ "rollbar": "^2.24.0", "rxjs": "~6.5.5", "semver": "^6.1.1", - "three": "^0.125.0", - "three-spritetext": "^1.5.1", "ts-md5": "^1.2.7", "tslib": "^2.2.0", "zone.js": "~0.11.4" @@ -53,7 +48,6 @@ "@angular/cli": "^12.2.14", "@angular/compiler-cli": "^12.2.14", "@angular/language-service": "^12.2.14", - "@types/d3": "^5.7.2", "@types/jasmine": "~3.6.0", "@types/jasminewd2": "~2.0.3", "@types/node": "^12.20.37", @@ -2349,6 +2343,7 @@ "version": "7.14.8", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", + "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -2871,11 +2866,6 @@ "node": ">=10.13.0" } }, - "node_modules/@tweenjs/tween.js": { - "version": "18.6.4", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-18.6.4.tgz", - "integrity": "sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ==" - }, "node_modules/@types/component-emitter": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", @@ -2894,266 +2884,6 @@ "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, - "node_modules/@types/d3": { - "version": "5.16.4", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-5.16.4.tgz", - "integrity": "sha512-2u0O9iP1MubFiQ+AhR1id4Egs+07BLtvRATG6IL2Gs9+KzdrfaxCKNq5hxEyw1kxwsqB/lCgr108XuHcKtb/5w==", - "dev": true, - "dependencies": { - "@types/d3-array": "^1", - "@types/d3-axis": "^1", - "@types/d3-brush": "^1", - "@types/d3-chord": "^1", - "@types/d3-collection": "*", - "@types/d3-color": "^1", - "@types/d3-contour": "^1", - "@types/d3-dispatch": "^1", - "@types/d3-drag": "^1", - "@types/d3-dsv": "^1", - "@types/d3-ease": "^1", - "@types/d3-fetch": "^1", - "@types/d3-force": "^1", - "@types/d3-format": "^1", - "@types/d3-geo": "^1", - "@types/d3-hierarchy": "^1", - "@types/d3-interpolate": "^1", - "@types/d3-path": "^1", - "@types/d3-polygon": "^1", - "@types/d3-quadtree": "^1", - "@types/d3-random": "^1", - "@types/d3-scale": "^2", - "@types/d3-scale-chromatic": "^1", - "@types/d3-selection": "^1", - "@types/d3-shape": "^1", - "@types/d3-time": "^1", - "@types/d3-time-format": "^2", - "@types/d3-timer": "^1", - "@types/d3-transition": "^1", - "@types/d3-voronoi": "*", - "@types/d3-zoom": "^1" - } - }, - "node_modules/@types/d3-array": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.9.tgz", - "integrity": "sha512-E/7RgPr2ylT5dWG0CswMi9NpFcjIEDqLcUSBgNHe/EMahfqYaTx4zhcggG3khqoEB/leY4Vl6nTSbwLUPjXceA==", - "dev": true - }, - "node_modules/@types/d3-axis": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-1.0.16.tgz", - "integrity": "sha512-p7085weOmo4W+DzlRRVC/7OI/jugaKbVa6WMQGCQscaMylcbuaVEGk7abJLNyGVFLeCBNrHTdDiqRGnzvL0nXQ==", - "dev": true, - "dependencies": { - "@types/d3-selection": "^1" - } - }, - "node_modules/@types/d3-brush": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-1.1.5.tgz", - "integrity": "sha512-4zGkBafJf5zCsBtLtvDj/pNMo5X9+Ii/1hUz0GvQ+wEwelUBm2AbIDAzJnp2hLDFF307o0fhxmmocHclhXC+tw==", - "dev": true, - "dependencies": { - "@types/d3-selection": "^1" - } - }, - "node_modules/@types/d3-chord": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.11.tgz", - "integrity": "sha512-0DdfJ//bxyW3G9Nefwq/LDgazSKNN8NU0lBT3Cza6uVuInC2awMNsAcv1oKyRFLn9z7kXClH5XjwpveZjuz2eg==", - "dev": true - }, - "node_modules/@types/d3-collection": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.10.tgz", - "integrity": "sha512-54Fdv8u5JbuXymtmXm2SYzi1x/Svt+jfWBU5junkhrCewL92VjqtCBDn97coBRVwVFmYNnVTNDyV8gQyPYfm+A==", - "dev": true - }, - "node_modules/@types/d3-color": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.4.2.tgz", - "integrity": "sha512-fYtiVLBYy7VQX+Kx7wU/uOIkGQn8aAEY8oWMoyja3N4dLd8Yf6XgSIR/4yWvMuveNOH5VShnqCgRqqh/UNanBA==", - "dev": true - }, - "node_modules/@types/d3-contour": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-1.3.3.tgz", - "integrity": "sha512-LxwmGIfVJIc1cKs7ZFRQ1FbtXpfH7QTXYRdMIJsFP71uCMdF6jJ0XZakYDX6Hn4yZkLf+7V8FgD34yCcok+5Ww==", - "dev": true, - "dependencies": { - "@types/d3-array": "^1", - "@types/geojson": "*" - } - }, - "node_modules/@types/d3-dispatch": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.9.tgz", - "integrity": "sha512-zJ44YgjqALmyps+II7b1mZLhrtfV/FOxw9owT87mrweGWcg+WK5oiJX2M3SYJ0XUAExBduarysfgbR11YxzojQ==", - "dev": true - }, - "node_modules/@types/d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-7NeTnfolst1Js3Vs7myctBkmJWu6DMI3k597AaHUX98saHjHWJ6vouT83UrpE+xfbSceHV+8A0JgxuwgqgmqWw==", - "dev": true, - "dependencies": { - "@types/d3-selection": "^1" - } - }, - "node_modules/@types/d3-dsv": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-1.2.1.tgz", - "integrity": "sha512-LLmJmjiqp/fTNEdij5bIwUJ6P6TVNk5hKM9/uk5RPO2YNgEu9XvKO0dJ7Iqd3psEdmZN1m7gB1bOsjr4HmO2BA==", - "dev": true - }, - "node_modules/@types/d3-ease": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-1.0.10.tgz", - "integrity": "sha512-fMFTCzd8DOwruE9zlu2O8ci5ct+U5jkGcDS+cH+HCidnJlDs0MZ+TuSVCFtEzh4E5MasItwy+HvgoFtxPHa5Cw==", - "dev": true - }, - "node_modules/@types/d3-fetch": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-1.2.2.tgz", - "integrity": "sha512-rtFs92GugtV/NpiJQd0WsmGLcg52tIL0uF0bKbbJg231pR9JEb6HT4AUwrtuLq3lOeKdLBhsjV14qb0pMmd0Aw==", - "dev": true, - "dependencies": { - "@types/d3-dsv": "^1" - } - }, - "node_modules/@types/d3-force": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.2.4.tgz", - "integrity": "sha512-fkorLTKvt6AQbFBQwn4aq7h9rJ4c7ZVcPMGB8X6eFFveAyMZcv7t7m6wgF4Eg93rkPgPORU7sAho1QSHNcZu6w==", - "dev": true - }, - "node_modules/@types/d3-format": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.4.2.tgz", - "integrity": "sha512-WeGCHAs7PHdZYq6lwl/+jsl+Nfc1J2W1kNcMeIMYzQsT6mtBDBgtJ/rcdjZ0k0rVIvqEZqhhuD5TK/v3P2gFHQ==", - "dev": true - }, - "node_modules/@types/d3-geo": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-1.12.3.tgz", - "integrity": "sha512-yZbPb7/5DyL/pXkeOmZ7L5ySpuGr4H48t1cuALjnJy5sXQqmSSAYBiwa6Ya/XpWKX2rJqGDDubmh3nOaopOpeA==", - "dev": true, - "dependencies": { - "@types/geojson": "*" - } - }, - "node_modules/@types/d3-hierarchy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", - "integrity": "sha512-AbStKxNyWiMDQPGDguG2Kuhlq1Sv539pZSxYbx4UZeYkutpPwXCcgyiRrlV4YH64nIOsKx7XVnOMy9O7rJsXkg==", - "dev": true - }, - "node_modules/@types/d3-interpolate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.4.2.tgz", - "integrity": "sha512-ylycts6llFf8yAEs1tXzx2loxxzDZHseuhPokrqKprTQSTcD3JbJI1omZP1rphsELZO3Q+of3ff0ZS7+O6yVzg==", - "dev": true, - "dependencies": { - "@types/d3-color": "^1" - } - }, - "node_modules/@types/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-NaIeSIBiFgSC6IGUBjZWcscUJEq7vpVu7KthHN8eieTV9d9MqkSOZLH4chq1PmcKy06PNe3axLeKmRIyxJ+PZQ==", - "dev": true - }, - "node_modules/@types/d3-polygon": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-1.0.8.tgz", - "integrity": "sha512-1TOJPXCBJC9V3+K3tGbTqD/CsqLyv/YkTXAcwdsZzxqw5cvpdnCuDl42M4Dvi8XzMxZNCT9pL4ibrK2n4VmAcw==", - "dev": true - }, - "node_modules/@types/d3-quadtree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-1.0.9.tgz", - "integrity": "sha512-5E0OJJn2QVavITFEc1AQlI8gLcIoDZcTKOD3feKFckQVmFV4CXhqRFt83tYNVNIN4ZzRkjlAMavJa1ldMhf5rA==", - "dev": true - }, - "node_modules/@types/d3-random": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-1.1.3.tgz", - "integrity": "sha512-XXR+ZbFCoOd4peXSMYJzwk0/elP37WWAzS/DG+90eilzVbUSsgKhBcWqylGWe+lA2ubgr7afWAOBaBxRgMUrBQ==", - "dev": true - }, - "node_modules/@types/d3-scale": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-2.2.6.tgz", - "integrity": "sha512-CHu34T5bGrJOeuhGxyiz9Xvaa9PlsIaQoOqjDg7zqeGj2x0rwPhGquiy03unigvcMxmvY0hEaAouT0LOFTLpIw==", - "dev": true, - "dependencies": { - "@types/d3-time": "^1" - } - }, - "node_modules/@types/d3-scale-chromatic": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-1.5.1.tgz", - "integrity": "sha512-7FtJYrmXTEWLykShjYhoGuDNR/Bda0+tstZMkFj4RRxUEryv16AGh3be21tqg84B6KfEwiZyEpBcTyPyU+GWjg==", - "dev": true - }, - "node_modules/@types/d3-selection": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-1.4.3.tgz", - "integrity": "sha512-GjKQWVZO6Sa96HiKO6R93VBE8DUW+DDkFpIMf9vpY5S78qZTlRRSNUsHr/afDpF7TvLDV7VxrUFOWW7vdIlYkA==", - "dev": true - }, - "node_modules/@types/d3-shape": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.8.tgz", - "integrity": "sha512-gqfnMz6Fd5H6GOLYixOZP/xlrMtJms9BaS+6oWxTKHNqPGZ93BkWWupQSCYm6YHqx6h9wjRupuJb90bun6ZaYg==", - "dev": true, - "dependencies": { - "@types/d3-path": "^1" - } - }, - "node_modules/@types/d3-time": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.1.1.tgz", - "integrity": "sha512-ULX7LoqXTCYtM+tLYOaeAJK7IwCT+4Gxlm2MaH0ErKLi07R5lh8NHCAyWcDkCCmx1AfRcBEV6H9QE9R25uP7jw==", - "dev": true - }, - "node_modules/@types/d3-time-format": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.3.1.tgz", - "integrity": "sha512-fck0Z9RGfIQn3GJIEKVrp15h9m6Vlg0d5XXeiE/6+CQiBmMDZxfR21XtjEPuDeg7gC3bBM0SdieA5XF3GW1wKA==", - "dev": true - }, - "node_modules/@types/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-ZnAbquVqy+4ZjdW0cY6URp+qF/AzTVNda2jYyOzpR2cPT35FTXl78s15Bomph9+ckOiI1TtkljnWkwbIGAb6rg==", - "dev": true - }, - "node_modules/@types/d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-J+a3SuF/E7wXbOSN19p8ZieQSFIm5hU2Egqtndbc54LXaAEOpLfDx4sBu/PKAKzHOdgKK1wkMhINKqNh4aoZAg==", - "dev": true, - "dependencies": { - "@types/d3-selection": "^1" - } - }, - "node_modules/@types/d3-voronoi": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz", - "integrity": "sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==", - "dev": true - }, - "node_modules/@types/d3-zoom": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-1.8.3.tgz", - "integrity": "sha512-3kHkL6sPiDdbfGhzlp5gIHyu3kULhtnHTTAl3UBZVtWB1PzcLL8vdmz5mTx7plLiUqOA2Y+yT2GKjt/TdA2p7Q==", - "dev": true, - "dependencies": { - "@types/d3-interpolate": "^1", - "@types/d3-selection": "^1" - } - }, "node_modules/@types/eslint": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.1.tgz", @@ -3180,12 +2910,6 @@ "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", "dev": true }, - "node_modules/@types/geojson": { - "version": "7946.0.8", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", - "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==", - "dev": true - }, "node_modules/@types/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", @@ -3771,18 +3495,6 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "node_modules/3d-force-graph": { - "version": "1.70.5", - "resolved": "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.70.5.tgz", - "integrity": "sha512-YEtMvuLwzD3xZhhAdR6HKFFWZfK2t6wQI9/R2xMQ5yCoqYOb1UdSNIfVFAjN5aG3f4W97FyK8H1fADE3Omxrvw==", - "dependencies": { - "accessor-fn": "1", - "kapsule": "^1.13", - "three": ">=0.118 <1", - "three-forcegraph": "^1.39", - "three-render-objects": "^1.26" - } - }, "node_modules/abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -3819,11 +3531,6 @@ "node": ">= 0.6" } }, - "node_modules/accessor-fn": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.3.1.tgz", - "integrity": "sha512-OjmTIiR8VfVV02EC/kSYpBnu6D+CmjNIFhTgU/CQk9xTkl36fc2TaU+ffezgz0fokeqNWnNBq3BtCpZMPfn0UQ==" - }, "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -5313,7 +5020,8 @@ "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "node_modules/comment-parser": { "version": "1.3.0", @@ -6302,318 +6010,6 @@ "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, - "node_modules/d3": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", - "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", - "dependencies": { - "d3-array": "1", - "d3-axis": "1", - "d3-brush": "1", - "d3-chord": "1", - "d3-collection": "1", - "d3-color": "1", - "d3-contour": "1", - "d3-dispatch": "1", - "d3-drag": "1", - "d3-dsv": "1", - "d3-ease": "1", - "d3-fetch": "1", - "d3-force": "1", - "d3-format": "1", - "d3-geo": "1", - "d3-hierarchy": "1", - "d3-interpolate": "1", - "d3-path": "1", - "d3-polygon": "1", - "d3-quadtree": "1", - "d3-random": "1", - "d3-scale": "2", - "d3-scale-chromatic": "1", - "d3-selection": "1", - "d3-shape": "1", - "d3-time": "1", - "d3-time-format": "2", - "d3-timer": "1", - "d3-transition": "1", - "d3-voronoi": "1", - "d3-zoom": "1" - } - }, - "node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "node_modules/d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" - }, - "node_modules/d3-binarytree": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-0.2.0.tgz", - "integrity": "sha512-Z4khfbrBgtbv0M2QSQBaIajxiT6hwkxGt0AoDnTXCWDyyH+Okqy2UU3sXzV01zL5lC75dFAMJ0ftxSKTCr28VA==" - }, - "node_modules/d3-brush": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", - "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", - "dependencies": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "node_modules/d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "dependencies": { - "d3-array": "1", - "d3-path": "1" - } - }, - "node_modules/d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "node_modules/d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "node_modules/d3-contour": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", - "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", - "dependencies": { - "d3-array": "^1.1.1" - } - }, - "node_modules/d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "node_modules/d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", - "dependencies": { - "d3-dispatch": "1", - "d3-selection": "1" - } - }, - "node_modules/d3-dsv": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", - "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", - "dependencies": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" - } - }, - "node_modules/d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" - }, - "node_modules/d3-fetch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", - "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", - "dependencies": { - "d3-dsv": "1" - } - }, - "node_modules/d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "dependencies": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "node_modules/d3-force-3d": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-2.3.2.tgz", - "integrity": "sha512-jkNDhUmSCAAq7dxtnILVzn7uOClBZt3YMhupBEoKI9RrvR3x995iUDdbj3VL33ByJAtHZwzytUxdh3zKfvf/iw==", - "dependencies": { - "d3-binarytree": "^0.2.0", - "d3-dispatch": "^2.0.0", - "d3-octree": "^0.2.0", - "d3-quadtree": "^2.0.0", - "d3-timer": "^2.0.0" - } - }, - "node_modules/d3-force-3d/node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" - }, - "node_modules/d3-force-3d/node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" - }, - "node_modules/d3-force-3d/node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" - }, - "node_modules/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "node_modules/d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "dependencies": { - "d3-array": "1" - } - }, - "node_modules/d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "node_modules/d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", - "dependencies": { - "d3-color": "1" - } - }, - "node_modules/d3-octree": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-0.2.0.tgz", - "integrity": "sha512-yPoIxKr4xvZNyKK2bkJybafrNKtBVERbGTUVBovyWxWDQaWnJfWO4ai1jnyBrCeMzpVm/OTAJw2V+EJ9HCuLbQ==" - }, - "node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "node_modules/d3-polygon": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", - "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" - }, - "node_modules/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "node_modules/d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "node_modules/d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", - "dependencies": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", - "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", - "dependencies": { - "d3-color": "1", - "d3-interpolate": "1" - } - }, - "node_modules/d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" - }, - "node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "node_modules/d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "dependencies": { - "d3-time": "1" - } - }, - "node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "node_modules/d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", - "dependencies": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" - } - }, - "node_modules/d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, - "node_modules/d3-zoom": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", - "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", - "dependencies": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, "node_modules/damerau-levenshtein": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", @@ -6632,14 +6028,6 @@ "node": ">=0.10" } }, - "node_modules/data-joint": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/data-joint/-/data-joint-1.2.4.tgz", - "integrity": "sha512-CEHgReWct+ofD1rpIhLy2IBOWkS4J5KbgCulvrRQVMlgs7dFbvhPwJt+J0upA9e7w/x+MepG6MLANm+uo0nudQ==", - "dependencies": { - "index-array-by": "^1.3.1" - } - }, "node_modules/data-uri-to-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", @@ -6657,11 +6045,6 @@ "node": ">=4.0" } }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" - }, "node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -9707,6 +9090,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -9900,11 +9284,6 @@ "node": ">=8" } }, - "node_modules/index-array-by": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.3.1.tgz", - "integrity": "sha512-e3RmATJZXJWZg9obaLdgPZcz42mzCrr4RuxB/6YaVds7tkUjPRw3Zaebs5YXo4WPyCA0Y9ZKcGYHRqGbGhoU8Q==" - }, "node_modules/indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -11026,14 +10405,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/kapsule": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.13.5.tgz", - "integrity": "sha512-9afHwbLgY2FyFtGmSOLvAObv8aGRa+yKqvHSq5yEpuqZ4okXpNtiGc4ykRbQifhGHyq2tY+YAfBBr/6wgyQZXA==", - "dependencies": { - "debounce": "^1.2.1" - } - }, "node_modules/karma": { "version": "6.3.9", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.9.tgz", @@ -12246,39 +11617,6 @@ "pdfjs-dist": "~2.11.338" } }, - "node_modules/ngraph.events": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ngraph.events/-/ngraph.events-1.2.1.tgz", - "integrity": "sha512-D4C+nXH/RFxioGXQdHu8ELDtC6EaCiNsZtih0IvyGN81OZSUby4jXoJ5+RNWasfsd0FnKxxpAROyUMzw64QNsw==" - }, - "node_modules/ngraph.forcelayout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ngraph.forcelayout/-/ngraph.forcelayout-3.2.0.tgz", - "integrity": "sha512-CfDwAFdYSfiyMwL3BXfPOnuF5QSnjeyJJem7O1Csk48y7jI0yTNu18MzGoOO3fpa7hWRiFP7uPOqXNwbHn0Wqw==", - "dependencies": { - "ngraph.events": "^1.0.0", - "ngraph.merge": "^1.0.0", - "ngraph.random": "^1.0.0" - } - }, - "node_modules/ngraph.graph": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/ngraph.graph/-/ngraph.graph-19.1.0.tgz", - "integrity": "sha512-9cws84qfPkrYa7BaBtT+KgZfLXrd6pNL9Gl5Do+MBO/0Hm6rOM7qK78MZaO1uEoIK6p2pgUs6lu29zn/6tP59w==", - "dependencies": { - "ngraph.events": "^1.2.1" - } - }, - "node_modules/ngraph.merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ngraph.merge/-/ngraph.merge-1.0.0.tgz", - "integrity": "sha512-5J8YjGITUJeapsomtTALYsw7rFveYkM+lBj3QiYZ79EymQcuri65Nw3knQtFxQBU1r5iOaVRXrSwMENUPK62Vg==" - }, - "node_modules/ngraph.random": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ngraph.random/-/ngraph.random-1.1.0.tgz", - "integrity": "sha512-h25UdUN/g8U7y29TzQtRm/GvGr70lK37yQPvPKXXuVfs7gCm82WipYFZcksQfeKumtOemAzBIcT7lzzyK/edLw==" - }, "node_modules/ngx-color-picker": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/ngx-color-picker/-/ngx-color-picker-11.0.0.tgz", @@ -13453,17 +12791,6 @@ "node": ">=4" } }, - "node_modules/polished": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.1.3.tgz", - "integrity": "sha512-ocPAcVBUOryJEKe0z2KLd1l9EBa1r5mSwlKpExmrLzsnIzJo4axsoU9O2BjOTkDGDT4mZ0WFE5XKTlR3nLnZOA==", - "dependencies": { - "@babel/runtime": "^7.14.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", @@ -16113,7 +15440,8 @@ "node_modules/regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true }, "node_modules/regenerator-transform": { "version": "0.14.5", @@ -16581,11 +15909,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, "node_modules/rxjs": { "version": "6.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", @@ -16619,7 +15942,8 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "node_modules/sass": { "version": "1.36.0", @@ -18200,53 +17524,6 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "node_modules/three": { - "version": "0.125.2", - "resolved": "https://registry.npmjs.org/three/-/three-0.125.2.tgz", - "integrity": "sha512-7rIRO23jVKWcAPFdW/HREU2NZMGWPBZ4XwEMt0Ak0jwLUKVJhcKM55eCBWyGZq/KiQbeo1IeuAoo/9l2dzhTXA==" - }, - "node_modules/three-forcegraph": { - "version": "1.39.1", - "resolved": "https://registry.npmjs.org/three-forcegraph/-/three-forcegraph-1.39.1.tgz", - "integrity": "sha512-IRmp4nAkmuJ84igSRazz05wwgckyjHbrMHBmZlhPw3HbpZMv0V8WtQ5aRE4vuqBdJX2wNexR/RZJu9khg1OhXQ==", - "dependencies": { - "accessor-fn": "1", - "d3-array": "1 - 3", - "d3-force-3d": "2 - 3", - "d3-scale": "1 - 4", - "d3-scale-chromatic": "1 - 3", - "data-joint": "^1.2", - "kapsule": "^1.13", - "ngraph.forcelayout": "^3.1", - "ngraph.graph": "^19.1", - "tinycolor2": "^1.4" - }, - "peerDependencies": { - "three": ">=0.118.3" - } - }, - "node_modules/three-render-objects": { - "version": "1.26.4", - "resolved": "https://registry.npmjs.org/three-render-objects/-/three-render-objects-1.26.4.tgz", - "integrity": "sha512-ndzGCJaGUZ8bj2ysfBGMu2IeRqAfR9NcrjLlGuf93XTy8nm95jJ+lz4QZmxPGVnky4xI+3LlhUceEn7zcJ2TWQ==", - "dependencies": { - "@tweenjs/tween.js": "18", - "accessor-fn": "1", - "kapsule": "^1.13", - "polished": "4" - }, - "peerDependencies": { - "three": "*" - } - }, - "node_modules/three-spritetext": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/three-spritetext/-/three-spritetext-1.6.3.tgz", - "integrity": "sha512-AE9AzUvY3xpQryTy+H5ylYkaWs+ZgsPqbF7yGXPEjthX5n/coIxobSVZAcPCTyl77DnM0Ub/YH7gLI54Eyg+dQ==", - "peerDependencies": { - "three": ">=0.86.0" - } - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -18265,14 +17542,6 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, - "node_modules/tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", - "engines": { - "node": "*" - } - }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -21854,6 +21123,7 @@ "version": "7.14.8", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", + "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -22263,11 +21533,6 @@ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true }, - "@tweenjs/tween.js": { - "version": "18.6.4", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-18.6.4.tgz", - "integrity": "sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ==" - }, "@types/component-emitter": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", @@ -22286,266 +21551,6 @@ "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, - "@types/d3": { - "version": "5.16.4", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-5.16.4.tgz", - "integrity": "sha512-2u0O9iP1MubFiQ+AhR1id4Egs+07BLtvRATG6IL2Gs9+KzdrfaxCKNq5hxEyw1kxwsqB/lCgr108XuHcKtb/5w==", - "dev": true, - "requires": { - "@types/d3-array": "^1", - "@types/d3-axis": "^1", - "@types/d3-brush": "^1", - "@types/d3-chord": "^1", - "@types/d3-collection": "*", - "@types/d3-color": "^1", - "@types/d3-contour": "^1", - "@types/d3-dispatch": "^1", - "@types/d3-drag": "^1", - "@types/d3-dsv": "^1", - "@types/d3-ease": "^1", - "@types/d3-fetch": "^1", - "@types/d3-force": "^1", - "@types/d3-format": "^1", - "@types/d3-geo": "^1", - "@types/d3-hierarchy": "^1", - "@types/d3-interpolate": "^1", - "@types/d3-path": "^1", - "@types/d3-polygon": "^1", - "@types/d3-quadtree": "^1", - "@types/d3-random": "^1", - "@types/d3-scale": "^2", - "@types/d3-scale-chromatic": "^1", - "@types/d3-selection": "^1", - "@types/d3-shape": "^1", - "@types/d3-time": "^1", - "@types/d3-time-format": "^2", - "@types/d3-timer": "^1", - "@types/d3-transition": "^1", - "@types/d3-voronoi": "*", - "@types/d3-zoom": "^1" - } - }, - "@types/d3-array": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.9.tgz", - "integrity": "sha512-E/7RgPr2ylT5dWG0CswMi9NpFcjIEDqLcUSBgNHe/EMahfqYaTx4zhcggG3khqoEB/leY4Vl6nTSbwLUPjXceA==", - "dev": true - }, - "@types/d3-axis": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-1.0.16.tgz", - "integrity": "sha512-p7085weOmo4W+DzlRRVC/7OI/jugaKbVa6WMQGCQscaMylcbuaVEGk7abJLNyGVFLeCBNrHTdDiqRGnzvL0nXQ==", - "dev": true, - "requires": { - "@types/d3-selection": "^1" - } - }, - "@types/d3-brush": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-1.1.5.tgz", - "integrity": "sha512-4zGkBafJf5zCsBtLtvDj/pNMo5X9+Ii/1hUz0GvQ+wEwelUBm2AbIDAzJnp2hLDFF307o0fhxmmocHclhXC+tw==", - "dev": true, - "requires": { - "@types/d3-selection": "^1" - } - }, - "@types/d3-chord": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.11.tgz", - "integrity": "sha512-0DdfJ//bxyW3G9Nefwq/LDgazSKNN8NU0lBT3Cza6uVuInC2awMNsAcv1oKyRFLn9z7kXClH5XjwpveZjuz2eg==", - "dev": true - }, - "@types/d3-collection": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.10.tgz", - "integrity": "sha512-54Fdv8u5JbuXymtmXm2SYzi1x/Svt+jfWBU5junkhrCewL92VjqtCBDn97coBRVwVFmYNnVTNDyV8gQyPYfm+A==", - "dev": true - }, - "@types/d3-color": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.4.2.tgz", - "integrity": "sha512-fYtiVLBYy7VQX+Kx7wU/uOIkGQn8aAEY8oWMoyja3N4dLd8Yf6XgSIR/4yWvMuveNOH5VShnqCgRqqh/UNanBA==", - "dev": true - }, - "@types/d3-contour": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-1.3.3.tgz", - "integrity": "sha512-LxwmGIfVJIc1cKs7ZFRQ1FbtXpfH7QTXYRdMIJsFP71uCMdF6jJ0XZakYDX6Hn4yZkLf+7V8FgD34yCcok+5Ww==", - "dev": true, - "requires": { - "@types/d3-array": "^1", - "@types/geojson": "*" - } - }, - "@types/d3-dispatch": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.9.tgz", - "integrity": "sha512-zJ44YgjqALmyps+II7b1mZLhrtfV/FOxw9owT87mrweGWcg+WK5oiJX2M3SYJ0XUAExBduarysfgbR11YxzojQ==", - "dev": true - }, - "@types/d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-7NeTnfolst1Js3Vs7myctBkmJWu6DMI3k597AaHUX98saHjHWJ6vouT83UrpE+xfbSceHV+8A0JgxuwgqgmqWw==", - "dev": true, - "requires": { - "@types/d3-selection": "^1" - } - }, - "@types/d3-dsv": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-1.2.1.tgz", - "integrity": "sha512-LLmJmjiqp/fTNEdij5bIwUJ6P6TVNk5hKM9/uk5RPO2YNgEu9XvKO0dJ7Iqd3psEdmZN1m7gB1bOsjr4HmO2BA==", - "dev": true - }, - "@types/d3-ease": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-1.0.10.tgz", - "integrity": "sha512-fMFTCzd8DOwruE9zlu2O8ci5ct+U5jkGcDS+cH+HCidnJlDs0MZ+TuSVCFtEzh4E5MasItwy+HvgoFtxPHa5Cw==", - "dev": true - }, - "@types/d3-fetch": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-1.2.2.tgz", - "integrity": "sha512-rtFs92GugtV/NpiJQd0WsmGLcg52tIL0uF0bKbbJg231pR9JEb6HT4AUwrtuLq3lOeKdLBhsjV14qb0pMmd0Aw==", - "dev": true, - "requires": { - "@types/d3-dsv": "^1" - } - }, - "@types/d3-force": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.2.4.tgz", - "integrity": "sha512-fkorLTKvt6AQbFBQwn4aq7h9rJ4c7ZVcPMGB8X6eFFveAyMZcv7t7m6wgF4Eg93rkPgPORU7sAho1QSHNcZu6w==", - "dev": true - }, - "@types/d3-format": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.4.2.tgz", - "integrity": "sha512-WeGCHAs7PHdZYq6lwl/+jsl+Nfc1J2W1kNcMeIMYzQsT6mtBDBgtJ/rcdjZ0k0rVIvqEZqhhuD5TK/v3P2gFHQ==", - "dev": true - }, - "@types/d3-geo": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-1.12.3.tgz", - "integrity": "sha512-yZbPb7/5DyL/pXkeOmZ7L5ySpuGr4H48t1cuALjnJy5sXQqmSSAYBiwa6Ya/XpWKX2rJqGDDubmh3nOaopOpeA==", - "dev": true, - "requires": { - "@types/geojson": "*" - } - }, - "@types/d3-hierarchy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", - "integrity": "sha512-AbStKxNyWiMDQPGDguG2Kuhlq1Sv539pZSxYbx4UZeYkutpPwXCcgyiRrlV4YH64nIOsKx7XVnOMy9O7rJsXkg==", - "dev": true - }, - "@types/d3-interpolate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.4.2.tgz", - "integrity": "sha512-ylycts6llFf8yAEs1tXzx2loxxzDZHseuhPokrqKprTQSTcD3JbJI1omZP1rphsELZO3Q+of3ff0ZS7+O6yVzg==", - "dev": true, - "requires": { - "@types/d3-color": "^1" - } - }, - "@types/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-NaIeSIBiFgSC6IGUBjZWcscUJEq7vpVu7KthHN8eieTV9d9MqkSOZLH4chq1PmcKy06PNe3axLeKmRIyxJ+PZQ==", - "dev": true - }, - "@types/d3-polygon": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-1.0.8.tgz", - "integrity": "sha512-1TOJPXCBJC9V3+K3tGbTqD/CsqLyv/YkTXAcwdsZzxqw5cvpdnCuDl42M4Dvi8XzMxZNCT9pL4ibrK2n4VmAcw==", - "dev": true - }, - "@types/d3-quadtree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-1.0.9.tgz", - "integrity": "sha512-5E0OJJn2QVavITFEc1AQlI8gLcIoDZcTKOD3feKFckQVmFV4CXhqRFt83tYNVNIN4ZzRkjlAMavJa1ldMhf5rA==", - "dev": true - }, - "@types/d3-random": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-1.1.3.tgz", - "integrity": "sha512-XXR+ZbFCoOd4peXSMYJzwk0/elP37WWAzS/DG+90eilzVbUSsgKhBcWqylGWe+lA2ubgr7afWAOBaBxRgMUrBQ==", - "dev": true - }, - "@types/d3-scale": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-2.2.6.tgz", - "integrity": "sha512-CHu34T5bGrJOeuhGxyiz9Xvaa9PlsIaQoOqjDg7zqeGj2x0rwPhGquiy03unigvcMxmvY0hEaAouT0LOFTLpIw==", - "dev": true, - "requires": { - "@types/d3-time": "^1" - } - }, - "@types/d3-scale-chromatic": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-1.5.1.tgz", - "integrity": "sha512-7FtJYrmXTEWLykShjYhoGuDNR/Bda0+tstZMkFj4RRxUEryv16AGh3be21tqg84B6KfEwiZyEpBcTyPyU+GWjg==", - "dev": true - }, - "@types/d3-selection": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-1.4.3.tgz", - "integrity": "sha512-GjKQWVZO6Sa96HiKO6R93VBE8DUW+DDkFpIMf9vpY5S78qZTlRRSNUsHr/afDpF7TvLDV7VxrUFOWW7vdIlYkA==", - "dev": true - }, - "@types/d3-shape": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.8.tgz", - "integrity": "sha512-gqfnMz6Fd5H6GOLYixOZP/xlrMtJms9BaS+6oWxTKHNqPGZ93BkWWupQSCYm6YHqx6h9wjRupuJb90bun6ZaYg==", - "dev": true, - "requires": { - "@types/d3-path": "^1" - } - }, - "@types/d3-time": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.1.1.tgz", - "integrity": "sha512-ULX7LoqXTCYtM+tLYOaeAJK7IwCT+4Gxlm2MaH0ErKLi07R5lh8NHCAyWcDkCCmx1AfRcBEV6H9QE9R25uP7jw==", - "dev": true - }, - "@types/d3-time-format": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.3.1.tgz", - "integrity": "sha512-fck0Z9RGfIQn3GJIEKVrp15h9m6Vlg0d5XXeiE/6+CQiBmMDZxfR21XtjEPuDeg7gC3bBM0SdieA5XF3GW1wKA==", - "dev": true - }, - "@types/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-ZnAbquVqy+4ZjdW0cY6URp+qF/AzTVNda2jYyOzpR2cPT35FTXl78s15Bomph9+ckOiI1TtkljnWkwbIGAb6rg==", - "dev": true - }, - "@types/d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-J+a3SuF/E7wXbOSN19p8ZieQSFIm5hU2Egqtndbc54LXaAEOpLfDx4sBu/PKAKzHOdgKK1wkMhINKqNh4aoZAg==", - "dev": true, - "requires": { - "@types/d3-selection": "^1" - } - }, - "@types/d3-voronoi": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz", - "integrity": "sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==", - "dev": true - }, - "@types/d3-zoom": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-1.8.3.tgz", - "integrity": "sha512-3kHkL6sPiDdbfGhzlp5gIHyu3kULhtnHTTAl3UBZVtWB1PzcLL8vdmz5mTx7plLiUqOA2Y+yT2GKjt/TdA2p7Q==", - "dev": true, - "requires": { - "@types/d3-interpolate": "^1", - "@types/d3-selection": "^1" - } - }, "@types/eslint": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.1.tgz", @@ -22572,12 +21577,6 @@ "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", "dev": true }, - "@types/geojson": { - "version": "7946.0.8", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", - "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==", - "dev": true - }, "@types/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", @@ -23025,18 +22024,6 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "3d-force-graph": { - "version": "1.70.5", - "resolved": "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.70.5.tgz", - "integrity": "sha512-YEtMvuLwzD3xZhhAdR6HKFFWZfK2t6wQI9/R2xMQ5yCoqYOb1UdSNIfVFAjN5aG3f4W97FyK8H1fADE3Omxrvw==", - "requires": { - "accessor-fn": "1", - "kapsule": "^1.13", - "three": ">=0.118 <1", - "three-forcegraph": "^1.39", - "three-render-objects": "^1.26" - } - }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -23067,11 +22054,6 @@ "negotiator": "0.6.2" } }, - "accessor-fn": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.3.1.tgz", - "integrity": "sha512-OjmTIiR8VfVV02EC/kSYpBnu6D+CmjNIFhTgU/CQk9xTkl36fc2TaU+ffezgz0fokeqNWnNBq3BtCpZMPfn0UQ==" - }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -24230,7 +23212,8 @@ "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "comment-parser": { "version": "1.3.0", @@ -24978,309 +23961,6 @@ "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, - "d3": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", - "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", - "requires": { - "d3-array": "1", - "d3-axis": "1", - "d3-brush": "1", - "d3-chord": "1", - "d3-collection": "1", - "d3-color": "1", - "d3-contour": "1", - "d3-dispatch": "1", - "d3-drag": "1", - "d3-dsv": "1", - "d3-ease": "1", - "d3-fetch": "1", - "d3-force": "1", - "d3-format": "1", - "d3-geo": "1", - "d3-hierarchy": "1", - "d3-interpolate": "1", - "d3-path": "1", - "d3-polygon": "1", - "d3-quadtree": "1", - "d3-random": "1", - "d3-scale": "2", - "d3-scale-chromatic": "1", - "d3-selection": "1", - "d3-shape": "1", - "d3-time": "1", - "d3-time-format": "2", - "d3-timer": "1", - "d3-transition": "1", - "d3-voronoi": "1", - "d3-zoom": "1" - } - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" - }, - "d3-binarytree": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-0.2.0.tgz", - "integrity": "sha512-Z4khfbrBgtbv0M2QSQBaIajxiT6hwkxGt0AoDnTXCWDyyH+Okqy2UU3sXzV01zL5lC75dFAMJ0ftxSKTCr28VA==" - }, - "d3-brush": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", - "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", - "requires": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "requires": { - "d3-array": "1", - "d3-path": "1" - } - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "d3-contour": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", - "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", - "requires": { - "d3-array": "^1.1.1" - } - }, - "d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", - "requires": { - "d3-dispatch": "1", - "d3-selection": "1" - } - }, - "d3-dsv": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", - "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", - "requires": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" - } - }, - "d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" - }, - "d3-fetch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", - "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", - "requires": { - "d3-dsv": "1" - } - }, - "d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "requires": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "d3-force-3d": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-2.3.2.tgz", - "integrity": "sha512-jkNDhUmSCAAq7dxtnILVzn7uOClBZt3YMhupBEoKI9RrvR3x995iUDdbj3VL33ByJAtHZwzytUxdh3zKfvf/iw==", - "requires": { - "d3-binarytree": "^0.2.0", - "d3-dispatch": "^2.0.0", - "d3-octree": "^0.2.0", - "d3-quadtree": "^2.0.0", - "d3-timer": "^2.0.0" - }, - "dependencies": { - "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" - }, - "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" - }, - "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" - } - } - }, - "d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "requires": { - "d3-array": "1" - } - }, - "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", - "requires": { - "d3-color": "1" - } - }, - "d3-octree": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-0.2.0.tgz", - "integrity": "sha512-yPoIxKr4xvZNyKK2bkJybafrNKtBVERbGTUVBovyWxWDQaWnJfWO4ai1jnyBrCeMzpVm/OTAJw2V+EJ9HCuLbQ==" - }, - "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "d3-polygon": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", - "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" - }, - "d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", - "requires": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" - } - }, - "d3-scale-chromatic": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", - "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", - "requires": { - "d3-color": "1", - "d3-interpolate": "1" - } - }, - "d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" - }, - "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "requires": { - "d3-path": "1" - } - }, - "d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "requires": { - "d3-time": "1" - } - }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", - "requires": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" - } - }, - "d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, - "d3-zoom": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", - "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", - "requires": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, "damerau-levenshtein": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", @@ -25296,14 +23976,6 @@ "assert-plus": "^1.0.0" } }, - "data-joint": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/data-joint/-/data-joint-1.2.4.tgz", - "integrity": "sha512-CEHgReWct+ofD1rpIhLy2IBOWkS4J5KbgCulvrRQVMlgs7dFbvhPwJt+J0upA9e7w/x+MepG6MLANm+uo0nudQ==", - "requires": { - "index-array-by": "^1.3.1" - } - }, "data-uri-to-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", @@ -25315,11 +23987,6 @@ "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", "dev": true }, - "debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -27686,6 +26353,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -27811,11 +26479,6 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "index-array-by": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.3.1.tgz", - "integrity": "sha512-e3RmATJZXJWZg9obaLdgPZcz42mzCrr4RuxB/6YaVds7tkUjPRw3Zaebs5YXo4WPyCA0Y9ZKcGYHRqGbGhoU8Q==" - }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -28674,14 +27337,6 @@ } } }, - "kapsule": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.13.5.tgz", - "integrity": "sha512-9afHwbLgY2FyFtGmSOLvAObv8aGRa+yKqvHSq5yEpuqZ4okXpNtiGc4ykRbQifhGHyq2tY+YAfBBr/6wgyQZXA==", - "requires": { - "debounce": "^1.2.1" - } - }, "karma": { "version": "6.3.9", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.9.tgz", @@ -29613,39 +28268,6 @@ "tslib": "^2.0.0" } }, - "ngraph.events": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ngraph.events/-/ngraph.events-1.2.1.tgz", - "integrity": "sha512-D4C+nXH/RFxioGXQdHu8ELDtC6EaCiNsZtih0IvyGN81OZSUby4jXoJ5+RNWasfsd0FnKxxpAROyUMzw64QNsw==" - }, - "ngraph.forcelayout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ngraph.forcelayout/-/ngraph.forcelayout-3.2.0.tgz", - "integrity": "sha512-CfDwAFdYSfiyMwL3BXfPOnuF5QSnjeyJJem7O1Csk48y7jI0yTNu18MzGoOO3fpa7hWRiFP7uPOqXNwbHn0Wqw==", - "requires": { - "ngraph.events": "^1.0.0", - "ngraph.merge": "^1.0.0", - "ngraph.random": "^1.0.0" - } - }, - "ngraph.graph": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/ngraph.graph/-/ngraph.graph-19.1.0.tgz", - "integrity": "sha512-9cws84qfPkrYa7BaBtT+KgZfLXrd6pNL9Gl5Do+MBO/0Hm6rOM7qK78MZaO1uEoIK6p2pgUs6lu29zn/6tP59w==", - "requires": { - "ngraph.events": "^1.2.1" - } - }, - "ngraph.merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ngraph.merge/-/ngraph.merge-1.0.0.tgz", - "integrity": "sha512-5J8YjGITUJeapsomtTALYsw7rFveYkM+lBj3QiYZ79EymQcuri65Nw3knQtFxQBU1r5iOaVRXrSwMENUPK62Vg==" - }, - "ngraph.random": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ngraph.random/-/ngraph.random-1.1.0.tgz", - "integrity": "sha512-h25UdUN/g8U7y29TzQtRm/GvGr70lK37yQPvPKXXuVfs7gCm82WipYFZcksQfeKumtOemAzBIcT7lzzyK/edLw==" - }, "ngx-color-picker": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/ngx-color-picker/-/ngx-color-picker-11.0.0.tgz", @@ -30537,14 +29159,6 @@ "find-up": "^2.1.0" } }, - "polished": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.1.3.tgz", - "integrity": "sha512-ocPAcVBUOryJEKe0z2KLd1l9EBa1r5mSwlKpExmrLzsnIzJo4axsoU9O2BjOTkDGDT4mZ0WFE5XKTlR3nLnZOA==", - "requires": { - "@babel/runtime": "^7.14.0" - } - }, "portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", @@ -32503,7 +31117,8 @@ "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true }, "regenerator-transform": { "version": "0.14.5", @@ -32848,11 +31463,6 @@ "queue-microtask": "^1.2.2" } }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, "rxjs": { "version": "6.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", @@ -32885,7 +31495,8 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "sass": { "version": "1.36.0", @@ -34133,45 +32744,6 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "three": { - "version": "0.125.2", - "resolved": "https://registry.npmjs.org/three/-/three-0.125.2.tgz", - "integrity": "sha512-7rIRO23jVKWcAPFdW/HREU2NZMGWPBZ4XwEMt0Ak0jwLUKVJhcKM55eCBWyGZq/KiQbeo1IeuAoo/9l2dzhTXA==" - }, - "three-forcegraph": { - "version": "1.39.1", - "resolved": "https://registry.npmjs.org/three-forcegraph/-/three-forcegraph-1.39.1.tgz", - "integrity": "sha512-IRmp4nAkmuJ84igSRazz05wwgckyjHbrMHBmZlhPw3HbpZMv0V8WtQ5aRE4vuqBdJX2wNexR/RZJu9khg1OhXQ==", - "requires": { - "accessor-fn": "1", - "d3-array": "1 - 3", - "d3-force-3d": "2 - 3", - "d3-scale": "1 - 4", - "d3-scale-chromatic": "1 - 3", - "data-joint": "^1.2", - "kapsule": "^1.13", - "ngraph.forcelayout": "^3.1", - "ngraph.graph": "^19.1", - "tinycolor2": "^1.4" - } - }, - "three-render-objects": { - "version": "1.26.4", - "resolved": "https://registry.npmjs.org/three-render-objects/-/three-render-objects-1.26.4.tgz", - "integrity": "sha512-ndzGCJaGUZ8bj2ysfBGMu2IeRqAfR9NcrjLlGuf93XTy8nm95jJ+lz4QZmxPGVnky4xI+3LlhUceEn7zcJ2TWQ==", - "requires": { - "@tweenjs/tween.js": "18", - "accessor-fn": "1", - "kapsule": "^1.13", - "polished": "4" - } - }, - "three-spritetext": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/three-spritetext/-/three-spritetext-1.6.3.tgz", - "integrity": "sha512-AE9AzUvY3xpQryTy+H5ylYkaWs+ZgsPqbF7yGXPEjthX5n/coIxobSVZAcPCTyl77DnM0Ub/YH7gLI54Eyg+dQ==", - "requires": {} - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -34190,11 +32762,6 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, - "tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", diff --git a/package.json b/package.json index 44d43d2e6a..a3c2b803db 100644 --- a/package.json +++ b/package.json @@ -37,12 +37,9 @@ "@datadog/browser-rum": "^3.7.0", "@ngx-translate/core": "^12.1.2", "@ngx-translate/http-loader": "5.0.0", - "3d-force-graph": "^1.60.12", "angular-split": "^4.0.0", "ckeditor5-custom-build": "github:dasch-swiss/ckeditor_custom_build#v2.0.0", "core-js": "^3.19.1", - "d3": "^5.15.1", - "d3-force-3d": "^2.1.0", "jdnconvertiblecalendar": "^0.0.7", "jdnconvertiblecalendardateadapter": "^0.0.17", "json2typescript": "^1.0.6", @@ -55,8 +52,6 @@ "rollbar": "^2.24.0", "rxjs": "~6.5.5", "semver": "^6.1.1", - "three": "^0.125.0", - "three-spritetext": "^1.5.1", "ts-md5": "^1.2.7", "tslib": "^2.2.0", "zone.js": "~0.11.4" @@ -67,7 +62,6 @@ "@angular/cli": "^12.2.14", "@angular/compiler-cli": "^12.2.14", "@angular/language-service": "^12.2.14", - "@types/d3": "^5.7.2", "@types/jasmine": "~3.6.0", "@types/jasminewd2": "~2.0.3", "@types/node": "^12.20.37", diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 945f16e454..7d1788b063 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -59,8 +59,6 @@ import { ListItemFormComponent } from './project/list/list-item-form/list-item-f import { ListItemComponent } from './project/list/list-item/list-item.component'; import { ListComponent } from './project/list/list.component'; import { OntologyFormComponent } from './project/ontology/ontology-form/ontology-form.component'; -import { OntologyVisualizerComponent } from './project/ontology/ontology-visualizer/ontology-visualizer.component'; -import { VisualizerComponent } from './project/ontology/ontology-visualizer/visualizer/visualizer.component'; import { OntologyComponent } from './project/ontology/ontology.component'; import { PropertyFormComponent } from './project/ontology/property-form/property-form.component'; import { PropertyInfoComponent } from './project/ontology/property-info/property-info.component'; @@ -235,7 +233,6 @@ export function httpLoaderFactory(httpClient: HttpClient) { MessageComponent, OntologyComponent, OntologyFormComponent, - OntologyVisualizerComponent, PasswordFormComponent, PermissionComponent, ProfileComponent, @@ -300,7 +297,6 @@ export function httpLoaderFactory(httpClient: HttpClient) { UserMenuComponent, UsersComponent, UsersListComponent, - VisualizerComponent, YetAnotherDateValueComponent, ], imports: [ diff --git a/src/app/main/services/datadog-rum.service.ts b/src/app/main/services/datadog-rum.service.ts index 1d660e17c2..ae842a1457 100644 --- a/src/app/main/services/datadog-rum.service.ts +++ b/src/app/main/services/datadog-rum.service.ts @@ -28,7 +28,7 @@ export class DatadogRumService { beforeSend: (event, context) => { // collect a RUM resource's response headers if (event.type === 'resource' && event.resource.type === 'xhr') { - event.context = { ...event.context, responseHeaders: (context as RumFetchResourceEventDomainContext).response.body }; + event.context = { ...event.context, responseHeaders: (context as RumFetchResourceEventDomainContext).response?.body }; } }, }); diff --git a/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.html b/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.html deleted file mode 100644 index 8745eedf6a..0000000000 --- a/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.html +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.scss b/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.scss deleted file mode 100644 index 5d1e973a35..0000000000 --- a/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.scss +++ /dev/null @@ -1,34 +0,0 @@ -body { - text-align: center; - font-family: Sans-serif; - margin: 0; -} - -.dimensions-selector, .graph-data { - position: absolute; - padding: 5px; - color: slategrey; -} - -.dimensions-selector { - left: 0; -} - -.graph-data { - right: 0; -} - -.toggle-data-btn { - cursor: pointer; - opacity: 0.85; -} - -.toggle-data-btn:hover { - opacity: 1; -} - -#graph-data-description { - font-size: 12px; - color: slategrey; -} - diff --git a/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.spec.ts b/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.spec.ts deleted file mode 100644 index 2e3c961e76..0000000000 --- a/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.spec.ts +++ /dev/null @@ -1,190 +0,0 @@ -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatRadioModule } from '@angular/material/radio'; -import { MatSlideToggleModule } from '@angular/material/slide-toggle'; -import { MatSliderModule } from '@angular/material/slider'; -import { RouterTestingModule } from '@angular/router/testing'; -import { - IHasProperty, - KnoraApiConnection, - ReadOntology, - ResourceClassDefinition, - ResourcePropertyDefinition -} from '@dasch-swiss/dsp-js'; -import { AppInitService } from 'src/app/app-init.service'; -import { DspApiConfigToken, DspApiConnectionToken } from 'src/app/main/declarations/dsp-api-tokens'; -import { ErrorComponent } from 'src/app/main/error/error.component'; -import { TestConfig } from 'test.config'; -import { OntologyVisualizerComponent } from './ontology-visualizer.component'; -import { VisualizerComponent } from './visualizer/visualizer.component'; - -describe('OntologyVisualizerComponent', () => { - let testHostComponent: OntologyVisualizerComponent; - let testHostFixture: ComponentFixture; - // test ontology - const testOntology = new ReadOntology(); - testOntology.id = 'http://www.knora.org/ontology/0000/testontology'; - // a test resource class - const testResourceClass1 = new ResourceClassDefinition(); - testResourceClass1.id = 'http://www.knora.org/ontology/0000/testontology/v2#testResource1'; - testResourceClass1.canBeInstantiated = true; - testResourceClass1.comment = 'first test resource class'; - testResourceClass1.label = 'Test Resource 1'; - testResourceClass1.propertiesList = []; - testResourceClass1.subClassOf = ['http://api.knora.org/ontology/knora-api/v2#Resource', 'http://purl.org/ontology/bibo/testResource']; - - const textValueProperty: IHasProperty = { - propertyIndex: 'http://www.knora.org/ontology/0000/testontology/v2#hasText', - guiOrder: 1, - isInherited: false, - cardinality: 1 - }; - testResourceClass1.propertiesList.push(textValueProperty); - const textValuePropertyDefinition = new ResourcePropertyDefinition(); - textValuePropertyDefinition.objectType = 'http://api.knora.org/ontology/knora-api/v2#TextValue'; - textValuePropertyDefinition.label = 'testText'; - textValuePropertyDefinition.id = 'http://www.knora.org/ontology/0000/testontology/v2#hasText'; - textValuePropertyDefinition.subjectType = 'http://www.knora.org/ontology/0000/testontology/v2#testResource1'; - testOntology.properties['http://www.knora.org/ontology/0000/testontology/v2#hasText'] = textValuePropertyDefinition; - - const circularValueProperty: IHasProperty = { - propertyIndex: 'http://www.knora.org/ontology/0000/testontology/v2#hasCopy', - guiOrder: 1, - isInherited: false, - cardinality: 1 - }; - testResourceClass1.propertiesList.push(circularValueProperty); - const circularValuePropertyDefinition = new ResourcePropertyDefinition(); - circularValuePropertyDefinition.objectType = 'http://www.knora.org/ontology/0000/testontology/v2#testResource1'; - circularValuePropertyDefinition.label = 'textHasCopy'; - circularValuePropertyDefinition.id = 'http://www.knora.org/ontology/0000/testontology/v2#hasCopy'; - circularValuePropertyDefinition.subjectType = 'http://www.knora.org/ontology/0000/testontology/v2#testResource1'; - testOntology.properties['http://www.knora.org/ontology/0000/testontology/v2#hasCopy'] = circularValuePropertyDefinition; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ - OntologyVisualizerComponent, - VisualizerComponent, - ErrorComponent - ], - imports: [ - HttpClientTestingModule, - MatRadioModule, - MatSliderModule, - MatSlideToggleModule, - RouterTestingModule - ], - providers: [ - AppInitService, - { - provide: DspApiConfigToken, - useValue: TestConfig.ApiConfig - }, - { - provide: DspApiConnectionToken, - useValue: new KnoraApiConnection(TestConfig.ApiConfig) - } - ] - }) - .compileComponents(); - })); - beforeEach(() => { - testHostFixture = TestBed.createComponent(OntologyVisualizerComponent); - testHostComponent = testHostFixture.componentInstance; - testHostComponent.ontoClasses = [testResourceClass1]; - testHostComponent.ontology = testOntology; - testHostFixture.detectChanges(); - }); - it('should check the component input (ontology and ontoClasses)', waitForAsync( () => { - expect(testHostComponent.ontoClasses.length).toEqual(1); - expect(testHostComponent.ontoClasses[0].propertiesList.length).toEqual(2); - expect(testHostComponent.ontology.id).toMatch('http://www.knora.org/ontology/0000/testontology'); - })); - it('should get ontology prefix, resource label, and combination of both from class IRI', waitForAsync( () => { - const resLabelInfo = testHostComponent.createLabelFromIRI('http://www.knora.org/ontology/0000/testontology/v2#testResource1'); - expect(resLabelInfo.ontoName).toEqual('testontology'); - expect(resLabelInfo.type).toEqual('testResource1'); - expect(resLabelInfo.newLabel).toEqual(resLabelInfo.ontoName + ':' + resLabelInfo.type); - })); - it('should convert resource classes defined in ontology to nodes', waitForAsync( () => { - expect(testHostComponent.nodes.length).toEqual(4); - const nodeForTestResource1 = testHostComponent.nodes[0]; - expect(nodeForTestResource1['id']).toEqual('http://www.knora.org/ontology/0000/testontology/v2#testResource1'); - expect(nodeForTestResource1['label']).toEqual('testontology:testResource1'); - expect(nodeForTestResource1['class']).toEqual('native'); - expect(nodeForTestResource1['group']).toEqual('resource'); - })); - it('should convert super classes defined for resources to nodes as external resource', waitForAsync( () => { - const nodeForKnoraResource = { - 'id': 'http://api.knora.org/ontology/knora-api/v2#Resource', - 'label': 'knora-api:Resource', - 'group': 'resource', - 'class': 'external' - }; - expect(testHostComponent.nodes).toContain(nodeForKnoraResource); - const nodeForbiboResource = { - 'id': 'http://purl.org/ontology/bibo/testResource', - 'label': 'http://purl.org/ontology/bibo/testResource', - 'group': 'resource', - 'class': 'external' - }; - expect(testHostComponent.nodes).toContain(nodeForbiboResource); - })); - it('should check if a resource class is in nodes list with its IRI', waitForAsync( () => { - expect(testHostComponent.isInNodes('http://www.knora.org/ontology/0000/testontology/v2#testResource1')).toBeTruthy(); - - })); - it('should create links defining subclass relations', waitForAsync( () => { - expect(testHostComponent.links.length).toEqual(4); - const subClassofKnoraAPiResource = { - 'source': 'http://www.knora.org/ontology/0000/testontology/v2#testResource1', - 'target': 'http://api.knora.org/ontology/knora-api/v2#Resource', - 'label': 'subClassOf', - 'rotation': 0, - 'curvature': 0 - }; - const subClassofBiboResource = { - 'source': 'http://www.knora.org/ontology/0000/testontology/v2#testResource1', - 'target': 'http://purl.org/ontology/bibo/testResource', - 'label': 'subClassOf', - 'rotation': 0, - 'curvature': 0 - }; - - expect(testHostComponent.links).toContain(subClassofBiboResource); - expect(testHostComponent.links).toContain(subClassofKnoraAPiResource); - })); - it('should convert literal object type to a node', waitForAsync( () => { - const targetnodeID = testHostComponent.addObjectTypeToNodes('http://api.knora.org/ontology/knora-api/v2#TextValue', - 'http://www.knora.org/ontology/0000/testontology/v2#hasText', 'Test Resource 1'); - expect(targetnodeID).toEqual('Test Resource 1_hasText'); - const textValueNode = { - 'id': 'Test Resource 1_hasText', - 'label': 'knora-api:TextValue', - 'group': 'literal', - 'class': 'TextValue' - }; - expect(testHostComponent.nodes).toContain(textValueNode); - })); - it('should convert property to link', waitForAsync( () => { - const textValueLink = { - 'source': 'http://www.knora.org/ontology/0000/testontology/v2#testResource1', - 'target': 'Test Resource 1_hasText', - 'label': 'testText', - 'rotation': 0, - 'curvature': 0 - }; - expect(testHostComponent.links).toContain(textValueLink); - })); - it('should convert property to a circular link', waitForAsync( () => { - const circularLink = { - 'source': 'http://www.knora.org/ontology/0000/testontology/v2#testResource1', - 'target': 'http://www.knora.org/ontology/0000/testontology/v2#testResource1', - 'label': 'textHasCopy', - 'rotation': 1, - 'curvature': 0.5 - }; - expect(testHostComponent.links).toContain(circularLink); - })); -}); diff --git a/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.ts b/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.ts deleted file mode 100644 index 4905c11685..0000000000 --- a/src/app/project/ontology/ontology-visualizer/ontology-visualizer.component.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { Component, Inject, Input, OnInit, Output } from '@angular/core'; -import { ClassDefinition, KnoraApiConnection, ReadOntology } from '@dasch-swiss/dsp-js'; -import { DspApiConnectionToken } from 'src/app/main/declarations/dsp-api-tokens'; -import { Link, Node } from '../../../../../node_modules/d3-force-3d'; -import { OntologyService } from '../ontology.service'; - -export interface NewOntology { - projectIri: string; - name: string; - label: string; -} - -@Component({ - selector: 'app-ontology-visualizer', - templateUrl: './ontology-visualizer.component.html', - styleUrls: ['./ontology-visualizer.component.scss'] -}) -export class OntologyVisualizerComponent implements OnInit { - // ontology JSON-LD object - @Input() ontology: ReadOntology; - @Input() ontoClasses: ClassDefinition[]; - @Output() graphInfo; - loading: boolean; - nodes: Node[] = []; - links: Link[] = []; - - constructor( - @Inject(DspApiConnectionToken) private _dspApiConnection: KnoraApiConnection, - private _ontologyService: OntologyService) { } - - isInNodes(item: string) { - for (const node of this.nodes) { - if (node['id'] === item) { - return true; - } - } - return false; - } - createLabelFromIRI(iri: string) { - const resourceInfo = iri.split('#', 2); - let ontoName: string; - let type: string; - let newLabel: string; - if (resourceInfo[1] !== undefined) { - type = resourceInfo[1]; - ontoName = this._ontologyService.getOntologyName(resourceInfo[0]); - newLabel = ontoName + ':' + type; - } else { - type = iri.split('/').pop(); - ontoName = iri.replace(type, ''); - newLabel = iri; - } - - return { 'ontoName': ontoName, 'type': type, 'newLabel': newLabel }; - } - getSubclassLinksAndExternalResources(res: ClassDefinition): void { - for (const item of res.subClassOf) { - if (!this.isInNodes(item)) { - const nodeInfo = this.createLabelFromIRI(item); - this.nodes.push({ 'id': item, 'label': nodeInfo.newLabel, 'group': 'resource', 'class': 'external' }); - } - const source = res.id; - const target = item; - let rotation = 0; - let curvature = 0; - if (source === target) { - rotation = 1; - curvature = 0.5; - } - const link = { 'source': res.id, 'target': item, 'label': 'subClassOf', 'rotation': rotation, 'curvature': curvature }; - this.links.push(link); - } - } - - addResourceClassesToNodes() { - for (const res of this.ontoClasses) { - const resInfo = this.createLabelFromIRI(res.id); - const node = { 'id': res.id, 'label': resInfo.newLabel, 'group': 'resource', 'class': 'native' }; - this.nodes.push(node); - } - } - addObjectTypeToNodes(targetID: string, propID: string, resLabel: string): string { - let newNode: Node; - // object Value is a literal - const nodeInfo = this.createLabelFromIRI(targetID); - if (targetID.endsWith('Value')) { - targetID = resLabel + '_' + propID.split('#', 2)[1]; - newNode = { 'id': targetID, 'label': nodeInfo.newLabel, 'group': 'literal', 'class': nodeInfo.type }; - // object Value is a resource defined in another ontology - } else { - newNode = { 'id': targetID, 'label': nodeInfo.newLabel, 'group': 'resource', 'class': 'external' }; - } - if (!this.isInNodes(targetID)) { - this.nodes.push(newNode); - } - return targetID; - } - convertOntolologytoGraph() { - this.addResourceClassesToNodes(); - for (const res of this.ontoClasses) { - const source = res.id; - this.getSubclassLinksAndExternalResources(res); - for (const prop of res.propertiesList) { - if (prop.guiOrder >= 0 && this.ontology.properties[prop.propertyIndex] - && this.ontology.properties[prop.propertyIndex].objectType !== 'http://api.knora.org/ontology/knora-api/v2#LinkValue') { - const targetObject = this.ontology.properties[prop.propertyIndex].objectType; - const proplabel = this.ontology.properties[prop.propertyIndex].label; - const target = this.addObjectTypeToNodes(targetObject, prop.propertyIndex, res.label); - let rotation = 0; - let curvature = 0; - if (source === target) { - rotation = 1; - curvature = 0.5; - } - const link = { 'source': source, 'target': target, 'label': proplabel, 'rotation': rotation, 'curvature': curvature }; - this.links.push(link); - - } - } - } - return { 'nodes': this.nodes, 'links': this.links }; - } - ngOnInit() { - this.graphInfo = this.convertOntolologytoGraph(); - } - -} diff --git a/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.html b/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.html deleted file mode 100644 index a6ba2e09e0..0000000000 --- a/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.html +++ /dev/null @@ -1,21 +0,0 @@ - -
- - Dimensions: - - 2D - 3D - - - Link Force - - - - Show Node Labels - Show Link Labels - - -
-
- - diff --git a/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.scss b/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.scss deleted file mode 100644 index 1a0281527d..0000000000 --- a/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.scss +++ /dev/null @@ -1,19 +0,0 @@ -.dimensions{ - margin-left: 16px; -} -.mat-radio-button{ - margin-left: 10px; -} - -.forceSlider{ - margin-top: 30px; - margin-left: 100px; -} - -.showLabels{ - margin-left: 100px; -} -.mat-slide-toggle{ - margin-right: 16px; - margin-top: 30px; -} diff --git a/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.spec.ts b/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.spec.ts deleted file mode 100644 index ff9bdcb3fc..0000000000 --- a/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.spec.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatRadioModule } from '@angular/material/radio'; -import { MatSlideToggleModule } from '@angular/material/slide-toggle'; -import { MatSliderModule } from '@angular/material/slider'; - -import { VisualizerComponent } from './visualizer.component'; - -describe('VisualizerComponent', () => { - let component: VisualizerComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ VisualizerComponent ], - imports: [ - MatRadioModule, - MatSliderModule, - MatSlideToggleModule - ], - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(VisualizerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); -}); diff --git a/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.ts b/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.ts deleted file mode 100644 index cee5cd65ae..0000000000 --- a/src/app/project/ontology/ontology-visualizer/visualizer/visualizer.component.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { Component, OnInit, ViewChild, ElementRef, AfterViewInit, Input } from '@angular/core'; -import { MatRadioChange } from '@angular/material/radio'; -import { MatSlideToggle } from '@angular/material/slide-toggle'; - -import ForceGraph3D from '3d-force-graph'; -import * as THREE from 'three'; -import SpriteText from 'three-spritetext'; -import { NodeObject } from 'jsonld'; - -export interface Coordinates { - x: number; - y: number; - z: number; -} - -@Component({ - selector: 'app-visualizer', - templateUrl: './visualizer.component.html', - styleUrls: ['./visualizer.component.scss'] -}) -export class VisualizerComponent implements OnInit, AfterViewInit { - @ViewChild('graphcontainer', { read: ElementRef }) graphcontainer: ElementRef; - @Input() graphInfo; - graph = ForceGraph3D(); - dimension = '3'; - showLinkLabel = false; - showNodeLabel = false; - linkDistance = 20; - constructor() { } - designNode(node: NodeObject | string) { - let depthWrite = true; - if (this.showNodeLabel) { - depthWrite = false; - } - const sprite = new SpriteText(node['label'], 1); - sprite.fontFace = 'Arial'; - sprite.fontWeight = 'bold'; - sprite.textHeight = 8; - sprite.color = 'black'; - const geometricalWidth = sprite.text.length + 5; - let geometry; - if (node['group'] === 'literal') { - geometry = new THREE.BoxGeometry(geometricalWidth, 12, 10); - } else { - geometry = new THREE.SphereGeometry(10, geometricalWidth, 12); - geometry.applyMatrix4(new THREE.Matrix4().makeScale(2, 1.0, 1.5)); - } - const material = new THREE.MeshLambertMaterial({ - color: node['color'], - depthWrite: depthWrite, - transparent: false, - opacity: 1 - }); - const obj = new THREE.Mesh(geometry, material); - if (this.showNodeLabel) { - // add text sprite as child - sprite.scale.set(sprite.text.length, 8, 1); - obj.add(sprite); - } - return obj; - } - - calcMiddlePos(start: Coordinates, end: Coordinates) { - const middlePosX = start.x + (end.x - start.x) / 2; - const middlePosY = start.y + (end.y - start.y) / 2; - let middlePosZ: number; - if (this.dimension === '3') { - middlePosZ = start.z + (end.z - start.z) / 2 ; - } else { - middlePosZ = 1; - } - const middlePos = { x: middlePosX, y: middlePosY, z: middlePosZ }; - return middlePos; - } - ngOnInit(): void { - const gData = { 'nodes': this.graphInfo.nodes, 'links': this.graphInfo.links }; - this.graph.graphData(gData); - this.graph.width(1280); - // node design - this.graph.nodeLabel('label'); - this.graph.nodeAutoColorBy('class'); - this.graph.enableNodeDrag(true); - this.graph.nodeThreeObject((node) => this.designNode(node)); - // this.graph.onNodeDragEnd(node => { - // node.fx = node.x; - // node.fy = node.y; - // node.fz = node.z; }); - - // link design - this.graph.linkCurvature('curvature'); - this.graph.linkCurveRotation('rotation'); - this.graph.linkThreeObjectExtend(true); - if (this.showLinkLabel === true) { - this.graph.linkThreeObject(link => { - // extend link with text sprite - const sprite = new SpriteText(link['label']); - sprite.color = 'lightgrey'; - sprite.textHeight = 3; - sprite.fontWeight = 'bold'; - return sprite; - }); - this.graph.linkPositionUpdate((sprite, { start, end }) => { - // position sprite - Object.assign(sprite.position, this.calcMiddlePos(start, end)); - return false; - }); - } else { - this.graph.linkLabel('label'); - } - this.graph.linkDirectionalArrowLength(5); - this.graph.linkDirectionalArrowRelPos(1); - this.graph.linkWidth(1.5); - const linkForce: any = this.graph.d3Force('link'); - linkForce.distance(this.linkDistance); - // fit to canvas when engine stops - this.graph.d3Force('center', null); - this.graph.onEngineStop(() => this.graph.zoomToFit(400)); - this.graph.showNavInfo(false); - } - ngAfterViewInit() { - this.graph(this.graphcontainer.nativeElement); - } - - dimensionHandler(dimChange: MatRadioChange) { - this.dimension = dimChange.value; - if (this.dimension === '3') { - this.graph.numDimensions(3); - } else { - this.graph.numDimensions(2); - } - } - - linkLabelHandler(showlinkLabel: MatSlideToggle) { - this.showLinkLabel = showlinkLabel.checked; - this.ngOnInit(); // re-heat simulation - } - - nodeLabelHandler(showNodeLabel: MatSlideToggle) { - this.showNodeLabel = showNodeLabel.checked; - this.ngOnInit(); // re-heat simulation - } - - updateLinkDistance(event: any) { - this.linkDistance = event.value; - this.ngOnInit(); // re-heat simulation - } -} diff --git a/src/app/project/ontology/ontology.component.html b/src/app/project/ontology/ontology.component.html index 406a7ec071..4fa12ad98a 100644 --- a/src/app/project/ontology/ontology.component.html +++ b/src/app/project/ontology/ontology.component.html @@ -211,10 +211,6 @@

- - diff --git a/src/app/project/ontology/ontology.component.spec.ts b/src/app/project/ontology/ontology.component.spec.ts index 398fce9ed8..cb19c687bd 100644 --- a/src/app/project/ontology/ontology.component.spec.ts +++ b/src/app/project/ontology/ontology.component.spec.ts @@ -15,7 +15,17 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { ActivatedRoute } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; -import { ApiResponseData, CanDoResponse, ListNodeInfo, ListsEndpointAdmin, ListsResponse, MockOntology, OntologiesEndpointV2, OntologiesMetadata, ReadOntology } from '@dasch-swiss/dsp-js'; +import { + ApiResponseData, + CanDoResponse, + ListNodeInfo, + ListsEndpointAdmin, + ListsResponse, + MockOntology, + OntologiesEndpointV2, + OntologiesMetadata, + ReadOntology +} from '@dasch-swiss/dsp-js'; import { of } from 'rxjs'; import { AjaxResponse } from 'rxjs/ajax'; import { CacheService } from 'src/app/main/cache/cache.service'; @@ -23,7 +33,6 @@ import { DspApiConnectionToken } from 'src/app/main/declarations/dsp-api-tokens' import { DialogComponent } from 'src/app/main/dialog/dialog.component'; import { ErrorComponent } from 'src/app/main/error/error.component'; import { TestConfig } from 'test.config'; -import { OntologyVisualizerComponent } from './ontology-visualizer/ontology-visualizer.component'; import { OntologyComponent } from './ontology.component'; import { PropertyInfoComponent } from './property-info/property-info.component'; import { ResourceClassInfoComponent } from './resource-class-info/resource-class-info.component'; @@ -54,7 +63,6 @@ describe('OntologyComponent', () => { TestBed.configureTestingModule({ declarations: [ OntologyComponent, - OntologyVisualizerComponent, DialogComponent, ErrorComponent, PropertyInfoComponent,