diff --git a/electron/main/index.ts b/electron/main/index.ts
index f56199e..2b9c2b5 100644
--- a/electron/main/index.ts
+++ b/electron/main/index.ts
@@ -137,6 +137,7 @@ async function createWindow(projectPath?: string) {
trafficLightPosition: { x: 10, y: 10 },
webPreferences: {
preload,
+ webSecurity: false,
// Warning: Enable nodeIntegration and disable contextIsolation is not secure in production
// Consider using contextBridge.exposeInMainWorld
// Read more on https://www.electronjs.org/docs/latest/tutorial/context-isolation
diff --git a/index.html b/index.html
index 33d5999..5fca809 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
-
+
Behavior3 Editor
diff --git a/package-lock.json b/package-lock.json
index 2bbaa48..e24764c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,17 +1,17 @@
{
"name": "behavior3editor",
- "version": "1.8.1",
+ "version": "1.8.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "behavior3editor",
- "version": "1.8.1",
+ "version": "1.8.2",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"@ant-design/icons": "^5.4.0",
- "@antv/g6": "^4.8.24",
+ "@antv/g6": "^5.0.45",
"@electron/remote": "github:electron/remote",
"@types/electron-localshortcut": "^3.1.3",
"@types/node": "^20.14.14",
@@ -189,300 +189,348 @@
"version": "0.1.26",
"resolved": "https://registry.npmjs.org/@antv/algorithm/-/algorithm-0.1.26.tgz",
"integrity": "sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==",
+ "license": "MIT",
"dependencies": {
"@antv/util": "^2.0.13",
"tslib": "^2.0.0"
}
},
- "node_modules/@antv/dom-util": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@antv/dom-util/-/dom-util-2.0.4.tgz",
- "integrity": "sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==",
+ "node_modules/@antv/algorithm/node_modules/@antv/util": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz",
+ "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==",
+ "license": "ISC",
"dependencies": {
+ "csstype": "^3.0.8",
"tslib": "^2.0.3"
}
},
+ "node_modules/@antv/component": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@antv/component/-/component-2.1.2.tgz",
+ "integrity": "sha512-5nC9i9lh5rBHE+pk4TNnerLe4mn5874YHHhvv6EdL618UkgpdKJL0hJu4l7uAYjZ3g46VBK+IYT7md0FYv8f4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/g": "^6.1.11",
+ "@antv/scale": "^0.4.16",
+ "@antv/util": "^3.3.10",
+ "svg-path-parser": "^1.1.0"
+ }
+ },
"node_modules/@antv/event-emitter": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.3.tgz",
- "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg=="
+ "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==",
+ "license": "MIT"
},
- "node_modules/@antv/g-base": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/@antv/g-base/-/g-base-0.5.16.tgz",
- "integrity": "sha512-jP06wggTubDPHXoKwFg3/f1lyxBX9ywwN3E/HG74Nd7DXqOXQis8tsIWW+O6dS/h9vyuXLd1/wDWkMMm3ZzXdg==",
+ "node_modules/@antv/g": {
+ "version": "6.1.21",
+ "resolved": "https://registry.npmjs.org/@antv/g/-/g-6.1.21.tgz",
+ "integrity": "sha512-3cWmsY1bYwDmVzsFmBeqN1tWVt+3JaWL6Uu54C1oF7qn1VXXa3V3KuXGEYCxuei8E8BMriN3D7fZosY5d+MQqw==",
+ "license": "MIT",
"dependencies": {
- "@antv/event-emitter": "^0.1.1",
- "@antv/g-math": "^0.1.9",
- "@antv/matrix-util": "^3.1.0-beta.1",
- "@antv/path-util": "~2.0.5",
- "@antv/util": "~2.0.13",
- "@types/d3-timer": "^2.0.0",
- "d3-ease": "^1.0.5",
- "d3-interpolate": "^3.0.1",
- "d3-timer": "^1.0.9",
- "detect-browser": "^5.1.0",
- "tslib": "^2.0.3"
+ "@antv/g-camera-api": "2.0.35",
+ "@antv/g-dom-mutation-observer-api": "2.0.32",
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-web-animations-api": "2.1.21",
+ "@babel/runtime": "^7.25.6"
+ }
+ },
+ "node_modules/@antv/g-camera-api": {
+ "version": "2.0.35",
+ "resolved": "https://registry.npmjs.org/@antv/g-camera-api/-/g-camera-api-2.0.35.tgz",
+ "integrity": "sha512-z4WKmB6yN2fFi9EnapjuHbFVF0ilhMrWo2eZCxYXcb0dV5MiflU/WZi/bjs4WqVMJPNtYKx+yZhTyROncEiglw==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
}
},
"node_modules/@antv/g-canvas": {
- "version": "0.5.17",
- "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-0.5.17.tgz",
- "integrity": "sha512-sXYJMWTOlb/Ycb6sTKu00LcJqInXJY4t99+kSM40u2OfqrXYmaXDjHR7D2V0roMkbK/QWiWS9UnEidCR1VtMOA==",
+ "version": "2.0.40",
+ "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-2.0.40.tgz",
+ "integrity": "sha512-Starh5g+ydOFKzfK/GpwnLwz+o6UZNHkyWBXdHx2ax/AJWHVXwjyCadt/6kkc2non0ts2ow/hpJaW7X3dgdDxQ==",
+ "license": "MIT",
"dependencies": {
- "@antv/g-base": "^0.5.12",
- "@antv/g-math": "^0.1.9",
- "@antv/matrix-util": "^3.1.0-beta.1",
- "@antv/path-util": "~2.0.5",
- "@antv/util": "~2.0.0",
- "gl-matrix": "^3.0.0",
- "tslib": "^2.0.3"
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-plugin-canvas-path-generator": "2.1.16",
+ "@antv/g-plugin-canvas-picker": "2.1.19",
+ "@antv/g-plugin-canvas-renderer": "2.2.19",
+ "@antv/g-plugin-dom-interaction": "2.1.21",
+ "@antv/g-plugin-html-renderer": "2.1.21",
+ "@antv/g-plugin-image-loader": "2.1.19",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
+ }
+ },
+ "node_modules/@antv/g-dom-mutation-observer-api": {
+ "version": "2.0.32",
+ "resolved": "https://registry.npmjs.org/@antv/g-dom-mutation-observer-api/-/g-dom-mutation-observer-api-2.0.32.tgz",
+ "integrity": "sha512-50r7en1+doUtR9uXmFJk8YtENQ/+DFcj2g3a4XKu9xp58kmF2qBgtdst9n1deqGcL5s0ufX/Ck9rUhtHwka+Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/g-lite": "2.2.16",
+ "@babel/runtime": "^7.25.6"
+ }
+ },
+ "node_modules/@antv/g-lite": {
+ "version": "2.2.16",
+ "resolved": "https://registry.npmjs.org/@antv/g-lite/-/g-lite-2.2.16.tgz",
+ "integrity": "sha512-473r6S5srkxUiUxI3ZkrM74HMkgyO9+2HR1xtJ75yDOOuT8F6osdXDgy0Or5cWqOlsVjiN3L3DaPnQLHlUGO5A==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/g-math": "3.0.0",
+ "@antv/util": "^3.3.5",
+ "@antv/vendor": "^1.0.3",
+ "@babel/runtime": "^7.25.6",
+ "eventemitter3": "^5.0.1",
+ "gl-matrix": "^3.4.3",
+ "rbush": "^3.0.1",
+ "tslib": "^2.5.3"
}
},
"node_modules/@antv/g-math": {
- "version": "0.1.9",
- "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-0.1.9.tgz",
- "integrity": "sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-3.0.0.tgz",
+ "integrity": "sha512-AkmiNIEL1vgqTPeGY2wtsMdBBqKFwF7SKSgs+D1iOS/rqYMsXdhp/HvtuQ5tx/HdawE/ZzTiicIYopc520ADZw==",
+ "license": "MIT",
"dependencies": {
- "@antv/util": "~2.0.0",
- "gl-matrix": "^3.0.0"
+ "@antv/util": "^3.3.5",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
}
},
- "node_modules/@antv/g-svg": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@antv/g-svg/-/g-svg-0.5.7.tgz",
- "integrity": "sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw==",
+ "node_modules/@antv/g-plugin-canvas-path-generator": {
+ "version": "2.1.16",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-canvas-path-generator/-/g-plugin-canvas-path-generator-2.1.16.tgz",
+ "integrity": "sha512-E3/HUzWRv1/5QyKHLcXIgFJff0JBxDHz4NfHwYp6IOy5P/A1mbISsUjwafSl8JIVqx0J81CzgqpwU7pWHeXlaQ==",
+ "license": "MIT",
"dependencies": {
- "@antv/g-base": "^0.5.12",
- "@antv/g-math": "^0.1.9",
- "@antv/util": "~2.0.0",
- "detect-browser": "^5.0.0",
- "tslib": "^2.0.3"
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-math": "3.0.0",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
}
},
- "node_modules/@antv/g-webgpu": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@antv/g-webgpu/-/g-webgpu-0.7.2.tgz",
- "integrity": "sha512-kw+oYGsdvj5qeUfy5DPb/jztZBV+2fmqBd3Vv8NlKatfBmv8AirYX/CCW74AUSdWm99rEiLyxFB1VdRZ6b/wnQ==",
+ "node_modules/@antv/g-plugin-canvas-picker": {
+ "version": "2.1.19",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-canvas-picker/-/g-plugin-canvas-picker-2.1.19.tgz",
+ "integrity": "sha512-69G0m2v09FimmYSU+hO1wjft1FqM467Cf1jDpjBz6Y3caQ98Hrqpz/7Prko1hMOALCo92MDo65yTTnz/LhBiQA==",
+ "license": "MIT",
"dependencies": {
- "@antv/g-webgpu-core": "^0.7.2",
- "@antv/g-webgpu-engine": "^0.7.2",
- "gl-matrix": "^3.1.0",
- "gl-vec2": "^1.3.0",
- "lodash": "^4.17.15"
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-math": "3.0.0",
+ "@antv/g-plugin-canvas-path-generator": "2.1.16",
+ "@antv/g-plugin-canvas-renderer": "2.2.19",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
}
},
- "node_modules/@antv/g-webgpu-core": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@antv/g-webgpu-core/-/g-webgpu-core-0.7.2.tgz",
- "integrity": "sha512-xUMmop7f3Rs34zFYKXLqHhDR1CQTeDl/7vI7Sn3X/73BqJc3X3HIIRvm83Fg2CjVACaOzw4WeLRXNaOCp9fz9w==",
+ "node_modules/@antv/g-plugin-canvas-renderer": {
+ "version": "2.2.19",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-canvas-renderer/-/g-plugin-canvas-renderer-2.2.19.tgz",
+ "integrity": "sha512-3Ac0pjU0NAafu0rwTnthwWV/CV5kV9CpTf96v1CCXX0P3iPWtW72SatQNOt/v2aQ2NjYB34YuwYy9i0U1oS8rg==",
+ "license": "MIT",
"dependencies": {
- "eventemitter3": "^4.0.0",
- "gl-matrix": "^3.1.0",
- "lodash": "^4.17.15",
- "probe.gl": "^3.1.1"
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-math": "3.0.0",
+ "@antv/g-plugin-canvas-path-generator": "2.1.16",
+ "@antv/g-plugin-image-loader": "2.1.19",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
}
},
- "node_modules/@antv/g-webgpu-engine": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@antv/g-webgpu-engine/-/g-webgpu-engine-0.7.2.tgz",
- "integrity": "sha512-lx8Y93IW2cnJvdoDRKyMmTdYqSC1pOmF0nyG3PGGyA0NI9vBYVgO0KTF6hkyWjdTWVq7XDZyf/h8CJridLh3lg==",
+ "node_modules/@antv/g-plugin-dom-interaction": {
+ "version": "2.1.21",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-dom-interaction/-/g-plugin-dom-interaction-2.1.21.tgz",
+ "integrity": "sha512-Vm8yeNjZ2aNgNH3LwDRExRChpuVv0Wv2zOblUGy5rgyRIh2Fkm8R89pKLmd3GlLo4AF1ZqAGWHiY2WOeMHEEIA==",
+ "license": "MIT",
"dependencies": {
- "@antv/g-webgpu-core": "^0.7.2",
- "gl-matrix": "^3.1.0",
- "lodash": "^4.17.15",
- "regl": "^1.3.11"
+ "@antv/g-lite": "2.2.16",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
+ }
+ },
+ "node_modules/@antv/g-plugin-dragndrop": {
+ "version": "2.0.32",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.0.32.tgz",
+ "integrity": "sha512-0Y9S/jx6Z7O3hEQhqrXGWNIcV1dBoRpokSP9gIMqTxOjCLzVUFYv8pFoI+Uyeow6PAWe+gdBQu+EJgVi223lJQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
+ }
+ },
+ "node_modules/@antv/g-plugin-html-renderer": {
+ "version": "2.1.21",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-html-renderer/-/g-plugin-html-renderer-2.1.21.tgz",
+ "integrity": "sha512-1PR9rYt4BgSx8LFnVPF+cPlcBYKfI7iWK/xPipEa3jZ4j/xftELQ5EEyZpfPnrTqu2PtKeMurx7oaM/HPsgaiQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
+ }
+ },
+ "node_modules/@antv/g-plugin-image-loader": {
+ "version": "2.1.19",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-image-loader/-/g-plugin-image-loader-2.1.19.tgz",
+ "integrity": "sha512-ZjNs08RkzdDMLlEWGabJG1Lu1Q71afStSlhcIRhrDOLB4tH0UdYlq/f72tlzJ6KjtLnril/xQH3D7znPlfAoig==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
+ }
+ },
+ "node_modules/@antv/g-web-animations-api": {
+ "version": "2.1.21",
+ "resolved": "https://registry.npmjs.org/@antv/g-web-animations-api/-/g-web-animations-api-2.1.21.tgz",
+ "integrity": "sha512-EkIjeEH3QzHkDJn3sz1Mk83PqVQXGe5440mJV42QmnxuFuFcxGVJMi9vS8Te7kCUJl4eSb/eqnNi5AWfDMWm+w==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
}
},
"node_modules/@antv/g6": {
- "version": "4.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-4.8.24.tgz",
- "integrity": "sha512-bgj7sZ+z45JmOngIpYpwmSIg7SboMLZBoAlX0+RoAETZB3/xvZO0MXT3lCSyAhIgm5Sb68pekKi7OStuo04NyQ==",
- "dependencies": {
- "@antv/g6-pc": "0.8.24"
- }
- },
- "node_modules/@antv/g6-core": {
- "version": "0.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6-core/-/g6-core-0.8.24.tgz",
- "integrity": "sha512-rgI3dArAD8uoSz2+skS4ctN4x/Of33ivTIKaEYYvClxgkLZWVz9zvocy+5AWcVPBHZsAXkZcdh9zndIoWY/33A==",
+ "version": "5.0.45",
+ "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-5.0.45.tgz",
+ "integrity": "sha512-gwJnan63G+UOyoGAFRafEJjcFHVDt2MPM7xpryJd3Pg0uAFTBQSAriqfNecNj7Ao9vDwfkcrfP5sN87yksMSfA==",
+ "license": "MIT",
"dependencies": {
"@antv/algorithm": "^0.1.26",
- "@antv/dom-util": "^2.0.1",
- "@antv/event-emitter": "~0.1.0",
- "@antv/g-base": "^0.5.1",
- "@antv/g-math": "^0.1.1",
- "@antv/matrix-util": "^3.1.0-beta.3",
- "@antv/path-util": "^2.0.3",
- "@antv/util": "~2.0.5",
- "ml-matrix": "^6.5.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@antv/g6-element": {
- "version": "0.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6-element/-/g6-element-0.8.24.tgz",
- "integrity": "sha512-61FXkt9LY+6EOUtSam1iFTOW2AM59sPVcV1BuPj4dXiD0dluLE+R7d8B/94g1tKDw9tsjhfUQGC7hTXscJRJFw==",
- "dependencies": {
- "@antv/g-base": "^0.5.1",
- "@antv/g6-core": "0.8.24",
- "@antv/util": "~2.0.5",
- "tslib": "^2.6.2"
- },
- "peerDependencies": {
- "@antv/g6": "4.8.24"
- }
- },
- "node_modules/@antv/g6-pc": {
- "version": "0.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6-pc/-/g6-pc-0.8.24.tgz",
- "integrity": "sha512-nf0y1lrp8J5DotqRryXd2S/J30COW8spVcLF9gUqywGqQAHfE00Ywkqr+PZBnsfCZXsXCi9o0+CE9NrkWs4SBQ==",
- "dependencies": {
- "@ant-design/colors": "^4.0.5",
- "@antv/algorithm": "^0.1.26",
- "@antv/dom-util": "^2.0.1",
- "@antv/event-emitter": "~0.1.0",
- "@antv/g-base": "^0.5.1",
- "@antv/g-canvas": "^0.5.2",
- "@antv/g-math": "^0.1.1",
- "@antv/g-svg": "^0.5.1",
- "@antv/g6-core": "0.8.24",
- "@antv/g6-element": "0.8.24",
- "@antv/g6-plugin": "0.8.24",
- "@antv/hierarchy": "^0.6.10",
- "@antv/layout": "^0.3.0",
- "@antv/matrix-util": "^3.1.0-beta.3",
- "@antv/path-util": "^2.0.3",
- "@antv/util": "~2.0.5",
- "color": "^3.1.3",
- "d3-force": "^2.0.1",
- "dagre": "^0.8.5",
- "insert-css": "^2.0.0",
- "ml-matrix": "^6.5.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@antv/g6-pc/node_modules/@ant-design/colors": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-4.0.5.tgz",
- "integrity": "sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==",
- "dependencies": {
- "tinycolor2": "^1.4.1"
- }
- },
- "node_modules/@antv/g6-plugin": {
- "version": "0.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6-plugin/-/g6-plugin-0.8.24.tgz",
- "integrity": "sha512-ZIOnwLTC7SM2bFiJZ3vYFWnkyOCWKqnU96i/fBh1qAoY5slDS3hatenZWEXUtOcqaKw1h+5A5f72MRXqBBVn0g==",
- "dependencies": {
- "@antv/dom-util": "^2.0.2",
- "@antv/g-base": "^0.5.1",
- "@antv/g-canvas": "^0.5.2",
- "@antv/g-svg": "^0.5.2",
- "@antv/g6-core": "0.8.24",
- "@antv/g6-element": "0.8.24",
- "@antv/matrix-util": "^3.1.0-beta.3",
- "@antv/path-util": "^2.0.3",
- "@antv/scale": "^0.3.4",
- "@antv/util": "^2.0.9",
- "insert-css": "^2.0.0"
- },
- "peerDependencies": {
- "@antv/g6": "4.8.24"
+ "@antv/component": "^2.1.2",
+ "@antv/event-emitter": "^0.1.3",
+ "@antv/g": "^6.1.14",
+ "@antv/g-canvas": "^2.0.32",
+ "@antv/g-plugin-dragndrop": "^2.0.25",
+ "@antv/graphlib": "^2.0.4",
+ "@antv/hierarchy": "^0.6.14",
+ "@antv/layout": "1.2.14-beta.9",
+ "@antv/util": "^3.3.10",
+ "bubblesets-js": "^2.3.4"
}
},
"node_modules/@antv/graphlib": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-1.2.0.tgz",
- "integrity": "sha512-hhJOMThec51nU4Fe5p/viLlNIL71uDEgYFzKPajWjr2715SFG1HAgiP6AVylIeqBcAZ04u3Lw7usjl/TuI5RuQ=="
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-2.0.4.tgz",
+ "integrity": "sha512-zc/5oQlsdk42Z0ib1mGklwzhJ5vczLFiPa1v7DgJkTbgJ2YxRh9xdarf86zI49sKVJmgbweRpJs7Nu5bIiwv4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/event-emitter": "^0.1.3"
+ }
},
"node_modules/@antv/hierarchy": {
- "version": "0.6.11",
- "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.11.tgz",
- "integrity": "sha512-RJVhEMCuu4vj+Dt25lXIiNdd7jaqm/fqWGYikiELha4S5tnzdJoTUaUvvpfWlxLx4B0RsS9XRwBs1bOKN71TKg==",
- "dependencies": {
- "@antv/util": "^2.0.7"
- }
+ "version": "0.6.14",
+ "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.14.tgz",
+ "integrity": "sha512-V3uknf7bhynOqQDw2sg+9r9DwZ9pc6k/EcqyTFdfXB1+ydr7urisP0MipIuimucvQKN+Qkd+d6w601r1UIroqQ==",
+ "license": "MIT"
},
"node_modules/@antv/layout": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@antv/layout/-/layout-0.3.25.tgz",
- "integrity": "sha512-d29Aw1PXoAavMRZy7iTB9L5rMBeChFEX0BJ9ELP4TI35ySdCu07YbmPo9ju9OH/6sG2/NB3o85Ayxrre3iwX/g==",
+ "version": "1.2.14-beta.9",
+ "resolved": "https://registry.npmjs.org/@antv/layout/-/layout-1.2.14-beta.9.tgz",
+ "integrity": "sha512-wPlwBFMtq2lWZFc89/7Lzb8fjHnyKVZZ9zBb2h+zZIP0YWmVmHRE8+dqCiPKOyOGUXEdDtn813f1g107dCHZlg==",
+ "license": "MIT",
"dependencies": {
- "@antv/g-webgpu": "0.7.2",
- "@antv/graphlib": "^1.0.0",
+ "@antv/event-emitter": "^0.1.3",
+ "@antv/graphlib": "^2.0.0",
"@antv/util": "^3.3.2",
- "d3-force": "^2.1.1",
- "d3-quadtree": "^2.0.0",
- "dagre-compound": "^0.0.11",
- "ml-matrix": "6.5.0"
+ "@naoak/workerize-transferable": "^0.1.0",
+ "comlink": "^4.4.1",
+ "d3-force": "^3.0.0",
+ "d3-force-3d": "^3.0.5",
+ "d3-octree": "^1.0.2",
+ "d3-quadtree": "^3.0.1",
+ "dagre": "^0.8.5",
+ "ml-matrix": "^6.10.4",
+ "tslib": "^2.5.0"
}
},
- "node_modules/@antv/layout/node_modules/@antv/util": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.7.tgz",
- "integrity": "sha512-qqPg7rIPCsJyl7N56jAC25v/99mJ3ApVkgBsGijhiWrEeKvzXBPk1r5P77Pm9nCljpnn+hH8Z3t5AivbEoTJMg==",
+ "node_modules/@antv/scale": {
+ "version": "0.4.16",
+ "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.4.16.tgz",
+ "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==",
+ "license": "MIT",
+ "dependencies": {
+ "@antv/util": "^3.3.7",
+ "color-string": "^1.5.5",
+ "fecha": "^4.2.1"
+ }
+ },
+ "node_modules/@antv/util": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.10.tgz",
+ "integrity": "sha512-basGML3DFA3O87INnzvDStjzS+n0JLEhRnRsDzP9keiXz8gT1z/fTdmJAZFOzMMWxy+HKbi7NbSt0+8vz/OsBQ==",
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"gl-matrix": "^3.3.0",
"tslib": "^2.3.1"
}
},
- "node_modules/@antv/layout/node_modules/ml-matrix": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.5.0.tgz",
- "integrity": "sha512-sms732Dge+rs5dU4mnjE0oqLWm1WujvR2fr38LgUHRG2cjXjWlO3WJupLYaSz3++2iYr0UrGDK72OAivr3J8dg==",
+ "node_modules/@antv/vendor": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/@antv/vendor/-/vendor-1.0.10.tgz",
+ "integrity": "sha512-/llNfo0gyUAi+ZY3TAtkNPS66eXTMbNdaKd8qllyJUuXnpRHYd/LGU69ix6olGJEFBi61hO4f9eTY0zzNOlFlw==",
+ "license": "MIT AND ISC",
"dependencies": {
- "ml-array-rescale": "^1.3.1"
- }
- },
- "node_modules/@antv/matrix-util": {
- "version": "3.1.0-beta.3",
- "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz",
- "integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==",
- "dependencies": {
- "@antv/util": "^2.0.9",
- "gl-matrix": "^3.4.3",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/@antv/path-util": {
- "version": "2.0.15",
- "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.15.tgz",
- "integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==",
- "dependencies": {
- "@antv/matrix-util": "^3.0.4",
- "@antv/util": "^2.0.9",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/@antv/path-util/node_modules/@antv/matrix-util": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.0.4.tgz",
- "integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==",
- "dependencies": {
- "@antv/util": "^2.0.9",
- "gl-matrix": "^3.3.0",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/@antv/scale": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.3.18.tgz",
- "integrity": "sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w==",
- "dependencies": {
- "@antv/util": "~2.0.3",
- "fecha": "~4.2.0",
- "tslib": "^2.0.0"
- }
- },
- "node_modules/@antv/util": {
- "version": "2.0.17",
- "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz",
- "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==",
- "dependencies": {
- "csstype": "^3.0.8",
- "tslib": "^2.0.3"
+ "@types/d3-array": "^3.2.1",
+ "@types/d3-color": "^3.1.3",
+ "@types/d3-dispatch": "^3.0.6",
+ "@types/d3-dsv": "^3.0.7",
+ "@types/d3-fetch": "^3.0.7",
+ "@types/d3-force": "^3.0.10",
+ "@types/d3-format": "^3.0.4",
+ "@types/d3-geo": "^3.1.0",
+ "@types/d3-hierarchy": "^3.1.7",
+ "@types/d3-interpolate": "^3.0.4",
+ "@types/d3-path": "^3.1.0",
+ "@types/d3-quadtree": "^3.0.6",
+ "@types/d3-random": "^3.0.3",
+ "@types/d3-scale": "^4.0.9",
+ "@types/d3-scale-chromatic": "^3.1.0",
+ "@types/d3-shape": "^3.1.7",
+ "@types/d3-time": "^3.0.4",
+ "@types/d3-timer": "^3.0.2",
+ "d3-array": "^3.2.4",
+ "d3-color": "^3.1.0",
+ "d3-dispatch": "^3.0.1",
+ "d3-dsv": "^3.0.1",
+ "d3-fetch": "^3.0.1",
+ "d3-force": "^3.0.0",
+ "d3-force-3d": "^3.0.5",
+ "d3-format": "^3.1.0",
+ "d3-geo": "^3.1.1",
+ "d3-geo-projection": "^4.0.0",
+ "d3-hierarchy": "^3.1.2",
+ "d3-interpolate": "^3.0.1",
+ "d3-path": "^3.1.0",
+ "d3-quadtree": "^3.0.1",
+ "d3-random": "^3.0.1",
+ "d3-regression": "^1.3.10",
+ "d3-scale": "^4.0.2",
+ "d3-scale-chromatic": "^3.1.0",
+ "d3-shape": "^3.2.0",
+ "d3-time": "^3.1.0",
+ "d3-timer": "^3.0.1"
}
},
"node_modules/@babel/code-frame": {
@@ -1715,7 +1763,6 @@
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -1729,7 +1776,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
"engines": {
"node": ">=6.0.0"
}
@@ -1738,7 +1784,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true,
"engines": {
"node": ">=6.0.0"
}
@@ -1747,8 +1792,6 @@
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
"integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
- "dev": true,
- "optional": true,
"peer": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.0",
@@ -1759,14 +1802,12 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "dev": true,
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -1845,6 +1886,15 @@
"node": ">= 10.0.0"
}
},
+ "node_modules/@naoak/workerize-transferable": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@naoak/workerize-transferable/-/workerize-transferable-0.1.0.tgz",
+ "integrity": "sha512-fDLfuP71IPNP5+zSfxFb52OHgtjZvauRJWbVnpzQ7G7BjcbLjTny0OW1d3ZO806XKpLWNKmeeW3MhE0sy8iwYQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "workerize-loader": "*"
+ }
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -1906,31 +1956,6 @@
"node": ">=18"
}
},
- "node_modules/@probe.gl/env": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.6.0.tgz",
- "integrity": "sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==",
- "dependencies": {
- "@babel/runtime": "^7.0.0"
- }
- },
- "node_modules/@probe.gl/log": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.6.0.tgz",
- "integrity": "sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==",
- "dependencies": {
- "@babel/runtime": "^7.0.0",
- "@probe.gl/env": "3.6.0"
- }
- },
- "node_modules/@probe.gl/stats": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.6.0.tgz",
- "integrity": "sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==",
- "dependencies": {
- "@babel/runtime": "^7.0.0"
- }
- },
"node_modules/@rc-component/async-validator": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz",
@@ -2443,10 +2468,128 @@
"@types/responselike": "^1.0.0"
}
},
+ "node_modules/@types/d3-array": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
+ "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-dispatch": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
+ "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-dsv": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
+ "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-fetch": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
+ "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-dsv": "*"
+ }
+ },
+ "node_modules/@types/d3-force": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
+ "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-format": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
+ "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-geo": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
+ "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/d3-hierarchy": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
+ "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-path": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-quadtree": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
+ "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-random": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
+ "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
+ "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
+ "license": "MIT"
+ },
"node_modules/@types/d3-timer": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz",
- "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg=="
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
+ "license": "MIT"
},
"node_modules/@types/debug": {
"version": "4.1.12",
@@ -2468,12 +2611,22 @@
"version": "8.56.11",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz",
"integrity": "sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==",
- "dev": true,
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
}
},
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
@@ -2497,6 +2650,12 @@
"@types/node": "*"
}
},
+ "node_modules/@types/geojson": {
+ "version": "7946.0.16",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
+ "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
+ "license": "MIT"
+ },
"node_modules/@types/hast": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
@@ -2513,8 +2672,7 @@
"node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
},
"node_modules/@types/keyv": {
"version": "3.1.4",
@@ -2957,6 +3115,167 @@
"url": "https://opencollective.com/vitest"
}
},
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
"node_modules/@xmldom/xmldom": {
"version": "0.8.10",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
@@ -2966,6 +3285,20 @@
"node": ">=10.0.0"
}
},
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "license": "Apache-2.0",
+ "peer": true
+ },
"node_modules/7zip-bin": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz",
@@ -2973,10 +3306,10 @@
"dev": true
},
"node_modules/acorn": {
- "version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
- "dev": true,
+ "version": "8.14.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
+ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -3043,6 +3376,48 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ajv-formats/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ajv-formats/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/ajv-keywords": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
@@ -3088,12 +3463,6 @@
"node": ">=7.0.0"
}
},
- "node_modules/ansi-styles/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
"node_modules/antd": {
"version": "5.20.0",
"resolved": "https://registry.npmjs.org/antd/-/antd-5.20.0.tgz",
@@ -3528,6 +3897,16 @@
}
]
},
+ "node_modules/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -3599,7 +3978,6 @@
"version": "4.24.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
"integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -3628,6 +4006,12 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
+ "node_modules/bubblesets-js": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/bubblesets-js/-/bubblesets-js-2.3.4.tgz",
+ "integrity": "sha512-DyMjHmpkS2+xcFNtyN00apJYL3ESdp9fTrkDr5+9Qg/GPqFmcWgGsK1akZnttE1XFxJ/VMy4DNNGMGYtmFp1Sg==",
+ "license": "MIT"
+ },
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
@@ -3675,8 +4059,7 @@
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"node_modules/builder-util": {
"version": "24.13.1",
@@ -3821,7 +4204,6 @@
"version": "1.0.30001701",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz",
"integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -3983,6 +4365,16 @@
"node": ">=10"
}
},
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
"node_modules/chromium-pickle-js": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
@@ -4051,32 +4443,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
- "dependencies": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
- }
- },
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
"node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
},
"node_modules/color-string": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "license": "MIT",
"dependencies": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
@@ -4094,6 +4471,12 @@
"node": ">= 0.8"
}
},
+ "node_modules/comlink": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/comlink/-/comlink-4.4.2.tgz",
+ "integrity": "sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==",
+ "license": "Apache-2.0"
+ },
"node_modules/comma-separated-tokens": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
@@ -4107,8 +4490,6 @@
"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==",
- "dev": true,
- "optional": true,
"peer": true
},
"node_modules/compare-version": {
@@ -4343,38 +4724,183 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-binarytree": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz",
+ "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==",
+ "license": "MIT"
+ },
"node_modules/d3-color": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
"integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
},
"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=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
},
- "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-dsv": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
+ "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "7",
+ "iconv-lite": "0.6",
+ "rw": "1"
+ },
+ "bin": {
+ "csv2json": "bin/dsv2json.js",
+ "csv2tsv": "bin/dsv2dsv.js",
+ "dsv2dsv": "bin/dsv2dsv.js",
+ "dsv2json": "bin/dsv2json.js",
+ "json2csv": "bin/json2dsv.js",
+ "json2dsv": "bin/json2dsv.js",
+ "json2tsv": "bin/json2dsv.js",
+ "tsv2csv": "bin/dsv2dsv.js",
+ "tsv2json": "bin/dsv2json.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dsv/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/d3-fetch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
+ "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dsv": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
},
"node_modules/d3-force": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz",
- "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
+ "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
+ "license": "ISC",
"dependencies": {
- "d3-dispatch": "1 - 2",
- "d3-quadtree": "1 - 2",
- "d3-timer": "1 - 2"
+ "d3-dispatch": "1 - 3",
+ "d3-quadtree": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-force-3d": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.5.tgz",
+ "integrity": "sha512-tdwhAhoTYZY/a6eo9nR7HP3xSW/C6XvJTbeRpR92nlPzH6OiE+4MliN9feuSFd0tPtEUo+191qOhCTWx3NYifg==",
+ "license": "MIT",
+ "dependencies": {
+ "d3-binarytree": "1",
+ "d3-dispatch": "1 - 3",
+ "d3-octree": "1",
+ "d3-quadtree": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
+ "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-geo": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
+ "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.5.0 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-geo-projection": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz",
+ "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "7",
+ "d3-array": "1 - 3",
+ "d3-geo": "1.12.0 - 3"
+ },
+ "bin": {
+ "geo2svg": "bin/geo2svg.js",
+ "geograticule": "bin/geograticule.js",
+ "geoproject": "bin/geoproject.js",
+ "geoquantize": "bin/geoquantize.js",
+ "geostitch": "bin/geostitch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-geo-projection/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/d3-hierarchy": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
+ "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/d3-interpolate": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
"integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
"dependencies": {
"d3-color": "1 - 3"
},
@@ -4382,36 +4908,129 @@
"node": ">=12"
}
},
+ "node_modules/d3-octree": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz",
+ "integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==",
+ "license": "MIT"
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"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=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
+ "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-random": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
+ "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-regression": {
+ "version": "1.3.10",
+ "resolved": "https://registry.npmjs.org/d3-regression/-/d3-regression-1.3.10.tgz",
+ "integrity": "sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-interpolate": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
},
"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=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
},
"node_modules/dagre": {
"version": "0.8.5",
"resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz",
"integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==",
+ "license": "MIT",
"dependencies": {
"graphlib": "^2.1.8",
"lodash": "^4.17.15"
}
},
- "node_modules/dagre-compound": {
- "version": "0.0.11",
- "resolved": "https://registry.npmjs.org/dagre-compound/-/dagre-compound-0.0.11.tgz",
- "integrity": "sha512-UrSgRP9LtOZCYb9e5doolZXpc7xayyszgyOs7uakTK4n4KsLegLVTRRtq01GpQd/iZjYw5fWMapx9ed+c80MAQ==",
- "engines": {
- "node": ">=6.0.0"
- },
- "peerDependencies": {
- "dagre": "^0.8.5"
- }
- },
"node_modules/dayjs": {
"version": "1.11.12",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz",
@@ -4546,11 +5165,6 @@
"node": ">=6"
}
},
- "node_modules/detect-browser": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz",
- "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w=="
- },
"node_modules/detect-node": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
@@ -4970,7 +5584,6 @@
"version": "1.5.109",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz",
"integrity": "sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==",
- "dev": true,
"license": "ISC"
},
"node_modules/electron-updater": {
@@ -5027,6 +5640,16 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
"node_modules/end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz",
@@ -5035,6 +5658,20 @@
"once": "^1.4.0"
}
},
+ "node_modules/enhanced-resolve": {
+ "version": "5.18.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+ "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/env-paths": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
@@ -5088,7 +5725,6 @@
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
"integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==",
- "dev": true,
"license": "MIT"
},
"node_modules/es6-error": {
@@ -5142,7 +5778,6 @@
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -5224,6 +5859,20 @@
"eslint": ">=7"
}
},
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/eslint-visitor-keys": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
@@ -5400,7 +6049,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -5412,7 +6060,16 @@
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "license": "BSD-2-Clause",
+ "peer": true,
"engines": {
"node": ">=4.0"
}
@@ -5446,9 +6103,20 @@
}
},
"node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
+ "license": "MIT"
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.8.x"
+ }
},
"node_modules/expect-type": {
"version": "1.2.0",
@@ -5539,6 +6207,23 @@
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true
},
+ "node_modules/fast-uri": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
+ "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
"node_modules/fastq": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
@@ -5559,7 +6244,8 @@
"node_modules/fecha": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
- "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
+ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==",
+ "license": "MIT"
},
"node_modules/file-entry-cache": {
"version": "6.0.1",
@@ -5817,12 +6503,8 @@
"node_modules/gl-matrix": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz",
- "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA=="
- },
- "node_modules/gl-vec2": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/gl-vec2/-/gl-vec2-1.3.0.tgz",
- "integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A=="
+ "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==",
+ "license": "MIT"
},
"node_modules/glob": {
"version": "7.2.3",
@@ -5853,6 +6535,13 @@
"node": ">=10.13.0"
}
},
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "license": "BSD-2-Clause",
+ "peer": true
+ },
"node_modules/global-agent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
@@ -5952,9 +6641,10 @@
}
},
"node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
},
"node_modules/graphemer": {
"version": "1.4.0",
@@ -5966,6 +6656,7 @@
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
"integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==",
+ "license": "MIT",
"dependencies": {
"lodash": "^4.17.15"
}
@@ -5974,7 +6665,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -6195,7 +6885,6 @@
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
@@ -6318,10 +7007,14 @@
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz",
"integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g=="
},
- "node_modules/insert-css": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz",
- "integrity": "sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA=="
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
},
"node_modules/intersection-observer": {
"version": "0.12.2",
@@ -6353,7 +7046,14 @@
"node_modules/is-any-array": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz",
- "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ=="
+ "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==",
+ "license": "MIT"
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "license": "MIT"
},
"node_modules/is-binary-path": {
"version": "2.1.0",
@@ -6541,6 +7241,21 @@
"node": ">=10"
}
},
+ "node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
"node_modules/jiti": {
"version": "1.21.7",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
@@ -6590,6 +7305,13 @@
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -6620,7 +7342,6 @@
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
"bin": {
"json5": "lib/cli.js"
},
@@ -6780,6 +7501,31 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.11.5"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
@@ -7081,6 +7827,13 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -7541,7 +8294,6 @@
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
"engines": {
"node": ">= 0.6"
}
@@ -7550,7 +8302,6 @@
"version": "2.1.35",
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
"dependencies": {
"mime-db": "1.52.0"
},
@@ -7625,6 +8376,7 @@
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-1.2.4.tgz",
"integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==",
+ "license": "MIT",
"dependencies": {
"is-any-array": "^2.0.0"
}
@@ -7633,6 +8385,7 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-1.2.3.tgz",
"integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==",
+ "license": "MIT",
"dependencies": {
"is-any-array": "^2.0.0"
}
@@ -7641,6 +8394,7 @@
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz",
"integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==",
+ "license": "MIT",
"dependencies": {
"is-any-array": "^2.0.0",
"ml-array-max": "^1.2.4",
@@ -7648,9 +8402,10 @@
}
},
"node_modules/ml-matrix": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.11.0.tgz",
- "integrity": "sha512-7jr9NmFRkaUxbKslfRu3aZOjJd2LkSitCGv+QH9PF0eJoEG7jIpjXra1Vw8/kgao8+kHCSsJONG6vfWmXQ+/Eg==",
+ "version": "6.12.1",
+ "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.12.1.tgz",
+ "integrity": "sha512-TJ+8eOFdp+INvzR4zAuwBQJznDUfktMtOB6g/hUcGh3rcyjxbz4Te57Pgri8Q9bhSQ7Zys4IYOGhFdnlgeB6Lw==",
+ "license": "MIT",
"dependencies": {
"is-any-array": "^2.0.1",
"ml-array-rescale": "^1.3.7"
@@ -7717,6 +8472,13 @@
"node": ">= 4.4.x"
}
},
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/node-addon-api": {
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz",
@@ -7728,7 +8490,6 @@
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
- "dev": true,
"license": "MIT"
},
"node_modules/normalize-path": {
@@ -7981,7 +8742,6 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true,
"license": "ISC"
},
"node_modules/picomatch": {
@@ -8237,17 +8997,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/probe.gl": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.6.0.tgz",
- "integrity": "sha512-19JydJWI7+DtR4feV+pu4Mn1I5TAc0xojuxVgZdXIyfmTLfUaFnk4OloWK1bKbPtkgGKLr2lnbnCXmpZEcEp9g==",
- "dependencies": {
- "@babel/runtime": "^7.0.0",
- "@probe.gl/env": "3.6.0",
- "@probe.gl/log": "3.6.0",
- "@probe.gl/stats": "3.6.0"
- }
- },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -8342,6 +9091,31 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/quickselect": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
+ "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==",
+ "license": "ISC"
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/rbush": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz",
+ "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==",
+ "license": "MIT",
+ "dependencies": {
+ "quickselect": "^2.0.0"
+ }
+ },
"node_modules/rc-cascader": {
"version": "3.27.0",
"resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.27.0.tgz",
@@ -9122,11 +9896,6 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
- "node_modules/regl": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz",
- "integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w=="
- },
"node_modules/remark-parse": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
@@ -9167,6 +9936,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/resize-observer-polyfill": {
"version": "1.5.1",
"resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
@@ -9329,11 +10108,16 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
+ "license": "BSD-3-Clause"
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -9353,8 +10137,7 @@
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/sanitize-filename": {
"version": "1.6.3",
@@ -9395,6 +10178,63 @@
"loose-envify": "^1.1.0"
}
},
+ "node_modules/schema-utils": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz",
+ "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/schema-utils/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/schema-utils/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/schema-utils/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/screenfull": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz",
@@ -9447,6 +10287,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -9491,15 +10341,11 @@
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "license": "MIT",
"dependencies": {
"is-arrayish": "^0.3.1"
}
},
- "node_modules/simple-swizzle/node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
- },
"node_modules/simple-update-notifier": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
@@ -9551,7 +10397,6 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -9570,7 +10415,6 @@
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -9838,6 +10682,22 @@
"node": ">= 8.0"
}
},
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
@@ -9851,6 +10711,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/svg-path-parser": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/svg-path-parser/-/svg-path-parser-1.1.0.tgz",
+ "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==",
+ "license": "MIT"
+ },
"node_modules/tailwindcss": {
"version": "3.4.17",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
@@ -9907,6 +10773,16 @@
"postcss": "^8.0.0"
}
},
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/tar": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
@@ -10002,8 +10878,6 @@
"version": "5.31.5",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.31.5.tgz",
"integrity": "sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==",
- "dev": true,
- "optional": true,
"peer": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
@@ -10018,6 +10892,41 @@
"node": ">=10"
}
},
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.14",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz",
+ "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^4.3.0",
+ "serialize-javascript": "^6.0.2",
+ "terser": "^5.31.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
+ }
+ },
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -10067,11 +10976,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/tinycolor2": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
- "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
- },
"node_modules/tinyexec": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
@@ -10374,7 +11278,6 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
"integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -10733,11 +11636,82 @@
"node": ">=0.10.0"
}
},
+ "node_modules/watchpack": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
+ "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
+ "node_modules/webpack": {
+ "version": "5.98.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz",
+ "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.6",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.14.0",
+ "browserslist": "^4.24.0",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.17.1",
+ "es-module-lexer": "^1.2.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^4.3.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.3.11",
+ "watchpack": "^2.4.1",
+ "webpack-sources": "^3.2.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
@@ -10779,6 +11753,19 @@
"node": ">=8"
}
},
+ "node_modules/workerize-loader": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/workerize-loader/-/workerize-loader-2.0.2.tgz",
+ "integrity": "sha512-HoZ6XY4sHWxA2w0WpzgBwUiR3dv1oo7bS+oCwIpb6n54MclQ/7KXdXsVIChTCygyuHtVuGBO1+i3HzTt699UJQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "loader-utils": "^2.0.0"
+ },
+ "peerDependencies": {
+ "webpack": "*"
+ }
+ },
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -11079,14 +12066,28 @@
"requires": {
"@antv/util": "^2.0.13",
"tslib": "^2.0.0"
+ },
+ "dependencies": {
+ "@antv/util": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz",
+ "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==",
+ "requires": {
+ "csstype": "^3.0.8",
+ "tslib": "^2.0.3"
+ }
+ }
}
},
- "@antv/dom-util": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@antv/dom-util/-/dom-util-2.0.4.tgz",
- "integrity": "sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==",
+ "@antv/component": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@antv/component/-/component-2.1.2.tgz",
+ "integrity": "sha512-5nC9i9lh5rBHE+pk4TNnerLe4mn5874YHHhvv6EdL618UkgpdKJL0hJu4l7uAYjZ3g46VBK+IYT7md0FYv8f4w==",
"requires": {
- "tslib": "^2.0.3"
+ "@antv/g": "^6.1.11",
+ "@antv/scale": "^0.4.16",
+ "@antv/util": "^3.3.10",
+ "svg-path-parser": "^1.1.0"
}
},
"@antv/event-emitter": {
@@ -11094,282 +12095,293 @@
"resolved": "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.3.tgz",
"integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg=="
},
- "@antv/g-base": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/@antv/g-base/-/g-base-0.5.16.tgz",
- "integrity": "sha512-jP06wggTubDPHXoKwFg3/f1lyxBX9ywwN3E/HG74Nd7DXqOXQis8tsIWW+O6dS/h9vyuXLd1/wDWkMMm3ZzXdg==",
+ "@antv/g": {
+ "version": "6.1.21",
+ "resolved": "https://registry.npmjs.org/@antv/g/-/g-6.1.21.tgz",
+ "integrity": "sha512-3cWmsY1bYwDmVzsFmBeqN1tWVt+3JaWL6Uu54C1oF7qn1VXXa3V3KuXGEYCxuei8E8BMriN3D7fZosY5d+MQqw==",
"requires": {
- "@antv/event-emitter": "^0.1.1",
- "@antv/g-math": "^0.1.9",
- "@antv/matrix-util": "^3.1.0-beta.1",
- "@antv/path-util": "~2.0.5",
- "@antv/util": "~2.0.13",
- "@types/d3-timer": "^2.0.0",
- "d3-ease": "^1.0.5",
- "d3-interpolate": "^3.0.1",
- "d3-timer": "^1.0.9",
- "detect-browser": "^5.1.0",
- "tslib": "^2.0.3"
+ "@antv/g-camera-api": "2.0.35",
+ "@antv/g-dom-mutation-observer-api": "2.0.32",
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-web-animations-api": "2.1.21",
+ "@babel/runtime": "^7.25.6"
+ }
+ },
+ "@antv/g-camera-api": {
+ "version": "2.0.35",
+ "resolved": "https://registry.npmjs.org/@antv/g-camera-api/-/g-camera-api-2.0.35.tgz",
+ "integrity": "sha512-z4WKmB6yN2fFi9EnapjuHbFVF0ilhMrWo2eZCxYXcb0dV5MiflU/WZi/bjs4WqVMJPNtYKx+yZhTyROncEiglw==",
+ "requires": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
}
},
"@antv/g-canvas": {
- "version": "0.5.17",
- "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-0.5.17.tgz",
- "integrity": "sha512-sXYJMWTOlb/Ycb6sTKu00LcJqInXJY4t99+kSM40u2OfqrXYmaXDjHR7D2V0roMkbK/QWiWS9UnEidCR1VtMOA==",
+ "version": "2.0.40",
+ "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-2.0.40.tgz",
+ "integrity": "sha512-Starh5g+ydOFKzfK/GpwnLwz+o6UZNHkyWBXdHx2ax/AJWHVXwjyCadt/6kkc2non0ts2ow/hpJaW7X3dgdDxQ==",
"requires": {
- "@antv/g-base": "^0.5.12",
- "@antv/g-math": "^0.1.9",
- "@antv/matrix-util": "^3.1.0-beta.1",
- "@antv/path-util": "~2.0.5",
- "@antv/util": "~2.0.0",
- "gl-matrix": "^3.0.0",
- "tslib": "^2.0.3"
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-plugin-canvas-path-generator": "2.1.16",
+ "@antv/g-plugin-canvas-picker": "2.1.19",
+ "@antv/g-plugin-canvas-renderer": "2.2.19",
+ "@antv/g-plugin-dom-interaction": "2.1.21",
+ "@antv/g-plugin-html-renderer": "2.1.21",
+ "@antv/g-plugin-image-loader": "2.1.19",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
+ }
+ },
+ "@antv/g-dom-mutation-observer-api": {
+ "version": "2.0.32",
+ "resolved": "https://registry.npmjs.org/@antv/g-dom-mutation-observer-api/-/g-dom-mutation-observer-api-2.0.32.tgz",
+ "integrity": "sha512-50r7en1+doUtR9uXmFJk8YtENQ/+DFcj2g3a4XKu9xp58kmF2qBgtdst9n1deqGcL5s0ufX/Ck9rUhtHwka+Ow==",
+ "requires": {
+ "@antv/g-lite": "2.2.16",
+ "@babel/runtime": "^7.25.6"
+ }
+ },
+ "@antv/g-lite": {
+ "version": "2.2.16",
+ "resolved": "https://registry.npmjs.org/@antv/g-lite/-/g-lite-2.2.16.tgz",
+ "integrity": "sha512-473r6S5srkxUiUxI3ZkrM74HMkgyO9+2HR1xtJ75yDOOuT8F6osdXDgy0Or5cWqOlsVjiN3L3DaPnQLHlUGO5A==",
+ "requires": {
+ "@antv/g-math": "3.0.0",
+ "@antv/util": "^3.3.5",
+ "@antv/vendor": "^1.0.3",
+ "@babel/runtime": "^7.25.6",
+ "eventemitter3": "^5.0.1",
+ "gl-matrix": "^3.4.3",
+ "rbush": "^3.0.1",
+ "tslib": "^2.5.3"
}
},
"@antv/g-math": {
- "version": "0.1.9",
- "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-0.1.9.tgz",
- "integrity": "sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-3.0.0.tgz",
+ "integrity": "sha512-AkmiNIEL1vgqTPeGY2wtsMdBBqKFwF7SKSgs+D1iOS/rqYMsXdhp/HvtuQ5tx/HdawE/ZzTiicIYopc520ADZw==",
"requires": {
- "@antv/util": "~2.0.0",
- "gl-matrix": "^3.0.0"
+ "@antv/util": "^3.3.5",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
}
},
- "@antv/g-svg": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@antv/g-svg/-/g-svg-0.5.7.tgz",
- "integrity": "sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw==",
+ "@antv/g-plugin-canvas-path-generator": {
+ "version": "2.1.16",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-canvas-path-generator/-/g-plugin-canvas-path-generator-2.1.16.tgz",
+ "integrity": "sha512-E3/HUzWRv1/5QyKHLcXIgFJff0JBxDHz4NfHwYp6IOy5P/A1mbISsUjwafSl8JIVqx0J81CzgqpwU7pWHeXlaQ==",
"requires": {
- "@antv/g-base": "^0.5.12",
- "@antv/g-math": "^0.1.9",
- "@antv/util": "~2.0.0",
- "detect-browser": "^5.0.0",
- "tslib": "^2.0.3"
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-math": "3.0.0",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
}
},
- "@antv/g-webgpu": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@antv/g-webgpu/-/g-webgpu-0.7.2.tgz",
- "integrity": "sha512-kw+oYGsdvj5qeUfy5DPb/jztZBV+2fmqBd3Vv8NlKatfBmv8AirYX/CCW74AUSdWm99rEiLyxFB1VdRZ6b/wnQ==",
+ "@antv/g-plugin-canvas-picker": {
+ "version": "2.1.19",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-canvas-picker/-/g-plugin-canvas-picker-2.1.19.tgz",
+ "integrity": "sha512-69G0m2v09FimmYSU+hO1wjft1FqM467Cf1jDpjBz6Y3caQ98Hrqpz/7Prko1hMOALCo92MDo65yTTnz/LhBiQA==",
"requires": {
- "@antv/g-webgpu-core": "^0.7.2",
- "@antv/g-webgpu-engine": "^0.7.2",
- "gl-matrix": "^3.1.0",
- "gl-vec2": "^1.3.0",
- "lodash": "^4.17.15"
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-math": "3.0.0",
+ "@antv/g-plugin-canvas-path-generator": "2.1.16",
+ "@antv/g-plugin-canvas-renderer": "2.2.19",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
}
},
- "@antv/g-webgpu-core": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@antv/g-webgpu-core/-/g-webgpu-core-0.7.2.tgz",
- "integrity": "sha512-xUMmop7f3Rs34zFYKXLqHhDR1CQTeDl/7vI7Sn3X/73BqJc3X3HIIRvm83Fg2CjVACaOzw4WeLRXNaOCp9fz9w==",
+ "@antv/g-plugin-canvas-renderer": {
+ "version": "2.2.19",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-canvas-renderer/-/g-plugin-canvas-renderer-2.2.19.tgz",
+ "integrity": "sha512-3Ac0pjU0NAafu0rwTnthwWV/CV5kV9CpTf96v1CCXX0P3iPWtW72SatQNOt/v2aQ2NjYB34YuwYy9i0U1oS8rg==",
"requires": {
- "eventemitter3": "^4.0.0",
- "gl-matrix": "^3.1.0",
- "lodash": "^4.17.15",
- "probe.gl": "^3.1.1"
+ "@antv/g-lite": "2.2.16",
+ "@antv/g-math": "3.0.0",
+ "@antv/g-plugin-canvas-path-generator": "2.1.16",
+ "@antv/g-plugin-image-loader": "2.1.19",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
}
},
- "@antv/g-webgpu-engine": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@antv/g-webgpu-engine/-/g-webgpu-engine-0.7.2.tgz",
- "integrity": "sha512-lx8Y93IW2cnJvdoDRKyMmTdYqSC1pOmF0nyG3PGGyA0NI9vBYVgO0KTF6hkyWjdTWVq7XDZyf/h8CJridLh3lg==",
+ "@antv/g-plugin-dom-interaction": {
+ "version": "2.1.21",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-dom-interaction/-/g-plugin-dom-interaction-2.1.21.tgz",
+ "integrity": "sha512-Vm8yeNjZ2aNgNH3LwDRExRChpuVv0Wv2zOblUGy5rgyRIh2Fkm8R89pKLmd3GlLo4AF1ZqAGWHiY2WOeMHEEIA==",
"requires": {
- "@antv/g-webgpu-core": "^0.7.2",
- "gl-matrix": "^3.1.0",
- "lodash": "^4.17.15",
- "regl": "^1.3.11"
+ "@antv/g-lite": "2.2.16",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
+ }
+ },
+ "@antv/g-plugin-dragndrop": {
+ "version": "2.0.32",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.0.32.tgz",
+ "integrity": "sha512-0Y9S/jx6Z7O3hEQhqrXGWNIcV1dBoRpokSP9gIMqTxOjCLzVUFYv8pFoI+Uyeow6PAWe+gdBQu+EJgVi223lJQ==",
+ "requires": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
+ }
+ },
+ "@antv/g-plugin-html-renderer": {
+ "version": "2.1.21",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-html-renderer/-/g-plugin-html-renderer-2.1.21.tgz",
+ "integrity": "sha512-1PR9rYt4BgSx8LFnVPF+cPlcBYKfI7iWK/xPipEa3jZ4j/xftELQ5EEyZpfPnrTqu2PtKeMurx7oaM/HPsgaiQ==",
+ "requires": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
+ }
+ },
+ "@antv/g-plugin-image-loader": {
+ "version": "2.1.19",
+ "resolved": "https://registry.npmjs.org/@antv/g-plugin-image-loader/-/g-plugin-image-loader-2.1.19.tgz",
+ "integrity": "sha512-ZjNs08RkzdDMLlEWGabJG1Lu1Q71afStSlhcIRhrDOLB4tH0UdYlq/f72tlzJ6KjtLnril/xQH3D7znPlfAoig==",
+ "requires": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.5.3"
+ }
+ },
+ "@antv/g-web-animations-api": {
+ "version": "2.1.21",
+ "resolved": "https://registry.npmjs.org/@antv/g-web-animations-api/-/g-web-animations-api-2.1.21.tgz",
+ "integrity": "sha512-EkIjeEH3QzHkDJn3sz1Mk83PqVQXGe5440mJV42QmnxuFuFcxGVJMi9vS8Te7kCUJl4eSb/eqnNi5AWfDMWm+w==",
+ "requires": {
+ "@antv/g-lite": "2.2.16",
+ "@antv/util": "^3.3.5",
+ "@babel/runtime": "^7.25.6",
+ "tslib": "^2.5.3"
}
},
"@antv/g6": {
- "version": "4.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-4.8.24.tgz",
- "integrity": "sha512-bgj7sZ+z45JmOngIpYpwmSIg7SboMLZBoAlX0+RoAETZB3/xvZO0MXT3lCSyAhIgm5Sb68pekKi7OStuo04NyQ==",
- "requires": {
- "@antv/g6-pc": "0.8.24"
- }
- },
- "@antv/g6-core": {
- "version": "0.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6-core/-/g6-core-0.8.24.tgz",
- "integrity": "sha512-rgI3dArAD8uoSz2+skS4ctN4x/Of33ivTIKaEYYvClxgkLZWVz9zvocy+5AWcVPBHZsAXkZcdh9zndIoWY/33A==",
+ "version": "5.0.45",
+ "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-5.0.45.tgz",
+ "integrity": "sha512-gwJnan63G+UOyoGAFRafEJjcFHVDt2MPM7xpryJd3Pg0uAFTBQSAriqfNecNj7Ao9vDwfkcrfP5sN87yksMSfA==",
"requires": {
"@antv/algorithm": "^0.1.26",
- "@antv/dom-util": "^2.0.1",
- "@antv/event-emitter": "~0.1.0",
- "@antv/g-base": "^0.5.1",
- "@antv/g-math": "^0.1.1",
- "@antv/matrix-util": "^3.1.0-beta.3",
- "@antv/path-util": "^2.0.3",
- "@antv/util": "~2.0.5",
- "ml-matrix": "^6.5.0",
- "tslib": "^2.6.2"
- }
- },
- "@antv/g6-element": {
- "version": "0.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6-element/-/g6-element-0.8.24.tgz",
- "integrity": "sha512-61FXkt9LY+6EOUtSam1iFTOW2AM59sPVcV1BuPj4dXiD0dluLE+R7d8B/94g1tKDw9tsjhfUQGC7hTXscJRJFw==",
- "requires": {
- "@antv/g-base": "^0.5.1",
- "@antv/g6-core": "0.8.24",
- "@antv/util": "~2.0.5",
- "tslib": "^2.6.2"
- }
- },
- "@antv/g6-pc": {
- "version": "0.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6-pc/-/g6-pc-0.8.24.tgz",
- "integrity": "sha512-nf0y1lrp8J5DotqRryXd2S/J30COW8spVcLF9gUqywGqQAHfE00Ywkqr+PZBnsfCZXsXCi9o0+CE9NrkWs4SBQ==",
- "requires": {
- "@ant-design/colors": "^4.0.5",
- "@antv/algorithm": "^0.1.26",
- "@antv/dom-util": "^2.0.1",
- "@antv/event-emitter": "~0.1.0",
- "@antv/g-base": "^0.5.1",
- "@antv/g-canvas": "^0.5.2",
- "@antv/g-math": "^0.1.1",
- "@antv/g-svg": "^0.5.1",
- "@antv/g6-core": "0.8.24",
- "@antv/g6-element": "0.8.24",
- "@antv/g6-plugin": "0.8.24",
- "@antv/hierarchy": "^0.6.10",
- "@antv/layout": "^0.3.0",
- "@antv/matrix-util": "^3.1.0-beta.3",
- "@antv/path-util": "^2.0.3",
- "@antv/util": "~2.0.5",
- "color": "^3.1.3",
- "d3-force": "^2.0.1",
- "dagre": "^0.8.5",
- "insert-css": "^2.0.0",
- "ml-matrix": "^6.5.0",
- "tslib": "^2.6.2"
- },
- "dependencies": {
- "@ant-design/colors": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-4.0.5.tgz",
- "integrity": "sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==",
- "requires": {
- "tinycolor2": "^1.4.1"
- }
- }
- }
- },
- "@antv/g6-plugin": {
- "version": "0.8.24",
- "resolved": "https://registry.npmjs.org/@antv/g6-plugin/-/g6-plugin-0.8.24.tgz",
- "integrity": "sha512-ZIOnwLTC7SM2bFiJZ3vYFWnkyOCWKqnU96i/fBh1qAoY5slDS3hatenZWEXUtOcqaKw1h+5A5f72MRXqBBVn0g==",
- "requires": {
- "@antv/dom-util": "^2.0.2",
- "@antv/g-base": "^0.5.1",
- "@antv/g-canvas": "^0.5.2",
- "@antv/g-svg": "^0.5.2",
- "@antv/g6-core": "0.8.24",
- "@antv/g6-element": "0.8.24",
- "@antv/matrix-util": "^3.1.0-beta.3",
- "@antv/path-util": "^2.0.3",
- "@antv/scale": "^0.3.4",
- "@antv/util": "^2.0.9",
- "insert-css": "^2.0.0"
+ "@antv/component": "^2.1.2",
+ "@antv/event-emitter": "^0.1.3",
+ "@antv/g": "^6.1.14",
+ "@antv/g-canvas": "^2.0.32",
+ "@antv/g-plugin-dragndrop": "^2.0.25",
+ "@antv/graphlib": "^2.0.4",
+ "@antv/hierarchy": "^0.6.14",
+ "@antv/layout": "1.2.14-beta.9",
+ "@antv/util": "^3.3.10",
+ "bubblesets-js": "^2.3.4"
}
},
"@antv/graphlib": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-1.2.0.tgz",
- "integrity": "sha512-hhJOMThec51nU4Fe5p/viLlNIL71uDEgYFzKPajWjr2715SFG1HAgiP6AVylIeqBcAZ04u3Lw7usjl/TuI5RuQ=="
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-2.0.4.tgz",
+ "integrity": "sha512-zc/5oQlsdk42Z0ib1mGklwzhJ5vczLFiPa1v7DgJkTbgJ2YxRh9xdarf86zI49sKVJmgbweRpJs7Nu5bIiwv4w==",
+ "requires": {
+ "@antv/event-emitter": "^0.1.3"
+ }
},
"@antv/hierarchy": {
- "version": "0.6.11",
- "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.11.tgz",
- "integrity": "sha512-RJVhEMCuu4vj+Dt25lXIiNdd7jaqm/fqWGYikiELha4S5tnzdJoTUaUvvpfWlxLx4B0RsS9XRwBs1bOKN71TKg==",
- "requires": {
- "@antv/util": "^2.0.7"
- }
+ "version": "0.6.14",
+ "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.14.tgz",
+ "integrity": "sha512-V3uknf7bhynOqQDw2sg+9r9DwZ9pc6k/EcqyTFdfXB1+ydr7urisP0MipIuimucvQKN+Qkd+d6w601r1UIroqQ=="
},
"@antv/layout": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@antv/layout/-/layout-0.3.25.tgz",
- "integrity": "sha512-d29Aw1PXoAavMRZy7iTB9L5rMBeChFEX0BJ9ELP4TI35ySdCu07YbmPo9ju9OH/6sG2/NB3o85Ayxrre3iwX/g==",
+ "version": "1.2.14-beta.9",
+ "resolved": "https://registry.npmjs.org/@antv/layout/-/layout-1.2.14-beta.9.tgz",
+ "integrity": "sha512-wPlwBFMtq2lWZFc89/7Lzb8fjHnyKVZZ9zBb2h+zZIP0YWmVmHRE8+dqCiPKOyOGUXEdDtn813f1g107dCHZlg==",
"requires": {
- "@antv/g-webgpu": "0.7.2",
- "@antv/graphlib": "^1.0.0",
+ "@antv/event-emitter": "^0.1.3",
+ "@antv/graphlib": "^2.0.0",
"@antv/util": "^3.3.2",
- "d3-force": "^2.1.1",
- "d3-quadtree": "^2.0.0",
- "dagre-compound": "^0.0.11",
- "ml-matrix": "6.5.0"
- },
- "dependencies": {
- "@antv/util": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.7.tgz",
- "integrity": "sha512-qqPg7rIPCsJyl7N56jAC25v/99mJ3ApVkgBsGijhiWrEeKvzXBPk1r5P77Pm9nCljpnn+hH8Z3t5AivbEoTJMg==",
- "requires": {
- "fast-deep-equal": "^3.1.3",
- "gl-matrix": "^3.3.0",
- "tslib": "^2.3.1"
- }
- },
- "ml-matrix": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.5.0.tgz",
- "integrity": "sha512-sms732Dge+rs5dU4mnjE0oqLWm1WujvR2fr38LgUHRG2cjXjWlO3WJupLYaSz3++2iYr0UrGDK72OAivr3J8dg==",
- "requires": {
- "ml-array-rescale": "^1.3.1"
- }
- }
- }
- },
- "@antv/matrix-util": {
- "version": "3.1.0-beta.3",
- "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz",
- "integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==",
- "requires": {
- "@antv/util": "^2.0.9",
- "gl-matrix": "^3.4.3",
- "tslib": "^2.0.3"
- }
- },
- "@antv/path-util": {
- "version": "2.0.15",
- "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.15.tgz",
- "integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==",
- "requires": {
- "@antv/matrix-util": "^3.0.4",
- "@antv/util": "^2.0.9",
- "tslib": "^2.0.3"
- },
- "dependencies": {
- "@antv/matrix-util": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.0.4.tgz",
- "integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==",
- "requires": {
- "@antv/util": "^2.0.9",
- "gl-matrix": "^3.3.0",
- "tslib": "^2.0.3"
- }
- }
+ "@naoak/workerize-transferable": "^0.1.0",
+ "comlink": "^4.4.1",
+ "d3-force": "^3.0.0",
+ "d3-force-3d": "^3.0.5",
+ "d3-octree": "^1.0.2",
+ "d3-quadtree": "^3.0.1",
+ "dagre": "^0.8.5",
+ "ml-matrix": "^6.10.4",
+ "tslib": "^2.5.0"
}
},
"@antv/scale": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.3.18.tgz",
- "integrity": "sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w==",
+ "version": "0.4.16",
+ "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.4.16.tgz",
+ "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==",
"requires": {
- "@antv/util": "~2.0.3",
- "fecha": "~4.2.0",
- "tslib": "^2.0.0"
+ "@antv/util": "^3.3.7",
+ "color-string": "^1.5.5",
+ "fecha": "^4.2.1"
}
},
"@antv/util": {
- "version": "2.0.17",
- "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz",
- "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==",
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.10.tgz",
+ "integrity": "sha512-basGML3DFA3O87INnzvDStjzS+n0JLEhRnRsDzP9keiXz8gT1z/fTdmJAZFOzMMWxy+HKbi7NbSt0+8vz/OsBQ==",
"requires": {
- "csstype": "^3.0.8",
- "tslib": "^2.0.3"
+ "fast-deep-equal": "^3.1.3",
+ "gl-matrix": "^3.3.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@antv/vendor": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/@antv/vendor/-/vendor-1.0.10.tgz",
+ "integrity": "sha512-/llNfo0gyUAi+ZY3TAtkNPS66eXTMbNdaKd8qllyJUuXnpRHYd/LGU69ix6olGJEFBi61hO4f9eTY0zzNOlFlw==",
+ "requires": {
+ "@types/d3-array": "^3.2.1",
+ "@types/d3-color": "^3.1.3",
+ "@types/d3-dispatch": "^3.0.6",
+ "@types/d3-dsv": "^3.0.7",
+ "@types/d3-fetch": "^3.0.7",
+ "@types/d3-force": "^3.0.10",
+ "@types/d3-format": "^3.0.4",
+ "@types/d3-geo": "^3.1.0",
+ "@types/d3-hierarchy": "^3.1.7",
+ "@types/d3-interpolate": "^3.0.4",
+ "@types/d3-path": "^3.1.0",
+ "@types/d3-quadtree": "^3.0.6",
+ "@types/d3-random": "^3.0.3",
+ "@types/d3-scale": "^4.0.9",
+ "@types/d3-scale-chromatic": "^3.1.0",
+ "@types/d3-shape": "^3.1.7",
+ "@types/d3-time": "^3.0.4",
+ "@types/d3-timer": "^3.0.2",
+ "d3-array": "^3.2.4",
+ "d3-color": "^3.1.0",
+ "d3-dispatch": "^3.0.1",
+ "d3-dsv": "^3.0.1",
+ "d3-fetch": "^3.0.1",
+ "d3-force": "^3.0.0",
+ "d3-force-3d": "^3.0.5",
+ "d3-format": "^3.1.0",
+ "d3-geo": "^3.1.1",
+ "d3-geo-projection": "^4.0.0",
+ "d3-hierarchy": "^3.1.2",
+ "d3-interpolate": "^3.0.1",
+ "d3-path": "^3.1.0",
+ "d3-quadtree": "^3.0.1",
+ "d3-random": "^3.0.1",
+ "d3-regression": "^1.3.10",
+ "d3-scale": "^4.0.2",
+ "d3-scale-chromatic": "^3.1.0",
+ "d3-shape": "^3.2.0",
+ "d3-time": "^3.1.0",
+ "d3-timer": "^3.0.1"
}
},
"@babel/code-frame": {
@@ -12123,7 +13135,6 @@
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dev": true,
"requires": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -12133,21 +13144,17 @@
"@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="
},
"@jridgewell/set-array": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="
},
"@jridgewell/source-map": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
"integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
- "dev": true,
- "optional": true,
"peer": true,
"requires": {
"@jridgewell/gen-mapping": "^0.3.0",
@@ -12157,14 +13164,12 @@
"@jridgewell/sourcemap-codec": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "dev": true
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
},
"@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -12221,6 +13226,12 @@
}
}
},
+ "@naoak/workerize-transferable": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@naoak/workerize-transferable/-/workerize-transferable-0.1.0.tgz",
+ "integrity": "sha512-fDLfuP71IPNP5+zSfxFb52OHgtjZvauRJWbVnpzQ7G7BjcbLjTny0OW1d3ZO806XKpLWNKmeeW3MhE0sy8iwYQ==",
+ "requires": {}
+ },
"@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -12263,31 +13274,6 @@
"playwright": "1.50.1"
}
},
- "@probe.gl/env": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.6.0.tgz",
- "integrity": "sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==",
- "requires": {
- "@babel/runtime": "^7.0.0"
- }
- },
- "@probe.gl/log": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.6.0.tgz",
- "integrity": "sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==",
- "requires": {
- "@babel/runtime": "^7.0.0",
- "@probe.gl/env": "3.6.0"
- }
- },
- "@probe.gl/stats": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.6.0.tgz",
- "integrity": "sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==",
- "requires": {
- "@babel/runtime": "^7.0.0"
- }
- },
"@rc-component/async-validator": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz",
@@ -12596,10 +13582,110 @@
"@types/responselike": "^1.0.0"
}
},
+ "@types/d3-array": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
+ "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg=="
+ },
+ "@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="
+ },
+ "@types/d3-dispatch": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
+ "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ=="
+ },
+ "@types/d3-dsv": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
+ "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="
+ },
+ "@types/d3-fetch": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
+ "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
+ "requires": {
+ "@types/d3-dsv": "*"
+ }
+ },
+ "@types/d3-force": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
+ "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw=="
+ },
+ "@types/d3-format": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
+ "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="
+ },
+ "@types/d3-geo": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
+ "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
+ "requires": {
+ "@types/geojson": "*"
+ }
+ },
+ "@types/d3-hierarchy": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
+ "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg=="
+ },
+ "@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "requires": {
+ "@types/d3-color": "*"
+ }
+ },
+ "@types/d3-path": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="
+ },
+ "@types/d3-quadtree": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
+ "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg=="
+ },
+ "@types/d3-random": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
+ "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ=="
+ },
+ "@types/d3-scale": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
+ "requires": {
+ "@types/d3-time": "*"
+ }
+ },
+ "@types/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ=="
+ },
+ "@types/d3-shape": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
+ "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
+ "requires": {
+ "@types/d3-path": "*"
+ }
+ },
+ "@types/d3-time": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g=="
+ },
"@types/d3-timer": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz",
- "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg=="
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="
},
"@types/debug": {
"version": "4.1.12",
@@ -12621,12 +13707,21 @@
"version": "8.56.11",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz",
"integrity": "sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==",
- "dev": true,
"requires": {
"@types/estree": "*",
"@types/json-schema": "*"
}
},
+ "@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+ "peer": true,
+ "requires": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
"@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
@@ -12649,6 +13744,11 @@
"@types/node": "*"
}
},
+ "@types/geojson": {
+ "version": "7946.0.16",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
+ "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="
+ },
"@types/hast": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
@@ -12665,8 +13765,7 @@
"@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
},
"@types/keyv": {
"version": "3.1.4",
@@ -12965,12 +14064,170 @@
"tinyrainbow": "^2.0.0"
}
},
+ "@webassemblyjs/ast": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+ "peer": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "peer": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "peer": true
+ },
+ "@webassemblyjs/helper-numbers": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "peer": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
+ "peer": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
+ "peer": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "peer": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
"@xmldom/xmldom": {
"version": "0.8.10",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
"integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
"dev": true
},
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "peer": true
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "peer": true
+ },
"7zip-bin": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz",
@@ -12978,10 +14235,9 @@
"dev": true
},
"acorn": {
- "version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
- "dev": true
+ "version": "8.14.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
+ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="
},
"acorn-jsx": {
"version": "5.3.2",
@@ -13027,6 +14283,35 @@
"uri-js": "^4.2.2"
}
},
+ "ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "peer": true,
+ "requires": {
+ "ajv": "^8.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "peer": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "peer": true
+ }
+ }
+ },
"ajv-keywords": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
@@ -13057,12 +14342,6 @@
"requires": {
"color-name": "~1.1.4"
}
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
}
}
},
@@ -13403,6 +14682,12 @@
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true
},
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "peer": true
+ },
"binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -13465,7 +14750,6 @@
"version": "4.24.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
"integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
- "dev": true,
"requires": {
"caniuse-lite": "^1.0.30001688",
"electron-to-chromium": "^1.5.73",
@@ -13473,6 +14757,11 @@
"update-browserslist-db": "^1.1.1"
}
},
+ "bubblesets-js": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/bubblesets-js/-/bubblesets-js-2.3.4.tgz",
+ "integrity": "sha512-DyMjHmpkS2+xcFNtyN00apJYL3ESdp9fTrkDr5+9Qg/GPqFmcWgGsK1akZnttE1XFxJ/VMy4DNNGMGYtmFp1Sg=="
+ },
"buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
@@ -13497,8 +14786,7 @@
"buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"builder-util": {
"version": "24.13.1",
@@ -13612,8 +14900,7 @@
"caniuse-lite": {
"version": "1.0.30001701",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz",
- "integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==",
- "dev": true
+ "integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw=="
},
"ccount": {
"version": "2.0.1",
@@ -13713,6 +15000,12 @@
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"dev": true
},
+ "chrome-trace-event": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+ "peer": true
+ },
"chromium-pickle-js": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
@@ -13760,27 +15053,10 @@
"mimic-response": "^1.0.0"
}
},
- "color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
- "requires": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
"color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"color-string": {
"version": "1.9.1",
@@ -13800,6 +15076,11 @@
"delayed-stream": "~1.0.0"
}
},
+ "comlink": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/comlink/-/comlink-4.4.2.tgz",
+ "integrity": "sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g=="
+ },
"comma-separated-tokens": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
@@ -13809,8 +15090,6 @@
"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==",
- "dev": true,
- "optional": true,
"peer": true
},
"compare-version": {
@@ -13991,31 +15270,111 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
+ "d3-array": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "requires": {
+ "internmap": "1 - 2"
+ }
+ },
+ "d3-binarytree": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz",
+ "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw=="
+ },
"d3-color": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
"integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="
},
"d3-dispatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz",
- "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="
},
- "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-dsv": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
+ "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
+ "requires": {
+ "commander": "7",
+ "iconv-lite": "0.6",
+ "rw": "1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
+ }
+ }
+ },
+ "d3-fetch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
+ "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
+ "requires": {
+ "d3-dsv": "1 - 3"
+ }
},
"d3-force": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz",
- "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
+ "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
"requires": {
- "d3-dispatch": "1 - 2",
- "d3-quadtree": "1 - 2",
- "d3-timer": "1 - 2"
+ "d3-dispatch": "1 - 3",
+ "d3-quadtree": "1 - 3",
+ "d3-timer": "1 - 3"
}
},
+ "d3-force-3d": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.5.tgz",
+ "integrity": "sha512-tdwhAhoTYZY/a6eo9nR7HP3xSW/C6XvJTbeRpR92nlPzH6OiE+4MliN9feuSFd0tPtEUo+191qOhCTWx3NYifg==",
+ "requires": {
+ "d3-binarytree": "1",
+ "d3-dispatch": "1 - 3",
+ "d3-octree": "1",
+ "d3-quadtree": "1 - 3",
+ "d3-timer": "1 - 3"
+ }
+ },
+ "d3-format": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
+ "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA=="
+ },
+ "d3-geo": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
+ "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
+ "requires": {
+ "d3-array": "2.5.0 - 3"
+ }
+ },
+ "d3-geo-projection": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz",
+ "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==",
+ "requires": {
+ "commander": "7",
+ "d3-array": "1 - 3",
+ "d3-geo": "1.12.0 - 3"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
+ }
+ }
+ },
+ "d3-hierarchy": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
+ "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA=="
+ },
"d3-interpolate": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
@@ -14024,15 +15383,80 @@
"d3-color": "1 - 3"
}
},
+ "d3-octree": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz",
+ "integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A=="
+ },
+ "d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="
+ },
"d3-quadtree": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz",
- "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
+ "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw=="
+ },
+ "d3-random": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
+ "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ=="
+ },
+ "d3-regression": {
+ "version": "1.3.10",
+ "resolved": "https://registry.npmjs.org/d3-regression/-/d3-regression-1.3.10.tgz",
+ "integrity": "sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw=="
+ },
+ "d3-scale": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "requires": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ }
+ },
+ "d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
+ "requires": {
+ "d3-color": "1 - 3",
+ "d3-interpolate": "1 - 3"
+ }
+ },
+ "d3-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "requires": {
+ "d3-path": "^3.1.0"
+ }
+ },
+ "d3-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "requires": {
+ "d3-array": "2 - 3"
+ }
+ },
+ "d3-time-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "requires": {
+ "d3-time": "1 - 3"
+ }
},
"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=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="
},
"dagre": {
"version": "0.8.5",
@@ -14043,12 +15467,6 @@
"lodash": "^4.17.15"
}
},
- "dagre-compound": {
- "version": "0.0.11",
- "resolved": "https://registry.npmjs.org/dagre-compound/-/dagre-compound-0.0.11.tgz",
- "integrity": "sha512-UrSgRP9LtOZCYb9e5doolZXpc7xayyszgyOs7uakTK4n4KsLegLVTRRtq01GpQd/iZjYw5fWMapx9ed+c80MAQ==",
- "requires": {}
- },
"dayjs": {
"version": "1.11.12",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz",
@@ -14135,11 +15553,6 @@
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
},
- "detect-browser": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz",
- "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w=="
- },
"detect-node": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
@@ -14478,8 +15891,7 @@
"electron-to-chromium": {
"version": "1.5.109",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz",
- "integrity": "sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==",
- "dev": true
+ "integrity": "sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ=="
},
"electron-updater": {
"version": "6.3.9",
@@ -14528,6 +15940,12 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "peer": true
+ },
"end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz",
@@ -14536,6 +15954,16 @@
"once": "^1.4.0"
}
},
+ "enhanced-resolve": {
+ "version": "5.18.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+ "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
+ "peer": true,
+ "requires": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ }
+ },
"env-paths": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
@@ -14576,8 +16004,7 @@
"es-module-lexer": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
- "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==",
- "dev": true
+ "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ=="
},
"es6-error": {
"version": "4.1.1",
@@ -14621,8 +16048,7 @@
"escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "dev": true
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="
},
"escape-string-regexp": {
"version": "4.0.0",
@@ -14759,6 +16185,16 @@
"dev": true,
"requires": {}
},
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "peer": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
"eslint-visitor-keys": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
@@ -14797,7 +16233,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
"requires": {
"estraverse": "^5.2.0"
},
@@ -14805,11 +16240,16 @@
"estraverse": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
}
}
},
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "peer": true
+ },
"estree-util-is-identifier-name": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
@@ -14831,9 +16271,15 @@
"dev": true
},
"eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "peer": true
},
"expect-type": {
"version": "1.2.0",
@@ -14905,6 +16351,12 @@
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true
},
+ "fast-uri": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
+ "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
+ "peer": true
+ },
"fastq": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
@@ -15121,11 +16573,6 @@
"resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz",
"integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA=="
},
- "gl-vec2": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/gl-vec2/-/gl-vec2-1.3.0.tgz",
- "integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A=="
- },
"glob": {
"version": "7.2.3",
"resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
@@ -15149,6 +16596,12 @@
"is-glob": "^4.0.3"
}
},
+ "glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "peer": true
+ },
"global-agent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
@@ -15220,9 +16673,9 @@
}
},
"graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
},
"graphemer": {
"version": "1.4.0",
@@ -15241,8 +16694,7 @@
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"has-property-descriptors": {
"version": "1.0.2",
@@ -15400,7 +16852,6 @@
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
}
@@ -15483,10 +16934,10 @@
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz",
"integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g=="
},
- "insert-css": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz",
- "integrity": "sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA=="
+ "internmap": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="
},
"intersection-observer": {
"version": "0.12.2",
@@ -15512,6 +16963,11 @@
"resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz",
"integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ=="
},
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -15636,6 +17092,17 @@
"minimatch": "^3.1.2"
}
},
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "peer": true,
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ }
+ },
"jiti": {
"version": "1.21.7",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
@@ -15671,6 +17138,12 @@
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "peer": true
+ },
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -15700,8 +17173,7 @@
"json5": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
},
"jsonfile": {
"version": "4.0.0",
@@ -15831,6 +17303,23 @@
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true
},
+ "loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "peer": true
+ },
+ "loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "peer": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ },
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
@@ -16078,6 +17567,12 @@
"@types/mdast": "^4.0.0"
}
},
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "peer": true
+ },
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -16314,14 +17809,12 @@
"mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
"requires": {
"mime-db": "1.52.0"
}
@@ -16400,9 +17893,9 @@
}
},
"ml-matrix": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.11.0.tgz",
- "integrity": "sha512-7jr9NmFRkaUxbKslfRu3aZOjJd2LkSitCGv+QH9PF0eJoEG7jIpjXra1Vw8/kgao8+kHCSsJONG6vfWmXQ+/Eg==",
+ "version": "6.12.1",
+ "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.12.1.tgz",
+ "integrity": "sha512-TJ+8eOFdp+INvzR4zAuwBQJznDUfktMtOB6g/hUcGh3rcyjxbz4Te57Pgri8Q9bhSQ7Zys4IYOGhFdnlgeB6Lw==",
"requires": {
"is-any-array": "^2.0.1",
"ml-array-rescale": "^1.3.7"
@@ -16448,6 +17941,12 @@
"sax": "^1.2.4"
}
},
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "peer": true
+ },
"node-addon-api": {
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz",
@@ -16458,8 +17957,7 @@
"node-releases": {
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
- "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
- "dev": true
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="
},
"normalize-path": {
"version": "3.0.0",
@@ -16640,8 +18138,7 @@
"picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
},
"picomatch": {
"version": "2.3.1",
@@ -16771,17 +18268,6 @@
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true
},
- "probe.gl": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.6.0.tgz",
- "integrity": "sha512-19JydJWI7+DtR4feV+pu4Mn1I5TAc0xojuxVgZdXIyfmTLfUaFnk4OloWK1bKbPtkgGKLr2lnbnCXmpZEcEp9g==",
- "requires": {
- "@babel/runtime": "^7.0.0",
- "@probe.gl/env": "3.6.0",
- "@probe.gl/log": "3.6.0",
- "@probe.gl/stats": "3.6.0"
- }
- },
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -16843,6 +18329,28 @@
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
"integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
},
+ "quickselect": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
+ "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "peer": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "rbush": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz",
+ "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==",
+ "requires": {
+ "quickselect": "^2.0.0"
+ }
+ },
"rc-cascader": {
"version": "3.27.0",
"resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.27.0.tgz",
@@ -17389,11 +18897,6 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
- "regl": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz",
- "integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w=="
- },
"remark-parse": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
@@ -17423,6 +18926,12 @@
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true
},
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "peer": true
+ },
"resize-observer-polyfill": {
"version": "1.5.1",
"resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
@@ -17531,18 +19040,21 @@
"queue-microtask": "^1.2.2"
}
},
+ "rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
+ },
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
"peer": true
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sanitize-filename": {
"version": "1.6.3",
@@ -17577,6 +19089,47 @@
"loose-envify": "^1.1.0"
}
},
+ "schema-utils": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz",
+ "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==",
+ "peer": true,
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "peer": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "peer": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "peer": true
+ }
+ }
+ },
"screenfull": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz",
@@ -17610,6 +19163,15 @@
"type-fest": "^0.13.1"
}
},
+ "serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "peer": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -17643,13 +19205,6 @@
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"requires": {
"is-arrayish": "^0.3.1"
- },
- "dependencies": {
- "is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
- }
}
},
"simple-update-notifier": {
@@ -17689,8 +19244,7 @@
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"source-map-js": {
"version": "1.2.1",
@@ -17702,7 +19256,6 @@
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -17899,12 +19452,26 @@
"debug": "^4.1.0"
}
},
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "peer": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
"supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true
},
+ "svg-path-parser": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/svg-path-parser/-/svg-path-parser-1.1.0.tgz",
+ "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A=="
+ },
"tailwindcss": {
"version": "3.4.17",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
@@ -17948,6 +19515,12 @@
}
}
},
+ "tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "peer": true
+ },
"tar": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
@@ -18027,8 +19600,6 @@
"version": "5.31.5",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.31.5.tgz",
"integrity": "sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==",
- "dev": true,
- "optional": true,
"peer": true,
"requires": {
"@jridgewell/source-map": "^0.3.3",
@@ -18037,6 +19608,19 @@
"source-map-support": "~0.5.20"
}
},
+ "terser-webpack-plugin": {
+ "version": "5.3.14",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz",
+ "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==",
+ "peer": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^4.3.0",
+ "serialize-javascript": "^6.0.2",
+ "terser": "^5.31.1"
+ }
+ },
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -18077,11 +19661,6 @@
"integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
"dev": true
},
- "tinycolor2": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
- "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
- },
"tinyexec": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
@@ -18294,7 +19873,6 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
"integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
- "dev": true,
"requires": {
"escalade": "^3.2.0",
"picocolors": "^1.1.1"
@@ -18465,11 +20043,58 @@
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
"integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w=="
},
+ "watchpack": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
+ "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
+ "peer": true,
+ "requires": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ }
+ },
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
+ "webpack": {
+ "version": "5.98.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz",
+ "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==",
+ "peer": true,
+ "requires": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.6",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.14.0",
+ "browserslist": "^4.24.0",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.17.1",
+ "es-module-lexer": "^1.2.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^4.3.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.3.11",
+ "watchpack": "^2.4.1",
+ "webpack-sources": "^3.2.3"
+ }
+ },
+ "webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "peer": true
+ },
"whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
@@ -18498,6 +20123,15 @@
"stackback": "0.0.2"
}
},
+ "workerize-loader": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/workerize-loader/-/workerize-loader-2.0.2.tgz",
+ "integrity": "sha512-HoZ6XY4sHWxA2w0WpzgBwUiR3dv1oo7bS+oCwIpb6n54MclQ/7KXdXsVIChTCygyuHtVuGBO1+i3HzTt699UJQ==",
+ "peer": true,
+ "requires": {
+ "loader-utils": "^2.0.0"
+ }
+ },
"wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
diff --git a/package.json b/package.json
index c707e37..acf0aff 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "behavior3editor",
- "version": "1.8.1",
+ "version": "1.8.2",
"main": "dist-electron/main/index.js",
"description": "行为树编辑器",
"author": "zhandouxiaojiji & codetypes",
@@ -27,7 +27,7 @@
"homepage": "https://github.com/zhandouxiaojiji/behavior3editor#readme",
"dependencies": {
"@ant-design/icons": "^5.4.0",
- "@antv/g6": "^4.8.24",
+ "@antv/g6": "^5.0.45",
"@electron/remote": "github:electron/remote",
"@types/electron-localshortcut": "^3.1.3",
"@types/node": "^20.14.14",
diff --git a/public/locales/en.json b/public/locales/en.json
index 32c934f..4a61d56 100644
--- a/public/locales/en.json
+++ b/public/locales/en.json
@@ -84,7 +84,7 @@
"tree.name": "Tree name",
"tree.desc": "Tree desc",
"tree.export": "Export",
- "tree.firstid": "First id",
+ "tree.prefix": "ID prefix",
"tree.group": "Enable Node Grouping",
"tree.group.placeholder": "Select node groups",
"tree.vars": "Define Variables",
@@ -105,9 +105,11 @@
"node.children": "Num children",
"node.debug": "Debug",
"node.deleteRootNodeDenied": "Unable to delete the root node",
+ "node.dropDenied": "This node position is denied to drop the node",
"node.desc": "Node desc",
"node.disabled": "Disabled",
"node.editSubtreeDenied": "Unable to edit the subtree node",
+ "node.editFailed": "Node '{{name}}' edit failed",
"node.group": "Node group",
"node.groupNotEnabled": "One of '{{group}}' node group is not enabled in current file",
"node.id": "Node id",
@@ -126,6 +128,7 @@
"node.rootNodeAsSubtree": "Root node cann't be save as subtree",
"node.subtree": "Subtree",
"node.subtreePathError": "You should save the subtree inside the current workspace",
+ "node.subtreeSaveRootError": "Root node cann't be save as subtree",
"node.type": "Node type",
"node.undefinedVariable": "Variable '{{variable}}' is not defined",
diff --git a/public/locales/zh.json b/public/locales/zh.json
index fbbe256..c63f668 100644
--- a/public/locales/zh.json
+++ b/public/locales/zh.json
@@ -84,7 +84,7 @@
"tree.name": "行为树",
"tree.desc": "说明",
"tree.export": "导出",
- "tree.firstid": "起始标识",
+ "tree.prefix": "标识前缀",
"tree.group": "启用节点分组",
"tree.group.placeholder": "选择节点分组",
"tree.vars": "定义变量",
@@ -105,9 +105,11 @@
"node.children": "子节点数量",
"node.debug": "调试",
"node.deleteRootNodeDenied": "不能删除根节点",
+ "node.dropDenied": "此节点位置不允许放置拖拽的节点",
"node.desc": "节点说明",
"node.disabled": "禁用",
"node.editSubtreeDenied": "不能编辑子树节点",
+ "node.editFailed": "节点 {{name}} 编辑失败",
"node.group": "节点分组",
"node.groupNotEnabled": "节点分组 “{{group}}” 任意一个未在当前文件中启用",
"node.id": "节点标识",
@@ -126,6 +128,7 @@
"node.rootNodeAsSubtree": "根节点不能保存为子树",
"node.subtree": "子树",
"node.subtreePathError": "子树必须保存在当前工作区的目录内",
+ "node.subtreeSaveRootError": "根节点不能保存为子树",
"node.type": "节点类型",
"node.undefinedVariable": "变量 “{{variable}}” 未定义",
"node.unknown.desc": "新建节点"
diff --git a/sample/scripts/build.js b/sample/scripts/build.js
index 356f8e9..ca53901 100644
--- a/sample/scripts/build.js
+++ b/sample/scripts/build.js
@@ -11,7 +11,7 @@
firstid: number;
group: string[];
import: string[];
- declvar: VarDef[];
+ vars: { name: string; desc: string }[];
root: NodeModel;
}
diff --git a/sample/scripts/test.js b/sample/scripts/test.js
index 5c5be9b..3803719 100644
--- a/sample/scripts/test.js
+++ b/sample/scripts/test.js
@@ -11,7 +11,7 @@
firstid: number;
group: string[];
import: string[];
- declvar: VarDef[];
+ vars: { name: string; desc: string }[];
root: NodeModel;
}
diff --git a/sample/vars/declare-core.json b/sample/vars/declare-core.json
index 3be9dcd..4d686e5 100644
--- a/sample/vars/declare-core.json
+++ b/sample/vars/declare-core.json
@@ -6,7 +6,7 @@
"export": true,
"group": [],
"import": [],
- "declvar": [
+ "vars": [
{
"name": "context",
"desc": "上下文"
@@ -22,8 +22,6 @@
"args": {
"time": 1
},
- "input": [
- "version"
- ]
+ "input": ["version"]
}
-}
\ No newline at end of file
+}
diff --git a/sample/vars/declare-vars.json b/sample/vars/declare-vars.json
index 8b0e299..e712f4c 100644
--- a/sample/vars/declare-vars.json
+++ b/sample/vars/declare-vars.json
@@ -1,12 +1,12 @@
{
+ "version": "1.8.1",
"name": "declare-vars",
"desc": "",
"firstid": 1,
"export": true,
- "import": [
- "vars/declare-core.json"
- ],
- "declvar": [
+ "group": [],
+ "import": ["vars/declare-core.json"],
+ "vars": [
{
"name": "owner",
"desc": "所有者"
@@ -17,8 +17,7 @@
}
],
"root": {
- "id": 1,
+ "id": "1",
"name": "Sequence"
- },
- "group": []
-}
\ No newline at end of file
+ }
+}
diff --git a/sample/vars/test-subtree.json b/sample/vars/test-subtree.json
index 5f12071..d97dd9c 100644
--- a/sample/vars/test-subtree.json
+++ b/sample/vars/test-subtree.json
@@ -1,21 +1,23 @@
{
+ "version": "1.8.1",
"name": "test-subtree",
"desc": "",
"firstid": 1,
"export": true,
+ "group": [],
"import": ["vars/declare-core.json"],
- "declvar": [
+ "vars": [
{
"name": "test",
"desc": "测试"
}
],
"root": {
- "id": 1,
+ "id": "1",
"name": "Sequence",
"children": [
{
- "id": 2,
+ "id": "2",
"name": "Log",
"args": {
"message": "hello"
diff --git a/sample/vars/test-vars.json b/sample/vars/test-vars.json
index 420a8a4..0897ee5 100644
--- a/sample/vars/test-vars.json
+++ b/sample/vars/test-vars.json
@@ -1,8 +1,8 @@
{
- "version": "1.8.0",
+ "version": "1.8.1",
"name": "test-vars",
"desc": "",
- "firstid": 1,
+ "prefix": "A",
"export": true,
"group": [
"Client",
@@ -12,7 +12,7 @@
"vars/declare-core.json",
"vars/declare-vars.json"
],
- "declvar": [
+ "vars": [
{
"name": "target",
"desc": "目标"
@@ -23,52 +23,52 @@
}
],
"root": {
- "id": 1,
+ "id": "1",
"name": "Sequence",
"children": [
{
- "id": 2,
+ "id": "2",
"name": "Sequence",
"path": "vars/test-subtree.json"
},
{
- "id": 4,
+ "id": "4",
"name": "FindEnemy",
- "args": {},
"output": [
"target1"
- ]
+ ],
+ "args": {}
},
{
- "id": 5,
+ "id": "5",
"name": "Attack",
"input": [
"target1"
]
},
{
- "id": 6,
+ "id": "6",
"name": "Check",
"args": {
"value": "target[0].x > 0 "
}
},
{
- "id": 7,
+ "id": "7",
"name": "MoveToTarget",
"input": [
"target"
]
},
{
- "id": 8,
+ "id": "8",
"name": "Clear",
"output": [
"test"
]
},
{
- "id": 9,
+ "id": "9",
"name": "TestB3",
"args": {
"time": 1,
@@ -79,7 +79,7 @@
}
},
{
- "id": 10,
+ "id": "10",
"name": "TestB3",
"args": {
"time": 1,
@@ -90,15 +90,17 @@
}
},
{
- "id": 11,
+ "id": "11",
"name": "Clear",
"output": [
"context"
]
},
{
- "id": 12,
+ "id": "12",
"name": "Listen",
+ "input": [],
+ "output": [],
"args": {
"builtin": "afterRunFailure"
}
diff --git a/sample/workdir/hero.json b/sample/workdir/hero.json
index 0c59e66..5b0fc34 100644
--- a/sample/workdir/hero.json
+++ b/sample/workdir/hero.json
@@ -4,12 +4,9 @@
"desc": "英雄测试AI",
"firstid": 1,
"export": true,
- "group": [
- "Client",
- "Server"
- ],
+ "group": ["Client", "Server"],
"import": [],
- "declvar": [],
+ "vars": [],
"root": {
"id": 1,
"name": "Selector",
@@ -29,16 +26,12 @@
"w": 100,
"h": 50
},
- "output": [
- "enemy"
- ]
+ "output": ["enemy"]
},
{
"id": 4,
"name": "Attack",
- "input": [
- "enemy"
- ]
+ "input": ["enemy"]
},
{
"id": 5,
@@ -63,16 +56,12 @@
"x": 0,
"y": 0
},
- "output": [
- "enemy"
- ]
+ "output": ["enemy"]
},
{
"id": 8,
"name": "MoveToTarget",
- "input": [
- "enemy"
- ]
+ "input": ["enemy"]
}
]
},
@@ -84,9 +73,7 @@
{
"id": 10,
"name": "GetHp",
- "output": [
- "hp"
- ]
+ "output": ["hp"]
},
{
"id": 11,
@@ -94,9 +81,7 @@
"args": {
"lt": 50
},
- "input": [
- "hp"
- ]
+ "input": ["hp"]
},
{
"id": 12,
@@ -114,4 +99,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/sample/workdir/monster.json b/sample/workdir/monster.json
index ed1fbe6..5460003 100644
--- a/sample/workdir/monster.json
+++ b/sample/workdir/monster.json
@@ -4,11 +4,9 @@
"desc": "怪物测试AI",
"firstid": 1,
"export": true,
- "group": [
- "Test"
- ],
+ "group": ["Test"],
"import": [],
- "declvar": [],
+ "vars": [],
"root": {
"id": 1,
"name": "Sequence",
@@ -22,9 +20,7 @@
{
"id": 3,
"name": "GetHp",
- "output": [
- "hp"
- ],
+ "output": ["hp"],
"children": [
{
"id": 4,
@@ -41,9 +37,7 @@
"value": "hp",
"gt": 50
},
- "input": [
- "hp"
- ]
+ "input": ["hp"]
},
{
"id": 7,
@@ -75,4 +69,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/sample/workdir/sub/subtree1.json b/sample/workdir/sub/subtree1.json
index 7d28abc..f925b66 100644
--- a/sample/workdir/sub/subtree1.json
+++ b/sample/workdir/sub/subtree1.json
@@ -5,7 +5,7 @@
"firstid": 1,
"group": [],
"import": [],
- "declvar": [],
+ "vars": [],
"root": {
"id": 1,
"name": "Sequence",
@@ -27,4 +27,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/sample/workdir/sub/subtree2.json b/sample/workdir/sub/subtree2.json
index 324a819..c8602ec 100644
--- a/sample/workdir/sub/subtree2.json
+++ b/sample/workdir/sub/subtree2.json
@@ -5,7 +5,7 @@
"firstid": 1,
"group": [],
"import": [],
- "declvar": [],
+ "vars": [],
"root": {
"id": 1,
"name": "Sequence",
@@ -14,17 +14,13 @@
{
"id": 2,
"name": "Cmp",
- "input": [
- "d"
- ]
+ "input": ["d"]
},
{
"id": 3,
"name": "Attack",
- "input": [
- "in"
- ]
+ "input": ["in"]
}
]
}
-}
\ No newline at end of file
+}
diff --git a/sample/workdir/subtree1.json b/sample/workdir/subtree1.json
index aeaf0af..3a6b866 100644
--- a/sample/workdir/subtree1.json
+++ b/sample/workdir/subtree1.json
@@ -5,7 +5,7 @@
"firstid": 1,
"group": [],
"import": [],
- "declvar": [],
+ "vars": [],
"root": {
"id": 1,
"name": "Sequence",
@@ -27,4 +27,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/sample/workdir/subtree2.json b/sample/workdir/subtree2.json
index 503e5a8..b86b161 100644
--- a/sample/workdir/subtree2.json
+++ b/sample/workdir/subtree2.json
@@ -5,7 +5,7 @@
"firstid": 1,
"group": [],
"import": [],
- "declvar": [],
+ "vars": [],
"root": {
"id": 1,
"name": "Sequence",
@@ -15,10 +15,8 @@
"id": 2,
"name": "Cmp",
"args": {},
- "input": [
- "x"
- ]
+ "input": ["x"]
}
]
}
-}
\ No newline at end of file
+}
diff --git a/src/behavior3 b/src/behavior3
index b3e20e8..9283002 160000
--- a/src/behavior3
+++ b/src/behavior3
@@ -1 +1 @@
-Subproject commit b3e20e85785aed1b1b5762e08c94056101e0cd35
+Subproject commit 9283002a96ab5ff5e326919c26cb953c2285fa9c
diff --git a/src/components/editor.tsx b/src/components/editor.tsx
index 75cdf9b..0c8c0a9 100644
--- a/src/components/editor.tsx
+++ b/src/components/editor.tsx
@@ -1,9 +1,6 @@
import { ArrowDownOutlined, ArrowUpOutlined, CloseOutlined } from "@ant-design/icons";
-import G6, { G6GraphEvent, Item, Matrix, TreeGraph } from "@antv/g6";
-import { dialog } from "@electron/remote";
import { useSize } from "ahooks";
import { Button, Dropdown, Flex, FlexProps, Input, InputRef, MenuProps } from "antd";
-import { clipboard } from "electron";
import * as fs from "fs";
import React, { FC, KeyboardEvent, useEffect, useMemo, useRef, useState } from "react";
import { useTranslation } from "react-i18next";
@@ -21,98 +18,17 @@ import {
EditTree,
useWorkspace,
} from "../contexts/workspace-context";
-import { ImportDef, isExprType, NodeModel, TreeGraphData, TreeModel, VarDef } from "../misc/b3type";
-import * as b3util from "../misc/b3util";
-import { message } from "../misc/hooks";
import i18n from "../misc/i18n";
import { Hotkey, isMacos, useKeyDown } from "../misc/keys";
-import Path from "../misc/path";
-import { mergeClassNames, readJson, writeTree } from "../misc/util";
+import { mergeClassNames } from "../misc/util";
+import { FilterOption, Graph } from "./graph";
import "./register-node";
-import { calcTreeDataSize } from "./register-node";
export interface EditorProps extends React.HTMLAttributes {
data: EditorStore;
- onUpdate: () => void;
+ onChange: () => void;
}
-interface FilterOption {
- results: string[];
- index: number;
- filterStr: string;
- filterCase: boolean;
- filterFocus: boolean;
- filterType: "content" | "id";
- placeholder: string;
-}
-
-const createTreeData = (node: NodeModel, parent?: string) => {
- return b3util.createTreeData(node, parent, calcTreeDataSize);
-};
-
-const refreshTreeData = (data: TreeGraphData) => {
- data.size = calcTreeDataSize(data);
- if (data.children) {
- for (const child of data.children) {
- refreshTreeData(child);
- }
- }
-};
-
-const isTreeUpdated = (editor: EditorStore, editTree: EditTree) => {
- if (
- editor.data.firstid !== editTree.firstid ||
- editor.data.export !== editTree.export ||
- editor.data.name !== editTree.name ||
- editor.data.desc !== editTree.desc
- ) {
- return true;
- }
-
- let max = Math.max(editor.declare.declvar.length, editTree.declvar.length);
- for (let i = 0; i < max; i++) {
- const v1: VarDef | undefined = editor.declare.declvar[i];
- const v2: VarDef | undefined = editTree.declvar[i];
- if (v1?.name !== v2?.name || v1?.desc !== v2?.desc) {
- return true;
- }
- }
-
- max = Math.max(editor.data.group.length, editTree.group.length);
- for (let i = 0; i < max; i++) {
- if (editor.data.group[i] !== editTree.group[i]) {
- return true;
- }
- }
-
- max = Math.max(editor.declare.import.length, editTree.import.length);
- for (let i = 0; i < max; i++) {
- const v1: ImportDef | undefined = editor.declare.import[i];
- const v2: ImportDef | undefined = editTree.import[i];
- if (v1?.path !== v2?.path) {
- return true;
- }
- }
-
- return false;
-};
-
-const isSubtreeUpdated = (data: TreeGraphData) => {
- if (data.path) {
- if (b3util.files[data.path] !== data.lastModified) {
- return true;
- }
- }
- if (data.children) {
- for (const child of data.children) {
- if (isSubtreeUpdated(child)) {
- return true;
- }
- }
- }
- return false;
-};
-
const createMenu = () => {
const t = i18n.t;
const MenuItem: FC = (itemProps) => {
@@ -193,29 +109,60 @@ const createMenu = () => {
return arr;
};
-export const Editor: FC = ({ onUpdate: updateState, data: editor, ...props }) => {
+const hotkeyMap: Record = {
+ [Hotkey.Copy]: "copy",
+ [Hotkey.Replace]: "replace",
+ [Hotkey.Paste]: "paste",
+ [Hotkey.Insert]: "insert",
+ [Hotkey.Enter]: "insert",
+ [Hotkey.Delete]: "delete",
+ [Hotkey.Backspace]: "delete",
+ [Hotkey.Undo]: "undo",
+ [Hotkey.Redo]: "redo",
+};
+
+export const Editor: FC = ({ onChange, data: editor, ...props }) => {
const workspace = useWorkspace(
useShallow((state) => ({
- refresh: state.refresh,
editing: state.editing,
- editingNode: state.editingNode,
- editingTree: state.editingTree,
- nodeDefs: state.nodeDefs,
- onEditingNode: state.onEditingNode,
- onEditingTree: state.onEditingTree,
- open: state.open,
- relative: state.relative,
- updateFileMeta: state.updateFileMeta,
- workdir: state.workdir,
}))
);
+ const keysRef = useRef(null);
+ useKeyDown(
+ [
+ Hotkey.Copy,
+ Hotkey.Replace,
+ Hotkey.Paste,
+ Hotkey.Insert,
+ Hotkey.Enter,
+ Hotkey.Delete,
+ Hotkey.Backspace,
+ ],
+ keysRef,
+ (e, key) => {
+ e.preventDefault();
+ e.stopImmediatePropagation();
+ e.stopPropagation();
+ editor.dispatch(hotkeyMap[key]);
+ }
+ );
+
+ useKeyDown([Hotkey.Undo, Hotkey.Redo], null, (e, key) => {
+ if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) {
+ return;
+ }
+ e.stopPropagation();
+ editor.dispatch(hotkeyMap[key]);
+ });
+
const searchInputRef = useRef(null);
const graphRef = useRef(null);
const sizeRef = useRef(null);
const editorSize = useSize(sizeRef);
const { t } = useTranslation();
const menuItems = useMemo(() => createMenu(), [t]);
+ const [graph, setGraph] = useState(null!);
const [showingSearch, setShowingSearch] = useState(false);
const [filterOption, setFilterOption] = useState({
@@ -228,1044 +175,39 @@ export const Editor: FC = ({ onUpdate: updateState, data: editor, .
placeholder: "",
});
- const onSearchChange = (option: FilterOption) => {
+ const onSearchChange = async (option: FilterOption) => {
option.results.length = 0;
- editor.searchingText = option.filterStr;
- filterNodes(option, editor.root);
+ graph.hightlightSearch(option, graph.data.root);
setFilterOption({
...option,
});
if (option.results.length > 0) {
const idx = option.index < option.results.length ? option.index : 0;
- recursiveOpenCollapsed(option.results[idx]);
- editor.graph.focusItem(option.results[idx]);
- selectNode(option.results[idx]);
+ graph.expandElement();
+ graph.focusNode(option.results[idx]);
} else {
- selectNode(null);
+ graph.selectNode(null);
}
- editor.graph.findAll("node", () => true).forEach((item) => item.draw());
};
const updateSearchState = () => {
const option = { ...filterOption };
option.results.length = 0;
- filterNodes(option, editor.root);
+ graph.hightlightSearch(option, graph.data.root);
setFilterOption({
...option,
});
- editor.graph.findAll("node", () => true).forEach((item) => item.draw());
};
- const onDebounceSearchChange = useDebounceCallback(onSearchChange, 200);
-
- const onChange = () => {
- if (!editor.unsave) {
- editor.unsave = true;
- updateState();
- }
- };
-
- const findParent = (node: TreeGraphData) => {
- if (node.parent) {
- return findDataById(node.parent);
- } else {
- return null;
- }
- };
-
- const findHightlight = (node: TreeGraphData, highlight: string[], changed?: TreeGraphData[]) => {
- changed ||= [];
- if (node.highlightInput || node.highlightOutput || node.highlightArgs) {
- node.highlightInput = false;
- node.highlightOutput = false;
- node.highlightArgs = false;
- changed.push(node);
- }
-
- if (node.input) {
- for (const v of node.input) {
- if (highlight.includes(v)) {
- node.highlightInput = true;
- changed.push(node);
- break;
- }
- }
- }
-
- if (node.output) {
- for (const v of node.output) {
- if (highlight.includes(v)) {
- node.highlightOutput = true;
- changed.push(node);
- break;
- }
- }
- }
-
- node.def.args?.forEach((arg) => {
- if (isExprType(arg.type)) {
- const expr = node.args?.[arg.name] as string | string[] | undefined;
- if (typeof expr === "string") {
- for (const v of b3util.parseExpr(expr)) {
- if (highlight.includes(v)) {
- node.highlightArgs = true;
- changed.push(node);
- break;
- }
- }
- } else if (expr instanceof Array) {
- loop: for (const str of expr) {
- for (const v of b3util.parseExpr(str)) {
- if (highlight.includes(v)) {
- node.highlightArgs = true;
- changed.push(node);
- break loop;
- }
- }
- }
- }
- }
- });
-
- node.children?.forEach((child: TreeGraphData) => findHightlight(child, highlight, changed));
-
- return changed;
- };
-
- const findDataById = (id: string) => {
- const traverse = (node: TreeGraphData): TreeGraphData | undefined => {
- if (node.id === id) {
- return node;
- }
- if (node.children) {
- for (const child of node.children) {
- const result = traverse(child);
- if (result) {
- return result;
- }
- }
- }
- };
- return traverse(editor.root) as TreeGraphData;
- };
-
- const includeString = (content: string | undefined, option: FilterOption) => {
- if (!content || typeof content !== "string") {
- return false;
- } else if (option.filterCase) {
- return content.includes(option.filterStr);
- } else {
- return content.toLowerCase().includes(option.filterStr.toLowerCase());
- }
- };
-
- const filterNodes = (option: FilterOption, node: TreeGraphData | null) => {
- if (node) {
- node.highlightGray = option.filterFocus && !!option.filterStr;
- if (option.filterStr) {
- let found = false;
- if (option.filterType === "id") {
- if (option.filterStr === node.id) {
- found = true;
- }
- } else {
- if (
- includeString(node.name, option) ||
- includeString(node.desc || node.def.desc, option)
- ) {
- found = true;
- }
- if (!found && node.input) {
- for (const str of node.input) {
- if (includeString(str, option)) {
- found = true;
- break;
- }
- }
- }
- if (!found && node.args) {
- loop: for (const str in node.args) {
- const value = node.args[str];
- if (typeof value === "string") {
- if (includeString(value, option)) {
- found = true;
- break loop;
- }
- } else if (value instanceof Array) {
- for (const v of value) {
- if (includeString(v, option)) {
- found = true;
- break loop;
- }
- }
- }
- }
- }
- if (!found && node.output) {
- for (const str of node.output) {
- if (includeString(str, option)) {
- found = true;
- break;
- }
- }
- }
- if (!found && node.path) {
- if (includeString(node.path, option)) {
- found = true;
- }
- }
- }
- if (found) {
- option.results.push(node.id);
- node.highlightGray = false;
- }
- }
- node.children?.forEach((child: TreeGraphData) => filterNodes(option, child));
- }
- };
-
- const isAncestor = (ancestor: TreeGraphData, node: TreeGraphData): boolean => {
- if (ancestor.id === node.parent) {
- return true;
- } else if (node.parent) {
- return isAncestor(ancestor, findDataById(node.parent));
- } else {
- return false;
- }
- };
-
- const isSubtreeNode = (node: TreeGraphData | null): boolean => {
- if (node?.path) {
- return true;
- } else if (node?.parent) {
- return isSubtreeNode(findParent(node));
- } else {
- return false;
- }
- };
-
- const findSubtree = (node: TreeGraphData | null): TreeGraphData | null => {
- if (node?.path) {
- return node;
- } else if (node?.parent) {
- return findSubtree(findParent(node));
- } else {
- return null;
- }
- };
-
- const refresh = () => {
- const rootNode = b3util.createNode(editor.root);
- editor.modifiedTime = fs.statSync(editor.path).mtimeMs;
- editor.root = createTreeData(rootNode);
- editor.autoId = b3util.refreshTreeDataId(editor.root, editor.data.firstid);
- editor.graph.changeData(editor.root);
- editor.graph.layout();
- if (editor.selectedId) {
- selectNode(editor.selectedId);
- }
- restoreViewport();
- };
-
- const reload = () => {
- const file = readJson(editor.path) as TreeModel;
- editor.root = createTreeData(file.root);
- editor.autoId = b3util.refreshTreeDataId(editor.root, editor.data.firstid);
- editor.unsave = false;
- updateState();
- if (editor.graph) {
- editor.graph.changeData(editor.root);
- editor.graph.layout();
- restoreViewport();
- }
- };
-
- const checkSubtree = () => {
- if (editor.graph && isSubtreeUpdated(editor.root)) {
- refresh();
- pushHistory();
- onChange();
- }
- };
-
- const clearDragDstState = () => {
- if (editor.dragDstId) {
- setItemState(editor.dragDstId, "dragRight", false);
- setItemState(editor.dragDstId, "dragDown", false);
- setItemState(editor.dragDstId, "dragUp", false);
- editor.dragDstId = undefined;
- }
- };
-
- const clearDragSrcState = () => {
- if (editor.dragSrcId) {
- setItemState(editor.dragSrcId, "dragSrc", false);
- editor.dragSrcId = undefined;
- }
- };
-
- const setItemState = (item: string | Item, state: string, value: string | boolean) => {
- if (typeof item === "string") {
- item = editor.graph.findById(item);
- }
- if (item) {
- editor.graph.setItemState(item, state, value);
- }
- };
-
- const updateNode = (editNode: EditNode) => {
- const newNode = editNode.data;
- const data = findDataById(editNode.data.id.toString());
- const oldNode = b3util.createNode(data, false);
- if (b3util.isNodeEqual(oldNode, newNode)) {
- return;
- }
- b3util.copyFromNode(data, newNode);
- data.def = workspace.nodeDefs.get(data.name)!;
- data.size = calcTreeDataSize(data);
- if (oldNode.path !== newNode.path) {
- refresh();
- selectNode(null);
- selectNode(data.id);
- } else {
- const item = editor.graph.findById(data.id);
- item.draw();
- }
- pushHistory();
- onChange();
- };
-
- const updateTree = (editTree: EditTree) => {
- if (isTreeUpdated(editor, editTree)) {
- editor.data.desc = editTree.desc || "";
- editor.data.export = editTree.export !== false;
- editor.data.group = editTree.group;
- editor.data.firstid = editTree.firstid ?? 1;
- editor.declare.declvar = editTree.declvar || [];
- editor.declare.import = editTree.import || [];
- editor.data.import = editor.declare.import.map((v) => v.path).sort();
- editor.data.declvar = editor.declare.declvar
- .map((v) => ({ ...v }))
- .sort((a, b) => a.name.localeCompare(b.name));
- workspace.refresh(editor.path);
- pushHistory();
- refresh();
- onChange();
- }
- };
-
- const clickVar = (...names: string[]) => {
- const changed = findHightlight(editor.root, names);
- if (changed.length > 0) {
- const refreshHighlight = (node: TreeGraphData) => {
- const item = editor.graph.findById(node.id);
- if (names.length > 0) {
- node.highlightGray = !(node.highlightInput || node.highlightOutput || node.highlightArgs);
- } else {
- node.highlightGray = false;
- }
- item.draw();
- if (node.children) {
- node.children.forEach(refreshHighlight);
- }
- };
- refreshHighlight(editor.root);
- }
- if (names.length === 0 && editor.searchingText) {
- const matrix = editor.graphMatrix;
- const selectedId = editor.selectedId;
- onSearchChange({
- ...filterOption,
- filterType: "content",
- filterStr: editor.searchingText,
- });
- editor.graphMatrix = matrix;
- selectNode(selectedId);
- restoreViewport();
- }
- };
-
- const selectNode = (id: string | null) => {
- if (editor.selectedId) {
- setItemState(editor.selectedId, "selected", false);
- setItemState(editor.selectedId, "hover", false);
- }
-
- editor.selectedId = id;
-
- if (editor.selectedId) {
- const data = findDataById(editor.selectedId);
- workspace.onEditingNode({
- data: b3util.createNode(data, false),
- editable: !isSubtreeNode(data),
- limitError: !b3util.checkChildrenLimit(data),
- });
- setItemState(editor.selectedId, "selected", true);
- } else {
- workspace.onEditingTree(editor);
- }
- };
-
- const restoreViewport = () => {
- if (editor.graphMatrix) {
- editor.graph.getGroup().setMatrix(editor.graphMatrix);
- }
- };
-
- const pushHistory = () => {
- editor.historyStack.length = ++editor.historyIndex;
- editor.historyStack.push(
- JSON.stringify(
- {
- ...editor.data,
- root: b3util.createNode(editor.root),
- },
- null,
- 2
- )
- );
- };
-
- const copyNode = () => {
- if (editor.selectedId) {
- const data = findDataById(editor.selectedId);
- if (data) {
- const str = JSON.stringify(b3util.createNode(data), null, 2);
- clipboard.writeText(str);
- }
- }
- };
-
- const pasteNode = () => {
- if (!editor.selectedId) {
- message.warning(t("node.noNodeSelected"));
- return;
- }
-
- if (isSubtreeNode(findDataById(editor.selectedId))) {
- message.warning(t("node.editSubtreeDenied"));
- return;
- }
-
- try {
- const str = clipboard.readText();
- if (!str || str === "") {
- return;
- }
- const curNodeData = findDataById(editor.selectedId);
- const data = createTreeData(JSON.parse(str), editor.selectedId);
- editor.autoId = b3util.refreshTreeDataId(data, editor.autoId);
- selectNode(null);
- curNodeData.children ||= [];
- curNodeData.children.push(data);
- refreshItem(curNodeData);
- updateGrahp();
- pushHistory();
- onChange();
- } catch (error) {
- message.error(t("node.pasteDataError"));
- console.log(error);
- }
- };
-
- const replaceNode = () => {
- if (!editor.selectedId) {
- message.warning(t("node.noNodeSelected"));
- return;
- }
-
- if (isSubtreeNode(findDataById(editor.selectedId))) {
- message.warning(t("node.editSubtreeDenied"));
- return;
- }
-
- try {
- const str = clipboard.readText();
- if (!str || str === "") {
- return;
- }
- const curNodeData = findDataById(editor.selectedId);
- if (curNodeData.parent) {
- const parentData = findDataById(curNodeData.parent);
- const idx = parentData.children!.indexOf(curNodeData);
- const data = createTreeData(JSON.parse(str), editor.selectedId);
- editor.autoId = b3util.refreshTreeDataId(data, editor.autoId);
- parentData.children![idx] = data;
- refreshItem(parentData);
- updateGrahp();
- } else {
- editor.root = createTreeData(JSON.parse(str), editor.selectedId);
- editor.autoId = b3util.refreshTreeDataId(editor.root, editor.data.firstid);
- editor.graph.changeData(editor.root);
- editor.graph.render();
- editor.graph.layout();
- }
- selectNode(null);
- pushHistory();
- onChange();
- } catch (error) {
- message.error(t("node.pasteDataError"));
- console.log(error);
- }
- };
-
- const createNode = () => {
- if (!editor.selectedId) {
- message.warning(t("node.noNodeSelected"));
- return;
- }
-
- if (isSubtreeNode(findDataById(editor.selectedId))) {
- message.warning(t("node.editSubtreeDenied"));
- return;
- }
-
- const curNodeData = findDataById(editor.selectedId);
- const newNodeData: NodeModel = {
- id: editor.autoId++,
- name: "unknow",
- };
- curNodeData.children ||= [];
- curNodeData.children.push(createTreeData(newNodeData, editor.selectedId));
- refreshItem(curNodeData);
- updateGrahp();
- pushHistory();
- onChange();
- };
-
- const deleteNode = () => {
- if (!editor.selectedId) {
- return;
- }
-
- if (editor.selectedId === "1") {
- message.warning(t("node.deleteRootNodeDenied"));
- return;
- }
-
- const data = findDataById(editor.selectedId);
-
- if (isSubtreeNode(data) && !data.path) {
- message.warning(t("node.editSubtreeDenied"));
- return;
- }
-
- const parentData = findParent(data)!;
- parentData.children = parentData.children!.filter((e) => e.id !== editor.selectedId);
- refreshItem(parentData);
- selectNode(null);
- updateGrahp();
- pushHistory();
- onChange();
- };
-
- const refreshItem = (data: TreeGraphData) => {
- editor.graph.findById(data.id)?.draw();
- };
-
- const useStackData = (str: string) => {
- const data = JSON.parse(str) as TreeModel;
- editor.data = data;
- editor.root = createTreeData(data.root);
- editor.declare.import = data.import.map((v) => ({ path: v, vars: [], depends: [] }));
- editor.declare.declvar = data.declvar.map((v) => ({ ...v }));
- editor.autoId = b3util.refreshTreeDataId(editor.root, editor.data.firstid);
- editor.graph.changeData(editor.root);
- editor.graph.layout();
- restoreViewport();
- onChange();
-
- if (workspace.editingTree) {
- workspace.onEditingTree(editor);
- } else if (workspace.editingNode) {
- selectNode(workspace.editingNode.data.id.toString());
- }
- };
-
- const updateGrahp = () => {
- editor.graph.changeData();
- editor.graph.layout();
- };
-
- const undo = () => {
- if (editor.historyIndex > 0) {
- useStackData(editor.historyStack[--editor.historyIndex]);
- updateSearchState();
- }
- };
-
- const redo = () => {
- if (editor.historyIndex < editor.historyStack.length - 1) {
- useStackData(editor.historyStack[++editor.historyIndex]);
- updateSearchState();
- }
- };
-
- const rename = (newPath: string) => {
- editor.path = newPath;
- };
-
- const save = () => {
- if (b3util.isNewVersion(editor.data.version)) {
- message.error(t("alertNewVersion", { version: editor.data.version }), 6);
- return;
- }
- const path = editor.path;
- editor.autoId = b3util.refreshTreeDataId(editor.root, editor.data.firstid);
- editor.data.root = b3util.createFileData(editor.root);
- editor.modifiedTime = Date.now();
- writeTree(path, editor.data);
- workspace.updateFileMeta(editor);
- editor.unsave = false;
- editor.graph.changeData(editor.root);
- editor.graph.layout();
- restoreViewport();
- updateSearchState();
- updateState();
- };
-
- const editSubtree = () => {
- if (!editor.selectedId) {
- message.warning(t("node.noNodeSelected"));
- return;
- }
-
- const data = findSubtree(findDataById(editor.selectedId));
- if (data?.path) {
- const path = `${workspace.workdir}/${data.path}`;
- workspace.open(path, Number(editor.selectedId) - Number(data.id) + 1);
- }
- };
-
- const saveAsSubtree = () => {
- if (!editor.selectedId) {
- message.warning(t("node.noNodeSelected"));
- return;
- }
- if (editor.selectedId === "1") {
- message.warning(t("node.saveAsSubtree"));
- return;
- }
- setTimeout(() => {
- let subpath = dialog.showSaveDialogSync({
- defaultPath: workspace.workdir,
- properties: ["showOverwriteConfirmation"],
- filters: [{ name: "Json", extensions: ["json"] }],
- });
-
- if (!subpath) {
- return;
- }
-
- subpath = subpath.replaceAll(Path.sep, "/");
- if (subpath.indexOf(workspace.workdir) === -1) {
- message.warning(t("node.subtreePathError"));
- return;
- }
-
- const data = findDataById(editor.selectedId!);
- const subroot = b3util.createFileData(data);
- const subtreeModel = {
- name: Path.basename(subpath).slice(0, -5),
- root: subroot,
- desc: data.desc,
- } as TreeModel;
- fs.writeFileSync(subpath, JSON.stringify(subtreeModel, null, 2));
- data.path = workspace.relative(subpath);
- refresh();
- pushHistory();
- onChange();
- }, 200);
- };
-
- const createGraph = (ref: React.MutableRefObject) => {
- editor.graph = new TreeGraph({
- container: ref.current!,
- animate: false,
- maxZoom: 2,
- minZoom: 0.4,
- modes: {
- default: [
- "drag-canvas",
- "zoom-canvas",
- "click-select",
- "hover",
- {
- type: "collapse-expand",
- trigger: "dblclick",
- onChange: (item, collapsed) => {
- if (!item) {
- return;
- }
- selectNode(item.getID());
- const data = item.getModel();
- data.collapsed = collapsed;
- setItemState(item, "collapsed", data.collapsed as boolean);
- const icon = data.collapsed ? G6.Marker.expand : G6.Marker.collapse;
- const marker = item
- .get("group")
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- .find((ele: any) => ele.get("name") === "collapse-icon");
- editor.graph.refresh();
- marker.attr("symbol", icon);
- return true;
- },
- },
- ],
- },
- defaultEdge: {
- type: "cubic-horizontal",
- size: 2.5,
- style: {
- stroke: "#A3B1BF",
- },
- },
- defaultNode: {
- type: "TreeNode",
- },
- layout: {
- type: "compactBox",
- direction: "LR",
- getHGap: () => 30,
- getWidth: (d: TreeGraphData) => {
- return d.size![0];
- },
- getHeight: (d: TreeGraphData) => {
- return d.size![1];
- },
- },
- });
-
- editor.graph.on("viewportchange", (data) => {
- if (data.action === "translate" || data.action === "zoom") {
- editor.graphMatrix = data.matrix as Matrix;
- }
- });
-
- editor.graph.on("node:click", (e: G6GraphEvent) => {
- const names: string[] = [];
- if (e.shape.cfg.name === "input-text") {
- const data = findDataById(e.item.getID());
- data.input?.forEach((v) => v && names.push(v));
- } else if (e.shape.cfg.name === "output-text") {
- const data = findDataById(e.item.getID());
- data.output?.forEach((v) => v && names.push(v));
- }
- clickVar(...names);
- });
-
- editor.graph.on("node:contextmenu", (e: G6GraphEvent) => {
- selectNode(e.item.getID());
- });
-
- editor.graph.on("node:mouseenter", (e: G6GraphEvent) => {
- if (!e.item.hasState("selected")) {
- setItemState(e.item, "hover", true);
- }
- });
-
- editor.graph.on("node:mouseleave", (e: G6GraphEvent) => {
- if (!e.item.hasState("selected")) {
- setItemState(e.item, "hover", false);
- }
- });
-
- editor.graph.on("nodeselectchange", (e: G6GraphEvent) => {
- if (e.target) {
- selectNode((e.target as unknown as Item).getID());
- } else {
- selectNode(null);
- }
- });
-
- editor.graph.on("node:dragstart", (e: G6GraphEvent) => {
- editor.dragSrcId = e.item.getID();
- setItemState(editor.dragSrcId, "dragSrc", true);
- });
-
- editor.graph.on("node:dragend", (e: G6GraphEvent) => {
- if (editor.dragSrcId) {
- setItemState(editor.dragSrcId, "dragSrc", false);
- editor.dragSrcId = undefined;
- }
- });
-
- editor.graph.on("node:dragover", (e: G6GraphEvent) => {
- const dstNodeId = e.item.getID();
- if (dstNodeId === editor.dragSrcId) {
- return;
- }
-
- clearDragDstState();
-
- const box = e.item.getBBox();
- if (e.x > box.minX + box.width * 0.6) {
- setItemState(dstNodeId, "dragRight", true);
- } else if (e.y > box.minY + box.height * 0.5) {
- setItemState(dstNodeId, "dragDown", true);
- } else {
- setItemState(dstNodeId, "dragUp", true);
- }
- editor.dragDstId = dstNodeId;
- });
-
- editor.graph.on("node:dragleave", (e: G6GraphEvent) => {
- clearDragDstState();
- });
-
- editor.graph.on("node:drop", (e: G6GraphEvent) => {
- const dstNode = e.item;
-
- let srcNodeId = editor.dragSrcId;
- let dragDir;
- if (dstNode.hasState("dragRight")) {
- dragDir = "dragRight";
- } else if (dstNode.hasState("dragDown")) {
- dragDir = "dragDown";
- } else if (dstNode.hasState("dragUp")) {
- dragDir = "dragUp";
- }
-
- clearDragSrcState();
- clearDragDstState();
-
- if (e.originalEvent instanceof DragEvent) {
- const dragEvent = e.originalEvent as DragEvent;
- const exploreFile = dragEvent.dataTransfer?.getData("explore-file");
- const exploreNode = dragEvent.dataTransfer?.getData("explore-node");
- const dstData = findDataById(dstNode.getID());
-
- if (exploreNode) {
- const newTreeData: TreeGraphData = createTreeData(
- {
- id: editor.autoId++,
- name: exploreNode,
- },
- dstData.id
- );
- dstData.children ||= [];
- dstData.children.push(newTreeData);
- refreshItem(dstData);
- srcNodeId = newTreeData.id;
- } else if (exploreFile && exploreFile !== editor.path) {
- const newTreeData: TreeGraphData = createTreeData(
- {
- id: editor.autoId++,
- name: "unknow",
- path: workspace.relative(exploreFile),
- },
- dstData.id
- );
- dstData.children ||= [];
- dstData.children.push(newTreeData);
- refreshItem(dstData);
- srcNodeId = newTreeData.id;
- editor.autoId = b3util.refreshTreeDataId(newTreeData, Number(srcNodeId));
- }
- }
-
- if (!srcNodeId) {
- console.log("no drag src");
- return;
- }
-
- if (srcNodeId === dstNode.getID()) {
- console.log("drop same node");
- return;
- }
-
- const srcData = findDataById(srcNodeId);
- const srcParent = findParent(srcData);
- const dstData = findDataById(dstNode.getID());
- const dstParent = findParent(dstData);
- if (!srcParent) {
- console.log("no parent!");
- return;
- }
-
- if (isAncestor(srcData, dstData)) {
- console.log("cannot move to child");
- return;
- }
-
- const removeSrc = () => {
- srcParent.children = srcParent.children!.filter((value) => value.id !== srcData.id);
- };
-
- if (dragDir === "dragRight") {
- removeSrc();
- if (!dstData.children) {
- dstData.children = [];
- }
- srcData.parent = dstData.id;
- dstData.children.push(srcData);
- } else if (dragDir === "dragUp") {
- if (!dstParent) {
- return;
- }
- removeSrc();
- const idx = dstParent.children!.findIndex((value) => value.id === dstData.id);
- srcData.parent = dstParent.id;
- dstParent.children!.splice(idx, 0, srcData);
- } else if (dragDir === "dragDown") {
- if (!dstParent) {
- return;
- }
- removeSrc();
- const idx = dstParent.children!.findIndex((value) => value.id === dstData.id);
- srcData.parent = dstParent.id;
- dstParent.children!.splice(idx + 1, 0, srcData);
- } else {
- return;
- }
-
- refreshItem(srcParent);
- refreshItem(dstData);
-
- updateGrahp();
- pushHistory();
- onChange();
- });
-
- refreshTreeData(editor.root);
- editor.graph.data(editor.root);
- editor.graph.render();
- if (editor.graphMatrix) {
- restoreViewport();
- } else {
- editor.graph.fitCenter();
- }
- };
-
- const keysRef = useRef(null);
-
- useKeyDown(Hotkey.Copy, keysRef, () => copyNode());
- useKeyDown(Hotkey.Replace, keysRef, () => replaceNode());
- useKeyDown(Hotkey.Paste, keysRef, () => pasteNode());
- useKeyDown(Hotkey.Undo, keysRef, () => undo());
- useKeyDown(Hotkey.Redo, keysRef, () => redo());
- useKeyDown([Hotkey.Insert, Hotkey.Enter], keysRef, () => createNode());
- useKeyDown([Hotkey.Delete, Hotkey.Backspace], keysRef, () => deleteNode());
-
- editor.dispatch = (event: EditEvent, data: unknown) => {
- switch (event) {
- case "copy": {
- copyNode();
- break;
- }
- case "paste": {
- pasteNode();
- break;
- }
- case "delete": {
- deleteNode();
- break;
- }
- case "insert": {
- createNode();
- break;
- }
- case "replace": {
- replaceNode();
- break;
- }
- case "save": {
- save();
- break;
- }
- case "undo": {
- undo();
- break;
- }
- case "redo": {
- redo();
- break;
- }
- case "refresh": {
- refresh();
- break;
- }
- case "reload": {
- reload();
- break;
- }
- case "rename": {
- rename(data as string);
- break;
- }
- case "updateTree": {
- updateTree(data as EditTree);
- break;
- }
- case "updateNode": {
- updateNode(data as EditNode);
- break;
- }
- case "searchNode": {
- searchByType("content");
- break;
- }
- case "jumpNode": {
- searchByType("id");
- break;
- }
- case "editSubtree": {
- editSubtree();
- break;
- }
- case "saveAsSubtree": {
- saveAsSubtree();
- break;
- }
- case "clickVar": {
- clickVar(data as string);
- break;
- }
- }
- };
-
- // check should rebuild graph
- useEffect(() => {
- if (!editorSize || (editorSize.width === 0 && editorSize.height === 0)) {
- return;
- }
-
- if (!editor.graph) {
- createGraph(graphRef);
- }
-
- if (
- editor.graph.getWidth() !== editorSize.width ||
- editor.graph.getHeight() !== editorSize.height
- ) {
- editor.graph.changeSize(editorSize.width, editorSize.height);
- }
-
- if (editor.selectedId) {
- const id = editor.selectedId;
- setTimeout(() => {
- editor.graph.focusItem(id);
- selectNode(id);
- }, 50);
- }
- }, [editorSize, workspace.editing]);
-
- // check should repaint node
- useEffect(() => {
- if (workspace.editing === editor) {
- checkSubtree();
- editor.graph && refresh();
- }
- }, [workspace.editing, t]);
+ const onDebounceSearchChange = useDebounceCallback(onSearchChange, 100);
const nextResult = () => {
const { results, index } = filterOption;
if (results.length > 0) {
const idx = (index + 1) % results.length;
- recursiveOpenCollapsed(results[idx]);
- editor.graph.focusItem(results[idx]);
- selectNode(results[idx]);
setFilterOption({ ...filterOption, index: idx });
+ graph.expandElement();
+ graph.focusNode(results[idx]);
}
};
@@ -1273,10 +215,9 @@ export const Editor: FC = ({ onUpdate: updateState, data: editor, .
const { results, index } = filterOption;
if (results.length > 0) {
const idx = (index + results.length - 1) % results.length;
- recursiveOpenCollapsed(results[idx]);
- editor.graph.focusItem(results[idx]);
- selectNode(results[idx]);
setFilterOption({ ...filterOption, index: idx });
+ graph.expandElement();
+ graph.focusNode(results[idx]);
}
};
@@ -1319,19 +260,98 @@ export const Editor: FC = ({ onUpdate: updateState, data: editor, .
e.stopPropagation();
};
- const recursiveOpenCollapsed = (id: string) => {
- const recursiveFun = (searchId: string) => {
- const data = findDataById(searchId);
- if (searchId !== id && data.collapsed) {
- data.collapsed = undefined;
- }
- if (data.parent) {
- recursiveFun(data.parent);
+ editor.dispatch = async (event: EditEvent, data: unknown) => {
+ if (event === "close") {
+ graph.destroy();
+ } else if (event === "copy") {
+ graph.copyNode();
+ } else if (event === "paste") {
+ await graph.pasteNode();
+ } else if (event === "delete") {
+ await graph.deleteNode();
+ } else if (event === "insert") {
+ await graph.createNode();
+ } else if (event === "replace") {
+ graph.replaceNode();
+ } else if (event === "save") {
+ await graph.save();
+ onChange();
+ editor.changed = false;
+ editor.mtime = Date.now();
+ updateSearchState();
+ } else if (event === "undo") {
+ await graph.undo();
+ updateSearchState();
+ } else if (event === "redo") {
+ await graph.redo();
+ updateSearchState();
+ } else if (event === "refresh") {
+ await graph.refresh();
+ editor.mtime = fs.statSync(editor.path).mtimeMs;
+ } else if (event === "reload") {
+ graph.reload();
+ editor.mtime = fs.statSync(editor.path).mtimeMs;
+ editor.changed = false;
+ } else if (event === "rename") {
+ editor.path = data as string;
+ } else if (event === "updateTree") {
+ graph.updateTree(data as EditTree);
+ } else if (event === "updateNode") {
+ graph.updateNode(data as EditNode);
+ } else if (event === "searchNode") {
+ searchByType("content");
+ } else if (event === "jumpNode") {
+ searchByType("id");
+ } else if (event === "editSubtree") {
+ graph.editSubtree();
+ } else if (event === "saveAsSubtree") {
+ graph.saveAsSubtree();
+ } else if (event === "clickVar") {
+ graph.clickVar(data as string);
+ }
+ keysRef.current?.focus();
+ };
+
+ if (graph) {
+ graph.onChange = () => {
+ if (!editor.changed) {
+ editor.changed = true;
+ onChange();
}
};
- recursiveFun(id);
- updateGrahp();
- };
+ graph.onUpdateSearch = () => {
+ if (filterOption.filterStr) {
+ onSearchChange({
+ ...filterOption,
+ filterType: "content",
+ });
+ }
+ };
+ }
+
+ // check should rebuild graph
+ useEffect(() => {
+ if (!editorSize || (editorSize.width === 0 && editorSize.height === 0)) {
+ return;
+ }
+
+ if (!graph) {
+ setGraph(new Graph(editor, graphRef));
+ }
+
+ if (graph && workspace.editing === editor) {
+ graph.setSize(editorSize.width, editorSize.height);
+
+ graph.refreshSubtree().then(() => {
+ if (editor.focusId) {
+ graph.focusNode(editor.focusId);
+ editor.focusId = null;
+ } else if (graph.selectedId) {
+ graph.selectNode(graph.selectedId);
+ }
+ });
+ }
+ }, [editorSize, workspace.editing, graph, t]);
return (
= ({ onUpdate: updateState, data: editor, .
justifyContent: "end",
paddingRight: "10px",
paddingTop: "10px",
+ zIndex: 100,
}}
>
{
{
["state"];
+
+type IGraph = {
+ context: {
+ behavior?: {
+ currentTarget: unknown;
+ };
+ };
+};
+
+const workspace = useWorkspace.getState();
+
+export interface FilterOption {
+ results: string[];
+ index: number;
+ filterStr: string;
+ filterCase: boolean;
+ filterFocus: boolean;
+ filterType: "content" | "id";
+ placeholder: string;
+}
+
+export class Graph {
+ onChange?: () => void;
+ onUpdateSearch?: () => void;
+
+ private _graph: G6Graph;
+ private _historyStack: string[] = [];
+ private _historyIndex: number = 0;
+ private _dragId?: string;
+ private _dropId?: string;
+ private _selectedId: string | null = null;
+
+ constructor(readonly editor: EditorStore, ref: React.RefObject) {
+ this._graph = new G6Graph({
+ container: ref.current!,
+ behaviors: ["drag-canvas", "zoom-canvas", "hover-activate"],
+ animation: false,
+ zoomRange: [0.25, 2],
+ node: {
+ type: "TreeNode",
+ style: {
+ radius: 4,
+ fill: "white",
+ size: [260, 50],
+ ports: [{ placement: "right" }, { placement: "left" }],
+ },
+ state: TreeNodeStyle as G6NodeState,
+ },
+ edge: {
+ type: "cubic-horizontal",
+ style: {
+ lineWidth: 2,
+ stroke: "#A3B1BF",
+ },
+ animation: {
+ enter: false,
+ },
+ },
+ layout: {
+ type: "compact-box",
+ direction: "LR",
+ sortBy: (nodeA: G6NodeData, nodeB: G6NodeData) => {
+ const dataA = nodeA.data as unknown as NodeData;
+ const dataB = nodeB.data as unknown as NodeData;
+ return Number(dataA.id) - Number(dataB.id);
+ },
+ getHeight: ({ data }: { data: NodeData }) => data.size![1],
+ getWidth: ({ data }: { data: NodeData }) => data.size![0],
+ getVGap: () => 20,
+ getHGap: () => 30,
+ },
+ });
+ this._graph.on(G6CanvasEvent.CLICK, this._onCanvasClick.bind(this));
+ this._graph.on(G6NodeEvent.CONTEXT_MENU, this._onContextMenu.bind(this));
+ this._graph.on(G6NodeEvent.CLICK, this._onClick.bind(this));
+ this._graph.on(G6NodeEvent.DRAG_START, this._onDragStart.bind(this));
+ this._graph.on(G6NodeEvent.DRAG_END, this._onDragEnd.bind(this));
+ this._graph.on(G6NodeEvent.DRAG_ENTER, this._onDragEnter.bind(this));
+ this._graph.on(G6NodeEvent.DRAG_LEAVE, this._onDragLeave.bind(this));
+ this._graph.on(G6NodeEvent.DRAG, this._onDrag.bind(this));
+ this._graph.on(G6NodeEvent.DROP, this._onDrop.bind(this));
+ this._update(editor.data);
+ this._historyIndex = -1;
+ this._storeHistory(false);
+ }
+
+ destroy() {
+ this._graph.destroy();
+ }
+
+ get data() {
+ return this.editor.data;
+ }
+
+ private _storeHistory(changed: boolean = true) {
+ if (this._graph.rendered) {
+ this.editor.data.root = this._nodeToData("1");
+ }
+ const str = JSON.stringify(this.data, null, 2);
+ if (this._historyStack[this._historyIndex] !== str) {
+ this._historyStack.length = ++this._historyIndex;
+ this._historyStack.push(str);
+ if (changed) {
+ this.onChange?.();
+ }
+ }
+ }
+
+ private async _applyHistory(str: string) {
+ // clear node inspector
+ this.selectNode(null);
+ const data = JSON.parse(str) as TreeData;
+ this.editor.declare.import = data.import.map((v) => ({ path: v, vars: [], depends: [] }));
+ this.editor.declare.vars = data.vars.map((v) => ({ ...v }));
+ await this._update(data);
+ // update tree inspector
+ this.selectNode(null);
+ this.onChange?.();
+ }
+
+ private async _update(data: TreeData, refreshId: boolean = true) {
+ this.editor.data = data;
+ if (refreshId) {
+ b3util.refreshNodeData(this.data.root, 1);
+ }
+
+ workspace.refresh(this.editor.path);
+
+ // clear current target avoid hover error
+ const graph = this._graph as unknown as IGraph;
+ if (graph.context.behavior) {
+ graph.context.behavior.currentTarget = null;
+ }
+
+ this._graph.clear();
+ this._graph.setData(
+ treeToGraphData(data.root, {
+ getNodeData: (node) => {
+ return {
+ id: node.id,
+ prefix: this.data.prefix,
+ data: node as unknown as Record,
+ children: node.children?.map((child) => child.id),
+ };
+ },
+ })
+ );
+ await this._render();
+ }
+
+ setSize(width: number, height: number) {
+ const [w, h] = this._graph.getSize();
+ if (w !== width || h !== height) {
+ this._graph.setSize(width, height);
+ }
+ }
+
+ async undo() {
+ if (this._historyIndex > 0) {
+ await this._applyHistory(this._historyStack[--this._historyIndex]);
+ }
+ }
+
+ async redo() {
+ if (this._historyIndex < this._historyStack.length - 1) {
+ await this._applyHistory(this._historyStack[++this._historyIndex]);
+ }
+ }
+
+ private _nodeToData(id: string) {
+ const node = this._graph.getElementData(id) as G6NodeData;
+ const data = { ...node.data } as unknown as NodeData;
+ if (node.children) {
+ data.children = [];
+ for (const child of node.children) {
+ data.children.push(this._nodeToData(child));
+ }
+ } else {
+ data.children = undefined;
+ }
+ return data;
+ }
+
+ private async _render() {
+ if (!this._graph.rendered) {
+ await this._graph.render();
+ }
+ const zoom = this._graph.getZoom();
+ await this._graph.zoomTo(1, false);
+ const [x, y] = this._graph.getPosition();
+ await this._graph.translateTo([0, 0], false);
+ await this._graph.render();
+ await this._graph.translateTo([x, y], false);
+ await this._graph.zoomTo(zoom, false);
+ }
+
+ private _getAncestors(id: string): G6NodeData[] {
+ return this._graph.getAncestorsData(id, "tree") as G6NodeData[];
+ }
+
+ private _findSubtreeRoot(id: string): G6NodeData | null {
+ const node = this._graph.getNodeData(id);
+ const data = node.data as unknown as NodeData | undefined;
+ if (data?.path) {
+ return node;
+ } else {
+ return this._getAncestors(id).find((v) => (v.data as unknown as NodeData)?.path) ?? null;
+ }
+ }
+
+ private _isSubtreeNode(id: string | null | undefined): boolean {
+ return !!(id && this._findSubtreeRoot(id));
+ }
+
+ private _findParent(id: string) {
+ return this._graph.getParentData(id, "tree") as G6NodeData | null;
+ }
+
+ private _findHightlight(
+ node: NodeData,
+ highlight: string[],
+ changed?: [NodeData, TreeNodeState[]][]
+ ) {
+ changed ||= [];
+
+ if (highlight.length > 0) {
+ const states: TreeNodeState[] = [];
+
+ for (const v of node.input ?? []) {
+ if (highlight.includes(v)) {
+ states.push("highlightinput");
+ break;
+ }
+ }
+
+ for (const v of node.output ?? []) {
+ if (highlight.includes(v)) {
+ states.push("highlightoutput");
+ break;
+ }
+ }
+
+ const def = b3util.nodeDefs.get(node.name);
+ loop: for (const arg of def.args ?? []) {
+ if (isExprType(arg.type)) {
+ const expr = node.args?.[arg.name] as string | string[] | undefined;
+ if (typeof expr === "string") {
+ for (const v of b3util.parseExpr(expr)) {
+ if (highlight.includes(v)) {
+ states.push("highlightargs");
+ break loop;
+ }
+ }
+ } else if (expr instanceof Array) {
+ for (const str of expr) {
+ for (const v of b3util.parseExpr(str)) {
+ if (highlight.includes(v)) {
+ states.push("highlightargs");
+ break loop;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (states.length > 0) {
+ changed.push([node, states]);
+ } else {
+ changed.push([node, ["highlightgray"]]);
+ }
+ } else {
+ changed.push([node, []]);
+ }
+
+ node.children?.forEach((child) => this._findHightlight(child, highlight, changed));
+
+ return changed;
+ }
+
+ async expandElement() {
+ for (const node of this._graph.getNodeData()) {
+ await this._graph.expandElement(node.id, false);
+ }
+ }
+
+ clickVar(...names: string[]) {
+ console.debug("click variable:", names);
+ const nodes = this._findHightlight(this.data.root, names);
+ for (const [node, states] of nodes) {
+ const oldStates = this._getState(node.id).sort();
+ const newStates = [...oldStates.filter((v) => !this._isHighlightState(v)), ...states].sort();
+ if (oldStates.length !== newStates.length || oldStates.some((v, i) => v !== newStates[i])) {
+ this._setState(node.id, newStates);
+ }
+ }
+ if (names.length === 0) {
+ this.onUpdateSearch?.();
+ }
+ }
+
+ private _includeString(content: string | undefined, option: FilterOption) {
+ if (!content || typeof content !== "string") {
+ return false;
+ } else if (option.filterCase) {
+ return content.includes(option.filterStr);
+ } else {
+ return content.toLowerCase().includes(option.filterStr.toLowerCase());
+ }
+ }
+
+ hightlightSearch(option: FilterOption, node: NodeData | null) {
+ if (!node) {
+ return;
+ }
+
+ let highlightGray = option.filterFocus && !!option.filterStr;
+
+ if (option.filterStr) {
+ const def = b3util.nodeDefs.get(node.name);
+ let found = false;
+ if (option.filterType === "id") {
+ if (option.filterStr === node.id) {
+ found = true;
+ }
+ } else {
+ if (
+ this._includeString(node.name, option) ||
+ this._includeString(node.desc || def.desc, option)
+ ) {
+ found = true;
+ }
+ if (!found && node.input) {
+ for (const str of node.input) {
+ if (this._includeString(str, option)) {
+ found = true;
+ break;
+ }
+ }
+ }
+ if (!found && node.args) {
+ loop: for (const str in node.args) {
+ const value = node.args[str];
+ if (typeof value === "string") {
+ if (this._includeString(value, option)) {
+ found = true;
+ break loop;
+ }
+ } else if (value instanceof Array) {
+ for (const v of value) {
+ if (this._includeString(v, option)) {
+ found = true;
+ break loop;
+ }
+ }
+ }
+ }
+ }
+ if (!found && node.output) {
+ for (const str of node.output) {
+ if (this._includeString(str, option)) {
+ found = true;
+ break;
+ }
+ }
+ }
+ if (!found && node.path) {
+ if (this._includeString(node.path, option)) {
+ found = true;
+ }
+ }
+ }
+ if (found) {
+ option.results.push(node.id);
+ highlightGray = false;
+ }
+ }
+
+ const states = this._getState(node.id).filter((v) => !this._isHighlightState(v));
+ if (highlightGray) {
+ states.push("highlightgray");
+ }
+ this._setState(node.id, states);
+
+ node.children?.forEach((child) => this.hightlightSearch(option, child));
+ }
+
+ private _isTreeUpdated(editTree: EditTree) {
+ if (
+ this.data.prefix !== editTree.prefix ||
+ this.data.export !== editTree.export ||
+ this.data.name !== editTree.name ||
+ this.data.desc !== editTree.desc
+ ) {
+ return true;
+ }
+
+ let max = Math.max(this.editor.declare.vars.length, editTree.vars.length);
+ for (let i = 0; i < max; i++) {
+ const v1: VarDecl | undefined = this.editor.declare.vars[i];
+ const v2: VarDecl | undefined = editTree.vars[i];
+ if (v1?.name !== v2?.name || v1?.desc !== v2?.desc) {
+ return true;
+ }
+ }
+
+ max = Math.max(this.data.group.length, editTree.group.length);
+ for (let i = 0; i < max; i++) {
+ if (this.data.group[i] !== editTree.group[i]) {
+ return true;
+ }
+ }
+
+ max = Math.max(this.editor.declare.import.length, editTree.import.length);
+ for (let i = 0; i < max; i++) {
+ const v1: ImportDecl | undefined = this.editor.declare.import[i];
+ const v2: ImportDecl | undefined = editTree.import[i];
+ if (v1?.path !== v2?.path) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ async updateTree(editTree: EditTree) {
+ if (this._isTreeUpdated(editTree)) {
+ this.data.desc = editTree.desc || "";
+ this.data.export = editTree.export !== false;
+ this.data.group = editTree.group;
+ this.data.prefix = editTree.prefix ?? "";
+ this.data.import = editTree.import.map((v) => v.path).sort();
+ this.data.vars = editTree.vars
+ .map((v) => ({ ...v }))
+ .sort((a, b) => a.name.localeCompare(b.name));
+ this.editor.declare.vars = editTree.vars || [];
+ this.editor.declare.import = editTree.import || [];
+ workspace.refresh(this.editor.path);
+ await this.refresh();
+ this._storeHistory();
+ }
+ }
+
+ async updateNode(editNode: EditNode) {
+ const node = this._graph.getNodeData(editNode.data.id);
+ const data = node.data as unknown as NodeData;
+ if (b3util.isNodeEqual(data, editNode.data)) {
+ return;
+ }
+
+ // update node
+ node.data = { ...editNode.data, size: b3util.calcSize(editNode.data) };
+ this._graph.updateNodeData([node]);
+ await this._graph.draw();
+
+ // update subtree
+ if (data.path !== editNode.data.path) {
+ this.editor.data.root = this._nodeToData("1");
+ await this.refresh();
+ }
+
+ this._storeHistory();
+ }
+
+ async refresh() {
+ this.selectNode(null);
+ await this._update(this.data);
+ this.selectNode(null);
+ }
+
+ async reload() {
+ this.selectNode(null);
+ await this._update(readTree(this.editor.path));
+ this._storeHistory(false);
+ this.selectNode(null);
+ }
+
+ async focusNode(id: string) {
+ this.selectNode(id);
+ await this._graph.translateTo([0, 0], false);
+ await this._graph.focusElement(id, true);
+ }
+
+ get selectedId() {
+ return this._selectedId;
+ }
+
+ selectNode(id: string | null) {
+ if (this._selectedId && id !== this._selectedId) {
+ this._setState(
+ this._selectedId,
+ this._getState(this._selectedId).filter((v) => v !== "selected")
+ );
+ }
+
+ this._selectedId = id;
+
+ if (this._selectedId) {
+ const node = this._graph.getNodeData(this._selectedId);
+ const data = node.data as unknown as NodeData;
+ workspace.onEditingNode({
+ data: { ...data },
+ prefix: this.data.prefix,
+ disabled: this._isSubtreeNode(node.id),
+ subtreeEditable: !this._isSubtreeNode(this._findParent(node.id)?.id),
+ });
+ const states = this._getState(this._selectedId);
+ this._setState(this._selectedId, [...states, "selected"]);
+ } else {
+ workspace.onEditingTree(this.editor);
+ }
+ }
+
+ private _onContextMenu(e: IG6PointerEvent) {
+ this.selectNode(e.target.id);
+ }
+
+ private _onCanvasClick(e: IG6PointerEvent) {
+ this.selectNode(null);
+ }
+
+ private _onClick(e: IG6PointerEvent) {
+ const names: string[] = [];
+ const originalTarget = e.originalTarget;
+ if (originalTarget.className === "input-text") {
+ const node = this._graph.getNodeData(e.target.id);
+ const data = node.data as unknown as NodeData;
+ data.input?.forEach((v) => v && names.push(v));
+ } else if (originalTarget.className === "output-text") {
+ const node = this._graph.getNodeData(e.target.id);
+ const data = node.data as unknown as NodeData;
+ data.output?.forEach((v) => v && names.push(v));
+ }
+ this.clickVar(...names);
+ this.selectNode(e.target.id);
+ }
+
+ private _isDragState(state: string): boolean {
+ return (
+ state === "dragsrc" || state === "dragup" || state === "dragdown" || state === "dragright"
+ );
+ }
+
+ private _isHighlightState(state: string): boolean {
+ return (
+ state === "highlightgray" ||
+ state === "highlightinput" ||
+ state === "highlightoutput" ||
+ state === "highlightargs"
+ );
+ }
+
+ private _getState(id: string) {
+ return this._graph.getElementState(id) as TreeNodeState[];
+ }
+
+ private _setState(id: string, states: TreeNodeState[]) {
+ this._graph.setElementState(id, states);
+ }
+
+ private _clearDragState(id: string) {
+ const states = this._getState(id).filter((v) => !this._isDragState(v));
+ this._setState(id, states);
+ }
+
+ private _onDragStart(e: IG6PointerEvent) {
+ const { target } = e;
+ const states = this._getState(target.id);
+ this._setState(target.id, ["dragsrc", ...states]);
+ this._dragId = target.id;
+ console.log("drag start", target.id);
+ }
+
+ private _onDragEnd(e: IG6PointerEvent) {
+ if (!this._dragId) {
+ return;
+ }
+ if (e.target.id !== this._dragId) {
+ console.warn("cancel drag", this._dragId, e.target.id);
+ this._clearDragState(this._dragId);
+ }
+ const { target } = e;
+ this._clearDragState(target.id);
+ this._dragId = undefined;
+ console.log("drag end", target.id);
+ }
+
+ private _onDragEnter(e: IG6PointerEvent) {
+ const { target } = e;
+ if (target.id !== this._dragId) {
+ this._dropId = target.id;
+ }
+ }
+
+ private _onDragLeave(e: IG6PointerEvent) {
+ const { target } = e;
+ if (target.id !== this._dragId) {
+ this._clearDragState(target.id);
+ this._dropId = undefined;
+ }
+ }
+
+ private _onDrag(e: IG6PointerEvent) {
+ if (!this._dropId) {
+ return;
+ }
+ const id = this._dropId;
+ const pos = this._graph.getElementPosition(id);
+ const data = this._graph.getNodeData(id).data as unknown as NodeData;
+ const [w, h] = data.size!;
+ const x = e.canvas.x - pos[0] + w / 2;
+ const y = e.canvas.y - pos[1] + h / 2;
+ const states = this._getState(id);
+ let dragto: TreeNodeState | undefined;
+ if (x > w / 2) {
+ dragto = "dragright";
+ } else if (y > h / 2) {
+ dragto = "dragdown";
+ } else if (y < h / 2) {
+ dragto = "dragup";
+ }
+ if (dragto && !states.includes(dragto)) {
+ // console.log(`drag node: drop=${id} dropto=${dragto}`, states);
+ this._setState(id, [dragto, ...states.filter((v) => !this._isDragState(v))]);
+ }
+ }
+
+ private async _onDrop(e: IG6PointerEvent) {
+ const srcId = this._dragId!;
+ const dstId = e.target.id;
+
+ this._dragId = undefined;
+ this._dropId = undefined;
+
+ const dstStates = this._getState(e.target.id);
+ const dragto: TreeNodeState = dstStates.find((v) => this._isDragState(v))!;
+
+ this._clearDragState(srcId);
+ this._clearDragState(dstId);
+
+ if (srcId === e.target.id) {
+ console.log("drop same node");
+ return;
+ }
+
+ const ancestors = this._getAncestors(dstId);
+ if (
+ ancestors.some((v) => v.id === srcId) ||
+ ((dragto === "dragdown" || dragto === "dragup") && dstId === "1")
+ ) {
+ message.error(i18n.t("node.dropDenied"));
+ return;
+ }
+
+ if (this._isSubtreeNode(dstId)) {
+ message.error(i18n.t("node.editSubtreeDenied"));
+ return;
+ }
+
+ console.log(`drop node: drag=${srcId} target=${dstId} dropto=${dragto}`);
+
+ if (e.originalEvent instanceof DragEvent) {
+ // const dragEvent = e.originalEvent as DragEvent;
+ // const exploreFile = dragEvent.dataTransfer?.getData("explore-file");
+ // const exploreNode = dragEvent.dataTransfer?.getData("explore-node");
+ // const dstData = findDataById(destNode.getID());
+ // if (exploreNode) {
+ // const newTreeData: TreeGraphData = createTreeData(
+ // {
+ // id: editor.autoId++,
+ // name: exploreNode,
+ // },
+ // dstData.id
+ // );
+ // dstData.children ||= [];
+ // dstData.children.push(newTreeData);
+ // refreshItem(dstData);
+ // srcNodeId = newTreeData.id;
+ // } else if (exploreFile && exploreFile !== editor.path) {
+ // const newTreeData: TreeGraphData = createTreeData(
+ // {
+ // id: editor.autoId++,
+ // name: "unknow",
+ // path: workspace.relative(exploreFile),
+ // },
+ // dstData.id
+ // );
+ // dstData.children ||= [];
+ // dstData.children.push(newTreeData);
+ // refreshItem(dstData);
+ // srcNodeId = newTreeData.id;
+ // editor.autoId = b3util.refreshTreeDataId(newTreeData, Number(srcNodeId));
+ // }
+ }
+
+ const root = this._nodeToData("1");
+
+ const srcParentId = this._graph.getParentData(srcId, "tree")?.id;
+ const dstParentId = this._graph.getParentData(dstId, "tree")?.id;
+
+ let srcData: NodeData | undefined;
+ let dstData: NodeData | undefined;
+ let srcParentData: NodeData | undefined;
+ let dstParentData: NodeData | undefined;
+
+ b3util.dfs(root, (node) => {
+ if (node.id === srcId) {
+ srcData = node;
+ }
+ if (node.id === dstId) {
+ dstData = node;
+ }
+ if (node.id === srcParentId) {
+ srcParentData = node;
+ }
+ if (node.id === dstParentId) {
+ dstParentData = node;
+ }
+ });
+
+ assert(srcData, srcId);
+ assert(dstData, dstId);
+ assert(srcParentData, srcParentId);
+
+ if (dragto === "dragright") {
+ srcParentData.children?.remove(srcData);
+ dstData.children ||= [];
+ dstData.children.push(srcData);
+ } else if (dragto === "dragup") {
+ assert(dstParentData, dstParentId);
+ srcParentData.children?.remove(srcData);
+ const idx = dstParentData.children!.findIndex((v) => v.id === dstId);
+ dstParentData.children?.insertAt(idx, srcData);
+ } else if (dragto === "dragdown") {
+ assert(dstParentData, dstParentId);
+ srcParentData.children?.remove(srcData);
+ const idx = dstParentData.children!.findIndex((v) => v.id === dstId);
+ dstParentData.children?.insertAt(idx + 1, srcData);
+ }
+ await this._update({ ...this.data, root }, false);
+ this._storeHistory();
+ }
+
+ copyNode() {
+ if (this._selectedId) {
+ const node = this._graph.getNodeData(this._selectedId);
+ if (node) {
+ const data = node.data as unknown as NodeData;
+ const str = JSON.stringify(b3util.createNode(data));
+ clipboard.writeText(str);
+ }
+ }
+ }
+
+ async pasteNode() {
+ if (!this._selectedId) {
+ message.error(i18n.t("node.noNodeSelected"));
+ return;
+ }
+
+ if (this._isSubtreeNode(this._selectedId)) {
+ message.error(i18n.t("node.editSubtreeDenied"));
+ return;
+ }
+
+ try {
+ const str = clipboard.readText();
+ if (!str || str === "") {
+ return;
+ }
+ console.debug("parse node:", str);
+
+ const root = this._nodeToData("1");
+ let dstData: NodeData | undefined;
+ b3util.dfs(root, (node) => {
+ if (node.id === this._selectedId) {
+ dstData = node;
+ }
+ });
+
+ assert(dstData, this._selectedId);
+ dstData.children ||= [];
+ dstData.children.push(JSON.parse(str) as NodeData);
+ this.selectNode(null);
+ await this._update({ ...this.data, root });
+ this._storeHistory();
+ } catch (error) {
+ message.error(i18n.t("node.pasteDataError"));
+ console.log(error);
+ }
+ }
+
+ async replaceNode() {
+ if (!this._selectedId) {
+ message.error(i18n.t("node.noNodeSelected"));
+ return;
+ }
+
+ if (this._isSubtreeNode(this._selectedId)) {
+ message.error(i18n.t("node.editSubtreeDenied"));
+ return;
+ }
+
+ try {
+ const str = clipboard.readText();
+ if (!str || str === "") {
+ return;
+ }
+
+ const root = this._nodeToData("1");
+ let dstData: NodeData | undefined;
+ b3util.dfs(root, (node) => {
+ if (node.id === this._selectedId) {
+ dstData = node;
+ }
+ });
+
+ assert(dstData, this._selectedId);
+ Object.keys(dstData).forEach((k) => delete (dstData as unknown as ObjectType)[k]);
+ Object.assign(dstData, JSON.parse(str));
+ this.selectNode(null);
+ await this._update({ ...this.data, root });
+ this._storeHistory();
+ } catch (error) {
+ message.error(i18n.t("node.pasteDataError"));
+ console.log(error);
+ }
+ }
+
+ async createNode() {
+ if (!this._selectedId) {
+ message.error(i18n.t("node.noNodeSelected"));
+ return;
+ }
+
+ if (this._isSubtreeNode(this._selectedId)) {
+ message.error(i18n.t("node.editSubtreeDenied"));
+ return;
+ }
+
+ const root = this._nodeToData("1");
+ let dstData: NodeData | undefined;
+ b3util.dfs(root, (node) => {
+ if (node.id === this._selectedId) {
+ dstData = node;
+ }
+ });
+
+ assert(dstData, this._selectedId);
+ dstData.children ||= [];
+ dstData.children.push({ id: "", name: "unknow" });
+ await this._update({ ...this.data, root });
+ this._storeHistory();
+ }
+
+ async deleteNode() {
+ if (!this._selectedId) {
+ return;
+ }
+
+ if (this._selectedId === "1") {
+ message.error(i18n.t("node.deleteRootNodeDenied"));
+ return;
+ }
+
+ const subtreeRoot = this._getAncestors(this._selectedId)
+ .reverse()
+ .find((v) => (v.data as unknown as NodeData)?.path);
+
+ if (subtreeRoot && subtreeRoot.id !== this._selectedId) {
+ message.error(i18n.t("node.editSubtreeDenied"));
+ return;
+ }
+
+ const root = this._nodeToData("1");
+ const parentId = this._findParent(this._selectedId)?.id;
+ b3util.dfs(root, (n) => {
+ if (n.id === parentId) {
+ n.children = n.children?.filter((v) => v.id !== this._selectedId);
+ }
+ });
+ this.selectNode(null);
+ await this._update({ ...this.data, root });
+ this._storeHistory();
+ }
+
+ private _isSubtreeUpdated(data: NodeData) {
+ let updated = false;
+ b3util.dfs(data, (node) => {
+ if (node.path && b3util.files[node.path] !== node.mtime) {
+ updated = true;
+ }
+ });
+ return updated;
+ }
+
+ async refreshSubtree() {
+ if (this._isSubtreeUpdated(this.data.root)) {
+ this.selectNode(null);
+ await this.refresh();
+ this._storeHistory();
+ }
+ }
+
+ async save() {
+ if (b3util.isNewVersion(this.data.version)) {
+ message.error(i18n.t("alertNewVersion", { version: this.data.version }), 6);
+ return;
+ }
+ await this._update({ ...this.data, root: this._nodeToData("1") });
+ writeTree(this.editor.path, {
+ ...this.data,
+ root: b3util.createNode(this.data.root),
+ });
+ workspace.updateFileMeta(this.editor);
+ }
+
+ editSubtree() {
+ if (!this._selectedId) {
+ message.error(i18n.t("node.noNodeSelected"));
+ return;
+ }
+
+ const node = this._findSubtreeRoot(this._selectedId);
+ const data = node?.data as unknown as NodeData | undefined;
+ if (data?.path) {
+ const path = `${workspace.workdir}/${data.path}`;
+ workspace.open(path, (Number(this._selectedId) - Number(data.id) + 1).toString());
+ }
+ }
+
+ async saveAsSubtree() {
+ if (!this._selectedId) {
+ message.error(i18n.t("node.noNodeSelected"));
+ return;
+ }
+
+ if (this._selectedId === "1") {
+ message.error(i18n.t("node.subtreeSaveRootError"));
+ return;
+ }
+
+ if (this._isSubtreeNode(this._selectedId)) {
+ message.error(i18n.t("node.editSubtreeDenied"));
+ return;
+ }
+
+ const ret = await dialog.showSaveDialog({
+ defaultPath: workspace.workdir,
+ properties: ["showOverwriteConfirmation"],
+ filters: [{ name: "Json", extensions: ["json"] }],
+ });
+
+ if (ret.canceled) {
+ return;
+ }
+
+ const subpath = ret.filePath.replaceAll(Path.sep, "/");
+ if (subpath.indexOf(workspace.workdir) === -1) {
+ message.error(i18n.t("node.subtreePathError"));
+ return;
+ }
+
+ const node = this._graph.getNodeData(this._selectedId);
+ const data = node.data as unknown as NodeData;
+ const subroot = b3util.createFileData(data);
+ const subtreeModel = {
+ name: Path.basenameWithoutExt(subpath),
+ root: subroot,
+ desc: data.desc,
+ } as TreeData;
+ fs.writeFileSync(subpath, JSON.stringify(subtreeModel, null, 2));
+ data.path = workspace.relative(subpath);
+ await this.refresh();
+ this._storeHistory();
+ }
+}
diff --git a/src/components/inspector.tsx b/src/components/inspector.tsx
index bef5bc1..f619b2b 100644
--- a/src/components/inspector.tsx
+++ b/src/components/inspector.tsx
@@ -29,7 +29,7 @@ import { ExpressionEvaluator } from "../behavior3/src/behavior3";
import { EditNode, EditTree, useWorkspace } from "../contexts/workspace-context";
import {
hasArgOptions,
- ImportDef,
+ ImportDecl,
isBoolType,
isExprType,
isFloatType,
@@ -37,9 +37,8 @@ import {
isJsonType,
isStringType,
NodeArg,
- NodeModel,
- TreeGraphData,
- VarDef,
+ NodeData,
+ VarDecl,
} from "../misc/b3type";
import {
checkNodeArgValue,
@@ -47,12 +46,12 @@ import {
getNodeArgRawType,
isNodeArgArray,
isNodeArgOptional,
+ isValidChildren,
isValidVariableName,
isVariadic,
parseExpr,
- usingGroups,
- usingVars,
} from "../misc/b3util";
+import { message } from "../misc/hooks";
import i18n from "../misc/i18n";
import { Hotkey, isMacos } from "../misc/keys";
import { mergeClassNames } from "../misc/util";
@@ -61,7 +60,7 @@ interface OptionType extends DefaultOptionType {
value: string;
}
-interface VarItem extends VarDef {
+interface VarItem extends VarDecl {
count?: number;
}
@@ -69,11 +68,11 @@ interface VarItemProps {
name: number;
disabled?: boolean;
value?: VarItem;
- onChange?: (vardef: VarItem) => void;
+ onChange?: (value: VarItem) => void;
onRemove?: (name: number | number[]) => void;
}
-const VarDefItem: FC = ({ name, onChange, onRemove, disabled, ...props }) => {
+const VarDeclItem: FC = ({ name, onChange, onRemove, disabled, ...props }) => {
const { t } = useTranslation();
const form = useFormInstance();
const [value, setValue] = useState(props.value ?? { name: "", desc: "" });
@@ -152,6 +151,7 @@ const TreeInspector: FC = () => {
relative: state.relative,
open: state.open,
workdir: state.workdir,
+ usingVars: state.usingVars,
}))
);
const { t } = useTranslation();
@@ -160,7 +160,7 @@ const TreeInspector: FC = () => {
// using count
const usingCount: Record = useMemo(() => {
const count: Record = {};
- const collect = (node: TreeGraphData) => {
+ const collect = (node: NodeData) => {
const def = workspace.nodeDefs.get(node.name);
if (def.input) {
node.input?.forEach((v) => {
@@ -195,7 +195,7 @@ const TreeInspector: FC = () => {
};
collect(workspace.editingTree.root);
return count;
- }, [workspace.editingTree, workspace.nodeDefs]);
+ }, [workspace.editingTree, workspace.nodeDefs, workspace.usingVars]);
// auto complete for subtree
const subtreeOptions = useMemo(() => {
@@ -218,11 +218,11 @@ const TreeInspector: FC = () => {
form.setFieldValue("name", workspace.editingTree.name);
form.setFieldValue("desc", workspace.editingTree.desc);
form.setFieldValue("export", workspace.editingTree.export !== false);
- form.setFieldValue("firstid", workspace.editingTree.firstid);
+ form.setFieldValue("prefix", workspace.editingTree.prefix);
form.setFieldValue("group", workspace.editingTree.group);
form.setFieldValue(
- "declvar",
- workspace.editingTree.declvar.map((v) => ({
+ "vars",
+ workspace.editingTree.vars.map((v) => ({
name: v.name,
desc: v.desc,
count: usingCount[v.name] ?? 0,
@@ -258,16 +258,16 @@ const TreeInspector: FC = () => {
name: values.name,
desc: values.desc,
export: values.export,
- firstid: Number(values.firstid),
+ prefix: values.prefix,
group: ((values.group ?? []) as string[]).filter((g) => g).sort((a, b) => a.localeCompare(b)),
- declvar: (values.declvar as VarDef[])
+ vars: (values.vars as VarDecl[])
.filter((v) => v && v.name)
.map((v) => ({
name: v.name,
desc: v.desc,
}))
.sort((a, b) => a.name.localeCompare(b.name)),
- import: (values.import as ImportDef[])
+ import: (values.import as ImportDecl[])
.filter((v) => v && v.path)
.sort((a, b) => a.path.localeCompare(b.path))
.map((v) => ({
@@ -299,8 +299,8 @@ const TreeInspector: FC = () => {
-
-
+
+
form.submit()} />
@@ -326,7 +326,7 @@ const TreeInspector: FC = () => {
{t("tree.vars")}
-
+
{(fields, { add, remove }, { errors }) => (
{fields.map((item) => (
@@ -351,7 +351,7 @@ const TreeInspector: FC = () => {
},
]}
>
-
+
))}
{
{vars.map((v) => (
-
+
))}
@@ -477,7 +477,7 @@ const TreeInspector: FC = () => {
{vars.map((v) => (
-
+
))}
@@ -513,7 +513,12 @@ const TreeInspector: FC = () => {
);
};
-const validateArg = (node: NodeModel, arg: NodeArg, value: unknown) => {
+const validateArg = (
+ node: NodeData,
+ arg: NodeArg,
+ value: unknown,
+ usingVars: Record | null
+) => {
const type = getNodeArgRawType(arg);
const required = !isNodeArgOptional(arg);
if (isExprType(type) && value) {
@@ -559,6 +564,8 @@ const NodeInspector: FC = () => {
fileTree: state.fileTree,
groupDefs: state.groupDefs,
nodeDefs: state.nodeDefs,
+ usingGroups: state.usingGroups,
+ usingVars: state.usingVars,
onEditingNode: state.onEditingNode,
relative: state.relative,
}))
@@ -572,12 +579,22 @@ const NodeInspector: FC = () => {
100
);
+ const submit = () => {
+ if (form.getFieldsError().some((e) => e.errors.length > 0)) {
+ const data = workspace.editingNode.data;
+ const editor = workspace.editing!;
+ const name = `${editor.data.prefix}${data.id} ${data.name}`;
+ message.error(t("node.editFailed", { name }));
+ }
+ form.submit();
+ };
+
// set form values
useEffect(() => {
const data = workspace.editingNode.data;
const def = workspace.nodeDefs.get(workspace.editingNode.data.name);
form.resetFields();
- form.setFieldValue("id", data.id);
+ form.setFieldValue("id", workspace.editingNode.prefix + data.id);
form.setFieldValue("name", data.name);
form.setFieldValue("type", def.type);
form.setFieldValue("desc", data.desc || def.desc);
@@ -647,11 +664,12 @@ const NodeInspector: FC = () => {
const inoutVarOptions = useMemo(() => {
const options: OptionType[] = [];
const filter: Record = {};
- const collect = (node?: TreeGraphData) => {
+ const collect = (node?: NodeData) => {
if (node) {
+ const def = workspace.nodeDefs.get(node.name);
node.input?.forEach((v, i) => {
let desc: string;
- const inputDef = node.def.input;
+ const inputDef = def.input;
if (inputDef && i >= inputDef.length && isVariadic(inputDef, -1)) {
desc = inputDef[inputDef.length - 1];
} else {
@@ -664,7 +682,7 @@ const NodeInspector: FC = () => {
});
node.output?.forEach((v, i) => {
let desc: string;
- const outputDef = node.def.output;
+ const outputDef = def.output;
if (outputDef && i >= outputDef.length && isVariadic(outputDef, -1)) {
desc = outputDef[outputDef.length - 1];
} else {
@@ -678,18 +696,18 @@ const NodeInspector: FC = () => {
node.children?.forEach((child) => collect(child));
}
};
- if (usingVars) {
- Object.values(usingVars ?? {}).forEach((v) => {
+ if (workspace.usingVars) {
+ Object.values(workspace.usingVars).forEach((v) => {
if (!filter[v.name]) {
options.push({ label: `${v.name}(${v.desc})`, value: v.name });
filter[v.name] = true;
}
});
} else {
- collect(workspace.editing?.root);
+ collect(workspace.editing?.data.root);
}
return options;
- }, [workspace.editing, usingVars]);
+ }, [workspace.editing, workspace.usingVars]);
// auto complete for subtree
const subtreeOptions = useMemo(() => {
@@ -708,12 +726,12 @@ const NodeInspector: FC = () => {
const editingNode = workspace.editingNode;
const def = workspace.nodeDefs.get(editingNode.data.name);
- const disabled = !editingNode.editable;
+ const disabled = editingNode.disabled;
// update value
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const finish = (values: any) => {
- const data = {} as NodeModel;
+ const data = {} as NodeData;
data.id = editingNode.data.id;
data.name = values.name;
data.debug = values.debug || undefined;
@@ -804,7 +822,8 @@ const NodeInspector: FC = () => {
debug: editingNode.data.debug,
disabled: editingNode.data.disabled,
},
- editable: editingNode.editable,
+ prefix: editingNode.prefix,
+ disabled: editingNode.disabled,
});
finish(form.getFieldsValue());
} else {
@@ -835,6 +854,9 @@ const NodeInspector: FC = () => {
labelCol={{ span: "auto" }}
onFinish={finish}
>
+
+
+
@@ -845,7 +867,7 @@ const NodeInspector: FC = () => {
rules={[
{
validator() {
- if (def.group && !def.group.some((g) => usingGroups[g])) {
+ if (def.group && !def.group.some((g) => workspace.usingGroups?.[g])) {
return Promise.reject(
new Error(t("node.groupNotEnabled", { group: def.group }))
);
@@ -869,7 +891,7 @@ const NodeInspector: FC = () => {
rules={[
{
validator() {
- if (editingNode.limitError) {
+ if (!isValidChildren(editingNode.data)) {
return Promise.reject(new Error(t("node.invalidChildren")));
}
return Promise.resolve();
@@ -908,17 +930,17 @@ const NodeInspector: FC = () => {
/>
-
+
-
+
-
+
e.code === Hotkey.Escape && e.preventDefault()}
@@ -958,7 +980,11 @@ const NodeInspector: FC = () => {
rules={[
{
validator(_, value) {
- if (value && usingVars && !usingVars[value]) {
+ if (
+ value &&
+ workspace.usingVars &&
+ !workspace.usingVars[value]
+ ) {
return Promise.reject(
new Error(
t("node.undefinedVariable", { variable: value })
@@ -978,7 +1004,7 @@ const NodeInspector: FC = () => {
e.code === Hotkey.Escape && e.preventDefault()
}
@@ -994,7 +1020,7 @@ const NodeInspector: FC = () => {
style={{ marginBottom: "6px" }}
onClick={() => {
remove(field.name);
- form.submit();
+ submit();
}}
/>
@@ -1027,7 +1053,7 @@ const NodeInspector: FC = () => {
{ required, message: t("fieldRequired", { field: desc }) },
({ getFieldValue, setFieldValue, isFieldValidating, validateFields }) => ({
validator(_, value) {
- if (value && usingVars && !usingVars[value]) {
+ if (value && workspace.usingVars && !workspace.usingVars[value]) {
return Promise.reject(
new Error(t("node.undefinedVariable", { variable: value }))
);
@@ -1067,7 +1093,7 @@ const NodeInspector: FC = () => {
e.code === Hotkey.Escape && e.preventDefault()}
filterOption={(inputValue: string, option?: OptionType) => {
const label = option!.label as string;
@@ -1112,39 +1138,44 @@ const NodeInspector: FC = () => {
},
() => ({
validator(_, value) {
- return validateArg(editingNode.data, arg, value);
+ return validateArg(
+ editingNode.data,
+ arg,
+ value,
+ workspace.usingVars
+ );
},
}),
]}
>
{!hasArgOptions(arg) && isStringType(type) && (
-
+
)}
{!hasArgOptions(arg) && isJsonType(type) && (
-
+
)}
{!hasArgOptions(arg) && isIntType(type) && (
)}
{!hasArgOptions(arg) && isFloatType(type) && (
-
+
)}
{!hasArgOptions(arg) && isBoolType(type) && (
-
+
)}
{!hasArgOptions(arg) && isExprType(type) && (
-
+
)}
{hasArgOptions(arg) && (